写在前面
我需要提取ssh协议握手过程中的数据,找了很多办法,比如是不是可以通过nmap直接提取数据,但是nmap只能提取到服务器使用的算法以及服务器的公钥,所以还需要找其他可行的办法
wireshark
知道wireshark的都清楚它的功能,就是截取网络上的数据包,这让我们对互联网有了更加直观的了解,通过截取到的包可以很直观的看到互联网上数据的交互过程。
所以我选择使用nmap去访问服务器,然后通过wireshark截取包,再将包导出,wireshark导出的包文件是$.pcap$类型的,网上有很多解析的例子,我也看了很多,比如可以根据该文件类型的结构对其解析,还有可以通过现有的库对其解析:
- $pyshark$
- $scapy$
- $pycapfile$
等等。。。。
这些工具功能应该都是类似的,大体说一下就是可以发送数据包和接收数据包并保存到本地,可以对数据包进行解析,比如$pyshark$可以解析$.pcap$的数据包,别的不多说了上图:
这个用法呢就是遍历将文件里面指定的包输出,每个包里面有四个层:$ETH,IP,TCP,SSH$
通过:i.ssh
就可以访问该层的内容
然后通过特定的函数就可以进行无限的想象和使用举个比较实用的例子:i.ssh.get_field_by_showname('字段名')
,这样就可以取出ssh层下你想要的数据
结语
然后我就这样一步步将所有的想要得到的数据提取了出来,但是还是有些混乱,我猜测看能是多次访问的缘故
参考文献
PyShark入门(4):packet对象
http://zodiacg.net/2016/07/intro2pyshark-ep4/
我获得实用工具思路的论坛
https://stackoverflow.com/questions/4948043/how-to-parse-packets-in-a-python-library
官方文档
http://kiminewt.github.io/pyshark/
wireshark知乎大神写的
https://zhuanlan.zhihu.com/p/31512066
example
https://www.programcreek.com/python/example/92562/pyshark.FileCapture
大神写的pcap文件的结构分析
https://blog.csdn.net/dog250/article/details/52005893