THE PLANETS: VENUS
准备
攻击机: kali
靶机: THE PLANETS: VENUS NAT 192.168.91.0 网段
下载连接:
https://www.vulnhub.com/entry/the-planets-venus,705/
信息搜集与利用
主机发现
python3 ping.py -H 192.168.91.0/24
如图所示得到目标靶机IP地址:192.168.91.173
端口扫描
nmap -sV -p- -sS -A 192.168.91.173 -oN venus_nmap.txt
如上所示只开放了22,8080端口,其中8080和之前两个一样都是由python构成的web页面。
HTTP
http://192.168.91.173:8080/
如上图所示,显示 使用 guest:guest来登陆来宾账户,经测试(猜测)我发现当输入用户名和密码都为: venus:venus 时也可以登陆。
目录扫描
python3 dirsearch.py -u http://192.168.91.173:8080/
扫出来一大堆302重定向,这里就不展示了。
一般来说 python写的网页,要么用的 Flask 框架,要么是 Django框架,这两个框架较为常见,一般来说都有 admin 后台页面,只有当登陆了才能进一步深入。
http://192.168.91.173:8080/admin/login/?next=/admin/
如图所示,是 Django 。猜的没错。试一下有没有开启 DEBUG 模式,如果显示报错信息并将所有路由显示出来则证明开启了,若只显示 Not Found 则证明关闭了 DEBUG 模式。经测试发现这里为关闭状态。
尝试弱口令登陆后台,失败!
再次回到第一个登陆页面,现在我们已知有两个用户名和密码:
guest:guest
venus:venus(根据靶机名称猜出来的)
那么有没有可能还有其他用户名呢?所以现在需要爆破。
在登陆处输入正确的用户名错误的密码将显示: invalid password.
当随便输入一个用户名时会显示: invalid username.
因此通过返回信息: invalid username 来爆破用户名即可。
但是又出来一个问题,怎么确保我们的字典里面就有那个正确的用户名呢???现在已知的两个用户名也没啥用,都不能 ssh 登陆。
看了wp : https://medium.com/@mcl0x90/the-planets-venus-vulnhub-write-up-f6727d08bafb
得到了一个用户名和密码:
magellan:venusiangeology1989 (国外大佬爆破出来的。)
flag 1
提权
方法一:
SUID 提权
find / -perm -u=s -type f 2>/dev/null
如图所示发现 polkit-1/polkit-agent-helper-1 与上一个靶机: MECURY(水星) 一模一样。我们尝试同样的方法将 exp 下载到靶机上面,注意该靶机上没有 git 命令。我们用 wget 下载
然后 unzip cve-2021-4034 解压即可。
然后 make
生成了 可执行文件 cve-2021-4034
运行:
./cve-2021-4034
如图所示得到了 root 权限。
flag 2
此方法与这个系列上一个靶机 提权方法一样。应该来说这个靶机的的重点不是这个。
方法二:
参考国外大佬的 wp, 个人觉得很难。就放弃了。
总结
- 与上一个水星靶机一样可以利用 cev-2021-4034 来提权(简单,适合我这种菜鸡!)
- 爆破密码需要有强大的字典,这里我直接看了wp 的答案。