python数据包分析_packet_analysis: 数据包分析工具
功能
读取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: 数据包分析工具相关推荐
- MISC:流量包取证(pcap文件修复、协议分析、数据提取)
文章目录 1.流量包修复 2.协议分析 2.1 wireshark基本操作 2.2 一些例题(各种协议) 3.数据提取 1.流量包修复 这个方向的考点较少 当我们用 wireshark 打开流量包时, ...
- R语言回归模型构建、回归模型基本假设(正态性、线性、独立性、方差齐性)、回归模型诊断、car包诊断回归模型、特殊观察样本分析、数据变换、模型比较、特征筛选、交叉验证、预测变量相对重要度
R语言回归模型构建.回归模型基本假设(正态性.线性.独立性.方差齐性).回归模型诊断.car包诊断回归模型.特殊观察样本分析.数据变换.模型比较.特征筛选.交叉验证.预测变量相对重要度 目录
- R语言使用Rtsne包进行TSNE分析:通过数据类型筛选数值数据、scale函数进行数据标准化缩放、提取TSNE分析结果合并到原dataframe中(tSNE with Rtsne package)
R语言使用Rtsne包进行TSNE分析:通过数据类型筛选数值数据.scale函数进行数据标准化缩放.提取TSNE分析结果合并到原dataframe中(tSNE with Rtsne package) ...
- R语言使用Rtsne包进行TSNE分析:提取TSNE分析结果合并到原dataframe中、可视化tsne降维的结果、并圈定降维后不匹配的数据簇(tSNE identifying mismatch)
R语言使用Rtsne包进行TSNE分析:提取TSNE分析结果合并到原dataframe中.可视化tsne降维的结果.并使用两个分类变量从颜色.形状两个角度来可视化tsne降维的效果.并圈定降维后不匹配 ...
- TCGAbiolinks包分析TCGA数据
TCGAbiolinks包不仅可以下载GDC数据,还能分析数据 (differential expression analysis, identifying differentially methyl ...
- edgeR:一个数字基因表达数据差异表达分析Bioconductor程序包
edgeR:一个数字基因表达数据差异表达分析Bioconductor程序包 人们希望在不久的将来,对于许多功能基因组学应用,新兴的数字基因表达(digital gene expression,DGE) ...
- Wireshark数据抓包教程之认识捕获分析数据包
Wireshark数据抓包教程之认识捕获分析数据包 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了.Wiresh ...
- 贝叶斯软件genle教程_手把手教你用R的gemtc包对生存数据进行贝叶斯网状Meta分析...
大家好,本教程将介绍如何使用R的gemtc包对生存数据(HR为效应量)进行贝叶斯网状Meta分析. 前提条件: 需要下载R软件(推荐使用的R版本为3.5.3),以及RStudio(一个R的友好交互界面 ...
- 数据包捕获计算机网络实训,计算机网络-使用网络协议分析器捕捉和分析协议数据包...
广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室2014年11月28日 一.实验目的 (1)熟悉ethereal的使用 (2)验证各种协议数据包格式 (3)学会捕捉并分析各种数据包. 二 ...
最新文章
- maven工程出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener...
- 这才是程序员想弄死产品经理的真正原因!
- 第12章 样式(三)
- css为什么要用浮动_css浮动的特性,与浮动带来的影响以及如何清除浮动
- Windows下如何搭建Gradle环境?
- XMLHelper 辅助类
- Open Graph Protocol(开放内容协议)
- Wing IDE注册破解方法
- Linux开发_printf打印无消息或末尾带“#“or“%“
- application context not configured for this file于spring框架使用中的原因
- ssh登录慢的解决办法
- elasticsearch geo DSL 和API对比学习-矩形/多边形/距离/距离排序/距离分段聚合/geo_shape内含-相交-相离
- iOS自动打包,并上传蒲公英
- JavaScript高级编程设计(第三版)——第三章:基本概念
- S参数的应用|从S参数看通道阻抗匹配 | 理解插入损耗
- 从无秘和知乎看中国社交产品的特点
- 图神经网络推荐方向--论文代码读记
- 精英VS普通测试开发程序员?截然不同......
- 公司AppleID的申请详细流程
- Effective Java读书笔记(二)
热门文章
- VS2019 windows桌面应用_多邻国英语测试推出桌面应用程序,确保考试环境安全可靠...
- textarea 聚焦后边框_textarea焦点的用法实现获取焦点清空失去焦点提示效果
- 万分之二用百分之怎么表示_万分之几用百分符号怎么表示 万分之五怎么写?0.5%...
- mybatis log4j 在日志中打印sql_MyBatis---gt;01总结
- cocos 报错dts文件未导入_cocos2dx 3.4项目 导入到 eclipse 爬过的坑
- n9009 Android5.0内核,三星N9009(Galaxy Note 3 电信版 Android 5.0)刷Recovery教程
- java中获取时间6,Java中获取指定日为星期几及其他日期操作(2)
- android 图片查看动画,Android 共享动画实现点击列表图片跳转查看大图页面
- 去掉“3_人民日报语料”中每行前边的数字编号,改成“1, 2,......”
- 大二学生一年通过信息系统项目管理师+中级