关联漏洞
描述
Proof of Concept of ESP32/8266 Wi-Fi vulnerabilties (CVE-2019-12586, CVE-2019-12587, CVE-2019-12588)
介绍
## ESP32/ESP8266 Wi-Fi Attacks
**This repository is part of a research outcome from the [ASSET Research Group](https://asset-group.github.io/).**

This repository demonstrates 3 Wi-Fi attacks against the popular ESP32/8266 IoT devices:
* **[Zero PMK Installation (CVE-2019-12587)](https://matheus-garbelini.github.io/home/post/zero-pmk-installation/)** - Hijacking ESP32/ESP8266 clients connected to enterprise networks;
* **[ESP32/ESP8266 EAP client crash (CVE-2019-12586)](https://matheus-garbelini.github.io/home/post/esp32-esp8266-eap-crash/)** - Crashing ESP devices connected to enterprise networks;
* **[ESP8266 Beacon Frame Crash (CVE-2019-12588)](https://matheus-garbelini.github.io/home/post/esp8266-beacon-frame-crash/)** - Crashing ESP8266 Wi-Fi devices.
**Follow the links on each vulnerability for more details and Espressif's patches.**
This vulnerabilities were found in SDKs of ESP32 and ESP8266. Their version were ESP-IDF v4.0-dev-459-gba1ff1692 and NONOS-SDK v3.0-103-g7a31cb7 respectivelly at the time of the discovery.
While a custom version of hostapd is provided to test the first 2 vulnerabilities, for the last one, an ESP8266 is used to inject fake 802.11 beacon frames in order to crash others of its own (no pun intended!).
### PoC Building and running instructions
##### Running pre compiled binary
If you are running debian or ubuntu you can execute the already compiled hostapd in the folder `hostapd-2.8_binary`. Just run `hostapd-2.8_binary/run_hostapd_exploit.sh` to start the access point to test the vulnerability or `hostapd-2.8_binary/run_zero_pmk_EAP.sh` to start without this test. Be advised that you need to stop network services with `service network-manager stop` for your Wi-Fi interface to be free.
###### TLDR:
```shell
service network-manager stop
./run_zero_pmk_EAP.sh # to test against CVE-2019-12587 (remember to restart ESP first)
./run_crash_esp_EAP.sh # to test against CVE-2019-12586
```
##### Running from source
If for some reason the binary doesn't work with your system, you can compile the project `hostapd-2.8_source` by running the script `./buid.sh`. The script installs the following dependencies before running the tool: `build-essential pkg-config git libnl-genl-3-dev libssl-dev libnl-route-3-dev`.
After the build is successful, you can run the script `./run_zero_pmk_EAP.sh` to start the access point to test the vulnerability or `./run_hostapd_normal.sh` to start without the test.
###### TLDR:
```shell
./build
./run_zero_pmk_EAP.sh # to test against CVE-2019-12587 (remember to restart ESP first)
./run_crash_esp_EAP.sh # to test against CVE-2019-12586
```
##### Testing beacon frame crash (CVE-2019-12588)
In order to compile the code for esp8266 in folder **beacon_frame_crasher** , it's necessary to follow the steps in [ESP8266 Deauther](https://github.com/spacehuhn/esp8266_deauther/wiki/Installation#compiling-using-arduino-ide). This is a modified version of the board support package for ESP8266 that allows the injection of raw 802.11 frames. A binary is also provided for a quick test in `beacon_frame_crasher/ESP8266Crasher.ino.d1_mini.bin` in case you have a spare wemos d1 mini board. Note that this code is hardcoded to crash an ESP8266 configured for an access point with a ssid=TEST_KRA. As soon as the "beacon frame crasher" device starts, the other ESP8266 devices connected to the access point should restart intermittently.
Alternatively, if your Wi-Fi hardware supports monitoring and injection, you can run the python script:
```shell
sudo apt-get install -y aircrack-ng
sudo airmon-ng check kill
sudo airmon-ng wlan0 start # wlan0 is your wifi interface name
pip install scapy
python beacon_frame_crasher/ESP8266Crasher.py
```
### PoC Output
If your ESP device SDK is vulnerable to **CVE-2019-12587**, you should receive an output like this from hostapd:

If your ESP device SDK is vulnerable to **CVE-2019-12586**, you should receive an output like this from hostapd:

In this case, as the device is restarting every time it attempts a connection with hostapd, you should receive a lot of logs indicating re-connection. If you're monitoring the device serial port, you can also receive trace logs.
### Configuring
By default the PoC access point has the following default configuration:
* ssid=TEST_KRA
* channel=9
* bssid=28:c6:3f:a8:af:c5
* interface=wlan0
* server_cert=wpa2_server.pem
* private_key=wpa2_server.key
* user=matheus_garbelini
* user_password=testtest
* EAP method=PEAP
To change this options, change the file `hostapd.conf` in the root folder of hostapd (`hostapd-2.8_binary/hostapd.conf` or `hostapd-2.8_source/hostapd/hostapd.conf`). **Please change the interface parameter to match your Wi-Fi NIC, it's advised to leave other parameters as the default if you wish to test the ESP32/8266 client test codes. Correct certificates are also included (same from ESP-IDF repository), so no need to change them in hostapd folder.**
If you wish to change EAP methods or username credentials, just change `hostapd.eap_user`
##### Attention
Check if you your openssl library allows to use TLS version of 1.0. You can change this configuration normally in `/etc/ssl/openssl.cnf`, Changing the last lines to:
```shell
[system_default_sect]
MinProtocol = TLSv1.0
CipherString = DEFAULT@SECLEVEL=1
```
### Test client codes (optional)
The codes used for testing the vulnerable devices is in folder `esp_client_test_codes`.
`ESP32_Arduino_EAP_Client` and `ESP8266_Arduino_EAP_Client` can be compiled by using their respective Arduino board support packages ([arduino-esp32](https://github.com/espressif/arduino-esp32) and [arduino-esp8266](https://github.com/esp8266/Arduino)). As for non-arduino codes, ESP-IDF and ESP8266_NONOS_SDK are required to compile `ESP8266_EAP_Client` and `ESP32_EAP_Client`. Note that you need to use the same or earlier SDKs as mentioned here to trigger all the described vulnerabilities.
### Acknowledgments
**This research was partially supported by [Keysight Technologies](https://www.keysight.com/sg/en/home.html).**
文件快照
[4.0K] /data/pocs/7fa0176fb348afbdb774543a83c48ddb41a8173d
├── [4.0K] beacon_frame_crasher
│ ├── [4.9K] client_station.c
│ ├── [ 492] crafted_packet_1.pcapng
│ ├── [ 616] crafted_packet_2.pcapng
│ ├── [6.2M] esp8266-2.0.0-deauther.zip
│ ├── [1.5K] ESP8266Crasher.ino
│ ├── [203K] ESP8266Crasher.ino.d1_mini.bin
│ ├── [ 373] ESP8266Crasher.py
│ ├── [ 98K] invalid_beacon_frame1.png
│ └── [107K] invalid_beacon_frame2.png
├── [ 143] build.sh
├── [4.0K] docs
│ ├── [1.3M] attack_logo.png
│ ├── [ 36K] eap_crasher.png
│ ├── [ 67K] normal_behavor.png
│ └── [ 99K] zero_pmk.png
├── [4.0K] esp_client_test_codes
│ ├── [4.0K] ESP32_Arduino_EAP_Client
│ │ └── [1.4K] ESP32_Arduino_EAP_Client.ino
│ ├── [4.0K] ESP32_EAP_Client
│ │ ├── [4.0K] build
│ │ │ └── [4.0K] wpa_supplicant
│ │ │ └── [7.5K] test.txt
│ │ ├── [ 315] CMakeLists.txt
│ │ ├── [4.0K] main
│ │ │ ├── [ 229] CMakeLists.txt
│ │ │ ├── [ 353] component.mk
│ │ │ ├── [ 855] Kconfig.projbuild
│ │ │ ├── [1.4K] wpa2_ca.pem
│ │ │ ├── [3.7K] wpa2_client.crt
│ │ │ ├── [1.6K] wpa2_client.key
│ │ │ ├── [3.4K] wpa2_client.pem
│ │ │ ├── [6.0K] wpa2_enterprise_main.c
│ │ │ ├── [3.7K] wpa2_server.crt
│ │ │ ├── [1.6K] wpa2_server.key
│ │ │ └── [3.4K] wpa2_server.pem
│ │ ├── [ 187] Makefile
│ │ ├── [3.2K] README.md
│ │ ├── [ 24K] sdkconfig
│ │ └── [ 24K] sdkconfig.old
│ ├── [4.0K] ESP8266_Arduino_EAP_Client
│ │ └── [1.8K] ESP8266_Arduino_EAP_Client.ino
│ └── [4.0K] ESP8266_EAP_Client
│ ├── [4.0K] include
│ │ ├── [1.4K] README
│ │ └── [1.3K] user_config.h
│ ├── [4.0K] lib
│ │ ├── [1.0K] README
│ │ └── [1.3K] user_config.h
│ ├── [ 565] platformio.ini
│ ├── [4.0K] src
│ │ ├── [5.1K] main.c
│ │ └── [1.3K] user_config.h
│ └── [4.0K] test
│ └── [ 490] README
├── [4.0K] hostapd-2.8_binary
│ ├── [1.4K] ca.pem
│ ├── [7.4M] hostapd
│ ├── [ 276] hostapd.accept
│ ├── [344K] hostapd_cli
│ ├── [ 285] hostapd.conf
│ ├── [ 144] hostapd.deny
│ ├── [ 287] hostapd.eap_user
│ ├── [ 909] hostapd.eap_user_sqlite
│ ├── [ 142] hostapd.radius_clients
│ ├── [ 409] hostapd.sim_db
│ ├── [ 282] hostapd.vlan
│ ├── [ 834] hostapd.wpa_psk
│ ├── [ 11K] openssl.cnf
│ ├── [ 33] run_crash_esp_EAP.sh
│ ├── [ 33] run_hostapd_normal.sh
│ ├── [ 33] run_zero_pmk_EAP.sh
│ ├── [1.6K] wpa2_server.key
│ └── [3.4K] wpa2_server.pem
├── [4.0K] hostapd-2.8_source
│ ├── [7.5K] CONTRIBUTIONS
│ ├── [ 965] COPYING
│ ├── [4.0K] hostapd
│ │ ├── [6.3K] android.config
│ │ ├── [ 22K] Android.mk
│ │ ├── [1.4K] ca.pem
│ │ ├── [ 63K] ChangeLog
│ │ ├── [124K] config_file.c
│ │ ├── [ 720] config_file.h
│ │ ├── [ 956] csr.csr
│ │ ├── [110K] ctrl_iface.c
│ │ ├── [ 998] ctrl_iface.h
│ │ ├── [ 10K] defconfig
│ │ ├── [3.1K] eap_register.c
│ │ ├── [ 309] eap_register.h
│ │ ├── [2.5K] eap_testing.txt
│ │ ├── [ 364] hapd_module_tests.c
│ │ ├── [ 24K] hlr_auc_gw.c
│ │ ├── [ 909] hlr_auc_gw.milenage_db
│ │ ├── [3.2K] hlr_auc_gw.txt
│ │ ├── [1.5K] hostapd.8
│ │ ├── [ 276] hostapd.accept
│ │ ├── [ 453] hostapd.android.rc
│ │ ├── [1.8K] hostapd_cli.1
│ │ ├── [ 50K] hostapd_cli.c
│ │ ├── [ 285] hostapd.conf
│ │ ├── [ 144] hostapd.deny
│ │ ├── [ 287] hostapd.eap_user
│ │ ├── [ 909] hostapd.eap_user_sqlite
│ │ ├── [ 142] hostapd.radius_clients
│ │ ├── [ 409] hostapd.sim_db
│ │ ├── [ 282] hostapd.vlan
│ │ ├── [ 834] hostapd.wpa_psk
│ │ ├── [4.0K] logwatch
│ │ │ ├── [1.5K] hostapd
│ │ │ ├── [ 319] hostapd.conf
│ │ │ └── [ 425] README
│ │ ├── [ 23K] main.c
│ │ ├── [ 27K] Makefile
│ │ ├── [ 922] nt_password_hash.c
│ │ ├── [ 11K] openssl.cnf
│ │ ├── [ 16K] README
│ │ ├── [8.1K] README-MULTI-AP
│ │ ├── [ 14K] README-WPS
│ │ ├── [1.1K] wired.conf
│ │ ├── [3.7K] wpa2_server.crt
│ │ ├── [1.6K] wpa2_server.key
│ │ ├── [3.4K] wpa2_server.pem
│ │ └── [9.8K] wps-ap-nfc.py
│ ├── [2.3K] README
│ └── [4.0K] src
│ ├── [4.0K] ap
│ │ ├── [ 14K] accounting.c
│ │ ├── [1.1K] accounting.h
│ │ ├── [ 30K] acs.c
│ │ ├── [ 764] acs.h
│ │ ├── [ 31K] ap_config.c
│ │ ├── [ 21K] ap_config.h
│ │ ├── [ 25K] ap_drv_ops.c
│ │ ├── [ 13K] ap_drv_ops.h
│ │ ├── [6.8K] ap_list.c
│ │ ├── [1.5K] ap_list.h
│ │ ├── [5.6K] ap_mlme.c
│ │ ├── [1007] ap_mlme.h
│ │ ├── [8.4K] authsrv.c
│ │ ├── [ 352] authsrv.h
│ │ ├── [ 40K] beacon.c
│ │ ├── [1.2K] beacon.h
│ │ ├── [2.4K] bss_load.c
│ │ ├── [ 376] bss_load.h
│ │ ├── [ 24K] ctrl_iface_ap.c
│ │ ├── [1.6K] ctrl_iface_ap.h
│ │ ├── [ 29K] dfs.c
│ │ ├── [1.2K] dfs.h
│ │ ├── [3.4K] dhcp_snoop.c
│ │ ├── [ 590] dhcp_snoop.h
│ │ ├── [ 46K] dpp_hostapd.c
│ │ ├── [1.7K] dpp_hostapd.h
│ │ ├── [ 49K] drv_callbacks.c
│ │ ├── [7.9K] eap_user_db.c
│ │ ├── [4.4K] eth_p_oui.c
│ │ ├── [ 958] eth_p_oui.h
│ │ ├── [ 17K] fils_hlp.c
│ │ ├── [ 547] fils_hlp.h
│ │ ├── [ 20K] gas_query_ap.c
│ │ ├── [1.2K] gas_query_ap.h
│ │ ├── [ 50K] gas_serv.c
│ │ ├── [3.3K] gas_serv.h
│ │ ├── [ 87K] hostapd.c
│ │ ├── [ 17K] hostapd.h
│ │ ├── [6.3K] hs20.c
│ │ ├── [ 843] hs20.h
│ │ ├── [ 24K] hw_features.c
│ │ ├── [1.9K] hw_features.h
│ │ ├── [ 15K] iapp.c
│ │ ├── [ 833] iapp.h
│ │ ├── [ 18K] ieee802_11_auth.c
│ │ ├── [1.0K] ieee802_11_auth.h
│ │ ├── [144K] ieee802_11.c
│ │ ├── [7.2K] ieee802_11.h
│ │ ├── [2.9K] ieee802_11_he.c
│ │ ├── [ 16K] ieee802_11_ht.c
│ │ ├── [ 24K] ieee802_11_shared.c
│ │ ├── [ 13K] ieee802_11_vht.c
│ │ ├── [ 80K] ieee802_1x.c
│ │ ├── [2.6K] ieee802_1x.h
│ │ ├── [1.2K] Makefile
│ │ ├── [5.2K] mbo_ap.c
│ │ ├── [1.2K] mbo_ap.h
│ │ ├── [4.3K] ndisc_snoop.c
│ │ ├── [ 838] ndisc_snoop.h
│ │ ├── [6.4K] neighbor_db.c
│ │ ├── [ 940] neighbor_db.h
│ │ ├── [2.6K] p2p_hostapd.c
│ │ ├── [ 888] p2p_hostapd.h
│ │ ├── [ 19K] pmksa_cache_auth.c
│ │ ├── [2.7K] pmksa_cache_auth.h
│ │ ├── [6.5K] preauth_auth.c
│ │ ├── [1.3K] preauth_auth.h
│ │ ├── [ 17K] rrm.c
│ │ ├── [1.2K] rrm.h
│ │ ├── [ 41K] sta_info.c
│ │ ├── [ 11K] sta_info.h
│ │ ├── [7.4K] taxonomy.c
│ │ ├── [ 766] taxonomy.h
│ │ ├── [2.9K] tkip_countermeasures.c
│ │ ├── [ 451] tkip_countermeasures.h
│ │ ├── [2.3K] utils.c
│ │ ├── [ 756] vlan.c
│ │ ├── [ 18K] vlan_full.c
│ │ ├── [ 727] vlan.h
│ │ ├── [1.5K] vlan_ifconfig.c
│ │ ├── [5.9K] vlan_init.c
│ │ ├── [1.1K] vlan_init.h
│ │ ├── [3.7K] vlan_ioctl.c
│ │ ├── [3.9K] vlan_util.c
│ │ ├── [ 980] vlan_util.h
│ │ ├── [9.8K] wmm.c
│ │ ├── [ 653] wmm.h
│ │ ├── [ 24K] wnm_ap.c
│ │ ├── [1.1K] wnm_ap.h
│ │ ├── [140K] wpa_auth.c
│ │ ├── [121K] wpa_auth_ft.c
│ │ ├── [ 35K] wpa_auth_glue.c
│ │ ├── [ 443] wpa_auth_glue.h
│ │ ├── [ 18K] wpa_auth.h
│ │ ├── [ 32K] wpa_auth_ie.c
│ │ ├── [1.1K] wpa_auth_ie.h
│ │ ├── [8.5K] wpa_auth_i.h
│ │ ├── [ 55K] wps_hostapd.c
│ │ ├── [2.8K] wps_hostapd.h
│ │ ├── [3.2K] x_snoop.c
│ │ └── [1.3K] x_snoop.h
│ ├── [4.0K] common
│ │ ├── [5.7K] cli.c
│ │ ├── [1.3K] cli.h
│ │ ├── [ 14K] common_module_tests.c
│ │ ├── [4.5K] ctrl_iface_common.c
│ │ ├── [1.3K] ctrl_iface_common.h
│ │ ├── [ 11K] defs.h
│ │ ├── [6.7K] dhcp.h
│ │ ├── [231K] dpp.c
│ │ ├── [ 17K] dpp.h
│ │ ├── [2.5K] eapol_common.h
│ │ ├── [6.1K] gas.c
│ │ ├── [1.5K] gas.h
│ │ ├── [ 13K] gas_server.c
│ │ ├── [1.2K] gas_server.h
│ │ ├── [ 15K] hw_features_common.c
│ │ ├── [1.7K] hw_features_common.h
│ │ ├── [ 42K] ieee802_11_common.c
│ │ ├── [7.4K] ieee802_11_common.h
│ │ ├── [ 71K] ieee802_11_defs.h
│ │ ├── [1.9K] ieee802_1x_defs.h
│ │ ├── [ 863] linux_bridge.h
│ │ ├── [1.1K] linux_vlan.h
│ │ ├── [ 455] Makefile
│ │ ├── [4.5K] ocv.c
│ │ ├── [1001] ocv.h
│ │ ├── [2.2K] privsep_commands.h
│ │ ├── [ 685] qca-vendor-attr.h
│ │ ├── [276K] qca-vendor.h
│ │ ├── [ 44K] sae.c
│ │ ├── [2.5K] sae.h
│ │ ├── [3.7K] tnc.h
│ │ ├── [ 329] version.h
│ │ ├── [ 69K] wpa_common.c
│ │ ├── [ 16K] wpa_common.h
│ │ ├── [ 18K] wpa_ctrl.c
│ │ ├── [ 24K] wpa_ctrl.h
│ │ ├── [6.0K] wpa_helpers.c
│ │ └── [1.3K] wpa_helpers.h
│ ├── [4.0K] crypto
│ │ ├── [1.9K] aes-cbc.c
│ │ ├── [4.9K] aes-ccm.c
│ │ ├── [1.6K] aes-ctr.c
│ │ ├── [3.2K] aes-eax.c
│ │ ├── [ 704] aes-encblock.c
│ │ ├── [6.5K] aes-gcm.c
│ │ ├── [ 548] aes.h
│ │ ├── [4.1K] aes_i.h
│ │ ├── [ 41K] aes-internal.c
│ │ ├── [3.6K] aes-internal-dec.c
│ │ ├── [2.7K] aes-internal-enc.c
│ │ ├── [4.5K] aes-omac1.c
│ │ ├── [4.1K] aes-siv.c
│ │ ├── [ 565] aes_siv.h
│ │ ├── [1.8K] aes-unwrap.c
│ │ ├── [1.6K] aes-wrap.c
│ │ ├── [2.9K] aes_wrap.h
│ │ ├── [ 11K] crypto_gnutls.c
│ │ ├── [ 29K] crypto.h
│ │ ├── [6.8K] crypto_internal.c
│ │ ├── [5.1K] crypto_internal-cipher.c
│ │ ├── [3.0K] crypto_internal-modexp.c
│ │ ├── [2.8K] crypto_internal-rsa.c
│ │ ├── [ 15K] crypto_libtomcrypt.c
│ │ ├── [ 22K] crypto_linux.c
│ │ ├── [ 61K] crypto_module_tests.c
│ │ ├── [9.7K] crypto_nettle.c
│ │ ├── [ 461] crypto_none.c
│ │ ├── [ 44K] crypto_openssl.c
│ │ ├── [ 34K] crypto_wolfssl.c
│ │ ├── [ 709] des_i.h
│ │ ├── [ 15K] des-internal.c
│ │ ├── [ 806] dh_group5.c
│ │ ├── [ 556] dh_group5.h
│ │ ├── [ 54K] dh_groups.c
│ │ ├── [ 692] dh_groups.h
│ │ ├── [1.4K] fips_prf_internal.c
│ │ ├── [2.1K] fips_prf_openssl.c
│ │ ├── [1.8K] fips_prf_wolfssl.c
│ │ ├── [1.3K] Makefile
│ │ ├── [7.9K] md4-internal.c
│ │ ├── [2.6K] md5.c
│ │ ├── [ 505] md5.h
│ │ ├── [ 516] md5_i.h
│ │ ├── [8.8K] md5-internal.c
│ │ ├── [9.5K] milenage.c
│ │ ├── [1019] milenage.h
│ │ ├── [ 16K] ms_funcs.c
│ │ ├── [2.4K] ms_funcs.h
│ │ ├── [ 12K] random.c
│ │ ├── [ 855] random.h
│ │ ├── [1009] rc4.c
│ │ ├── [2.7K] sha1.c
│ │ ├── [1.0K] sha1.h
│ │ ├── [ 590] sha1_i.h
│ │ ├── [8.9K] sha1-internal.c
│ │ ├── [2.3K] sha1-pbkdf2.c
│ │ ├── [1.6K] sha1-prf.c
│ │ ├── [2.7K] sha1-tlsprf.c
│ │ ├── [1.7K] sha1-tprf.c
│ │ ├── [2.6K] sha256.c
│ │ ├── [1.1K] sha256.h
│ │ ├── [ 584] sha256_i.h
│ │ ├── [6.0K] sha256-internal.c
│ │ ├── [2.1K] sha256-kdf.c
│ │ ├── [2.8K] sha256-prf.c
│ │ ├── [1.7K] sha256-tlsprf.c
│ │ ├── [2.6K] sha384.c
│ │ ├── [ 949] sha384.h
│ │ ├── [ 573] sha384_i.h
│ │ ├── [2.2K] sha384-internal.c
│ │ ├── [2.1K] sha384-kdf.c
│ │ ├── [2.8K] sha384-prf.c
│ │ ├── [2.6K] sha512.c
│ │ ├── [ 949] sha512.h
│ │ ├── [ 591] sha512_i.h
│ │ ├── [7.7K] sha512-internal.c
│ │ ├── [2.1K] sha512-kdf.c
│ │ ├── [2.8K] sha512-prf.c
│ │ ├── [ 45K] tls_gnutls.c
│ │ ├── [ 23K] tls.h
│ │ ├── [ 19K] tls_internal.c
│ │ ├── [3.9K] tls_none.c
│ │ ├── [132K] tls_openssl.c
│ │ ├── [ 477] tls_openssl.h
│ │ ├── [ 21K] tls_openssl_ocsp.c
│ │ └── [ 52K] tls_wolfssl.c
│ ├── [4.0K] drivers
│ │ ├── [2.0K] android_drv.h
│ │ ├── [ 64K] driver_atheros.c
│ │ ├── [ 45K] driver_bsd.c
│ │ ├── [6.2K] driver_common.c
│ │ ├── [170K] driver.h
│ │ ├── [ 29K] driver_hostap.c
│ │ ├── [6.0K] driver_hostap.h
│ │ ├── [ 34K] driver_macsec_linux.c
│ │ ├── [ 20K] driver_macsec_qca.c
│ │ ├── [ 84K] driver_ndis.c
│ │ ├── [2.7K] driver_ndis_.c
│ │ ├── [1.5K] driver_ndis.h
│ │ ├── [4.5K] driver_nl80211_android.c
│ │ ├── [296K] driver_nl80211.c
│ │ ├── [ 62K] driver_nl80211_capa.c
│ │ ├── [ 78K] driver_nl80211_event.c
│ │ ├── [9.4K] driver_nl80211.h
│ │ ├── [ 13K] driver_nl80211_monitor.c
│ │ ├── [ 34K] driver_nl80211_scan.c
│ │ ├── [1.6K] driver_none.c
│ │ ├── [3.0K] driver_openbsd.c
│ │ ├── [ 21K] driver_privsep.c
│ │ ├── [ 14K] driver_roboswitch.c
│ │ ├── [1.4K] drivers.c
│ │ ├── [4.6K] drivers.mak
│ │ ├── [4.1K] drivers.mk
│ │ ├── [ 65K] driver_wext.c
│ │ ├── [2.4K] driver_wext.h
│ │ ├── [9.4K] driver_wired.c
│ │ ├── [8.1K] driver_wired_common.c
│ │ ├── [1.1K] driver_wired_common.h
│ │ ├── [ 992] linux_defines.h
│ │ ├── [4.9K] linux_ioctl.c
│ │ ├── [ 898] linux_ioctl.h
│ │ ├── [ 883] linux_wext.h
│ │ ├── [ 158] Makefile
│ │ ├── [ 21K] ndis_events.c
│ │ ├── [5.1K] netlink.c
│ │ ├── [ 741] netlink.h
│ │ ├── [267K] nl80211_copy.h
│ │ ├── [2.8K] priv_netlink.h
│ │ ├── [4.6K] rfkill.c
│ │ └── [ 583] rfkill.h
│ ├── [4.0K] eap_common
│ │ ├── [ 602] chap.c
│ │ ├── [ 388] chap.h
│ │ ├── [7.3K] eap_common.c
│ │ ├── [ 905] eap_common.h
│ │ ├── [3.4K] eap_defs.h
│ │ ├── [ 17K] eap_eke_common.c
│ │ ├── [3.5K] eap_eke_common.h
│ │ ├── [7.2K] eap_fast_common.c
│ │ ├── [2.9K] eap_fast_common.h
│ │ ├── [ 14K] eap_gpsk_common.c
│ │ ├── [2.0K] eap_gpsk_common.h
│ │ ├── [2.8K] eap_ikev2_common.c
│ │ ├── [ 832] eap_ikev2_common.h
│ │ ├── [4.4K] eap_pax_common.c
│ │ ├── [2.2K] eap_pax_common.h
│ │ ├── [1.7K] eap_peap_common.c
│ │ ├── [ 425] eap_peap_common.h
│ │ ├── [1.5K] eap_psk_common.c
│ │ ├── [1.7K] eap_psk_common.h
│ │ ├── [ 14K] eap_pwd_common.c
│ │ ├── [2.6K] eap_pwd_common.h
│ │ ├── [ 11K] eap_sake_common.c
│ │ ├── [2.4K] eap_sake_common.h
│ │ ├── [ 31K] eap_sim_common.c
│ │ ├── [7.6K] eap_sim_common.h
│ │ ├── [2.6K] eap_tlv_common.h
│ │ ├── [1.6K] eap_ttls.h
│ │ ├── [ 784] eap_wsc_common.c
│ │ ├── [ 644] eap_wsc_common.h
│ │ ├── [ 17K] ikev2_common.c
│ │ ├── [8.1K] ikev2_common.h
│ │ └── [ 517] Makefile
│ ├── [4.0K] eapol_auth
│ │ ├── [7.5K] eapol_auth_dump.c
│ │ ├── [ 32K] eapol_auth_sm.c
│ │ ├── [3.3K] eapol_auth_sm.h
│ │ ├── [5.1K] eapol_auth_sm_i.h
│ │ └── [ 262] Makefile
│ ├── [4.0K] eapol_supp
│ │ ├── [ 59K] eapol_supp_sm.c
│ │ ├── [ 14K] eapol_supp_sm.h
│ │ └── [ 273] Makefile
│ ├── [4.0K] eap_peer
│ │ ├── [ 43K] eap_aka.c
│ │ ├── [ 85K] eap.c
│ │ ├── [ 27K] eap_config.h
│ │ ├── [ 20K] eap_eke.c
│ │ ├── [ 48K] eap_fast.c
│ │ ├── [ 21K] eap_fast_pac.c
│ │ ├── [1.4K] eap_fast_pac.h
│ │ ├── [ 19K] eap_gpsk.c
│ │ ├── [3.3K] eap_gtc.c
│ │ ├── [ 12K] eap.h
│ │ ├── [ 14K] eap_i.h
│ │ ├── [ 13K] eap_ikev2.c
│ │ ├── [ 11K] eap_leap.c
│ │ ├── [2.8K] eap_md5.c
│ │ ├── [8.6K] eap_methods.c
│ │ ├── [2.7K] eap_methods.h
│ │ ├── [ 25K] eap_mschapv2.c
│ │ ├── [2.1K] eap_otp.c
│ │ ├── [ 14K] eap_pax.c
│ │ ├── [ 37K] eap_peap.c
│ │ ├── [1.5K] eap_proxy_dummy.c
│ │ ├── [1.4K] eap_proxy.h
│ │ ├── [ 13K] eap_psk.c
│ │ ├── [ 29K] eap_pwd.c
│ │ ├── [ 13K] eap_sake.c
│ │ ├── [ 35K] eap_sim.c
│ │ ├── [ 11K] eap_tls.c
│ │ ├── [ 36K] eap_tls_common.c
│ │ ├── [3.9K] eap_tls_common.h
│ │ ├── [ 10K] eap_tnc.c
│ │ ├── [ 48K] eap_ttls.c
│ │ ├── [4.2K] eap_vendor_test.c
│ │ ├── [ 14K] eap_wsc.c
│ │ ├── [ 30K] ikev2.c
│ │ ├── [1.4K] ikev2.h
│ │ ├── [ 396] Makefile
│ │ ├── [3.6K] mschapv2.c
│ │ ├── [ 834] mschapv2.h
│ │ ├── [ 30K] tncc.c
│ │ └── [ 994] tncc.h
│ ├── [4.0K] eap_server
│ │ ├── [4.5K] eap.h
│ │ ├── [6.8K] eap_i.h
│ │ ├── [1.7K] eap_methods.h
│ │ ├── [ 36K] eap_server_aka.c
│ │ ├── [ 57K] eap_server.c
│ │ ├── [ 21K] eap_server_eke.c
│ │ ├── [ 42K] eap_server_fast.c
│ │ ├── [ 16K] eap_server_gpsk.c
│ │ ├── [4.9K] eap_server_gtc.c
│ │ ├── [3.7K] eap_server_identity.c
│ │ ├── [ 14K] eap_server_ikev2.c
│ │ ├── [3.8K] eap_server_md5.c
│ │ ├── [4.3K] eap_server_methods.c
│ │ ├── [ 15K] eap_server_mschapv2.c
│ │ ├── [ 15K] eap_server_pax.c
│ │ ├── [ 36K] eap_server_peap.c
│ │ ├── [ 13K] eap_server_psk.c
│ │ ├── [ 27K] eap_server_pwd.c
│ │ ├── [ 13K] eap_server_sake.c
│ │ ├── [ 23K] eap_server_sim.c
│ │ ├── [ 11K] eap_server_tls.c
│ │ ├── [ 13K] eap_server_tls_common.c
│ │ ├── [ 13K] eap_server_tnc.c
│ │ ├── [ 36K] eap_server_ttls.c
│ │ ├── [3.9K] eap_server_vendor_test.c
│ │ ├── [ 12K] eap_server_wsc.c
│ │ ├── [ 41K] eap_sim_db.c
│ │ ├── [2.8K] eap_sim_db.h
│ │ ├── [2.8K] eap_tls_common.h
│ │ ├── [ 30K] ikev2.c
│ │ ├── [1.4K] ikev2.h
│ │ ├── [ 317] Makefile
│ │ ├── [ 27K] tncs.c
│ │ └── [1.2K] tncs.h
│ ├── [4.0K] fst
│ │ ├── [5.1K] fst.c
│ │ ├── [1.9K] fst_ctrl_aux.c
│ │ ├── [2.5K] fst_ctrl_aux.h
│ │ ├── [4.7K] fst_ctrl_defs.h
│ │ ├── [ 23K] fst_ctrl_iface.c
│ │ ├── [1.2K] fst_ctrl_iface.h
│ │ ├── [1.8K] fst_defs.h
│ │ ├── [ 13K] fst_group.c
│ │ ├── [1.9K] fst_group.h
│ │ ├── [8.3K] fst.h
│ │ ├── [1.7K] fst_iface.c
│ │ ├── [3.3K] fst_iface.h
│ │ ├── [1.3K] fst_internal.h
│ │ ├── [ 40K] fst_session.c
│ │ ├── [2.9K] fst_session.h
│ │ └── [ 95] Makefile
│ ├── [4.0K] l2_packet
│ │ ├── [7.7K] l2_packet_freebsd.c
│ │ ├── [5.8K] l2_packet.h
│ │ ├── [ 13K] l2_packet_linux.c
│ │ ├── [ 14K] l2_packet_ndis.c
│ │ ├── [2.9K] l2_packet_none.c
│ │ ├── [9.7K] l2_packet_pcap.c
│ │ ├── [6.4K] l2_packet_privsep.c
│ │ ├── [9.4K] l2_packet_winpcap.c
│ │ └── [ 243] Makefile
│ ├── [ 318] lib.rules
│ ├── [ 377] Makefile
│ ├── [4.0K] p2p
│ │ ├── [ 413] Makefile
│ │ ├── [ 22K] p2p_build.c
│ │ ├── [145K] p2p.c
│ │ ├── [8.6K] p2p_dev_disc.c
│ │ ├── [ 45K] p2p_go_neg.c
│ │ ├── [ 26K] p2p_group.c
│ │ ├── [ 80K] p2p.h
│ │ ├── [ 25K] p2p_i.h
│ │ ├── [ 21K] p2p_invitation.c
│ │ ├── [ 23K] p2p_parse.c
│ │ ├── [ 49K] p2p_pd.c
│ │ ├── [ 22K] p2p_sd.c
│ │ └── [ 12K] p2p_utils.c
│ ├── [4.0K] pae
│ │ ├── [ 16K] ieee802_1x_cp.c
│ │ ├── [1.6K] ieee802_1x_cp.h
│ │ ├── [104K] ieee802_1x_kay.c
│ │ ├── [7.8K] ieee802_1x_kay.h
│ │ ├── [9.3K] ieee802_1x_kay_i.h
│ │ ├── [4.8K] ieee802_1x_key.c
│ │ ├── [1.0K] ieee802_1x_key.h
│ │ ├── [ 11K] ieee802_1x_secy_ops.c
│ │ ├── [2.6K] ieee802_1x_secy_ops.h
│ │ └── [ 95] Makefile
│ ├── [4.0K] radius
│ │ ├── [ 307] Makefile
│ │ ├── [ 42K] radius.c
│ │ ├── [ 45K] radius_client.c
│ │ ├── [6.4K] radius_client.h
│ │ ├── [ 14K] radius_das.c
│ │ ├── [1.5K] radius_das.h
│ │ ├── [ 12K] radius.h
│ │ ├── [ 76K] radius_server.c
│ │ └── [7.0K] radius_server.h
│ ├── [4.0K] rsn_supp
│ │ ├── [ 430] Makefile
│ │ ├── [ 18K] pmksa_cache.c
│ │ ├── [4.5K] pmksa_cache.h
│ │ ├── [ 15K] preauth.c
│ │ ├── [1.9K] preauth.h
│ │ ├── [ 82K] tdls.c
│ │ ├── [128K] wpa.c
│ │ ├── [ 29K] wpa_ft.c
│ │ ├── [ 14K] wpa.h
│ │ ├── [ 17K] wpa_ie.c
│ │ ├── [1.4K] wpa_ie.h
│ │ └── [ 12K] wpa_i.h
│ ├── [4.0K] tls
│ │ ├── [4.6K] asn1.c
│ │ ├── [2.4K] asn1.h
│ │ ├── [5.4K] bignum.c
│ │ ├── [1.1K] bignum.h
│ │ ├── [ 76K] libtommath.c
│ │ ├── [ 595] Makefile
│ │ ├── [7.3K] pkcs1.c
│ │ ├── [ 872] pkcs1.h
│ │ ├── [ 16K] pkcs5.c
│ │ ├── [ 404] pkcs5.h
│ │ ├── [5.1K] pkcs8.c
│ │ ├── [ 436] pkcs8.h
│ │ ├── [8.8K] rsa.c
│ │ ├── [ 770] rsa.h
│ │ ├── [ 23K] tlsv1_client.c
│ │ ├── [2.4K] tlsv1_client.h
│ │ ├── [2.7K] tlsv1_client_i.h
│ │ ├── [ 23K] tlsv1_client_ocsp.c
│ │ ├── [ 40K] tlsv1_client_read.c
│ │ ├── [ 26K] tlsv1_client_write.c
│ │ ├── [ 15K] tlsv1_common.c
│ │ ├── [9.5K] tlsv1_common.h
│ │ ├── [ 32K] tlsv1_cred.c
│ │ ├── [1.4K] tlsv1_cred.h
│ │ ├── [ 13K] tlsv1_record.c
│ │ ├── [1.9K] tlsv1_record.h
│ │ ├── [ 24K] tlsv1_server.c
│ │ ├── [2.2K] tlsv1_server.h
│ │ ├── [2.3K] tlsv1_server_i.h
│ │ ├── [ 34K] tlsv1_server_read.c
│ │ ├── [ 28K] tlsv1_server_write.c
│ │ ├── [ 53K] x509v3.c
│ │ └── [4.7K] x509v3.h
│ ├── [4.0K] utils
│ │ ├── [4.5K] base64.c
│ │ ├── [ 653] base64.h
│ │ ├── [1.4K] bitfield.c
│ │ ├── [ 558] bitfield.h
│ │ ├── [2.6K] browser-android.c
│ │ ├── [5.9K] browser.c
│ │ ├── [ 451] browser.h
│ │ ├── [2.4K] browser-system.c
│ │ ├── [3.1K] browser-wpadebug.c
│ │ ├── [1.4K] build_config.h
│ │ ├── [ 23K] common.c
│ │ ├── [ 15K] common.h
│ │ ├── [5.4K] const_time.h
│ │ ├── [3.7K] crc32.c
│ │ ├── [ 297] crc32.h
│ │ ├── [ 20K] edit.c
│ │ ├── [ 612] edit.h
│ │ ├── [3.8K] edit_readline.c
│ │ ├── [1.8K] edit_simple.c
│ │ ├── [ 32K] eloop.c
│ │ ├── [ 14K] eloop.h
│ │ ├── [ 15K] eloop_win.c
│ │ ├── [2.0K] ext_password.c
│ │ ├── [ 855] ext_password.h
│ │ ├── [ 713] ext_password_i.h
│ │ ├── [1.7K] ext_password_test.c
│ │ ├── [ 45K] http_curl.c
│ │ ├── [1.7K] http-utils.h
│ │ ├── [1.1K] includes.h
│ │ ├── [1.0K] ip_addr.c
│ │ ├── [ 608] ip_addr.h
│ │ ├── [ 13K] json.c
│ │ ├── [1.0K] json.h
│ │ ├── [2.4K] list.h
│ │ ├── [ 633] Makefile
│ │ ├── [ 438] module_tests.h
│ │ ├── [ 20K] os.h
│ │ ├── [8.7K] os_internal.c
│ │ ├── [3.3K] os_none.c
│ │ ├── [ 15K] os_unix.c
│ │ ├── [4.7K] os_win32.c
│ │ ├── [ 38K] pcsc_funcs.c
│ │ ├── [1.4K] pcsc_funcs.h
│ │ ├── [ 508] platform.h
│ │ ├── [ 12K] radiotap.c
│ │ ├── [ 11K] radiotap.h
│ │ ├── [2.9K] radiotap_iter.h
│ │ ├── [5.2K] state_machine.h
│ │ ├── [8.3K] trace.c
│ │ ├── [1.9K] trace.h
│ │ ├── [ 28K] utils_module_tests.c
│ │ ├── [1.8K] uuid.c
│ │ ├── [ 439] uuid.h
│ │ ├── [7.4K] wpabuf.c
│ │ ├── [4.1K] wpabuf.h
│ │ ├── [ 19K] wpa_debug.c
│ │ ├── [ 12K] wpa_debug.h
│ │ ├── [9.1K] xml_libxml2.c
│ │ ├── [9.3K] xml-utils.c
│ │ └── [4.0K] xml-utils.h
│ └── [4.0K] wps
│ ├── [8.0K] http_client.c
│ ├── [1.2K] http_client.h
│ ├── [ 690] http.h
│ ├── [ 23K] httpread.c
│ ├── [4.0K] httpread.h
│ ├── [6.4K] http_server.c
│ ├── [1.1K] http_server.h
│ ├── [ 637] Makefile
│ ├── [4.8K] ndef.c
│ ├── [7.8K] upnp_xml.c
│ ├── [ 797] upnp_xml.h
│ ├── [ 14K] wps_attr_build.c
│ ├── [ 16K] wps_attr_parse.c
│ ├── [3.5K] wps_attr_parse.h
│ ├── [7.2K] wps_attr_process.c
│ ├── [ 18K] wps.c
│ ├── [ 21K] wps_common.c
│ ├── [ 10K] wps_defs.h
│ ├── [ 10K] wps_dev_attr.c
│ ├── [1.8K] wps_dev_attr.h
│ ├── [ 41K] wps_enrollee.c
│ ├── [ 50K] wps_er.c
│ ├── [2.5K] wps_er.h
│ ├── [4.9K] wps_er_ssdp.c
│ ├── [ 29K] wps.h
│ ├── [7.0K] wps_i.h
│ ├── [ 12K] wps_module_tests.c
│ ├── [101K] wps_registrar.c
│ ├── [2.4K] wps_upnp_ap.c
│ ├── [ 36K] wps_upnp.c
│ ├── [ 11K] wps_upnp_event.c
│ ├── [1.3K] wps_upnp.h
│ ├── [6.6K] wps_upnp_i.h
│ ├── [ 25K] wps_upnp_ssdp.c
│ ├── [ 37K] wps_upnp_web.c
│ └── [ 47K] wps_validate.c
├── [6.1K] README.md
├── [ 67] run_crash_esp_EAP.sh
├── [ 67] run_hostapd_normal.sh
└── [ 66] run_zero_pmk_EAP.sh
37 directories, 694 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。