TIER 2: Oopsie

Web 渗透

此次靶机结合前面知识,非常简单:

  • nmap 扫描,发现 22 和 80 端口开放
  • 服务 80 的 HTTP 服务

之后使用继续 Web 渗透:

  • 使用 Wappalyzer 查看网站使用的技术栈
  • 查看当前页面源码,重点观察其中的链接
  • 如果没有进一步线索,进行目录爆破,寻找隐藏目录

寻找到目标站点根目录 /cdn-cgi/login//uploads/ 子目录,amdin 应该足够有吸引力不是吗?

  • 使用开发者工具,看其中表单、链接、请求、响应等信息。
  • 在登录页面中存在游客登录,我们先不急于使用爆破获取密码,而是继续收集信息。
  • 游客登录后,必然存在某种机制确认我们的身份,我们重点使用开发者工具查看请求和响应信息。可以发现目标是通过 Cookie 确认我们身份。并且 在页面的标签页 Uploads 选项卡上需要 admin 身份才能访问。
  • 在页面链接中,对应页面的标签页 Account 选项卡,点击后发现页面内容是我们的 Cookie 一致,而页面链接是 http://10.129.161.131/cdn-cgi/login/admin.php?content=accounts&id=2 说明在链接查询部分 content=accounts&id=2 会获取不同信息,通过爆破 id 这种纯粹数值的参数,我们可以获取到其他用户的 Cookie,通过在开发者工具中修改 Cookie,我们可以伪造身份登录。

在 admin 身份登录后,尝试利用 http://10.129.161.131/cdn-cgi/login/admin.php?content=uploads 进行文件上传,在上传漏洞利用中推荐 webshells 项目:

  • 项目地址:https://github.com/BlackArch/webshells/
  • 我们选用 php/php-reverse-shell.php 进行上传,注意修改其中的 IP 和端口与自己的 Kali 主机一致。
  • 在 kali 上设置监听端口 nc -lvnp 4444,但是目前有一个问题,我们不知道上传文件位置,记着之前的 /uploads/ 或许可以尝试访问 http://10.129.161.131/uploads/php-reverse-shell.php,观察监听是否有变化,当然这次是成功的。
  • 巩固 shell 连接,使用 python3 -c 'import pty;pty.spawn("/bin/bash")' 增强 shell 交互性。

提权

登录后,两点需要注意:

  • 查看自己当前的权限,使用 id 命令
  • 查看 /etc/passwd 文件,确认系统中存在哪些用户

好,我们继续攻击,我们先看一下我们之前攻击的 Web 服务是怎样的一个程序,之前的 Wappalyzer 确认目标是 Apache,使用我们到 /var/www/html/ 目录下的站点康康这个程序怎样运行。

  • 在 admin.php 中发现 amdin 用户密码 MEGACORP_4dm1n!!,重点在 /var/www/html/cdncgi/login 目录,在其中有一个 db.php 文件。我们知道 LMAP 中 PHP 想要与 MySQL 数据交换,需要 MySql 的账号和密码。
  • 两个思路进攻 MySQL 提权或者通过当前密码尝试之前在 /etc/passwd 中发现的 robert 用户。

这次非常幸运,我们成功使用 db.php 中的密码登录了 robert 用户,现在我们知道用户和密码,那么我们使用 SSH 继续登录,进一步巩固我们的权限。同时在此用户的家目录可以发现第一个 flag 文件。

对于这个新用户,我们登录后查看当前权限,发现一个特别的 1001(bugtracker) 组信息

  • 针对这个不同组信息收集我们 find / -group bugtracker 2>/dev/null 命令后发现 /usr/bin/bugtracker 文件
  • 我们使用 ls -la /usr/bin/bugtracker && file /usr/bin/bugtracker 两段命令查看其状态,发现它执行时有 root 权限,这由于 SUID 设置导致的。

我们执行一下看看 /usr/bin/bugtracker 功能,这个执行发现它会执行 cat 查看文件。那么我们是否可以通过改 PATH 变量,让它使用错误的 cat 命令,用我们自己写的假 cat 替代:

  • 命令 echo '/bin/sh' > /tmp/cat,我们在 /tmp 目录创建一个文件,因为此目录权限特殊性。
  • 使用 export PATH=/tmp:$PATH 让系统错误识别 cat 的位置,转而使用我们写的假 cat 命令。
  • 执行 /usr/bin/bugtracker 查看是否生效。

当然我们最后的结果是成功的,使用 id 确认身份,最后的 flag 在 root 根目录。

