Back
Featured image of post 打靶记录-Planets:Venus

打靶记录-Planets:Venus

这周的靶机是Planets系列的最后一台靶机,其实原本Earth才是第三台,不过由于Venus(金星)难度较高,因此留到了最后

环境

虚拟机软件:VirtualBox 7.0.18
网络连接模式:NAT网络
攻击机:kali-linux,ip为10.0.2.4
目标机:ip为10.0.2.15

渗透过程

发现目标主机后扫描全端口:nmap --min-rate 10000 -p- 10.0.2.15

22和8080分别对应ssh与web服务,老生常谈的东西就不细说了

进一步扫描端口信息:nmap -sT -sC -sV -O -p22,8080 10.0.2.15

可以看到后端语言是python,Django模板

试试能不能找到直接可利用的漏洞:nmap --script=vuln -p22,8080 10.0.2.15

趁着扫描的时间,进web服务看一眼

根据提示可以看出guest账户是可用的

尝试登陆guest/guest,进入管理面板

这是之前漏扫的信息也出来了

是个利用DOS攻击的漏洞,很遗憾,用不上

扫了一圈没信息了,进行目录暴破:
gobuster dir -u http://10.0.2.15:8080/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

扫出了admin目录
界面如下:

可是无论输入什么都会回显500
四下查找一番,在cookie中找到了base64编码的auth字段
解码后得到字符串guest:thrfg
猜测thrfg是guest的ssh密码,但连接失败

到这里陷入了僵局,但是回过头看,还有一处信息没收集完全:
回到第一次登陆的界面,输入不存在的用户,会回显Invalid name.,而输入错误的密码,会回显Invalid password.

回显是不同的,因此我们可以尝试暴破用户名来看看有没有其他的用户
可以用burpsuite,但由于kali自带的burp是社区版,这里用hydra来暴破
hydra -L /usr/share/wordlists/login/usernmae -p pass -s 8080 10.0.2.15 http-post-form "/:username=^USER^&password=^PASS^:Invalid username."

  • -L:指定用户名字典
  • -p:指定密码
  • -s:指定端口号
  • http-post-form:post登陆表单暴破模式
  • ^USER^&^PASS^:用户名与密码占位符
  • Invalid username:登陆失败的标识

用户名字典来自Github

暴破出了另外两个用户名:magellanvenus

对应guest用户的密码为guest,猜测这两个用户的密码也是其本身

尝试后,用户magellan登陆密码错误,venus登陆成功。
venus用户的cookie信息中找到了不一致的auth信息,解码后得到字符串venus:irahf

尝试ssh连接,仍然失败

这样突破点应该就在用户magellan上了,但我没了思路,去看了眼wp

当我们用guest登陆时,将获取的cookie解码,并将用户名的部分修改并重新编码后传参

可以看到服务端重新返回了我们一个新的cookie,解码后就是我们之前获得的venus的凭据(好好好,原来之前不该猜密码)

所以用同样的方式,可以获取用户magellan的凭据

解码后得到字符串magellan:irahfvnatrbybtl1989
这串凭据的的背景在这,有兴趣可以看看:海湾战争

尝试ssh连接,还是失败了

回过头想想,cookie里的凭据当真没有任何意义吗? 无意义的字符串通常是经过加密的,那么cookie中的凭据是否是对应用户加密后的密码呢?

cyber中识别不了加密方式,于是用了随波逐流解密用户venus的凭据

发现是rot13加密
对应的将magellan用户的凭据解密,得到密码

尝试ssh连接

成功连接

直接获取当前目录下的flag

提权

提权部分用到了栈溢出,这是我未曾涉及的领域,因此以后再补上

Licensed under CC BY-NC-SA 4.0