对于无线WiFi的攻击:deauth_attacks和apfake_attacks

本文详细介绍了无线WiFi的两种攻击方式——deauth攻击和apfake攻击。deauth攻击通过伪造取消身份验证帧导致客户端与AP断开连接,常用于无线中间人攻击。apfake攻击则通过创建大量虚假AP干扰用户正常连接。实验环境为kali Linux,通过抓包分析展示了攻击流程和数据包结构。

对于无线WiFi的攻击:deauth_attacks和apfake_attacks

(已实现)

演示的视频:

视频提取码:c9w8
一、deauth攻击

  • deauth_attacks介绍

又名取消验证洪水攻击,国际上称之为De-authentication Flood Attack,全称为取消身份验证洪水攻击或验证阻断洪水攻击,通常被简称为Deauth攻击,是无线网络拒绝服务攻击的一种形式。它旨在通过欺骗从AP到客户端单播地址的取消身份验证帧来将客户端转为未关联/未认证的状态。
在这里插入图片描述攻击者向整个网络发送了伪造的取消身份验证报文,从而阻断了合法用户和AP之间的连接。当客户端试图与AP重新建立连接时攻击者还在继续向信道中发送取消身份验证帧,这将导致客户端和AP始终无法重连。
它旨在通过欺骗从AP到客户端单播地址的取消身份验证帧来将客户端转为未关联/未认证的状态。
在这里插入图片描述需要说明的是,取消身份验证洪水攻击(De-authenticationFloodAttack)和取消身份验证广播攻击(De-authenticationBroadcastAttack)原理基本一致,只是在发送程度及使用工具上有所区别。
但前者很多时候用于配合进行无线中间人攻击,而后者常用于纯粹的无线D.O.S,所以很多不够清楚的无线安全资料上会将两者放在一起提及。
本次讨论致力于对后者的研究,试图通过达成“让范围内WiFi设备全部掉线”的目标来验证实验成功。

  • 攻击流程
    注:本实验使用的环境是kali虚拟机,kali系统自带这些攻击模块,可以直接查看其源代码
  1. 通过deauth_getpacket()函数不断地循环嗅探得到一个目标AP的list,也可以自己手动设置目标AP
 while(1) {
        sniffed = osdep_read_packet();
        if (sniffed.len == 0) exit(-1);
        
        hdr = (struct ieee_hdr *) sniffed.data;
        
        if ((hdr->type != IEEE80211_TYPE_DATA) && (hdr->type != IEEE80211_TYPE_QOSDATA)) continue;
        if (stealth && ((hdr->flags & 0x03) != 0x01)) continue; //In stealth mode do not impersonate AP, IDS will figure out the duplicate SEQ number!
    
        if (accept_target(&sniffed, isblacklist, greylist)) break;
      }

deauth_getpack()函数的UML图deauth_getpack()函数的UML图
2.通过create_ieee_hdr()函数伪造802.11管理数据帧
create_ieee_hdr()函数的UML图

3.通过osdep_send_packet()函数发送出伪造的数据包

int osdep_send_packet(struct packet *pkt)
{
	struct wif *wi = _wi_out; /* XXX globals suck */
	if (wi_write(wi, pkt->data, pkt->len, NULL) == -1) {
		switch (errno) {
		case EAGAIN:
		case ENOBUFS:
			usleep(10000);
			return 0; /* XXX not sure I like this... -sorbo */
		}

		perror("wi_write()");
		return -1;
	}

	return 0;
}

4.总结:通过不断向目标AP发送伪造的以源地址为广播地址的请求断开连接数据包,导致实验AP收到该数据包后会向广播地址返回同意解除的数据包,以至整个局域网都收到了解除连接的数据包并与AP断开连接。
在这里插入图片描述

  • 抓包分析
    IEEE 802.11是现今无线局域网通用的标准,这是代码生成数据包,里面我注释了几个重要的字段。
    尤其注意的是uint8_t type,我们需要伪造的是管理帧(管理WiFi的连接与断开等操作,用00表示)
    在这里插入图片描述
    我们来看看它在数据链路层的帧结构
    在这里插入图片描述
    由下图可知,伪造的管理帧 (00表示管理帧)源地址为广播地址,目的地址为实验AP(一个小米路由器),Subtype中的Disassociation位为a0即1010,表示解除关联;
    在这里插入图片描述

实验AP收到该数据包后会向广播地址返回同意解除的数据包,以至整个局域网都收到了解除连接的数据包并与AP断开连接。
在这里插入图片描述通过不断地向实验AP发送伪造的断开连接数据包,可使其他正常主机无法连接上该AP,达成断开WiFi攻击的目的。
我把当初抓的包也贴上来吧,用wireshark打开即可
提取码:hx9l
二、apfake攻击
实现效果就是伪造出很多垃圾WiFi让用户无法选择正常的WiFi进行连接,效果请看演示视频
有什么问题的话可以问我,强烈建议各位看演示视频

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值