功能

读取pcap包,打印详细的icmp/tcp/udp协议

读取pcap包或网络接口

1. 打印详细的tcp会话/udp报文数据,目前支持mysql/pgsql/smtp/ftp/redis/mongodb认证协议解析,http/dns完整协议解析

2. IP数据包统计信息,用于监控网络异常流量

安装

pip install -r requirements.txt

mac

brew install libnids

linux

sudo apt-get install libnet1-dev libpcap-dev

git clone https://github.com/MITRECND/pynids.git

cd pynids

sudo python setup.py build

sudo python setup.py install

pip install dpkt

或者

git clone https://github.com/kbandla/dpkt.git

使用

读取pcap包,打印详细的icmp/tcp/udp协议

python print_pcap.py --help

python print_pcap.py --pcapfile=data/pcap_pub/http_gzip.pcap --assetport=80

详细使用可以参看Documents 二

读取pcap包或网络接口,打印详细的tcp会话数据

第二步: python print_tcp_session.py

详细使用可以参看Documents 十一 、 十二

Bugs

libnids

不支持ipv6格式的数据包

当server.yaml中配置为重组双向流量时

data_stream_direct: 2

只在tcp flag为RST或FIN时才会打印数据

不支持多进程

Documents

示例

python print_tcp_session.py

1. UDP-DNS协议详解

pcap_file: data/pcap_pub/dns/netforensics_evidence05.pcap

UDP-DNS 协议解析

{

"ts": 1268758265.098157,

"src_ip": "192.168.23.2",

"src_port": 53,

"dst_ip": "192.168.23.129",

"dst_port": 52499,

"header": {

"aa": 0,

"qr": 1,

"num_of_answers": 1,

"tc": 0,

"num_of_additional": 4,

"rd": 1,

"opcode": "QUERY",

"ra": 1,

"num_of_authority": 4,

"rcode": "NOERROR",

"id": 48291,

"num_of_questions": 1

},

"questions": [

{

"qclass": "IN",

"qtype": "A",

"qname": "freeways.in."

}

],

"answers": [

{

"ttl": 5,

"rname": "freeways.in.",

"rtype": "A",

"rclass": 1,

"rdata": "212.252.32.20"

}

],

"authority": [

{

"ttl": 5,

"rname": "freeways.in.",

"rtype": "NS",

"rclass": 2,

"rdata": "ns4.everydns.net."

}

],

"additional": [

{

"ttl": 5,

"rname": "ns4.everydns.net.",

"rtype": "A",

"rclass": 1,

"rdata": "208.76.60.100"

}

]

}

2. TCP-HTTP 协议详解

pcap_file: data/pcap_pub/cve/cve-2016-4971.pcap

{

"ts_start": 1467904494.307728,

"ts_end": 1467904494.392242,

"src_ip": "192.168.186.128",

"src_port": 41352,

"dst_ip": "192.168.186.128",

"dst_port": 80,

"req_method": "GET",

"req_uri": "/file",

"req_version": "1.1",

"req_headers": {

"user-agent": "Wget/1.17 (linux-gnu)",

"accept": "*/*",

"accept-encoding": "identity",

"host": "192.168.186.128",

"connection": "Keep-Alive"

},

"req_body": "",

"resp_version": "1.0",

"resp_status": "301",

"resp_reason": "Moved Permanently",

"resp_headers": {

"server": "SimpleHTTP/0.6 Python/2.7.12",

"date": "Thu, 07 Jul 2016 15:14:54 GMT",

"location": "ftp://anonymous@192.168.186.128:21/.wgetrc"

},

"resp_body": ""

}

3. IP 数据包元信息

数据包方向 时间戳 协议类型 源IP:源端口(IP归属地)(服务类型)目的IP:目的端口(IP归属地)(服务类型) 数据包大小

IN2017-08-18 13:23:41TCP58.217.200.117:14000(江苏省南京市-None-None-NONE)(scotty-ft)10.0.0.2:58747(局域网-None-None-NONE)(NONE)240

OUT2017-08-18 13:23:41TCP10.0.0.2:58747(局域网-None-None-NONE)(NONE)58.217.200.117:14000(江苏省南京市-None-None-NONE)(scotty-ft)40

备注: 14000(scotty-ft) 为微信、QQ发送语音文件的协议

python print_pcap.py

UDP报文

python print_pcap.py --pcapfile=data/pcap_pub/dns/dns.pcap

[UDP][1112201545.382005-03-30 16:52:25]217.13.4.24:53(00:12:a9:00:32:23) ----->192.168.170.56:1711(00:60:08:45:e4:55)ttl=58DATA_BINARY=76 63 85 83 00 01 00 00 00 00 00 00 05 47 52 49 4d 4d 0b 75 74 65 6c 73 79 73 74 65 6d 73 05 6c 6f 63 61 6c 00 00 01 00 01LEN=41

TCP报文

python print_pcap.py --pcapfile=data/pcap_pub/cve/httpoxy.pcap

[TCP] [1469135972.46 2016-07-21 21:19:32] 192.168.235.135:55034(00:0c:29:92:67:d7) ----->192.168.235.136:8080(00:0c:29:79:fd:94) SEQ=618963631 ACK=2424513936 FLAGS=['ACK', 'PSH'] WIN=229 DATA=GET /index.py HTTP/1.1

Host: 192.168.235.136:8080

User-Agent: curl/7.43.0

