⽹络协议逆向⼯具Netzob1.0.2的安装与试⽤
最近项⽬任务有需求,想探究⼀下对未知未加密⽹络协议的解析。
ubuntu怎么安装python之前只了解过基本的计算机⽹络知识,对于具体的⽹络协议,更多是学术上的认识,⽽没有⼯程上的认知与实践。因此对于⽹络协议解析的⼯作,可谓是⼀筹莫展。
各种查资料,这⽅⾯的公开资料还真少,国内外就没多少⼈在做,别说⼯程,就学术研究都⾮常少。为什么?因为太难!
于是乎开始相应的⼯具,只要能⽤就⾏,⾄少让我感受⼀下对未知协议的逆向分析过程也好。
可是遍了国内外所有资源,⼏乎没有可⽤的⼯具,只有⼀个Netzob的开源项⽬可以参考。
那就开⼲吧!
1 Netzob简介
其官⽅介绍是:
Netzob是⼀种⽤于逆向⼯程,流量⽣成和通信协议模糊测试的开源⼯具。此⼯具允许通过被动和主动进
程推断协议的消息格式(词汇表)和状态机(语法)。其⽬的是通过半⾃动⽅式利⽤⽣物信息学和语法推理算法,将最先进的学术研究带⼊运营领域。
Netzob适⽤于逆转⽹络协议,结构化⽂件以及系统和流程(IPC和与驱动程序和设备的通信)。⼀旦推断,可以在我们的流量⽣成引擎中使⽤协议模型,以允许模拟真实且可控的通信端点和流。
Netzob处理不同类型的协议:⽂本协议(如HTTP和IRC),基于分隔符的协议,固定字段协议(如IP和TCP)和可变长度字段协议(如基于TLV的协议)
作者为:
法国学者Georges Bossert和Frédéric Guihéry
其最后版本及维护时间为:
v1.0.2 - 2016-04-30
既然有资源,必然有教程。可是翻了⼀⼤圈,国外还真没有这个版本的教程,甚⾄连⽼的版本也没有,看样⼦研究的⼈研究是很少很少啊。
本来是想就装个⽼版本试试,但是过程简直不要太痛苦,不知道为什么,按照上述⼆位作者的⽅法,ubuntu12⾥⾯各种错误,折腾了好久还是没法安装,主要错误在包依赖关系。最后没办法,只能放弃对⽼版本的安装。
后⾯⾃⼰冷静下来梳理了⼀下,决定对其最新版本进⾏尝试性安装,没想到还成功了!
下⾯是对安装试⽤过程的简要记录,主要记录下⼀些坑⼈的地⽅。
2 Netzob-1.0.2 ubuntu安装与试⽤
2.1 安装
这个最新的版本是python3,于是选择了ubuntu18作为搭载平台,其⾃带了python3.6,可以省⼀些事情。
如果对ubuntu⾮常熟悉的话,按照官⽅⽂档来安装应该是不会太费⼒,但是我想在这⾥与⼤多数和我⼀样的新⼿来分享学习安装过程。
官⽅⽂档显⽰如下的步骤:
This file depends on setuptools which like few other modules cannot be automatically installed. The reason why, you have to manually install the following bunch of prerequisites before initiating Netzob’s install process.
python3
python3-dev
python3-setuptools
build-essential
We also highly recommend to install the following additional dependencies:
python-sphinx (for the documentation)
看起来好简单,但是真实安装时遇到许多问题
问题1:速度慢
资源都是在国外,所以贼慢,怎么办?⾸先换成国内的linux资源,这⾥推荐aliyun的镜像资源。
问题2:⽤apt-get安装,各种包依赖关系错误,基本⽆法按步骤安装
可能是因为Netzob⼤量调⽤了第三⽅库和包,⽽且开发时间较长同时缺少资⾦资源来良好地维护,所以其包依赖关系较为复杂。这时我⾸先安装了aptitude这个包管理⼯具,它在处理包依赖关系⽅⾯好过apt太多
问题3:执⾏Netzob最后安装时,提⽰pcapy错误
⾸先我想那就装个pcapy吧,可是居然还错⼜各种想办法,后来发现不是pcapy的问题,⽽是ubuntu上⾯没有pcapy需要的libpcap 库,于是把这个libpcap装上
问题4:最后安装Netzob过程中,各种死机/中断
分析了⼀下,死机和中断多发⽣在下载⼀些⼩的依赖包的过程中,应该是⽹络问题,所以⼀旦发⽣了因下载导致的中断和假死,就果断结束进程,重新安装。
就这样,折腾了⼀天,终于给装上了。
2.2 利⽤pycharm试⽤
这个最新版本是没有图形界⾯的,如果直接⽤,效果不太友好。⾃然要⽤个IDE来调⽤和调试,也可以满⾜个性化任务需求。
于是在ubuntu上⾯安装了pycharm,准备按照liyihao17的⽅法来⽤⼀下,结果⼜遇到了问题。
问题1 明明安装了netzob,但是解释器不到
python开发学习也有过⼀些经验,但是这种问题是第⼀次遇到,最后发现问题简直让⼈⽆语。原来我将⼯程名和⽂件名直接命名为了netzob,和外部依赖的netzob⽂件冲突了,解释器会⾃动选择本地⽂件进⾏关联,于是导致⽆法调⽤真实的netzob。改个⼯程名和⽂件名就⾏了
问题2 程序⽆法读取相应的pcap⽂件
这个错误没有详细的提⽰,就是说⽆法读取,简直让⼈⽆从下⼿。开始逐⼀排查问题,最后发现是权限问题。原来ubuntu下的pycharm默认⼯程⽂件放在了root⽂件夹下⾯,影响了程序的读取权限。于是果断在其它位置建⽴了⼯程项⽬,问题解决。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论