渗透中的fuzz技术

渗透中的fuzz技术

黑客学院hacker2017-07-03 3:15:179023A+A-

序言:文中汉语翻译自sans.org,有删节。在学习培训sulley的全过程中发觉汉语参考文献非常少,因此抛砖引玉汉语翻译一下下,期待对学习培训协议书fuzz检测的同学们有协助。文中合适做为学习培训sulley协议书检测全过程中参考文献,要是必须学习培训sulley的应用能够参照其文本文档。

背景图

前不久,人们收到了1个渗透测试的新项目。分配任务的那时候,精英团队里有的同学们承担无线网络渗入,有的承担web运用渗入,我分得的每日任务是对外开放网对外开放的网络端口开展检测。我的关键检测范畴包含:从外界能够浏览的系统软件插口,不包含顾客测的漏洞利用,不包含web运用,不包含外界的资源优化配置类的进攻(例如域名管理类的进攻),不包含账户密码猜解。

早期的扫描仪中并沒有发觉许多有趣的系统漏洞,这也在预料之中。只有Nmap的扫描仪也发觉了某些更有意义的总体目标。如图所示。总体目标布署了1个CheckPoint网络服务器做为远程控制VPN连接。总共对外开放了2个端口号。

渗透中的fuzz技术 第1张

264端口号造成了我的兴趣爱好,历经几番核实获知它是CheckPoint VPN 手机客户端用于通讯的1个安全通道,应用的是这种私有协议书,称为SecuRemote。这一协议书是沒有数据加密的。在网上能寻找某些这一协议书存有数据泄露的系统漏洞,只有人们顾客这里全是最新版本,找不到这些己知的难题。如今是我的資源就是说某些协议书材料和大把剩下的每日任务時间,我先做一下下协议书fuzzing。

协议书剖析

做协议书fuzz的前提条件就是说要了解自个检测的协议书。SecuRemote做为私有协议书,沒有详尽的文本文档,并且因为我没发觉许多人做为反向剖析。因此我得根据抓包自个剖析协议书。在Google上检索了一下下,寻找好多个他人抓的互联网包文档。全是她们抓包让他人帮剖析难题的。根据剖析这种互联网包,我剖析出了SecuRemote协议书的某些关键点。

渗透中的fuzz技术 第2张

3次握手以后,CheckPoint手机客户端会上传2个4字节数的大包。针对特殊的CheckPoint网络服务器和手机客户端而言这2个字节数看上去是固定不动的。在手机客户端上传下一个包以后,服务器端回到了1个4字节数的包。跟手机客户端发的第一位包很像。

第三个包上传字符串"securemote"到网络服务器。最终是1个NULL的完毕字节数。刚开始的4个字节数看上去是大端储存的后边字符串的长短。由于0x0b恰好是"securemote0"的长短。第三个包发了以后,服务器返回了1个一样的带字符串长度的包,包括了某些网络服务器的基本信息。依据以前版本号的CheckPoint exp,能够获得大量的协议书统计数据。尽管无法简易的鉴别出每1个比特位意味着的实际意义。可是依据上边的剖析,还可以寻找某些有趣的模糊不清检测总体目标。

四字节数的长短标示。无论怎样,在协议书中发觉了标示长短的字节数,必须要对它开展模糊不清检测。好多个固定不动的\x00的字节数。降低了人们开展枚举组成的频次。在字符串末尾应用NULL结束符。由于协议书出示了长短标示,因此结束符并不是必需的。因此检测一下下结束符找不到的状况都是非常好的挑选。

下一阶段就是说提前准备检测样例,开展模糊不清检测了。

专用工具挑选

我较为喜爱的智能化模糊不清器是Sulley,1个用python进行的模糊不清检测架构。只有开发人员Pedram早已不要维护保养Sulley。应用Peach都是1个非常好的挑选,peach应用XML开展协议书叙述,相对而言我更喜爱python的英语的语法。在sulley中,人们应用基础的数据类型:字符串区,大数字区,分隔符和静态数据值来叙述协议书。每这种种类的统计数据能够全自动基因突变来开展模糊不清检测。Sulley也出示了某些高級的作用来叙述繁杂协议书,例如测算统计数据段距离和开展引言校检。大量详尽的sulley使用说明能够参照Sulley的新项目文本文档。下边的脚本制作是对手机客户端上传的4个字节数开展检测。至少应用了s_byte()这一界定一个字节的涵数。将下边的脚本制作储存到sulley的文件目录就能够刚开始检测了。

#!/usr/bin/env python # Fuzzing the initial 4-byte packet from client to CheckPoint VPN server. import time import sys from sulley import * # Time to wait between mutations SLEEP_TIME=0.5 # Time to wait before claiming a host is unresponsive TIMEOUT=3 # number of crashes to observe before skipping the remainder of a group CRASH_THRESHOLD=3 # Initialize the Sulley mutation descriptor s_initialize("SecuRemote-Initial-Pack


点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
  • 3条评论
  • 语酌俗欲2022-05-28 14:12:10
  • initial 4-byte packet from client to CheckPoint VPN server. import time import sys from sulley import * # Time to wait between mutations SLEEP_TIM
  • 可难桔烟2022-05-28 10:37:10
  • kPoint exp,能够获得大量的协议书统计数据。尽管无法简易的鉴别出每1个比特位意味着的实际意义。可是依据上边的剖析,还可以寻找某些有趣的模糊不清检测总体目标。四字节
  • 颜于乘鸾2022-05-28 18:03:16
  • 状况都是非常好的挑选。下一阶段就是说提前准备检测样例,开展模糊不清检测了。专用工具挑选我较为喜爱的智能化模糊不清器是Sulley,1个用python进行的模糊不清检测架构。只有开发人员Pedram早已不要维护保养Sull

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理