Accept: */*

Proxy: 192.168.235.135:11000

ICMP报文

[ICMP_Unreach][1500285748.082017-07-17 10:02:28]10.0.0.5:500(98:01:a7:9e:dd:c1) ----->10.0.0.2:63816(58:f3:9c:51:90:c7)3:3[host:port unreachable]ttl=43DATA_BINARY=LEN=0

联系

原博客 被封号了

新浪微博weibo

豆瓣读书 分享最近看的书籍

baidu网盘 分享一些网络安全资料(但基本很快就被删掉了)

python数据包分析_packet_analysis: 数据包分析工具相关推荐

  1. MISC:流量包取证(pcap文件修复、协议分析、数据提取)

    文章目录 1.流量包修复 2.协议分析 2.1 wireshark基本操作 2.2 一些例题(各种协议) 3.数据提取 1.流量包修复 这个方向的考点较少 当我们用 wireshark 打开流量包时, ...

  2. R语言回归模型构建、回归模型基本假设(正态性、线性、独立性、方差齐性)、回归模型诊断、car包诊断回归模型、特殊观察样本分析、数据变换、模型比较、特征筛选、交叉验证、预测变量相对重要度

    R语言回归模型构建.回归模型基本假设(正态性.线性.独立性.方差齐性).回归模型诊断.car包诊断回归模型.特殊观察样本分析.数据变换.模型比较.特征筛选.交叉验证.预测变量相对重要度 目录

  3. R语言使用Rtsne包进行TSNE分析:通过数据类型筛选数值数据、scale函数进行数据标准化缩放、提取TSNE分析结果合并到原dataframe中(tSNE with Rtsne package)

    R语言使用Rtsne包进行TSNE分析:通过数据类型筛选数值数据.scale函数进行数据标准化缩放.提取TSNE分析结果合并到原dataframe中(tSNE with Rtsne package) ...

  4. R语言使用Rtsne包进行TSNE分析:提取TSNE分析结果合并到原dataframe中、可视化tsne降维的结果、并圈定降维后不匹配的数据簇(tSNE identifying mismatch)

    R语言使用Rtsne包进行TSNE分析:提取TSNE分析结果合并到原dataframe中.可视化tsne降维的结果.并使用两个分类变量从颜色.形状两个角度来可视化tsne降维的效果.并圈定降维后不匹配 ...

  5. TCGAbiolinks包分析TCGA数据

    TCGAbiolinks包不仅可以下载GDC数据,还能分析数据 (differential expression analysis, identifying differentially methyl ...

  6. edgeR:一个数字基因表达数据差异表达分析Bioconductor程序包

    edgeR:一个数字基因表达数据差异表达分析Bioconductor程序包 人们希望在不久的将来,对于许多功能基因组学应用,新兴的数字基因表达(digital gene expression,DGE) ...

  7. Wireshark数据抓包教程之认识捕获分析数据包

    Wireshark数据抓包教程之认识捕获分析数据包 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了.Wiresh ...

  8. 贝叶斯软件genle教程_手把手教你用R的gemtc包对生存数据进行贝叶斯网状Meta分析...

    大家好,本教程将介绍如何使用R的gemtc包对生存数据(HR为效应量)进行贝叶斯网状Meta分析. 前提条件: 需要下载R软件(推荐使用的R版本为3.5.3),以及RStudio(一个R的友好交互界面 ...

  9. 数据包捕获计算机网络实训,计算机网络-使用网络协议分析器捕捉和分析协议数据包...

    广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室2014年11月28日 一.实验目的 (1)熟悉ethereal的使用 (2)验证各种协议数据包格式 (3)学会捕捉并分析各种数据包. 二 ...

最新文章

  1. maven工程出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener...
  2. 这才是程序员想弄死产品经理的真正原因!
  3. 第12章 样式(三)
  4. css为什么要用浮动_css浮动的特性,与浮动带来的影响以及如何清除浮动
  5. Windows下如何搭建Gradle环境?
  6. XMLHelper 辅助类
  7. Open Graph Protocol(开放内容协议)
  8. Wing IDE注册破解方法
  9. Linux开发_printf打印无消息或末尾带“#“or“%“
  10. application context not configured for this file于spring框架使用中的原因
  11. ssh登录慢的解决办法
  12. elasticsearch geo DSL 和API对比学习-矩形/多边形/距离/距离排序/距离分段聚合/geo_shape内含-相交-相离
  13. iOS自动打包,并上传蒲公英
  14. JavaScript高级编程设计(第三版)——第三章:基本概念
  15. S参数的应用|从S参数看通道阻抗匹配 | 理解插入损耗
  16. 从无秘和知乎看中国社交产品的特点
  17. 图神经网络推荐方向--论文代码读记
  18. 精英VS普通测试开发程序员?截然不同......
  19. 公司AppleID的申请详细流程
  20. Effective Java读书笔记(二)

热门文章

  1. VS2019 windows桌面应用_多邻国英语测试推出桌面应用程序,确保考试环境安全可靠...
  2. textarea 聚焦后边框_textarea焦点的用法实现获取焦点清空失去焦点提示效果
  3. 万分之二用百分之怎么表示_万分之几用百分符号怎么表示 万分之五怎么写?0.5%...
  4. mybatis log4j 在日志中打印sql_MyBatis---gt;01总结
  5. cocos 报错dts文件未导入_cocos2dx 3.4项目 导入到 eclipse 爬过的坑
  6. n9009 Android5.0内核,三星N9009(Galaxy Note 3 电信版 Android 5.0)刷Recovery教程
  7. java中获取时间6,Java中获取指定日为星期几及其他日期操作(2)
  8. android 图片查看动画,Android 共享动画实现点击列表图片跳转查看大图页面
  9. 去掉“3_人民日报语料”中每行前边的数字编号,改成“1, 2,......”
  10. 大二学生一年通过信息系统项目管理师+中级