)
大家好我是小北。这次给大家带来一次完整的红队内部演练行动复盘目标是一个完全模拟企业内网的环境。整个过程从外网打点开始到最终控制域控制器每一步都充满了曲折和思考。我会把所有用到的命令、踩过的坑以及绕过技巧都还原出来。文末有我本次行动的完整笔记和工具箱集合关注后即可领取。一、前奏信息收集与确立入口演练开始我们只获得了一个目标域名redteam-lab.com。首先要做的就是全方位信息收集。子域名发现使用subfinder和amass进行被动收集再通过massdns配合字典进行暴力枚举。最终发现oa.redteam-lab.com和mail.redteam-lab.com两个子域名。端口扫描用nmap -sT -sV -p- --open oa.redteam-lab.com进行全端口扫描。开放了 80, 443, 8080, 22。其中 8080 端口是一个 Jenkins 服务但需要登录。目录爆破对主站 80 端口进行dirsearch扫描发现了/admin/login后台和一个/backup/目录。在/backup/目录下我惊喜地发现了一个source.zip源代码包下载分析后找到了硬编码的数据库账号密码和 AES 加密密钥。二、外网突破SQL注入与WebShell通过源代码中的数据库配置我直接连接了目标 MySQL但权限较低无法写文件。不过在对后台登录接口进行审计时发现一处典型的 SQL 注入用户名处没有参数化过滤。直接用sqlmap跑bashsqlmap -u http://oa.redteam-lab.com/admin/login --datauseradminpass123 --dbmsmysql --os-shell这里使用--os-shell尝试写文件但由于 MySQL 是 5.7 且secure_file_priv设置为 NULL无法直接写入 Web 目录。于是我另辟蹊径利用 SQL 注入读取服务器上的文件。通过读取 Apache 配置文件找到了另一个站点的物理路径并且发现该站点的某个日志文件有写入权限。我尝试将一段一句话木马通过 User-Agent 写入日志文件但由于特殊字符被编码未能成功。最后我灵光一现利用 SQL 注入的INTO OUTFILE虽然不能写主目录但可以写入/tmp而恰好服务器上的另一个服务存在任意文件包含漏洞通过包含/tmp/shell.php我拿到了一个 WebShell。三、绕过安全软件与权限提升拿到 WebShell 后我发现是一台 CentOS 7 机器运行着 Apache权限是apache。uname -a一看内核版本比较老可以尝试脏牛提权。但我更倾向于稳妥的方式先收集信息。通过find / -perm -4000 2/dev/null找到 SUID 文件发现/usr/bin/find具有 SUID 权限。直接利用bashtouch test find test -exec whoami \;果然返回了root我立即用find test -exec /bin/sh \;拿到了 root Shell。此时发现服务器上装有趋势科技的杀毒软件但我利用msfvenom生成的无文件反弹 shell 绕过了扫描。为了持久化我添加了 SSH 公钥。四、内网侦察与横向移动进入内网后我上传了fscan进行全网段扫描text./fscan -h 192.168.1.0/24很快结果出来了一台 192.168.1.21 开放 445 端口主机名为 DC-01疑似域控另有几台 Windows 2012 服务器以及 MSSQL 数据库服务器。我首先尝试针对 MSSQL 服务器。用之前收集到的数据库密码尝试成功连上并且xp_cmdshell是开启的直接就可以执行系统命令。我通过 MSSQL 执行whoami发现是NT SERVICE\MSSQLSERVER权限无法直接获取域哈希但足以作为跳板。接下来我从 Web 服务器上使用proxychains配合Chisel搭建隧道将自己的流量代理进内网。然后使用impacket包中的wmiexec.py尝试用 Web 服务器的本地管理员账户哈希去登录其他 Windows 服务器。果不其然管理员账号密码是通用的。我成功登录了 192.168.1.22 这台普通域成员服务器。五、抓取凭据与域控沦陷在这台 Windows 服务器上我上传了一个免杀的 Mimikatz。先提权到 SYSTEM 权限然后textmimikatz.exe privilege::debug sekurlsa::logonpasswords exit成功抓取到域管理员 Administrator 的明文密码由于环境未打补丁启用了 WDigest 缓存。同时还拿到了域的高权限服务账户的 NTLM 哈希。随后我并没有直接用域管理员登录域控因为那会触发较多日志告警。我使用PsExec配合 NT AUTHORITY\SYSTEM 权限进行哈希传递攻击bashpsexec.py -hashes :域管理员NTLM哈希 域控IP cmd.exe瞬间拿到域控制器 SYSTEM 权限 Shell。下一步我使用ntdsutil和vssadmin创建卷影副本将ntds.dit和 SYSTEM 注册表文件拷贝出来导入本地后使用secretsdump.py解析出域内所有用户的哈希。至此目标域已完全被我掌控。六、清理痕迹与报告行动结束前我清除了所有落地文件、WebShell、添加的账户和计划任务。我写了一份详细的行动报告包括攻击路径、每个环节的证据、修复建议。这比单纯拿权限更重要。