这周的靶机是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
暴破出了另外两个用户名:magellan
与venus
对应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
提权
提权部分用到了栈溢出,这是我未曾涉及的领域,因此以后再补上