主要内容
信息收集: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 itoops ,甚至没有登录框
去看看别的端口,照旧用一样的扫描方法
表现是一个ajp服务
ajp:AJP(Apache JServ Protocol)是一种二进制协议,主要用于在前端 Web 服务器和后端应用服务器之间高效地转发哀求和相应。下面是关于 AJP 服务的详细说明:
- 用途和工作原理
- 哀求转发:AJP 协议常用于未来自 Web 服务器(如 Apache HTTP Server)的 HTTP 哀求转发到后端的应用服务器(如 Apache Tomcat)。
- 二进制传输:与文本协议差别,AJP 利用二进制格式传输数据,这可以进步传输效率和性能。
- 集成方式:前端服务器通过诸如 mod_jk 或 mod_proxy_ajp 等模块与 AJP 服务通信,实现负载均衡、哀求转发和会话保持等功能。
- 常见利用场景
- 负载均衡和反向署理:在多台 Tomcat 服务器反面摆设 Apache HTTP Server,通过 AJP 协议举行负载均衡和哀求分发。
- 安全隔离:通过 AJP,前端服务器可以屏蔽后端应用服务器的直接暴露,提供肯定程度的安全隔离。
- 默认端口
- 通常,AJP 服务在 Tomcat 中默认监听 8009 端口。固然,根据实际配置,这个端口可以被修改。
- 安全留意事项
- AJP 协议曾经由于配置不当导致安全漏洞(比方 “Ghostcat” 漏洞),因此在利用 AJP 时应确保配置精确,并采取须要的安全措施,如限制访问来源、更新补丁等。
可以搜索一下有没有什么漏洞
输入ajp vulnerability来搜索
在searchsploit查一下有没有漏洞利用代码
反面两个是我们想要的,我们先看python脚本的
48143.py
我需要先明白这个漏洞大抵的原理:
1、AJP协议:Tomcat用于前端署理(如Apache)和后端容器通信的协议。
- 漏洞原理:构造恶意AJP哀求,通过javax.servlet.include属性触发当地文件包含(LFI),从而读取敏感文件(如WEB-INF/web.xml)。
2、解析命令行参数(目的IP、端口、文件路径)。
- 通过Tomcat类连接目的服务器的AJP端口(默认8009)。
3、构造包含恶意属性的AJP哀求:- - 设置`<font >req_attribute</font>`属性,指定要包含的文件路径(如`<font >WEB-INF/web.xml</font>`)。
复制代码 4、发送哀求并输出相应中的文件内容。
这个漏洞允许攻击者通过构造特定的AJP哀求,出发当地文件包含(LFI),从而读取服务器上的敏感文件,比如WEB-INF/web.xml。这个文件通常包含Web应用步伐的配置信息,偶然会有敏感数据,比如数据库密码或者其他凭证。
尝试直接运行脚本告诉我们需要四个参数,[]表现可选,这里默认即可,target填目的ip- root@ip-10-10-211-144:~# python 48143.py 10.10.158.119
- Getting resource at ajp13://10.10.158.119:8009/asdf
- ----------------------------
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
- http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
- version="4.0"
- metadata-complete="true">
- <display-name>Welcome to Tomcat</display-name>
- <description>
- Welcome to GhostCat
- skyfuck:8730281lkjlkjdqlksalks //一个凭证对,即一个用户名和一个密码,中间常常用:隔开
- </description>
- </web-app>
复制代码
提权
枚举:
sudo -l:看来不行
SUID:
SUID是linux/unix中的一种特别权限,允许用户以文件全部者的身份实行文件
- 示例:
如果一个步伐的全部者是root,且设置了SUID位,普通用户实行该步伐时,会临时拥有root权限。
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/* .
- 功能:从远程服务器 10.10.158.119 的用户 skyfuck 的主目次下(/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企服之家,中国第一个企服评测及商务社交产业平台。 |