Python之渗透测试笔记(四) ——网络数据嗅探

编写网络嗅探工具

  • 在scapy模块,函数sniff()的几个参数。
  1. count:表示要捕获的数据包的数量。默认值为0,不限制数量。
  2. store:表示是否要保存捕获到的数据包,默认值为1.
  3. prm:此参数是一个函数,会应用到每一个捕获到的数据包上,如果这个函数呦返回值,将会显示出来。默认为空。
  4. iface:表示要使用的网卡或者网卡列表。
  • sniff()函数支持过滤器,可以使用BPF规则(伯克里克过滤语法),BPF使用“原语”对数据包进行描述,可以使用“host”描述主机,“port”描述端口,也支持“与、或、非”等逻辑运算。使用这种语法的过滤器称为BPF表达式,每一个表达式包含一个或多个原语,每一个原语有包含一个或多个限定词,如:
  1. Type:用来规定使用名字或数字代表的类型。如host、net、port。
  2. Dir:规定流量的方向,例如:src、dst、src and dst。
  3. Proto:规定匹配的协议,例如:ip、tcp、arp。
  • 常见过滤器:
  1. 只捕获与网络中某一IP主机进行交互的流量: host 192.168.1.6
  2. 只捕获与网络中某一个MAC地址的主机交互的流量:ether host 00-1z-z0-52-e2-w0
  3. 只捕获来自网络中某一个IP的主机的流量: src host 102.168.1.6
  4. 只捕获去往网络中某一个IP的主机的流量:dst host 192.168.1.6,host可省略。
  5. 只捕获23端口的流量:port 23
  6. 捕获除了23端口2的流量:!23
  7. 只捕获目的端口为80的流量:dst port 80
  8. 只捕获ICMP流量:icmp
  9. 只捕获type为3,code为0,的ICMP流量:icmp[0] = 3 && icmp[1] =0
  • 实例:源地址为192.168.1.6,端口为80的tcp报文。
>>> sniff(filter = "dst 192.168.1.6 and tcp port 80",prn = lambda x:x.summary())	 #即时显示捕获到的数据包,可以使用prn函数,prn=lambda x:xsummary()  
>>> sniff(filter = "dst 192.168.1.6 and tcp port 80",prn = lambda x:x[IP].src,count =5)  #输出某一选项,x[IP].src输出IP报文的目的地址 

>>>def  Callback(packet):
       printpacket.show()    #打印输出数据包
>>>sniff(prn = Callback)  #调用这个函数
>>>packet = sniff(count =3) *
>>>wrpcap("demo.pacp",packet)  #使用wrpacp函数保存起来

调用WireShark查看数据包

  • 在Scapy中产生一个数据包packets = IP(dst = "www.baidu.com")/ICMP()
  • 在wireshark中打开wireshark(packets)
    在这里插入图片描述
  • 1是数据包列表,2是数据包详细信息,3是数据包原始信息。
  • 2中,数据包一共三层,依次为Frame、IP、ICMP
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值