Python黑帽编程1.5 使用Wireshark练习网络协议分析
1.5.0.1 本系列教程说明
本系列教程,采用的大纲母本为《Understanding Network Hacks Attack and Defense with Python》一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题而作。由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的是个人偏好。教程同时提供图文和视频教程两种方式,供不同喜好的同学选择。
1.5.0.2 本节前言
在上一节,笔者罗列的学习网络编程应该了解或掌握的网络基础知识,这其中直接和编程相关的是网络协议。抓包分析,一直都是学习网络协议过程中,理论联系实践的最好方式,而目前最常用的抓包工具就是Wireshark。
随着我们教程的深入,我们也会使用Wireshark来准备测试用的数据包,校验程序的准确性,编写程序之前做人工分析以提供准确的解决问题思路或算法。
Wireshark的详细使用和高级功能,建议有精力的同学去阅读《Wireshark网络分析实战》一书,本节内容以基础和暂时够用为原则。
1.5.1 WIRESHARK 简介
Wireshark 是当今世界上被应用最广泛的网络协议分析工具。用户通常使用Wireshark来学习网络协议,分析网络问题,检测攻击和木马等。
Wireshark官网为https://www.wireshark.org/。
图1 Wireshark官网
进入下载页面,我们可以看到Wireshark提供windows和Mac OS X的安装文件,同时提供了源码供在Linux环境中进行安装。
图2
下载和安装,这里就不详细说明了,安装程序还是源码安装1.2、1.4节课程中,有详细的演示,各位同学依样画葫芦即可。
在Kali Linux中,已经预装了Wireshark,只需要在终端输入Wireshark,即可启动程序。
root@kali:~# wireshark
启动之后,由于Kali默认是root账号,会引发Lua加载错误,直接忽略即可。
图3
1.5.2 抓包
启动Wireshark后,在主界面会列出当前系统中所有的网卡信息。
图4
在此处选择要监听的网卡,双击就会进入监听模式。还有另一个入口就是上方的配置按钮。
图5
打开配置界面,可以对网卡和数据包捕获做一些配置。
图6
选中网卡,点击开始。
图7
抓包的过程中,我们可以看到数据的变化。点击停止按钮,停止捕获数据包。
图8
在软件的核心界面就是数据包列表,显示的列有序号、时间、源IP、目标IP、协议、长度、基本信息。Wireshark使用不同的颜色对不同的协议做了区分。在视图菜单,我们可以找到和着色相关的命令。