一、绪论

最近一直想弄一个代理,并且对数据包进行解读,从而完成来往流量的嗅探。于是今天学习了一下如何使用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 进行抓包嗅探相关推荐

  1. 【安全牛学习笔记】抓包嗅探

    ┃抓包嗅探 ┃Windows ┃    Wireshark ┃    Omnipeek ┃    commview ┃    Sniffpass ┃Linux ┃    Tcpdump ┃    Wi ...

  2. 小白日记22:kali渗透测试之提权(二)--抓包嗅探

    抓包嗅探 通过抓包嗅探目标机器的流量,发现账号密码. Windows系统 1.Wirehshark 2.Omnipeek 3.commview 4.Sniffpass 只会抓取识别传输密码的明文协议, ...

  3. Python爬虫抓包工具使用

    Python爬虫抓包工具使用 一. 常用的工具 python pycharm 浏览器 chrome 火狐 fiddler 2 fiddler的使用 二. 操作界面 三.界面含义 1. 请求 (Requ ...

  4. python 抓包 scapy udp,python+scapy 抓包與解析

    最近一直在使用做流量分析,今天把 scapy 部分做一個總結. python 的 scapy 庫可以方便的抓包與解析包,無奈資料很少,官方例子有限,大神博客很少提及, 經過一番嘗試后,總結以下幾點用法 ...

  5. python scapy 抓包_Python3下基于Scapy库完成网卡抓包解析

    Scapy是一个可以让用户发送.侦听和解析并伪装网络报文的Python程序.这些功能可以用于制作侦测.扫描和攻击网络的工具. 在 Python 代码中可以通过 sniff 函数调用抓包分析,并对抓到的 ...

  6. linux+jmeter+python基础+抓包拦截

    LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javas ...

  7. python 网络抓包

    Python下的网络抓包库pylibpcap.pypcap.pycap这些库其实这些都是libpcap的Python绑定实现,libpcap才是真正的核心. 在http://pypi.python.o ...

  8. Python scapy抓包程序

    尝试使用Python scapy 包中 sniff 函数写个简单的抓包程序,sniff 抓取数据包并写入本地文件 1. 安装scapy,windows7 系统需要先安装 npcap,pip 之后 ,简 ...

  9. python网页抓包_python爬虫入门01:教你在 Chrome 浏览器轻松抓包

    通过 我们知道了什么是爬虫 也知道了爬虫的具体流程 那么在我们要对某个网站进行爬取的时候 要对其数据进行分析 就要知道应该怎么请求 就要知道获取的数据是什么样的 所以我们要学会怎么抓咪咪! 哦,不对. ...

最新文章

  1. 几何画板画一个五边形内部的方法
  2. 自定义Spark Partitioner提升es-hadoop Bulk效率
  3. C~K招亲_JAVA
  4. python实现监控增量_Python 快速计算增量的方法
  5. EF 数据迁移 常见错误
  6. JDK源码(12)-Enum
  7. 开源 协作工具_使用HackMD在开源项目上进行协作
  8. kubernetes之二:集群环境搭建
  9. zabbix中文乱码的解决办法
  10. 《我也能做CTO之程序员职业规划》之二:做CTO的苹果定律
  11. html表单与表格,HTML--表格与表单(示例代码)
  12. “华为电气—艾默生”系——成就A股最多上市公司的创业群体
  13. ajhua门禁_大华门禁主机密码 ajhua门禁
  14. linux下使用wakeonlan远程唤醒报错:Network is unreachable at /usr/bin/wakeonlan line 126.
  15. 挑战练习13.6 删除crime 记录
  16. EBS 使用API更新物料属性 Inv_Item_Grp
  17. 使用JDBC 获取相关的数据
  18. Qt:图标刷新自动旋转
  19. 【docker安装】docker安装与部署
  20. spring boot(7)-mybatis全注解化

热门文章

  1. vcard规范 二维码名片的格式
  2. android Messenger 用法,demo,helloworld
  3. 7-55 查询水果价格 (15 分) 给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄…PTA:中M2021春C、Java入门练习第I段——变量、表达式、分支、循环
  4. 两化融合贯标认定的标准
  5. 如何赚取units_保护自己或从数据隐私中赚取大量金钱
  6. 陆家嘴vs静安寺,谁站在魔都职场名媛鄙视链顶端?
  7. 软件智能:aaas系统 度量衡及文法规则
  8. 刷magisk模块后不能开机_刷面具模块导致手机卡米无法开机的解决方法
  9. 511遇见易语言封装免注册免查杀大漠模块命令
  10. Windows 下查看显卡使用情况