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 | echo '/bin/bash' > /tmp/cat |
我们已经成功得到了root权限,最后我们通过more
命令获取第二个flag