Q5-Deauth after auth response =========================================== .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Version Info ` * :ref:`Problem Statement ` * :ref:`Approach and code flow ` * :ref:`Actual change and Patch ` * :ref:`Wireshark capture ` .. _wifi_ldd_wi-fi_dev_sta_ques5_step_1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow * How to send de-authentication packet on reception of authentication response packet from AP .. _wifi_ldd_wi-fi_dev_sta_ques5_step_2: .. tab-set:: .. tab-item:: Version Info =============================== ======================================= # Version =============================== ======================================= Ubuntu Ubuntu 22.04 64 bit Linux Kernel 6.9.2 Supplicant wpa_supplicant 2.10 =============================== ======================================= .. _wifi_ldd_wi-fi_dev_sta_ques5_step_3: .. tab-set:: .. tab-item:: Problem Statement .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow * Send De-Authentication packet on reception of Authentication response packet from AP * Add a configuration parameter called "deauth_on_auth_response_rx" in supplicant conf file * If "deauth_on_auth_response_rx=0", then this feature is disabled * If "deauth_on_auth_response_rx=1", then this feature is enabled .. _wifi_ldd_wi-fi_dev_sta_ques5_step_4: .. tab-set:: .. tab-item:: Approach and code flow * Call flow for send de-authentication packet on reception of authentication response packet from AP .. literalinclude:: send_deauth_after_auth_res_callflow.txt .. _wifi_ldd_wi-fi_dev_sta_ques5_step_5: .. tab-set:: .. tab-item:: Actual change and Patch * Download the below patch file :download:`send_deauth_after_auth_res.patch ` .. dropdown:: See the full content of patch file .. literalinclude:: send_deauth_after_auth_res.patch .. code-block:: shell test:~$ pwd /home/test * Make sure internet is available in laptop to download supplicant package .. code-block:: shell test:~$ sudo wget https://w1.fi/releases/wpa_supplicant-2.10.tar.gz * Create a directory .. code-block:: shell test:~$ mkdir supplicant * Change directory to supplicant .. code-block:: shell test:~$ cd supplicant * Note : Your present working directory should be supplicant .. code-block:: shell test:~$ pwd /home/test/supplicant/ * Extract wpa_supplicant .. code-block:: shell test:~$ sudo tar -xvf ~/wpa_supplicant-2.10.tar.gz * Run the below command to apply patch .. code-block:: shell test:~$ patch -p1 < send_deauth_after_auth_res.patch patching file wpa_supplicant-2.10/wpa_supplicant/config_file.c patching file wpa_supplicant-2.10/wpa_supplicant/config.h patching file wpa_supplicant-2.10/wpa_supplicant/events.c patching file wpa_supplicant-2.10/wpa_supplicant/sme.c patching file wpa_supplicant-2.10/wpa_supplicant/wpa_supplicant.c * Change directory to wpa_supplicant .. code-block:: shell test:~$ cd wpa_supplicant-2.10/wpa_supplicant/ * Check the current working directory using pwd command * Make sure your current working directory is wpa_supplicant .. code-block:: shell test:~$ pwd /home/test/supplicant/wpa_supplicant-2.10/wpa_supplicant * Copy the contents of defconfig file to .config file .. code-block:: shell test:~$ sudo cp defconfig .config * Compile wpa_supplicant .. code-block:: shell test:~$ sudo make * Create run_supplicant.conf .. code-block:: shell test:~$ sudo vim ./run_supplicant.conf ctrl_interface=/run/wpa_supplicant update_config=1 deauth_on_auth_response_rx=1 network={ ssid="test_open" key_mgmt=NONE } * Run wpa_supplicant .. code-block:: shell test:~$ sudo ./wpa_supplicant -Dnl80211 -i wlan1 -c ./run_supplicant.conf .. _wifi_ldd_wi-fi_dev_sta_ques5_step_6: .. tab-set:: .. tab-item:: Wireshark capture * Download file to check wireshark output :download:`send_deauth_after_auth_res.pcapng ` .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow * Check for deauthentication packet * Check packet 74 and 75 * Observe 74 is authentication response packet and 75 is deauthentication packet .. image:: deauth_after_auth_res.png :alt: Diagram :width: 800 :height: 400