PF_RING FT许可证初始化漏洞利用

栏目: C · 发布时间: 6年前

内容简介:github地址:PF_RING是一个Linux内核模块和用户空间框架,可以高速率处理网络数据包,同时为处理数据包的应用程序提供一套API。PF_RING FT实现了一个优化的流表,由于与nDPI的本机集成,可以用来跟踪流并提取包括7层协议的流元数据。使用PF_RING FT可以编写一个事件驱动的流处理应用程序,专注于实际的流处理而不是流表管理和性能,实际上它提供了许多钩子,可用于定制和扩展核心流表用来构建流分析的应用程序,包括探针、IDS和IPS。

0×00 PF_RING FT功能介绍

github地址: https://github.com/ntop/PF_RING

PF_RING是一个 Linux 内核模块和用户空间框架,可以高速率处理网络数据包,同时为处理数据包的应用程序提供一套API。

PF_RING FT实现了一个优化的流表,由于与nDPI的本机集成,可以用来跟踪流并提取包括7层协议的流元数据。使用PF_RING FT可以编写一个事件驱动的流处理应用程序,专注于实际的流处理而不是流表管理和性能,实际上它提供了许多钩子,可用于定制和扩展核心流表用来构建流分析的应用程序,包括探针、IDS和IPS。

其中详细的介绍及使用方法可参见文档: https://github.com/ntop/PF_RING/blob/dev/doc/ft.rst

PF_RING FT许可证初始化漏洞利用 由于FT是收费的模块,购买网址: https://shop.ntop.org/ ,售价为199.95欧元/年。

PF_RING FT许可证初始化漏洞利用

0×01 运行环境介绍

破解过程在CentOS7系统下,我们使用PF_RING中的pfcount命令读取网络数据,将PF_RING_FT_CONF=/usr/local/etc/ndpi/ndpi.conf环境变量导入到系统中后将自动启用FT功能。

如果系统中没有FT模块的license文件则会出现如下提示,并且五分钟后程序自动退出。

PF_RING FT许可证初始化漏洞利用

0×02 爆破许可过程

首先我们使用objdump工具将pfcount二进制文件反汇编并存放在pf.s文件中:

PF_RING FT许可证初始化漏洞利用

然后我们来查看根据上面ft.rst文件描述的,使用ft时首先调用pfring_ft_create_table函数,我们打开pf.s文件来查看这个函数的实现。

PF_RING FT许可证初始化漏洞利用

可以发现在pfring_ft_create_table函数中调用了license_init函数,并且调用的二进制指令为:”e8 36 e9 ff ff”,然后使用gdb动态调试pfcount命令。首先将断点设置在0x43fff5位置,然后单步执行,如下图所示:

PF_RING FT许可证初始化漏洞利用

可见license_init函数中对设备的license进行校验。我们跳过这个函数实验一下有可能直接绕过license限制,跳转思路如下图所示:

PF_RING FT许可证初始化漏洞利用

首先在gdb中0x43fff5处设置断点,然后修改rip寄存器指向下一个指令的地址0x43fffa,然后继续执行。

PF_RING FT许可证初始化漏洞利用

发现license的报错信息没有显示,我们继续等待五分钟限制,发现pfcount可以一直运行,至此我们破解点就寻找成功了,但是不能每次运行都进入调试模式修改寄存器,这样使用本不方便,我们可以修改二进制文件,将调用license_init指令删除。

前文在pf.s文件中可以查看到调用license_init函数的二进制指令为”e8 36 e9 ff ff”,我们通过hexdump查找调用license_init指令在二进制文件中的位置。

PF_RING FT许可证初始化漏洞利用

可以看出0003fff0处是调用license_init函数的行号。然后我们使用vim -b 参数打开pfcount二进制文件,然后输入:%!xxd,则可以看见文件的二进制形式,然后找到003fff0位置处,如下图所示。

PF_RING FT许可证初始化漏洞利用

将这5个字节修改为nop指令,nop指令的二进制码是0×90:

PF_RING FT许可证初始化漏洞利用

然后输入:%!xxd -r恢复二进制模式,并保存,然后我们使用objdump命令重新反汇编一下pfcount,发现0x43fff5地址处的指令变为nop跳过指令。

PF_RING FT许可证初始化漏洞利用

然后我们手动执行一下pfcount命令查看结果:

PF_RING FT许可证初始化漏洞利用

此时已经不提示license无效的信息,然后我们继续观察是否会在5分钟退出。

PF_RING FT许可证初始化漏洞利用

由上图可见对PF_RING FT模块的破解是成功的。

0×03 总结

本文主要介绍Linux系统下破解二进制文件的思路,本文并没有对汇编语指令进行分析,应该有助于刚刚进入破解门槛的小伙伴进一步学习,也为后续ntop注册机的实现做一些简单的铺垫。

这种暴力破解也存在缺陷,例如没有考虑到调用license_init函数返回后寄存器的值,有可能导致后续流程出现异常错误。

这个漏洞已向ntop官方反馈,后续版本应该会修复,此漏洞仅限学习交流,切勿用于非法用途。

*本文作者:小2黑hei,转载请注明来自FreeBuf.COM


以上所述就是小编给大家介绍的《PF_RING FT许可证初始化漏洞利用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Creative Selection

Creative Selection

Ken Kocienda / St. Martin's Press / 2018-9-4 / USD 28.99

Hundreds of millions of people use Apple products every day; several thousand work on Apple's campus in Cupertino, California; but only a handful sit at the drawing board. Creative Selection recounts ......一起来看看 《Creative Selection》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具