人生若只如初见,何事秋风悲画扇. ——纳兰性德《木兰词·拟古决绝词柬友》
一、信息收集
使用netsidiscover发现主机:
使用masscan进行全端口扫描:
使用nmap对80、7744端口进行服务扫描:
访问80端口,通过wappalyzer收集到站点信息如下:
二、外围打点
访问80端口,查看flag,根据提示信息,需要使用cewl生成字典进行爆破:
需要先获取用户名,于是使用wpscan爆破用户名,爆破结果如下:
使用cewl生成密码字典:
使用wpscan对各个用户名进行密码爆破,爆破结果为:
tom : parturient
jerry : adipiscing
使用获取到的账号信息登陆后台,尝试getshell无果。
因此使用获取到的tom账号,登陆到远程端口:
三、权限提升
已经成功获取到了shell,但是根据提示,我们获取的是一个受限的shell,不过发现可以绕过;
使用VI编辑器编辑flag3.txt时,顺利打开,说明可以使用vi编辑器,因此考虑使用编辑器绕过受限的bash。
在vi编辑器的命令行模式下依次输入并回车执行:
set shell=/bin/bash
shell
成功获取到不受限的shell:
获取到不受限的shell后,发现众多命令依然不能执行,是由于没有环境变量的原因,因此添加环境变量:
方法1:export PATH=$PATH:/bin/
方法2:export PATH=/usr/sbin:/usr/bin:/sbin:/bin
成功获取到正常shell:
更具flag3提示,需要追逐jerry的步伐,因此切换到jerry用户(jerry账号不能直接远程登录只能通过su切换),成功获取到flag4:
更具提示,还有最终的flag没有找到,那只能是提权了。
老方法,先找找SUID文件进行提权,然并卵,没有找到可利用的文件。
仔细观察提示内容,发现提示信息“ git outta hear",因此判断需要使用git来进行提权。找度妈问了才知道,此处使用git提权,其本质还是SUDO提权,当低权限用户能够使用SUDO执行高权限用户的脚本文件时,如果这个脚本文件支持二次命令输入,就可能造成权限提升。此外SUDO还具有一个缓冲区溢出提权漏洞,不过此SUDO版本不适用,详情请参考:SUDO缓冲区溢出提权
使用 sudo + git 进行提权有两个方法:
方法1: sudo git help config ,在末行命令模式输入!/bin/bash 或 !'sh' #完成提权
方法2:sudo git -p help ,然后在末尾输入“!/bin/bash” 即可打开一个用户为root的shell,此方法需要调整窗口大小,使help信息不能一次性展示完全(不懂)
任选其一,成功提权:
参考文章: