网站首页 > 技术教程 正文
0x01 PF_RING FT功能介绍
源码地址: https://github.com/ntop/PF_RING
简介:PF_RING? FT is taking one step further, it assists any flow processing application in the packet classification activity. PF_RING? FT implements a flow table that can be used to keep track of flows and provides many hooks to be able to customize and extend it for building any type of application on top of it, including probes, IDSs, IPSs, L7 firewalls.Although PF_RING? FT is distributed with PF_RING?, it is possible to use the library with any third-party packet capture framework (including Libpcap and DPDK), as its data-ingestion API is capture-agnostic.
API: https://github.com/ntop/PF_RING/blob/dev/doc/ft.rst
0X02 安装过程
安装文档: https://www.ntop.org/guides/pf_ring/get_started/git_installation.html
FT 模式需要安装nDPI,nDPI源码地址: https://github.com/ntop/nDPI
0X03 利用过程
情报收集
搜到几篇文章,普遍认为pfring_ft_create_table 的 callq <license_init> 用于检测 license,只要修改这部分逻辑变可以利用该漏洞。
情报验证
1)运行PF_RING/userland/examples_ft/ftflow,程序提示需要购买一个证书
2)反汇编PF_RING/userland/examples_ft/ftflow,得到ftflow.s (objdump -d ftflow > ftflow.s),重点关注pfring_ft_create_table 函数的2aa1e,2aa23两条指令
3)使用gdb调试PF_RING/userland/examples_ft/ftflow程序
1. 在2aa1e处下断点。b *(&pfring_ft_create_table + 30)
2. 设置启动参数。r -7 -i lo
3. 修改PC寄存器跳过2aa1e指令。$rip=$rip+5
4. 修改返回值。set $rax=0
5. 继续运行。c
经过上述几处修改,可以看到没有无效证书的提示了,证明跳过callq <license_init>指令确实能绕过证书检测。
修改程序
1)搜索 e89d fcff ff85 c0,将 e89d fcff ff 换成 b800 0000 00
2)再次反汇编PF_RING/userland/examples_ft/ftflow
3)运行PF_RING/userland/examples_ft/ftflow,确认ftflow已经无证书验证流程,证书检查已经被破解。
0x04 技术延申
通过上述方法我们能够利用证书验证的漏洞破解ft模式的可执行程序,但是每次修改源码、重新编译程序都要重新修改,这样显然太麻烦了。我们需要继续分析ftflow的编译过程。经过查询各个层级的Makefile,pfring_ft_create_table函数定义在PF_RING/lib/libs/libpfring_ft_x86_64_dl.a/pfring_ft_table.o,我们0x0303的方法重新修改pfring_ft_table.o,然后重打包libpfring_ft_x86_64_dl.a,这样以来我们便可以反复调试ft的代码了。
0x05 总结
漏洞利用之前要做好情报收集工作,情报分析时要有取其精华取其糟粕的能力,当前流传的利用文章只能在作者自己的工作的环境复现,而且只是一个调试版本。所以我整理了一份通用版本。
PS: 这个漏洞已向ntop官方反馈,后续版本应该会修复,此漏洞仅限学习交流,切勿用于非法用途。
引用:
- https://www.freebuf.com/vuls/195887.html
欢迎登录安全客 -有思想的安全新媒体www.anquanke.com/加入交流群113129131获取更多最新资讯
原文链接:https://www.anquanke.com/post/id/212356
猜你喜欢
- 2024-10-21 如何用Systemtap探索MySQL-爱可生
- 2024-10-21 详解linux内核网络数据包发送在UDP协议层的处理与监控
- 2024-10-21 Linux下docker基础环境搭建(linux配置docker)
- 2024-10-21 electron-vue技术篇(electron vue案例)
- 2024-10-21 docker的daemon.json能做什么?(docker dsm)
- 2024-10-21 系统调用使世界完美运行(系统调用可以完成)
- 2024-10-21 Linux 多线程应用中如何编写安全的信号处理函数
- 2024-10-21 检查和升级您的 Linux 内核版本(linux系统检查)
- 2024-10-21 克罗地亚、波黑,新型病毒BalkanDoor和BalkanRAT现身多个国家
- 2024-10-21 asar归档解包(galgame arc文件解包)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)