ICA1 VulnHub Walkthrough

主机发现

1
arp-scan -l

端口扫描

1
nmap -Pn -p- 192.168.62.182

开放了22、80、3306端口

访问80端口,是一个登录界面

qdPM是一个开源的项目管理系统,基于Symfony框架+PHP/MySQL开发,可以看到qdPM的版本为9.2

漏洞发现

搜索一下exploit-db看看有没有公开的exp

可以看到这个版本存在数据库敏感信息泄露,可以未授权获取数据库连接信息和密码

看一下利用方式

漏洞利用

我们可以通过访问http://<website>/core/config/databases.yml来下载包含数据库连接信息和密码的yml文件

通过访问http://192.168.62.182/core/config/databases.yml成功得到了数据库的用户名和密码qdpmadmin:UcVQCMQk2STVeS6J

接下来尝试登录数据库,进一步获取敏感信息

1
mysql -u qdpmadmin -h 192.168.62.182 -p

staff数据库中找到了五组用户名和密码,密码是经过编码加密的

SSH密码爆破

将经过base64编码的密码字符串解码一下,记录到一个文本中

将用户名也记录到一个文本中

用账户密码来爆破80端口的登陆界面无果,只能尝试爆破22端口了

1
hydra -L user -P password ssh://192.168.62.182 -f

成功得到了两组ssh的用户名和密码,尝试登录ssh

先登录travis账号,获取到了第一个flag

再登录dexter,看到有提示,应该是要利用可执行文件来提权

权限提升

先查看一下有执行权限的文件

1
find / -perm -u=s 2>/dev/null

用strings查看一下/opt/get_access

可以推测执行/opt/get_access时会进行setuid操作,接着会执行cat命令

为了证明我们的推测,我们对get_access进行反编译,我们通过伪代码可以比较清晰地看到,当执行get_access时会执行setuid(0),再执行cat命令打印系统信息,并且执行的cat命令是没有指定路径的

接下来我们可以通过伪造一个文件名为cat的可执行文件,文件内容为/bin/bash,并将文件路径设置为环境变量,这样执行get_access的时候,就会执行我们伪造的cat文件,从而使我们获得root权限

1
2
3
4
5
echo '/bin/bash' > /tmp/cat
chmod +x /tmp/cat
echo $PATH
export PATH=/tmp:$PATH
/opt/get_access

我们已经成功得到了root权限,最后我们通过more命令获取第二个flag