TIER 2: Oopsie的更多相关文章

  1. E-Business Suite 12.2 startCD 50 Install Fails with Fatal Error: TXK Install Service oracle.apps.fnd.txk.config.ProcessStateException: OUI process failed Cannot install Web Tier Utilities

    在rhel7.2上,使用startCD 50安装ebs r12.2的使用,安装到38%的时候就报错,遇到了和以下文章类似的问题: http://www.cnblogs.com/abclife/p/49 ...

  2. Tier和RBD Cache的区别

    相同点 缓存 数据不会持久保存在ssd或者内存:预读回写直写 都需要解决缓存数据和磁盘数据不一致和“内存页”置换的问题. 差异点 缓存的位置不同,tier是rados层在osd端进行数据缓存,也就是说 ...

  3. 在magneto系统中输出tier price的最小值

    2012年6月16日星期六 Asia/Shanghai上午11时39分22秒 有的时候,我们想输出产品的tier price 的最小值!如图: 下面是解决的办法: 1. 在catalog/produc ...

  4. Tier和Layer

    在实际开发工作中.我们经常听到"架构设计"和"架构师"这种名词,它并不新奇和神奇,可是却非常少有人对"架构"有全面的了解和认识.更谈不上掌握 ...

  5. Sharing The Application Tier File System in Oracle E-Business Suite Release 12.2

    The most current version of this document can be obtained in My Oracle Support Knowledge Document 13 ...

  6. WPF 渲染级别 (Tier)

    在WPF中,显卡的功能相差很大.当WPF评估显卡时,它会考虑许多因素,包括显卡上的RAM数量.对像素着色器(piexl shader)的支持(计算每个像素效果的内置程序,如透明效果),以及对顶点着色器 ...

  7. H265 Profile & Level & Tier 介绍

    H265/HEVC Profile Level Tier 档次.水平.等级 为了提供不同应用之间的兼容互通,HEVC/H265 定义了不同的编码 Profile 档次.Level 水平.Tier 等级 ...

  8. flume topology design . tier num 分层数目

    32:+:1 x:1 x<=8 https://flume.apache.org/FlumeUserGuide.html#flume-topology-design Flume topology ...

  9. CephFS cache tier实践

    这是一篇分享文,作者因为最近想深入研究下ceph的cache pool,作者写的文章非常的好,这里先直接翻译这篇文章,然后再加入我自己的相关数据 blog原文 作者想启动blog写下自己的Openst ...

  10. Dynamics AX 2012 R2 Service Middle Tier WCF WCF转发

    参考了蒋金楠老师08年的文章.好吧,那时候我才大二.大三,大神果然是大神. http://www.cnblogs.com/artech/archive/2008/09/01/1280939.html ...

随机推荐

  1. 在Cocos2d中拖动组件并吸附到节点

    最近在学习制作小游戏,要实现一个拖动吸附效果,这里简单实现一下 代码实现 定义节点和函数功能 在properties里新建一个对象,用来接收目标区域的节点 properties:{ sense: { ...

  2. FFmpeg开发笔记(二十四)Linux环境给FFmpeg集成AV1的编解码器

    ​AV1是一种新兴的免费视频编码标准,它由开放媒体联盟(Alliance for Open Media,简称AOM)于2018年制定,融合了Google VP10.Mozilla Daala以及Cis ...

  3. WPF开发快速入门【1】WPF的布局

    概述 本文描述几款WPF中常用的布局控件. Grid Grid是WPF最常用的布局控件. 它把面板分割为固定长和宽的网格,子控件就放置在网格内. <Grid> <Grid.Colum ...

  4. .net core 关于对swagger的UI(Index.html)或接口的权限验证;

    背景: 如何在ASP.Net Core的生产环境中保护swagger ui,也就是index.html页面.其实swagger是自带禁用的功能的,只需要设置开关即可.但是有一些场景,是需要把这些接口进 ...

  5. SSH-Web 工具之 shellinabox:一款使用 AJAX 的基于 Web 的终端模拟器 安装及使用教程

    本文转载自: shellinabox:一款使用 AJAX 的基于 Web 的终端模拟器 一.shellinabox简介 通常情况下,我们在访问任何远程服务器时,会使用常见的通信工具如OpenSSH和P ...

  6. JS+DOM简要笔记

    js官方文档: https://www.w3school.com.cn/js/index.asp 简单理解:html是内容,css是控制样式,js是行为. 1,js弱类型特点 JavaScript 是 ...

  7. SELinux 安全模型——MLS

    首发公号:Rand_cs SELinux 安全模型--MLS BLP 模型:于1973年被提出,是一种模拟军事安全策略的计算机访问控制模型,它是最早也是最常用的一种多级访问控制模型,主要用于保证系统信 ...

  8. xpath提取不到值(iframe嵌套)的问题

    爬取http://xgj.xiangyang.gov.cn/zwgk/gkml/?itemid=2471的时候遇到frame嵌套,内部的a标签获取不到. 网上也有人遇到了同样的问题.https://b ...

  9. WIN11 删除其它用户/账户

    WIN11 删除其它用户/账户 参考:https://support.microsoft.com/zh-cn/windows/%E5%9C%A8%E7%94%B5%E8%84%91%E4%B8%8A% ...

  10. java.util.Date和java.sql.Date有什么区别?

    java.util.Date包含日期和时间,而java.sql.Date只包含日期信息,而没有具体的时间信息.如果你想把时间信息存储在数据库       里,可以考虑使用Timestamp或者Date ...