python 进行抓包嗅探
一、绪论
最近一直想弄一个代理,并且对数据包进行解读,从而完成来往流量的嗅探。于是今天学习了一下如何使用Python抓包并进行解包。
首先要用到两个模块
dpkt(我这边ubuntu16.04 LTS)Python2.7中默认安装的
pcap安装
1 pip install pypcap
然后来说一下,pypcap主要用来抓包或者说是sniffer的,dpkt用来解包的,我对dpkt的认知是解包传输层以及传输层一下的数据比较不错,但是对于应用层数据的解读就是渣渣。尤其是HTTP,所以HTTP部分解包,是我自己重写的,并没有使用dpkt.http.Request和dpkt.http.Response。(总他妈报错).
二、目前做到:
(1)正常解码请求和响应数据包。
(2)对于长连接传输数据的数据包解读失败。
三、先来讲抓包
1 import pcap 2 import dpkt 3 4 sniffer = pcap.pcap(name="eth1") #name parameter => interface name 5 sniffer.setfilter("tcp") #filter sentence 6 for packet_time packet_data in sniifer: 7 pass 8 9 # packet_time => packet receive time 10 # packet_data => ethernet level data
四、解包:
1 packet = dpkt.ethernet.Ethernet(pdata)#二层数据报文嘛 2 print "SRC IP:%d.%d.%d.%d"%tuple(map(ord,list(packet.data.src))) 3 print "DST IP:%d.%d.%d.%d"%tuple(map(ord,list(packet.data.dst))) 4 print "SRC PORT:%s"%packet.data.data.sport 5 print "DST PORT:%s"%packet.data.data.dport
五、HTTP部分是我自己解的包:
1 def http_request_analyst(string): 2 string = string[1:-1] 3 method = string.split(" ")[0] 4 print "Method:",method 5 path = string.split(" ")[1] 6 print "Path:",urllib.unquote(path) 7 protover = string.split(" ")[2].split("\\r\\n")[0] 8 print "Protocol Version:",protover 9 headers = string.split("\\r\\n\\r\\n")[0].split("\\r\\n")[1:] 10 print "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" 11 print "Header:" 12 for header in headers: 13 header = header.split(":") 14 try: 15 hstr = "%s:%s"%(str(header[0]),str(header[1])) if header[0] not in ["Referer"] else "%s:%s:%s"%(str(header[0]),str(header[1]),str(header[2])) 16 except Exception,ex: 17 print "[*]",ex 18 print header 19 raw_input() 20 print hstr 21 print "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" 22 print "Data:",string.split("\\r\\n")[-1]
1 def http_response_analyst(string): 2 string = string[1:-1] 3 protover = string.split(" ")[0] 4 print "Protocol Version:",protover 5 status_code = string.split(" ")[1] 6 print "Response Code:",status_code 7 status_string = string.split(" ")[2].split("\\r\\n")[0] 8 print "Reposne String:",status_string 9 headers = string.split("\\r\\n\\r\\n")[0].split("\\r\\n")[1:] 10 print repr(headers) 11 print repr(string) 12 print "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" 13 print "Header:" 14 for header in headers: 15 header = header.split(":") 16 try: 17 hstr = "%s:%s"%(str(header[0]),str(header[1])) if header[0] not in ["Referer"] else "%s:%s:%s"%(str(header[0]),str(header[1]),str(header[2])) 18 except Exception,ex: 19 print "[*]",ex 20 print header 21 raw_input() 22 print hstr 23 print "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" 24 print "Data:",string.split("\\r\\n")[-1]
六、效果如图了:
转载于:https://www.cnblogs.com/KevinGeorge/p/8088915.html
python 进行抓包嗅探相关推荐
- 【安全牛学习笔记】抓包嗅探
┃抓包嗅探 ┃Windows ┃ Wireshark ┃ Omnipeek ┃ commview ┃ Sniffpass ┃Linux ┃ Tcpdump ┃ Wi ...
- 小白日记22:kali渗透测试之提权(二)--抓包嗅探
抓包嗅探 通过抓包嗅探目标机器的流量,发现账号密码. Windows系统 1.Wirehshark 2.Omnipeek 3.commview 4.Sniffpass 只会抓取识别传输密码的明文协议, ...
- Python爬虫抓包工具使用
Python爬虫抓包工具使用 一. 常用的工具 python pycharm 浏览器 chrome 火狐 fiddler 2 fiddler的使用 二. 操作界面 三.界面含义 1. 请求 (Requ ...
- python 抓包 scapy udp,python+scapy 抓包與解析
最近一直在使用做流量分析,今天把 scapy 部分做一個總結. python 的 scapy 庫可以方便的抓包與解析包,無奈資料很少,官方例子有限,大神博客很少提及, 經過一番嘗試后,總結以下幾點用法 ...
- python scapy 抓包_Python3下基于Scapy库完成网卡抓包解析
Scapy是一个可以让用户发送.侦听和解析并伪装网络报文的Python程序.这些功能可以用于制作侦测.扫描和攻击网络的工具. 在 Python 代码中可以通过 sniff 函数调用抓包分析,并对抓到的 ...
- linux+jmeter+python基础+抓包拦截
LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javas ...
- python 网络抓包
Python下的网络抓包库pylibpcap.pypcap.pycap这些库其实这些都是libpcap的Python绑定实现,libpcap才是真正的核心. 在http://pypi.python.o ...
- Python scapy抓包程序
尝试使用Python scapy 包中 sniff 函数写个简单的抓包程序,sniff 抓取数据包并写入本地文件 1. 安装scapy,windows7 系统需要先安装 npcap,pip 之后 ,简 ...
- python网页抓包_python爬虫入门01:教你在 Chrome 浏览器轻松抓包
通过 我们知道了什么是爬虫 也知道了爬虫的具体流程 那么在我们要对某个网站进行爬取的时候 要对其数据进行分析 就要知道应该怎么请求 就要知道获取的数据是什么样的 所以我们要学会怎么抓咪咪! 哦,不对. ...
最新文章
- 几何画板画一个五边形内部的方法
- 自定义Spark Partitioner提升es-hadoop Bulk效率
- C~K招亲_JAVA
- python实现监控增量_Python 快速计算增量的方法
- EF 数据迁移 常见错误
- JDK源码(12)-Enum
- 开源 协作工具_使用HackMD在开源项目上进行协作
- kubernetes之二:集群环境搭建
- zabbix中文乱码的解决办法
- 《我也能做CTO之程序员职业规划》之二:做CTO的苹果定律
- html表单与表格,HTML--表格与表单(示例代码)
- “华为电气—艾默生”系——成就A股最多上市公司的创业群体
- ajhua门禁_大华门禁主机密码 ajhua门禁
- linux下使用wakeonlan远程唤醒报错:Network is unreachable at /usr/bin/wakeonlan line 126.
- 挑战练习13.6 删除crime 记录
- EBS 使用API更新物料属性 Inv_Item_Grp
- 使用JDBC 获取相关的数据
- Qt:图标刷新自动旋转
- 【docker安装】docker安装与部署
- spring boot(7)-mybatis全注解化
热门文章
- vcard规范 二维码名片的格式
- android Messenger 用法,demo,helloworld
- 7-55 查询水果价格 (15 分) 给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄…PTA:中M2021春C、Java入门练习第I段——变量、表达式、分支、循环
- 两化融合贯标认定的标准
- 如何赚取units_保护自己或从数据隐私中赚取大量金钱
- 陆家嘴vs静安寺,谁站在魔都职场名媛鄙视链顶端?
- 软件智能:aaas系统 度量衡及文法规则
- 刷magisk模块后不能开机_刷面具模块导致手机卡米无法开机的解决方法
- 511遇见易语言封装免注册免查杀大漠模块命令
- Windows 下查看显卡使用情况