Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 握手帧操作_Python_Sockets_Scapy_Handshake_Wpa - Fatal编程技术网

Python 握手帧操作

Python 握手帧操作,python,sockets,scapy,handshake,wpa,Python,Sockets,Scapy,Handshake,Wpa,我打算创建一个假AP,以便将从客户端接收到的帧发送到真实AP, 当然,从真实AP接收到的帧到客户端。。。都是通过假AP的 我将使用hostapd创建假AP,并使用scapy嗅探和操纵数据包(仅更改源和目标) 基本上,使用python,我要做的是: 客户端->伪造副本->真实副本 1) 嗅探数据包 2) 更改源和目标(src=FakeAP,dst=RealAP) 3) 将数据包发送到真实的AP RealAP->FakeAP->Client 1) 嗅探数据包 2) 更改源和目标(src=FakeAP

我打算创建一个假AP,以便将从客户端接收到的帧发送到真实AP, 当然,从真实AP接收到的帧到客户端。。。都是通过假AP的

我将使用hostapd创建假AP,并使用scapy嗅探和操纵数据包(仅更改源和目标)

基本上,使用python,我要做的是:

客户端->伪造副本->真实副本
1) 嗅探数据包
2) 更改源和目标(src=FakeAP,dst=RealAP)
3) 将数据包发送到真实的AP

RealAP->FakeAP->Client
1) 嗅探数据包
2) 更改源和目标(src=FakeAP,dst=Client)
3) 将数据包发送到客户端

代码如下:

from scapy.all import *

def manipulateAndSend(pkt):
    pkt[Ether].src= new_src_mac
    pkt[Ether].dst= new_dst_mac
    pkt[IP].src= new_src_ip
    pkt[IP].dst= new_dst_ip
    send(pkt)

sniff(iface="wlan0", prn=manipulateAndSend, filter="tcp", store=0)
我的两个问题是:

1) 在hostapd中,我将设置一个“无论如何”的WPA密钥,那么如何避免拒绝身份验证呢?

2) 如果IP关联在身份验证完成后启动,如何编辑数据包的IP src和dst?

Hey loop。你能使用iptables将所有流量从假AP转发到真实AP,然后使用scapy嗅探它吗?你需要用scapy操作数据包有什么原因吗?嘿@Noob123,是的,实际上有一个简单且不可避免的原因,你必须改变来源和目的地,否则你会将数据包转发给你自己,以防你实现将数据包发送给真正的AP,来自真实AP的响应将发送回客户端,而不是发送给您(假AP)。好的。我懂了。我是这样想的。我有一个树莓圆周率设置与hostapd作为AP。我有第二个无线连接,将Pi连接到真实的AP。当有人登录到Pi AP时,流量通过该AP发送到“真实”AP。我可以在Pi上运行scapy,嗅探交通状况。现在我把它用作TOR路由器。哦,你的意思是基本上是一个邪恶的孪生攻击,一个接口可以充当假AP,另一个可以访问互联网。不幸的是,如果使用与真实AP相同的保护创建假AP,则需要知道wpa密钥,然后使用该密钥设置hostapd.conf。不幸的是,我在hostapd中没有找到允许连接的选项,即使hostapd.conf中存储的wpa密钥与客户端发送的密钥不匹配。唯一的解决方案是将假AP设置为打开,这根本不是解决方案,因为假AP和真AP应该具有相同的加密。我不是有意让这个线程沿着你不想走的路径走下去。很抱歉。但是,如果你知道真实AP的WPA密钥,你不能使用一个无线设备连接到它,使用该WPA密钥并让另一个无线设备广播你的AP吗?然后,您可以在hostapd中设置wpa_密码短语和ssid以匹配真实的AP,这样客户机就可以假定它是真实的AP。