Библиотека сайта rus-linux.net
Как найти скрытые процессы и порты в Linux/Unix/Windows
Оригинал: How to find hidden processes and ports on Linux/Unix/Windows
Автор: Vivek Gite
Дата публикации: 30 декабря 2017 года
Перевод: А. Кривошей
Дата перевода: сентябрь 2018 г.
Unhide - небольшая и удобная утилита для поиска скрытых процессов и портов TCP/UDP, созданных руткитами/LKM или с помощью других скрытых технологий. Этот инструмент работает под Linux, Unix-подобными системами и операционными системами Windows. В руководстве по программе говорится, что она обнаруживает скрытые процессы, используя три метода:
- метод proc заключается в сравнении /proc с выводом /bin/ps;
- метод sys заключается в сравнении информации, полученной из /bin/ps, с информацией, полученной от системных вызовов;
- метод грубой силы заключается в переборе всех идентификаторов процессов. Этот метод доступен только для ядер Linux 2.6.
Большинство руткитов и вредоносных программ используют для маскировки ядро, они видны только внутри ядра. Вы можете использовать unhide или другие утилиты, например rkhunter, для сканирования руткитов, бэкдоров и возможных локальных эксплойтов.
Как установить Unhide?
Рекомендуется запускать эту утилиту с носителя, работающего в режиме только для чтения. Чтобы установить ее в Debian или Ubuntu Linux, введите следующую команду:
$ sudo apt-get install unhide
Установка unhide в RHEL/CentOS/Oracle/Scientific/Fedora Linux
Введите приведенную ниже команду yum (в CentOS/RHEL версий 6.x или 7.x сначала подключите репозиторий EPLE):
$ sudo yum install unhide
Если вы используете Fedora Linux, введите следующую команду:
$ sudo dnf install unhide
Для установки unhide в Arch Linux используйте следующую команду pacman:
$ sudo pacman -S unhide
FreeBSD: установка unhide
Для установки unhide из порта используются следующие команды:
# cd /usr/ports/security/unhide/ # make install clean
или вы можете установить ее бинарный пакет с помощью команды pkg:
# pkg install unhide
unhide-tcp - это утилита, которое идентифицирует TCP/UDP-порты, которые прослушиваются, но не указаны в команде /bin/netstat или /bin/ss путем принудительного считывания всех доступных портов TCP/UDP.
Как использовать unhide?
Синтаксис:
unhide [options] test_list
Test_list - один или несколько стандартных тестов, список которых приведен ниже.
1. brute
2. proc
3. procall
4. procfs
5. quick
6. reverse
7. sys
Элементарные тесты:
1. checkbrute
2. checkchdir
3. checkgetaffinity
4. checkgetparam
5. checkgetpgid
6. checkgetprio
7. checkRRgetinterval
8. checkgetsched
9. checkgetsid
10. checkkill
11. checknoprocps
12. checkopendir
13. checkproc
14. checkquick
15. checkreaddir
16. checkreverse
17. checksysinfo
18. checksysinfo2
19. checksysinfo3
Вы можете использовать их следующим образом:
# unhide proc # unhide sys # unhide quick
Пример вывода:
Unhide 20130526 Copyright © 2013 Yago Jesus & Patrick Gouin License GPLv3+ : GNU GPL version 3 or later http://www.unhide-forensics.info NOTE : This version of unhide is for systems using Linux >= 2.6 Used options: [*]Searching for Hidden processes through comparison of results of system calls, proc, dir and ps
Как идентифировать порты TCP/UDP с помощью утилиты unhide-tcp
Из man-страницы:
unhide-tcp - криминалистическая утилита, которая идентифицирует TCP/UDP-порты, которые прослушиваются, но не перечислены в /sbin/ss (или, альтернативно, /bin /netstat), посредством принудительного просмотра всех доступных портов TCP/UDP.
Примечание1. Во FreeBSD и OpenBSD всегда используется netstat, поскольку в этих ОС нет iproute2. Кроме того, во FreeBSD вместо fuser используется sockstat.
Примечание2: Если iproute2 недоступен в системе, опция -n или -s ДОЛЖНА указываться в командной строке.
# unhide-tcp
Пример вывода:
Unhide 20100201 http://www.security-projects.com/?Unhide Starting TCP checking Starting UDP checking
Однако я нашел кое-что интересное:
# unhide-tcp
Пример вывода:
Unhide 20100201 http://www.security-projects.com/?Unhide Starting TCP checking Found Hidden port that not appears in netstat: 1048 Found Hidden port that not appears in netstat: 1049 Found Hidden port that not appears in netstat: 1050 Starting UDP checking
Команды netstat -tulpn или ss ничего не говорят о скрытых TCP-портах # 1048, 1049, and 1050:
# netstat -tulpn | grep 1048 # ss -lp # ss -l | grep 1048
Узнать больше об их использовании можно, прочитав man-страницы этих утилит:
$ man unhide $ man unhide-tcp
Примечание для пользователей Windows: вы можете скачать WinUnhide/WinUnhide-TCP на