Иллюстрированный самоучитель по защите в Интернет

Основные контрмеры против атак, направленных на расширение привилегий

Процессы

Для обнаружения тех хакерских инструментов, которые нельзя переименовать или скрыть каким-либо другим способом, можно проанализировать список выполняющихся на компьютере процессов. Например, с помощью команды AT можно запланировать задание, которое просматривает список процессов и удаляет из него такие обнаруженные процессы, как remote.exe или nс.ехе. Поскольку для использования сервера remote в системном администрировании нет особых причин (особенно, если учесть, что эта утилита не выполняет аутентификации), то для периодического удаления ее из списка процессов можно использовать команду kill.exe из набора NTRK. В следующем примере показано, как с помощью команды AT запланировать задание, которое будет выполняться каждый день в шесть часов утра и удалять процесс remote. Это немного грубо, но зато эффективно – вам остается лишь настроить время запуска в соответствии со своими предпочтениями.

C:\> at 6А /е:1
""kill remote.exe""
Added a new job with job ID = 12
C:\>at Status ID Day Time Command Line
12 Each 1 6:00 AM kill remote.exe
C:\> kill remote.exe
process #236 [remote.exe] killed

Для этих же целей можно использовать утилиту rkill.exe из набора NTRK. Она отличается от kill.exe тем, что может выполняться на удаленном компьютере, а также тем, что в отличие от утилиты kill.exe, нуждается в предоставлении ей в качестве параметра идентификатора удаляемого процесса (PID – Process ID). PID процесса удаленного компьютера можно получить с помощью утилиты pulist.exe, которая также входит в состав NTRK. Можно создать целую автоматизированную систему, в которой регулярно запускается утилита pulist и собирает информацию о выполняющихся на узлах сети запрещенных процессах с последующей передачей этой информации rkill. Конечно, еще раз нужно оговориться, что такую систему очень легко обойти, присвоив выполняемому файлу remote.exe какое-нибудь другое, не вызывающее подозрений имя, например WINLOG.EXE. Однако она сможет эффективно противостоять процессам, которые нельзя переименовывать, например winVNC. EXE.

Порты

Даже если такие утилиты, как remote или , были переименованы, утилита netstat поможет выявить их присутствие по наличию портов, находящихся в состоянии ожидания или соединения. Периодический запуск netstat с целью проверки подобных соединений – это иногда наилучший способ найти их. В следующем примере показано, как утилита netstat, запущенная на целевом сервере в то время, когда взломщик подключился к нему с помощью утилит remote, nc и установил соединение с портом 8080, отображает результаты опроса портов (описание параметра -an можно узнать, введя в командной строке команду netstat /?). Обратите внимание, что в соединении remote используется порт TCP 139, а утилита netcat находится в состоянии ожидания и имеет одно установленное соединение с портом TCP 8080 (остальные данные, отображаемые netstat, удалены для наглядности).

С:\> netstat – an
Active Connections
Proto Local Address Foreign Address State
TCP 192.168.202.44:139 0.0.0.0:0 LISTENING
TCP 192.168.202.44:139 192.168.202.37:1817 ESTABLISHED
TCP 192.168.202.44:8080 0.0.0.0:0 LISTENING
TCP 192.168.202.44:8080 192.168.202.37:1784 ESTABLISHED

Из приведенного фрагмента листинга команды netstat видно, что наилучшей защитой против использования утилиты remote является блокирование доступа к портам 135-139 потенциальных целей или на уровне брандмауэра либо отключение привязки NetBIOS для незащищенных адаптеров, как описывалось в разделе "Контрмеры: Защита От Подбора Пароля" выше в данной главе.

С помощью конвейера, организованного между командами netstat и find, можно получить данные об определенных портах. Так, с помощью следующей команды выполняется поиск серверов NetBus, прослушивающих порт по умолчанию:

netstat – an| find "12345"

Утилита fport от компании Foundstone (http://www.foundstone.com) позволяет получить комбинированную информацию о процессах и портах. Она предоставляет перечень всех активных сокетов и идентификаторов процессов, использующих соединение. Вот пример ее результатов.

FPORT – Process port mapper
Copyright (с) 2000, Foundstone, Inc.
http://www.foundstone.com
PID NAME TYPE PORT
184 IEXPLORE UDP 1118
249 OUTLOOK UDP 0
265 MAPISP32 UDP 1104
265 MAPISP32 UDP 0
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.