精华内容
下载资源
问答
  • arp攻击软件
    2020-10-24 22:40:02

    023823a242a7e345ccbb398866f47ba2.png

    对于网络攻击,在各种攻击手段中大家最熟悉的要数ddos和cc攻击,关于ARP攻击资讯了解应该不是很多。什么是arp攻击?关于ARP的资讯,想跟大家分析一下,希望大家对网络攻击有多一层的了解。

    arp攻击是属于局域网内的一种攻击方式,通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。arp攻击一般可以导致网内其他机器出现“IP地址冲突”或不能上网的症状。

    遇到arp攻击,可以解决的方法有:
    1. ARP防火墙安装
    目前市场上,大多数都是安全辅助软件均内置ARP防火墙,例如:360安全卫士(内置)、金山贝壳ARP专杀、金山卫士、彩影等等。

    2.安装杀毒软件
    杀毒软件可以有效的防止ARP病毒进入机器。

    3.已经中毒的处理方法
    由于中毒后网速会减慢,杀软失效。所以应该用专门的专杀杀毒之后,安装杀毒软件保护系统。

    arp攻击主要是存在于局域网网络中,局域网中若有一台计算机感染ARP木马,则感染该ARP木马的系统将会试图通过“ARP欺骗”手段,截获所在网络内其它计算机的通信信息,并因此造成网内其它计算机的通信故障。

    更多相关内容
  • ARP攻击软件

    2017-07-06 17:45:44
    ARP攻击演示软件,分析攻击原理,积极预防 黑客,小白,白帽子,arp,arp攻击原理
  • 局域网攻击软件的检测方法及防护措施 局域网arp攻击软件.docx
  • arp攻击软件

    2011-10-10 11:02:26
    arp攻击软件,测试,做实验。攻击环境的构建
  • ARP 攻击监控软件

    2013-11-06 13:16:40
    防止ARP 攻击的监控软件,我使用了一下,感觉还不错。
  • arp攻击软件 免安装

    2009-01-01 10:22:32
    这是一款很好的反arp攻击软件,小巧而且免安装
  • 防护arp攻击软件最终版-Antiarp安全软件 使用方法: 1、填入网关IP地址,点击〔获取网关地址〕将会显示出网关的MAC地址。点击[自动防护]即可保护当前网卡与该网关的通信不会被第三方监听。注意:如出现这种欺骗...
  • android检测arp攻击

    2021-06-04 08:15:49
    前段时间突然和别人讨论到arp检测这块...下面是wifi管家检测arp攻击的类,进入的时候会发送一个message,然后执行handleMessage函数public void handleMessage(Message arg8) {int v6 = 10001;boolean v0 = true;su...

    前段时间突然和别人讨论到arp检测这块的实现,心血来潮,将腾讯的wifi管家给反编译了一下,看了它如何实现arp检测,下面是分析的结果。

    下面是wifi管家检测arp攻击的类,进入的时候会发送一个message,然后执行handleMessage函数

    public void handleMessage(Message arg8) {

    int v6 = 10001;

    boolean v0 = true;

    super.handleMessage(arg8);

    switch(arg8.what) {

    case 10001: {

    goto label_7;

    }

    case 10002: {

    goto label_42;

    }

    }

    return;

    label_7:

    if((bth.a(this.eES)) && (bth.b(this.eES).refresh()) && (bap.a(bth.b(this.eES)))) {

    bth.c(this.eES);

    if(bth.d(this.eES) == 3) {

    bth.e(this.eES);

    bth.a(this.eES, 0);

    }

    bth.b(this.eES).Fu();

    try {

    v0 = bth.b(this.eES, 10001);

    }

    catch(Exception v1) {

    }

    }

    if(bth.f(this.eES) == null) {

    return;

    }

    if(!v0) {

    return;

    }

    this.sendEmptyMessageDelayed(v6, bth.g(this.eES));

    return;

    label_42:

    bth.a(this.eES, false);

    bth.c(this.eES, 0);

    int v2 = 0;

    boolean v1_1 = true;

    while(v2 != 2) {

    try {

    if((bth.b(this.eES).refresh()) && (bap.a(bth.b(this.eES)))) {

    if(v2 == 0) {

    bth.h(this.eES);

    }

    else {

    bth.e(this.eES);

    }

    bth.b(this.eES).Fu();

    v1_1 = bth.b(this.eES, 10002);

    if(bth.i(this.eES) != 0) {

    break;

    }

    SystemClock.sleep(700);

    }

    }

    catch(Throwable v2_1) {

    break;

    }

    ++v2;

    }

    if(bth.f(this.eES) != null && (v1_1)) {

    this.sendEmptyMessageDelayed(v6, bth.g(this.eES));

    }

    bth.a(this.eES, true);

    }

    刚开始执行的时候,runnable的run函数调用handler发送10002,所以label_42是检测的入口函数,bth.h是调用this.Fo函数,首先看一下this.Fo函数:

    private void Fo() {

    int v1 = this.eGX.Ft();

    if(v1 != 0) {

    int v0;

    for(v0 = 0; v0 != 256; ++v0) {

    String v2 = bao.kR(v1);

    if(!v2.equals(this.eGX.eHl) && !v2.equals(this.eGX.eHj)) {

    ban.io(v2);

    }

    v1 = bao.kS(v1);

    }

    }

    }

    public int Ft() {

    int v0;

    DhcpInfo v1 = this.eHC.getDhcpInfo();

    if(v1 == null) {

    v0 = 0;

    }

    else {

    v0 = 16777215;

    if(v1.netmask != 0) {

    v0 = v1.netmask;

    }

    v0 &= v1.gateway;

    }

    return v0;

    }

    public static String kR(int arg2) {

    return (arg2 & 255) + "." + (arg2 >> 8 & 255) + "." + (arg2 >> 16 & 255) + "." + (arg2 >> 24 & 255);

    }

    static {

    ban.eHh = new byte[]{-126, 40, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 32, 67, 75, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, 33, 0, 1};

    }

    public static void io(String arg6) {

    try {

    DatagramSocket v0_1 = new DatagramSocket();

    DatagramPacket v1 = new DatagramPacket(ban.eHh, ban.eHh.length, InetAddress.getByName(arg6), 137);

    v0_1.setSoTimeout(100);

    v0_1.send(v1);

    v0_1.close();

    }

    catch(Exception v0) {

    }

    }

    public static int kS(int arg2) {

    int v0 = (arg2 >> 24 & 255) + 1;

    return v0 <= 255 ? v0 << 24 | 16777215 & arg2 : -1;

    }

    可以看到这个函数的作用是针对这个局域网的子网下除了当前连接wifi的网关以外的所有ip发送udp请求,以此来让arp文件里记录局域网子网下所有的ip和mac地址,bth.e也是发送udp,不过它只向网关ip发送

    arp文件初始化之后,紧接着调用Fu()函数,如下:

    public ArrayList Fu() {

    BufferedReader v0_2;

    BufferedReader v1 = null;

    this.eHy.clear();

    try {

    v0_2 = new BufferedReader(new FileReader("/proc/net/arp"));

    }

    catch(Throwable v0) {

    goto label_50;

    }

    catch(Exception v0_1) {

    v0_2 = v1;

    goto label_40;

    }

    try {

    v0_2.readLine();

    while(true) {

    String v1_3 = v0_2.readLine();

    if(v1_3 == null) {

    break;

    }

    String[] v1_4 = v1_3.split("[ ]+");

    if(v1_4.length < 6) {

    continue;

    }

    String v2 = v1_4[0];

    v1_3 = v1_4[3];

    if(v2.equals(this.eHj)) {

    this.eHk = v1_3;

    }

    if(v1_3.equals("00:00:00:00:00:00")) {

    continue;

    }

    this.eHy.add(new String[]{v2, v1_3, ""});

    }

    }

    catch(Exception v1_1) {

    goto label_40;

    }

    catch(Throwable v1_2) {

    goto label_58;

    }

    if(v0_2 == null) {

    goto label_42;

    }

    try {

    v0_2.close();

    }

    catch(IOException v0_3) {

    }

    ...这段代码对this.eGX.eHy变量重新赋值,这个变量就是用来存放arp文件内容的,下面会用到这个变量,它的内容其实就是”/proc/net/arp”文件的内容

    变量初始化完之后,这时候arp内容就可以进行分析了,然后执行bth.b函数,它调用了dY函数,如下:

    private boolean dY(int arg11) {

    Object v1_1;

    Object v2;

    boolean v8 = false;

    if(!TextUtils.equals(this.eHc, this.eGX.BSSID)) {

    this.Fn();

    }

    else {

    int v7 = 0;

    boolean v1 = true;

    while(v7 != this.eGX.eHy.size()) {

    CharSequence v4 = this.eGX.eHy.get(v7)[0];

    Object v3 = this.eGX.eHy.get(v7)[1];

    if(!TextUtils.equals(v4, this.eGX.eHj)) {

    this.eGZ.put(v3, v4);

    }

    else {

    Object v0 = this.eGY.get(v4);

    if(TextUtils.isEmpty(((CharSequence)v0))) {

    this.eGY.put(v4, v3);

    }

    else {

    if(v3 != null && (TextUtils.equals(((CharSequence)v0), ((CharSequence)v3)))) {

    goto label_29;

    }

    if(TextUtils.equals(((CharSequence)v3), this.eGX.eHk)) {

    v2 = this.eGY.get(v4);

    }

    else {

    String v2_1 = ((String)v3);

    }

    v0 = this.eGZ.get(v3);

    if(v0 == null || (((String)v0).equals(v4))) {

    this.nx();

    String v1_2 = this.ah(((String)v2), ((String)v4));

    }

    else {

    v1_1 = v0;

    }

    this.kP(arg11);

    if(this.eHb != null) {

    this.eHb.a(((String)v1_1), ((String)v2), this.im(((String)v1_1)), arg11, this.eGU, this.c(this.eGX.eHj, this.eGX.eHk, ((String)v1_1), ((String)v2)));

    }

    this.reset();

    v1 = false;

    }

    }

    label_29:

    ++v7;

    }

    v8 = v1;

    }

    return v8;

    }

    上面的v7是this.eGX.eHy的元素下标,目的是为了遍历this.eGX.eHy,所以这边是对arp文件内容进行分析的函数,首先对this.eGX.eHy进行解释,这个变量是一个ArrayList,上面提到的Fu()函数初始化了这个变量,它将arp文件里的每行记录变成this.eGX.eHy的一条记录,下面是执行查看arp的结果,可以看到每行的数据包含六个元素,第一个是Ip,第四个是mac address

    1285898f2e52980e5c6889a9bedd538f.png

    然后再解释一下this.eGX.BSSID和this.eGX.eHj怎么来的,下面是它的初始化函数

    public boolean refresh() {

    int v7 = 34;

    boolean v0 = false;

    try {

    WifiInfo v2 = this.eHC.getConnectionInfo();

    DhcpInfo v3 = this.eHC.getDhcpInfo();

    if(!this.eHC.isWifiEnabled()) {

    return v0;

    }

    if(!this.Fs()) {

    return v0;

    }

    if(v2 != null && v3 != null && v2.getSupplicantState() == SupplicantState.COMPLETED) {

    this.SSID = v2.getSSID();

    int v4 = v2.getIpAddress();

    if(this.SSID.charAt(0) == v7 && this.SSID.charAt(this.SSID.length() - 1) == v7) {

    this.SSID = this.SSID.substring(1, this.SSID.length() - 1);

    }

    if(!this.Fs()) {

    return v0;

    }

    if(TextUtils.isEmpty(this.SSID)) {

    return v0;

    }

    if("".equalsIgnoreCase(this.SSID)) {

    return v0;

    }

    if(v4 == 0) {

    return v0;

    }

    this.BSSID = v2.getBSSID();

    this.eHj = bao.kR(v3.gateway);

    ...通过上面可以看到this.eGX.BSSID其实就是当前连接的wifi的bssid,this.eGX.eHj其实就是网关ip

    最后来看一下怎样检测arp攻击,this.eGZ是一个HashMap,key是mac地址,value是ip,下面是找出现在的arp文件里网关Ip对应的mac是否和之前的不一样的arp记录

    if(!TextUtils.equals(v4, this.eGX.eHj)) {

    this.eGZ.put(v3, v4);

    }

    else {

    Object v0 = this.eGY.get(v4);

    if(TextUtils.isEmpty(((CharSequence)v0))) {

    this.eGY.put(v4, v3);

    }

    this.eGY也是一个HashMap,key是ip,value是mac,下面的代码是找出网关ip对应的多个mac地址情况,如果发现网关ip对应的mac和之前的不一样,那么说明遇到arp攻击,就需要发送攻击者相关信息给服务器,注意的是this.eGY在开始检测前会先将arp里面的网关ip和mac地址放进去,然后刷新arp,所以才会出现同一个网关ip对应多个Mac情况

    else {

    if(v3 != null && (TextUtils.equals(((CharSequence)v0), ((CharSequence)v3)))) {

    goto label_29;

    }

    if(TextUtils.equals(((CharSequence)v3), this.eGX.eHk)) {

    v2 = this.eGY.get(v4);

    }

    else {

    String v2_1 = ((String)v3);

    }

    v0 = this.eGZ.get(v3);

    if(v0 == null || (((String)v0).equals(v4))) {

    this.nx();

    String v1_2 = this.ah(((String)v2), ((String)v4));

    }

    else {

    v1_1 = v0;

    }

    this.kP(arg11);

    if(this.eHb != null) {

    this.eHb.a(((String)v1_1), ((String)v2), this.im(((String)v1_1)), arg11, this.eGU, this.c(this.eGX.eHj, this.eGX.eHk, ((String)v1_1), ((String)v2)));

    }

    this.reset();

    v1 = false;

    }private String ah(String arg6, String arg7) {

    int v1;

    for(v1 = 0; v1 != this.eGX.eHy.size(); ++v1) {

    String v3 = this.eGX.eHy.get(v1)[0];

    if((this.eGX.eHy.get(v1)[1].equals(arg6)) && !v3.equals(arg7)) {

    String v0 = v3;

    return v0;

    }

    }

    return "0.0.0.0";

    }

    现在真相大白了,主要检测方法:

    1. arp攻击就是发送arp广播让局域网内的所有设备将网关ip对应的mac地址改成攻击者的mac地址,这样的话被攻击者的网关ip是对的,但是mac地址变了,因此只要找出来当前网络的网关mac地址对应的所有Ip,里面肯定包括了真正的网关ip和攻击者的网关ip,另外根据上面的代码还会出现同一个网关ip对应多个Mac的情况,这种事因为检测开始前先将arp里面的网关ip和mac地址放进去,然后检测开始时会刷新arp文件,如果受到攻击,此刻的网关ip对应的mac可能会和之前的不一样

    2. 扫描局域网内子网下的所有ip,然后获取arp文件内容,生成一个三维数组,第一个元素是ip,第二个是mac地址,最后一个不用管

    3. 将上面获取到的三维数组进行遍历,找出网关ip对应是否多个mac地址

    4. 如果发现网关ip对应至少两个mac地址,那么不等于网关Ip的那个mac地址就是攻击者的mac地址,然后再找出这个mac对应的不等于网关ip的那个ip就是攻击者的真实ip

    5. 可能大家也会遇到一个疑惑,上面的检测是基于刷新后的arp里面的网关对应的mac是正确的基础上的,那如何保证网关mac此刻是正确的呢,抓包看了一下,wfi管家并没有加快wifi网关mac的更新,测了一下,我的手机上是30秒左右更新一次网关mac,所以初步怀疑只有在刚好更新mac的这段时间内wifi管家才能检测出问题。

    展开全文
  • LINUX 中间人攻击之arp攻击(图文解说)

    千次阅读 2021-11-19 16:51:25
    一、ARP攻击概述 ARP攻击,作为中间人攻击手段中的一种,一是可以实现对局域网中用户的断网攻击,二是可以获取到受害用户的数据流量包括浏览的网站,图片,甚至账号密码(PS:想想还是有点恐怖的!),接下来,让我...

    一、ARP攻击概述

    ARP攻击,作为中间人攻击手段中的一种,一是可以实现对局域网中用户的断网攻击,二是可以获取到受害用户的数据流量包括浏览的网站,图片,甚至账号密码(PS:想想还是有点恐怖的!),接下来,让我先给你讲讲什么是ARP攻击的类型和原理吧!

    (一)ARP的原理

    ARP,即Address Resolution Protocol,地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。简单来说,就是将IP地址转换为物理地址(PS:在一个局域网中主机之间的通信是通过物理地址来完成的,而不用ip地址来通信(前者是烧录在设备上,固定不变的;后后者是随机的,所以,通过固定的地址很找到相应的主机))。附:计算机中会维护一个ARP缓存表,里面就是各个IP地址与物理地址之间的映射关系,可通过arp -a指令查看

     (二)ARP的攻击类型

    ARP攻击大致分为两种类型:

    对主机欺骗:欺骗对象为主机

    对网关欺骗:欺骗对象为网关,可以获得其他主机的数据流量

    通过两幅图片来深刻的理解:

      

    二、实现ARP攻击的原理

    (一)建立环境

    上图展示的是在一个局域网中的三台主机(pc1、pc2、pc3)分别接在sw1这台交换机上,所对应的端口分别为p1、p2、p3;此时我们把pc3当成攻击者hacker (由黑客操控),来入侵这片局域网。搭建好这样的环境后,进行接下来的操作。

    (二)中间人(被操控的PC)窃听 

     1、此时,pc1和pc2开始通信,在此之前,pc1并不知道pc2的mac地址,pc1发送arp广播包来获取pc2的mac地址,由于arp协议采用广播的形式,交换机接收到数据包后会进行泛红,将广播包通过接口p2、p3依次发送给这两台主机。-----广播包会逼交换机泛红。

    2、pc2接到广播包后,将自己的mac地址以单播的形式回应给pc1;而pc3没有返回arp包,但是处于监听状态,为后续攻击做好准备

    3、最后pc1和pc2通信结束,并将彼此的IP-MAC对应关系记录在自己的ARP缓存表中;交换机也会把mac地址所对应的接口信息记录在MAC地址表中-----也称为CAM缓存表。

    切记,交换机属于二层设备,通过mac地址来转发数据,不会识别ip地址。

     (三)欺骗成功

    接下来,将会演示pc3是如何发起ARP泛红的

    在此之前,我们说明下ARP缓存表缓存信息的规则------以最新收到的数据为准,来刷新旧的缓存信息。

    所以,当pc1收到pc2的回应包时,里面包含的有pc2的ip地址和相对应的mac地址;然而,当pc2先回包后,pc3也开始向pc1回包,此时包里包含的数据为仍为pc2的ip地址,但mac地址换为了pc3自己的mac地址。根据ARP缓存表的缓存规则,会存储最新的信息,所以,pc1的arp缓存表会存储后发来的pc3回应包所对应的ip-mac信息。

    最终,当pc1再次给pc2发送消息时,会以ARP缓存表中存储的mac地址发送信息,不知不觉,原本发给pc2的信息,最后到达了pc3的手中。实现了单方面的欺骗

    (四)实现双向欺骗 

     pc3欺骗了pc1同样也可以欺骗pc2,以类似的步骤最终实现了双向欺骗-------PC1和PC2的通信数据流被PC3拦截,形成了典型的"中间人攻击"------如下图所示

    通过以上的步骤,pc3变成了黑客攻击网络的工具,轻者会导致pc1和pc2两台主机上不了网

    -----pc3收到两者发来的数据后直接丢弃;重者pc1和pc2的关键数据会被pc3窃取,造成更大的损失,而且此时的pc3仍然会帮你转发数据,给你造成一种网络正常的错觉!

    注:此处的图片源自网络(侵删)

     ps:后续的实机演练会在后面补充,此处主要是讲下原理,若有不足之处,欢迎大家指正!

    展开全文
  • MAX老大推荐的防ARP攻击软件下载.rarMAX老大推荐的防ARP攻击软件下载.rar
  • 一个应用简单的反arp攻击的绿色安全软件
  • AntiArp防arp攻击软件

    2008-11-05 12:54:34
    软件仅支持单网卡,在2000/xp测试通过 需要收集以下两个信息:本机MAC地址,本机的网关地址
  • ARP攻击软件

    2007-10-08 15:23:46
    软件可以有效的防止ARP攻击
  • ARP攻击嗅探软件

    2014-12-10 12:27:15
    winarpspoof v0.6
  • 本文主要讲解了无线路由器以及ARP攻击的相关内容。如何具体的排除技巧和相关的故障处理,首先就是路由器ARP的排除技巧了。之后对于连接错误等问题在进行一下解析。
  • ARP攻击检测

    2019-02-13 14:43:28
    来自德国的arp检测工具,检测arp攻击和MAC地址异常情况
  • 兖州矿业(集团)公司济宁三号煤矿开展了对ARP攻击原理及解决方法的研究,保证了通信的顺利进行。(1)按照以下方法查看是否受到ARP攻击:①查看ARP缓存表。在命令提示符下,输入"arp-a"查看ARP缓存表中内容。发现自己电脑...
  • ARP攻击原理

    千次阅读 2020-12-29 16:19:55
    假设PC3这台主机安装了ARP攻击软件或遭受ARP病毒,成为这个网络的攻击者( hacker),PC1和PC2是如何通信的。 PC1需要跟PC2通信,通过ARP请求包询问PC2的MAC地址,由于采用广播形式,所以交换机将ARP请求包从接口P1...

    一.ARP攻击原理

    但凡局域网存在ARP攻击,都说明网络存在“中间人”
    中间人
    在这个局域网里面,PC1、PC2、PC3三台主机共同连接到交换机SW1上面,对应3个接口port1/2/3。假设PC3这台主机安装了ARP攻击软件或遭受ARP病毒,成为这个网络的攻击者( hacker),PC1和PC2是如何通信的。

    通信

    1. PC1需要跟PC2通信,通过ARP请求包询问PC2的MAC地址,由于采用广播形式,所以交换机将ARP请求包从接口P1广播到P2和PC3。(注∶交换机收到广播/组播/未知帧都会其他接口泛洪)
    2. PC2根据询问信息,返回ARP单播回应包;此时PC3作为攻击者,没有返回ARP包,但是处于"监听"状态,为后续攻击做准备。
    3. PC1和PC2根据ARP问答,将各自的ARP映射信息(IP-MAC)存储在本地ARP缓存表。
    4. 交换机根据其学习机制,记录MAC地址对应的接口信息,存储在CAM缓存表(也称为MAC地址表)。交换机收到数据包时,会解封装数据包,根据目标MAC字段进行转发。
    5. 关于上面的图解,我们要记住这些关键知识:
      ①主机通信需要查找ARP表,而交换机通信需要查找CAM表(路由器则查找Route表)。注:ARP表:ip<->mac CAM表:mac<->port ( Route表: route<->port )
      ②交换机基于源MAC地址学习,基于目的MAC地址转发。
      ③同一局域网内,攻击者可以根据主机的ARP广播请求监听其IP和MAC信息。
      注:这里是"被动监听”,跟后面要谈到的"主动扫描”,原理上有区分

    接下来我们看PC3如何发起ARP攻击
    ARP攻击
    正常情况下,若收到的ARP请求不是给自己的,则直接丢弃;而这里PC3 (Hacker)在监听之后,发起了ARP回应包:我就是PC2 (IP2-MAC3)。从拓扑可以出现,PC3明明是IP3对应MAC3,很显然这就是一个ARP欺骗行为。于此同时,PC2正常的ARP回应包也交到了PC1手中,我们来看PC1接下来如何处理的:

    ARP欺骗1
    PC1收到两个ARP回应包,内容分别如下:
    ③我是PC2,我的IP地址是IP2,我的MAC地址是MAC2;
    ③我是PC2,我的IP地址是IP2,我的MAC地址是MAC3;
    网络协议里条种表在处理缓存信息的方式:
    要么"先到先得”,要么"后到优先"。
    ARP和CAM表,就是遵循"后到优先"原则
    DHCP表,则遵循"先到先得"原则。
    只要持续不停发出ARP欺骗包,就一定能够覆盖掉正常的ARP回应包。稳健的ARP嗅探/渗透工具,能在短时间内高并发做网络扫描(例如1秒钟成千上百的数据包),能够持续对外发送欺骗包。
    无论如何,当PC1和PC2这种"小白"用户遇到PC3 (hacker)时,最终的结果一定是这样的:
    ARP欺骗2
    根据数据封装规则,当PC1要跟PC2进行通信时,无论是发生PING包还是发送其他数据,首先要查找ARP表…然后在网络层打上源目IP,在链路层打上源目MAC,然后将数据包发送给交换机。交换机收到之后对数据进行解封装,并且查看CAM表(基于目的MAC转发),由于目标MAC3对应Port3,所以交换机自然而然将其转发给PC3。
    就这样,PC1本来要发给PC2的数据包,落到了PC3(Hacker)手里,这就完成了一次完整的ARP攻击。反过来,如果PC2要将数据包发送给PC1,PC3仍然可以以同样的ARP欺骗实现攻击,这就有了下面这张图(PC3既欺骗了PC1,也欺骗了PC2)。

    ARP欺骗3
    此时,PC1和PC2的通信数据流被PC3拦截,形成了典型的"中间人攻击"。

    1. 玫击者既然操控了数据流…那么直接断开通信是轻而易举的…则断网攻击",例如,PC1发给PC2的数据在PC3这里可以直接丢弃,而如果这里的PC2是一台出口路由器(无线路由器),那就意味着PC1直接无法连上互联网。
    2. "断网攻击"显然容易被发现,所以就有了更加常见的应用-“限速”。
    3. 任何基于明文传输的应用,都可以被窃取。例如,如果一个网站不是HTTPS协议,而是基于HTTP明文传输,那么当你登录这个网站时,你的密码就会被窃取。除了http (web应用),常见的还有telnet、ftp、pop3/smtp/imap(邮箱)等应用,都很容易泄露密码。

    二.ARP渗透工具底层原理分析

    1. Hacker接入了一个WiFi网络,这个10.1.20.0/24便是所在的网段。刚进来一个陌生网络,Hacker只知道自己的IP信息,例如P地址是10.1.20.253,网关地址是10.1.20.254,而这个局域网的其他设备是什么?有多少台?地址分布是多少?Hacker都不知道,接下来怎么办呢?是不是要直接发动ARP攻击了?不用这么着急,咋们至少要先了解下这个网络,进行基本的扫描和踩点。这个时候通过ARP工具对这个WiFi网络进行ARP扫描
    2. 进行"盲扫"或者"暴力扫描":反正我不知道网络到底有多少主机,那我就尝试一下把整个网段全部问一遍得了。好比老师上课点名,把每个学生的桌位号念一遍,谁举手就到勤,没举手就算逃课。
    3. 在ARP应答信息里面,除了IP地址和MAC信息,我们还能看到相关的设备厂商信息,例如cisco、meizu、apple、xiaomi等,这其实就是依靠MAC地址前面24位的OUI(机构唯一标识符)来识别的,Wireshark或扫描器能够帮我们将OUI转为对应的厂商(还有一些扫描器基于Netbios协议,还能找到电脑的主机名)。通过扫描,我们已经知道了整个网络的主机信息,例如20.254对应cisco,应该是路由器,20.248对应apple,是苹果手机,20.249对应xiaomi,是小米手机,以此类推)…接下来,如何进行ARP欺骗攻击呢?
    4. 根据之前的信息,我们知道00:08:ca:86:f8:0f其实就是hacker的mac地址,并且对应的真正的IP地址应该是10.1.20.253。而这里很明显是hacker在欺骗局域网其他主机,它对外声称:自己就是"所有人"。尤其是上面标红的主机,我们已经知道是小米、思科、苹果等设备,但是hacker都声明是自己!这样做的意义在于覆盖掉其他主机的ARP缓存表信息,并生成错误的ARP映射,最终将通信流量交给hacker。当然,还有另外一种ARP欺骗的做法: hacker告诉所有人,自己就是网关。因为其他主机访问互联网必经之路便是网关(出口路由器/无线路由器),通过这种方式,同样可以截取到用户数据流。

    三.ARP攻击总结

    1. ARP缓存表基于“后到优先"原则,IP与MAC的映射信息能被覆盖;
    2. ARP攻击基于伪造的ARP回应包,黑客通过构造"错位"的IP和MAC映射,覆盖主机的ARP.表(也被称为"ARP毒化"),最终截取用户的数据流;
    3. 一旦遭受ARP攻击,账号密码都可能被窃取(如果通信协议不是加密的);
    4. 通过wireshark数据包分析,我们掌握了真实网络中ARP底层攻击原理及数据包组成。

    四.VMware虚拟网卡模式:

    1. NAT地址翻转模式,可以访问互联网,共亨真机的IP地址,外部不知道有虚拟机
    2. Bridge桥接模式,可以访问互联网,使用各自的IP地址,外部知道有虚拟机
    3. Host-Only主机模式,不可以访问互联网,外部不知道有虚拟机
    展开全文
  • ARP攻击

    2021-05-06 09:35:21
    中文名:ARP(地址解析协议)攻击 外文名:addressresolution protocol 类 别:通信网络协议类 病毒方式:程序语言实现方式 属 性:位于TCP/IP协议栈中的网络层 影响:网络通道阻塞、网络设备的承载过重 文章目录 ...
  • ARP攻击危害:众所周知,ARP攻击变得日益猖狂,局域网内频繁性区域或整体掉线、IP地址冲突;网速时快时慢。极其不稳定,严重影响了网络的正常通讯。那么如何排查ARP网络攻击呢?首先诊断是否为ARP病毒攻击1、当发现...
  • arp冲突攻击

    2018-08-05 18:39:02
    arp冲突攻击arp冲突攻击arp冲突攻击arp冲突攻击
  • 软件ARP攻击检测工具来自网络或由网友发布,本站提供免费下载,软件ARP攻击检测工具仅供学习网络安全技术所用,软件经过本站软件测试,为了安全,大家还是自行测试。学习过程中请遵循国家相关法律法规。 版权申明...
  • 一、ARP攻击概述 在上篇文章里,我给大家普及了ARP协议的基本原理,包括ARP请求应答、数据包结构以及协议分层标准,今天我们继续讨论大家最感兴趣的话题:ARP攻击原理是什么?通过ARP攻击可以做什么,账号是否可以...
  • ARP攻击与欺骗

    2021-12-02 14:25:11
    文章目录前言1.1 ARP攻击和ARP欺骗的原理1.1.1 ARP攻击的原理1.1.2 ARP欺骗的原理1.2 ARP攻击应用案例1.3 处理ARP故障1.4 防御ARP攻击和ARP欺骗并查找攻击主机总结 前言 网络管理员在网络维护阶段需要处理各种各样的...
  • ARP协议概述 ARP协议(address resolution protocol)地址解析协议。 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址,所以用ARP解析协议将IP地址解析成...
  • arp攻击防御软件合集

    2011-05-13 11:33:46
    包括p2p(多个) 反p2p 反聚生网管 antiarp skiller.7
  • arp攻击测试软件.rar

    2012-02-04 01:47:25
    arp攻击测试软件.rar
  • sniffer Pro对ARP协议的分析、捕获与模拟攻击过程学习记录!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,943
精华内容 6,777
关键字:

arp攻击软件