ToB企服应用市场:ToB评测及商务社交产业平台

标题: tomghost打靶学习条记(3) [打印本页]

作者: 火影    时间: 前天 21:53
标题: tomghost打靶学习条记(3)
主要内容
信息收集:ajp漏洞
横向提权:在没有办法立刻提升到管理员权限时,可以试试通过横向的权限提升切换到其他用户再做提权尝试
涉及尝试了前两台靶机没有用过的枚举方法,比如SUID
利用john解码工具举行pgp解密
参考视频:https://www.bilibili.com/video/BV1fUwVeeELz/?spm_id_from=333.1387.upload.video_card.click&vd_source=e948147c25027ef3216b5c376b31fc96
首先照旧nmap扫描

可以发现和之前两个靶机差别,这个靶机没有80端口(http
80端口
1、是HTTP协议的默认端口,IANA标准规定用于HTTP服务。
2、当你在浏览器中访问一个URL(如 http://example.com)时,浏览器默认会连接到服务器的80端口。
8080端口
1、并非HTTP的官方默认端口,但在实践中常用作HTTP服务的替代端口。
2、在一些情况下,比如你没有权限利用80端口(80端口属于低数字端口,通常需要管理员权限)或体系上已经有其他服务占用了80端口,就可以选择利用8080端口。
3、开发环境、测试服务器或署理服务器(如Tomcat、Node.js应用等)通常默认利用8080端口。
nmap做的端口扫描会表现对应的服务,但是这个服务判断很有可能是不准确的
对8080端口做详细扫描,看一下它的服务是什么:

解释命令:
-p8080:指定只扫描端口8080
-sV:启用版本检测, 扫描时不但检测端口是否开放,还尝试识别该端口上运行的服务及其版本信息。
总结起来,命令的作用是:
扫描目的 IP 的 8080 端口,检查这个端口是否开放,并尝试确定该端口上运行的服务是什么以及详细的版本号。
服务表现是Tomcat
用浏览器打开看一下,记得加8080端口
打开看到是一个tomcat的页面,碰到这种页面可以先看一下有没有管理页面

看到一个manager app
click it
oops ,甚至没有登录框
去看看别的端口,照旧用一样的扫描方法

表现是一个ajp服务
ajp:AJP(Apache JServ Protocol)是一种二进制协议,主要用于在前端 Web 服务器和后端应用服务器之间高效地转发哀求和相应。下面是关于 AJP 服务的详细说明:
可以搜索一下有没有什么漏洞
输入ajp vulnerability来搜索

在searchsploit查一下有没有漏洞利用代码

反面两个是我们想要的,我们先看python脚本的
48143.py
我需要先明白这个漏洞大抵的原理:
1、AJP协议:Tomcat用于前端署理(如Apache)和后端容器通信的协议。
2、解析命令行参数(目的IP、端口、文件路径)。
3、构造包含恶意属性的AJP哀求:
  1. - 设置`<font >req_attribute</font>`属性,指定要包含的文件路径(如`<font >WEB-INF/web.xml</font>`)。
复制代码
4、发送哀求并输出相应中的文件内容。
这个漏洞允许攻击者通过构造特定的AJP哀求,出发当地文件包含(LFI),从而读取服务器上的敏感文件,比如WEB-INF/web.xml。这个文件通常包含Web应用步伐的配置信息,偶然会有敏感数据,比如数据库密码或者其他凭证。

尝试直接运行脚本
告诉我们需要四个参数,[]表现可选,这里默认即可,target填目的ip
  1. root@ip-10-10-211-144:~# python 48143.py 10.10.158.119
  2. Getting resource at ajp13://10.10.158.119:8009/asdf
  3. ----------------------------
  4. <?xml version="1.0" encoding="UTF-8"?>
  5. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  6.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  7.   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  8.                       http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  9.   version="4.0"
  10.   metadata-complete="true">
  11.   <display-name>Welcome to Tomcat</display-name>
  12.   <description>
  13.      Welcome to GhostCat
  14.         skyfuck:8730281lkjlkjdqlksalks //一个凭证对,即一个用户名和一个密码,中间常常用:隔开
  15.   </description>
  16. </web-app>
复制代码

提权

枚举:
sudo -l:
看来不行
SUID:

SUID是linux/unix中的一种特别权限,允许用户以文件全部者的身份实行文件
find命令是搜索具有SUID权限的文件的一种方法
find / -user root -perm /4000 2>/dev/null
-user root:筛选文件全部者(User)是root的文件
-perm /4000:
作用:匹配设置了SUID权限的文件
/符号:表现“至少满足一个权限位被设置”(不要求准确匹配)(下面会详细解释其寄义)

首先我们拿具有suid权限的ping步伐和普通的cat步伐做一个对比

可以看到ping有一个suid标志位
问:为什么ping需要suid权限?
答:
一个命令在实行时只有拥有它需要的权限才能实行
比如说cat命令是用当前用户(假设这里是普通用户)打开的,cat不能打开root的文件
ping在运行时会发送acmp数据包来判断网络通信
但是一般情况下发送acmp数据包是需要管理员权限的
但是普通用户也需要利用ping命令,所以就有了设置suid标志位
所以ping实际上是以root用户的身份来运行的
SUID标志位导致的问题:无论是谁只要运行了suid标志位的二进制文件,
他(运行这个文件的当前用户)就总是以它(这个二进制文件的权限,比如图中得知这里cat和ping都是root)的全部者的权限来运行
所以,如果SUID被设置在了一些具有很多功能,不比如实行命令等等的二进制文件上,就会导致我们可以或许用来提升文件
照旧打开GTFOBins,这里也讲了SUID
如果想看看这些suid权限的文件能否被利用,可以看看这个网站
这个靶的文件搜索之后是无法利用的
SUID提取无法利用,继承找有没有其他可以利用的文件

没见过的后缀,查一下用途

scp(Secure Copy)是基于 SSH 协议的文件传输工具,用于在当地和远程计算机之间安全地复制文件或目次
由于我们已经有skyfuck的明文密码了,利用这个文件传输命令后会要求你输入对应用户的密码,利用起来正好
打开自己主机的终端:
scp skyfuck@10.10.158.119:/home/skyfuck/* .
这里asc文件应该含有php的密钥

点击asc文件,回应密钥被导入
但是导入之后打开pgp照旧需要密码

尝试破解得到密码(真实环境下很难),但是这个靶机,我们可以尝试破解asc得到其中记载的明文,从而打开pgp
把asc中格式转换成哈希
john是一个用来破解密码的工具,xxx2john,是把各种格式转换成这个john工具可以破解的哈希
locate 命令用于快速查找体系中的文件或目次。它基于预先构建的数据库(通常是 /var/lib/mlocate/mlocate.db),因此搜索速度比 find 命令快,但可能不会立刻反映最近的文件更改。

这里两个路径的命令都可以
暴力破解
转换成哈希之后,就可以尝试用john破解了
指定密码本rockyou.txt

找到一个密码,尝试输入进pgp
破解之后打开解密后生成的文件,得到了另一个用户的明文密码

直接ssh尝试登录

登录成功,

zip命令可以以管理员身份实行(但是实际情况下应该没有美意人会把zip设置成管理员身份实行)
去GTF上看看
直接复制这一段


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4