关于Scapy

scapy是一个强大的交互式数据包处理程序(使用python编写)。它能够伪造或者解码大量的网络协议数据包,能够发送、捕捉、匹配请求和回复包等。它可以很容易地处理一些典型操作,比如端口扫描、tracerouting,探测,单元测试,攻击或网络发现(可替代hping,NMAP,arpspoof,ARP-SK,arping,tcpdump,tethereal,POF等)。最重要的他还有很多更优秀的特性——发送无效数据帧、注入修改的802.11数据帧、在WEP上解码加密通道(VOIP)、ARP缓存攻击(VLAN)等,这要是其他工具无法处理完成的。

安装Scapy

由于scapy依赖于python,因此在安装scapy前,必须保证python的正确安装,python的安装此处不在赘述,如有需要可查阅网络。本人采用的python2.7。

如设备已联网,可直接用pip install scapy命令一键安装,如设备无法联网,可事先在scapy官方网站(http://www.secdev.org/projects/scapy)下载scapy最新版本,目前最新版本是2.3.3。scapy的官方使用指南详细描述了scapy的各种用法,如有兴趣,自行查阅http://scapy.readthedocs.io/en/latest/index.html

本文演示使用的系统是red hat 4.4.7,在下载完scapy的压缩包后,由于该版本是tgz的格式,在操作系统中使用命令tar –zvxf 解压缩,如下图:

解压后,进入scapy的文件夹,使用sudo python scapy.py install命令安装scapy,当出现welcome字样时,表示scapy安装成功。

在官方文档中也说明了,当在windows下安装scapy时,只需要运行cmd,在控制台界面,找到scapy解压后所在路径,进入后,输入python scapy.py install即可完成安装,当然,前提仍然是要正确安装python。

SCTP抓包分析

前面提到了,scapy可以很方便的构造各种包,目前也支持很多协议。对于通信行业来说,最重要的当然是SCTP包了。了解scapy的初衷是为了在自动化测试中,能够分析sctp包,从而做协议接口测试。网络上对于sctp包的描述较少,个人通过不断的尝试,终于成功将sctp包捕获并且分析和自动匹配,以下开始具体操作过程:

首先,要进入scapy界面:

然后就可以输入scapy命令了。先来构造一个接口的抓包,这里要借助sniff这个函数,使用说明如下:

构造如下的sniff函数,开始嗅探特定sctp包:

当抓包完成,会自动结束,此时返回的pkt是一个列表,每个元素是抓包的内容,如下图:

上图所示的包为一个心跳请求包

通过这样的引用,可以找到sctp的类型,编号是遵循sctp协议的,如下图:

如果要分析sctp的包内容,那首先要找到的是数据块类型编码为0的sctp包,此时可方便通过循环判断,找到该sctp数据包,如下图:

可见pkt中的第12个包为数据包,以该包为例,可查看该数据包:

至此,就把抓到的sctp包的数据包给提取了出来。由于不支持sctp的更上层协议,因此需要自己去匹配协议字段,找到message type,从而判断消息类型。网上也有牛人可尝试制作新的协议模板,来做到自动匹配,有兴趣可查阅。这里用第一种方法。那么,为了方便知道具体字段标识的内容,我们还是要把抓到的包导出成wireshark可以打开的pcap包,从而方便我们来做编解码,方法如下:

则在scapy的文件路径下,会出现test.pcap的抓包,可以下载后用wireshark打开。找到wireshark的同样的第12个包,解码如下:

可见,这是一个s1setup的包,而s1setup位于data中的第二个字节,对应的procedure code是17,16进制表示是0x11,和提取到的data中是一致的:

因此,可以在data中判断第二个字节的type code来判断该SCTP所对应的上层消息,从而实现对SCTP的编解码分析。

scapy安装及SCTP包分析的更多相关文章

  1. tcpdump安装配置及抓包分析

    http://blog.csdn.net/e421083458/article/details/23963189 cpdump安装配置及抓包分析 预装软件:[plain] view plain cop ...

  2. 实战录 | 基于openflow协议的抓包分析

    <实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...

  3. [转] Android实时抓包分析 : 善用adb调试桥

    Android实时抓包分析 : 善用adb调试桥   谈到android网络抓包,很多人都能想到牛逼轰轰的神器tcpdump.方法就是在android机器上面安装tcpdump,然后通过-w参数把抓包 ...

  4. 可视化数据包分析工具-CapAnalysis

    可视化数据包分析工具-CapAnalysis 我们知道,Xplico是一个从pcap文件中解析出IP流量数据的工具,本文介绍又一款实用工具-CapAnalysis(可视化数据包分析工具),将比Xpli ...

  5. Wireshark和TcpDump抓包分析心得

    Wireshark和 TcpDump抓包分析心得  1. Wireshark与tcpdump介绍 Wireshark是一个网络协议检测工具,支持Windows平台和Unix平台,我一般只在Window ...

  6. python编写网络抓包分析脚本

    python编写网络抓包分析脚本 写网络抓包分析脚本,一个称手的sniffer工具是必不可少的,我习惯用Ethereal,简单,易用,基于winpcap的一个开源的软件 Ethereal自带许多协议的 ...

  7. 使用wireshark抓取TCP包分析1

    使用wireshark抓取TCP包分析1 前言 介绍 目的 准备工作 传输 创建连接 握手 生成密钥 发送数据 断开连接 结论 前言 介绍 本篇文章是使用wireshrak对某个https请求的tcp ...

  8. 抓包分析、多线程爬虫及xpath学习

    1.抓包分析 1.1 Fiddler安装及基本操作 由于很多网站采用的是HTTPS协议,而fiddler默认不支持HTTPS,先通过设置使fiddler能抓取HTTPS网站,过程可参考(https:/ ...

  9. tcpdump+wireshark抓包分析

    上一篇文章中,我们介绍了tcpdump如何抓包. tcpdump是命令行下便捷的抓包和分析工具,但使用方式不够友好, wireshark是带图形化界面的抓包和分析工具,操作简便,但需要主机有显示器. ...

随机推荐

  1. 2_ROS学习

    2_VNC远程连接树莓派 在上一次,我们成功的给树莓派安装了Ubuntu mate的操作系统. 树莓派是嵌入式计算机,一般是没有显示屏来显示的,我们通过远程连接来访问树莓派.网上推荐了ssh连接,xr ...

  2. CentOS6.9中挂载NTFS移动硬盘

    公司需要本地备份,不占用公网带宽,而本地服务器硬盘容量不够,所以需要将本地服务器centos 6.9系统的备份数据拷贝到移动硬盘. 所以需要在centos上挂载NTFS格式的移动硬盘. 方法/步骤: ...

  3. 0_Simple__inlinePTX + 0_Simple__inlinePTX_nvrtc

    在核函数代码中加入并行线程执行(Parallel Thread eXecution,PTX),通过汇编指令获取得有关线程束的信息.并且在静态代码和运行时编译两种条件下使用. ▶ 源代码:静态使用 #i ...

  4. struts2常见错误

    1.Caught exception while loading file struts-default.xml - [unknown location]解决办法:由于lib包冲突造成的,将两个解析x ...

  5. Log4j – Configuring Log4j 2 - Log4j 2的配置

    Configuration Inserting log requests into the application code requires a fair amount of planning an ...

  6. Rem与Px的转换[转载]

    原文:http://www.w3cplus.com/preprocessor/sass-px-to-rem-with-mixin-and-function.html rem是CSS3中新增加的一个单位 ...

  7. Problem B: 点之间的距离

    #include <iostream> #include <vector> #include <cmath> #include <algorithm> ...

  8. 【WEB API项目实战干货系列】- WEB API入门(一)

    这篇做为这个系列的第一篇,做基本的介绍,有经验的人可以直接跳到第二部分创建 ProductController.   创建 Web API 项目 在这里我们使用VS2013, .NET 4.5.1创建 ...

  9. 按键(vb)启动指定目录的程序以及获取当前应用路径

    Private Declare Function GetDesktopWindow Lib "user32" () As Long Private Declare Function ...

  10. day2--计算机基础

    一.服务器 1u服务器,1u=4.45cm 戴尔服务器种类: 电脑主机组成 主板.CPU.内存.硬盘.显卡.声卡等等. 运维关注三大部件:CPU.内存.硬盘(Disk) 电源,考虑使用双电服务器,电源 ...