Hack The Box - Forge
整体思路
1.Nmap扫描
通过命令nmap 10.10.11.111 -p- -v --min-rate=10000
扫描得到,靶场开启22和80端口,再使用命令
nmap 10.10.11.111 -A -sC -sV -T4 -p 22,80
查看开启端口的详细信息
这里观察到80端口会重定向到http://forge.htb,将forge.htb添加到/etc/hosts中,访问域名,点击右上角的上传图片路径
这里尝试上传url:http://forge.htb或http://127.0.0.1,弹出提示说上传的URL中包含黑名单地址
尝试上传本地ip,监听到访问
使用burpsuite大小写混淆可以得到输出,得到一个URL,但在浏览器中访问该URL返回404
2.针对FTP服务器的SSRF攻击
尝试curl访问URL,可以得到该页面源代码,我们考虑这个地方可能存在SSRF漏洞
使用命令file:///etc/passwd获取passwd文件内容,得到响应上传的url仅支持http或https协议
这里写一个重定向语句,尝试访问Lab本地ftp服务器
并不支持直接访问ftp服务器
接下来使用gobuster进行子域名枚举,用grep筛选可以成功访问的域名(grep用法看这篇)
访问admin.forge.htb(记得添加/etc/hosts)
提示我们仅本地允许访问,这回应该能用SSRF了,上传子域名URL
使用curl查看返回的内容(注:上传的URL最后要有/,否则curl会报404)
接着再继续访问刚得到的announcements链接,得到一个用户凭据user:heightofsecurity123!,并且它说/upload支持ftp上传,使用**?u=**添加参数
构造访问内部ftp服务器URL:http://adMin.ForGe.htb/upload?u=ftp://user:heightofsecurity123!@127.0.0.1/
提示URL中包含黑名单地址,修改ftp大小写,但仍然是这个结果,可能是127.0.0.1需要修改,试一下127.1,这里用0x7f000001也可以
上传修改后URL成功进入到ftp服务器内部
获取ssh登录密钥id_rsa,ssh登录用户user,至此SSRF攻击完成。
3.SUID提权
使用命令sudo -l尝试sudo提权
进入到这段代码内部看一下,首先选取1025-65535中的某个随机端口,建立socket连接,把这个密码先记一下
运行代码,输入给定密码后,按照源代码,我们输入随机字符可以进入python的pdb调试,在这里执行/bin/bash提权,成功得到root权限。
再简单介绍一下pdb,pdb是The Python Debugger的缩写,为Python标准库的一个模块。该模块规定了一个Python程序交互式源代码调试器,支持设置断点,也支持源码级单步调试,栈帧监视,源代码列出,任意栈帧上下文的随机Python代码估值。