Находим троянскую программу, которая ждет входящего соединения

Обычно авторы таких программ называют свои программы «программами удаленного управления». Типичной иллюстрацией этого вида троянских программ является Back Orifice (см. описание https://www.viruslist.com/viruslist.html?id=3957&gloss=8227). Такие программы позволяют делать на вашем компьютере все что угодно: скачивать файлы, рассылать спам, быть прокси-сервером, участвовать в DOS- атаке, быть плацдармом для других атак, естественно, в рамках функций, предоставляемых им имеющейся операционной системой. В данном случае мы рассматриваем версии Windows: 2000 SP4, XP SP1, 2003. Такие программы открывают TCP-порт на компьютере жертвы, устанавливают его в состояние LISTENING и ждут, когда хакер подключится на этот порт. Таким образом, нам нужно выявить все процессы, которые открыли TCP-порты и которые находятся в состоянии LISTENING, и решить, одобряете ли вы это соединение или нет. То же самое можно сказать про UDP-порты – за ними тоже надо смотреть, с единственным отличием, что у них нет состояний – с этих портов может как приниматься информация, так и отсылаться. С ходу можно сказать, что если у вас обычный компьютер, подключенный к выделенной линии или через модем в Интернет, то в идеале у вас не дожно быть слушающих портов. Даже если приложения или сервисы Windows открыли эти порты, то они должны быть закрыты персональным firewall. Чтобы выявить программы, которые ожидают (и устанавливают) соединения в Windows XP и Windows 2003, можно, конечно, воспользоваться стандартной утилитой netstat c параметрами -ano. (Параметр -а заставляет netstat показывать все имеющиеся подключения и ожидающие порты, -n преобразует вывод адресов и портов в числовой формат, -o отображает для каждого подключения идентификатор процесса, создавшего это подключение). В Windows 2000 ключ -o еще не был изобретен. Например:

 
 

Результат, как видите, аскетичен: порты, конечно, выводятся, но вместо информации о приложениях выдается только номер процесса. Хотелось бы еще узнать имя процесса и местоположение файла, из которого он был запущен. Но давайте хотя бы разберемся с тем, что уже есть.

Если вы увидели у себя много TCP-соединений в состоянии LISTENING, то не пугайтесь – это, скорее всего, не трояны, а работающие по умолчанию стандартные сервисы Windows.

Алгоритм просмотра ожидающих соединений такой:

ü Отметаем все соединения, у которых локальный адрес установлен 127.0.0.1 – это означает, что к этим портам может подключиться только программа, запущенная на этом же компьютере. Подключение извне к этому порту и адресу невозможно.

ü Адрес 0.0.0.0 означает, что любое подключение по любому IP-адресу, который есть на вашем компьютере, с любого хоста Интернета будет возможно на указанный порт. Напомню, что на одной сетевой карте может быть несколько IP-адресов. Не говоря уже о том, что у вас может быть и несколько сетевых карт.

ü В некоторых ожидающих соединениях вы увидите те, у которых явно указан IP-адрес одной из ваших сетевых карт. К ним также возможно подключиться из Интернета через указанный порт.

Получается, что для всех ожидающих соединений из последних двух пунктов нам нужно узнать, какое приложение создало это подключение, и нужно ли это вам.

Следующим этапом является установление имени приложения, использующего это соединение. Очевидно, результат команды netstat -ano в виде идентификатора процесса нас не устраивает, поскольку, пользуясь стандартными средствами графического интерфейса и командной строки Windows, невозможно получить по номеру процесса его имя и тем более имя исполняемого файла. Конечно, можно самому написать программу, которая выполняет такие действия, но, к счастью, в Сети уже есть приложения, которые делают то, что нам нужно.

Тем более что в статье Microsoft Knowledge Base Article – 816944 (https://support.microsoft.com/default.aspx?scid=kb;en-us;816944) сами сотрудники фирмы Microsoft советуют пользоваться такими программами, как TCPView (https://www.sysinternals.com/ntw2k/source/tcpview.shtml) и Fport (https://www.foundstone.com/knowledge/proddesc/fport.html).

Я, однако, советую другую программу, которая называется CurrPorts (https://freehost14.websamba.com/nirsoft/utils/cports.html). FPorts плох тем, что работает только в командной строке и ничего не умеет, кроме показа имени процесса и открытых им портов. TCPView – отличная программа, позволяет закрыть соединение и убить процесс, но CurrPorts более функциональна: ко всему перечисленному выводит больше информации о процессе, показывает соответствующие процессу сервисы, позволяет делать HTML-отчеты. Все эти программы бесплатны.

Замечание: на самом деле для просмотра процессов и их идентификаторов можно воспользоваться программой tlist.exe из файла support.cab, лежащего на каждом лицензионном диске Windows. К сожалению, эта программа не устанавливается по умолчанию.

Сравните TCPView и CurrPorts (рис. 1 и рис. 2).

 
 

CurrPort может с промежутками в 2 секунды показывать программы, использующие открытые порты (лучше сказать, сокеты). К сожалению, соединения происходят достаточно быстро и практически невозможно отследить все соединения в реальном времени. Для выявления несанкционированных подключений нужно протоколировать все соединения и потом просматривать полученные записи.

Отлично, берем CurrPorts, получаем список процессов, которые что-то слушают во внешнем мире или даже соединяются с внешним миром.

 
 

Что дальше? Ведь получается, что вам нужно хорошо знать свой компьютер, а точнее, что за программы вы установили и как они называются, да еще понимать, что программа c:\windows\system32\svchost.exe – системная программа Windows (см. описание https://www.liutilities.com/products/wintaskspro/processlibrary/svchost), а например, c:\windows\svchost.exe – уже непонятно откуда взявшаяся программа под этим именем (например, это может быть вирус, см. описание здесь: https://us.mcafee.com/virusInfo/default.asp?id=description&virus_k=100277). Просто хакер скрыл под именем системного файла свою программу и положил ее в системную папку.

Итак, что делать, если вы нашли незнакомый процесс? Есть такая услуга: идентификация процесса по имени. Существуют сайты, на которых выложен список процессов, чаще всего встречающихся в операционной системе Windows. Таким образом, по имени процесса вы можете понять, для чего он нужен на вашем компьютере, какие порты он обычно использует, и сравнить с данными CurrPorts. Например, https://www.liutilities.com/products/wintaskspro/processlibrary. Для примера попробуйте посмотреть описание svchost.exe: https://www.neuber.com/taskmanager/process/svchost.exe.html. Кроме того, можно набрать в поисковой машине имя процесса и номер порта – вероятнее всего, вы найдете место, где описывается этот процесс или где описывается этот вирус или троян. Но лучше всего купить соответствующие продукты, которые помогут вам идентифицировать процессы без подключения к Интернету: например, WinTasks Pro (https://www.liutilities.com/products/wintaskspro) или Security Task Manager (https://www.neuber.com/taskmanager/index.html).

Таким образом, вы, пользуясь маленькой утилитой, нашли процессы, которые зачем-то слушают порты, и при помощи Интернета поняли, что это за процессы и нужно ли их удалять с диска. Если вы не уверены точно, что за процесс работает на вашем компьютере, обращайтесь к специалистам. Их можно найти в форумах, например, на www.securitylab.ru/forum.

Необходимо понимать, что многие трояны прячутся под именами системных процессов, чтобы их невозможно было убить из менеджера задач. Но CurrPorts благополучно убивает и системные процессы. Будьте осторожнее – умирание системного процесса может привести к зависанию или перезагрузке компьютера.

Другим вариантом такого ручного поиска процесса является просмотр всех процессов с помощью последней версии программы Sysinternals Process Explorer (https://www.sysinternals.com/ntw2k/freeware/procexp.shtml) (рис. 4).

 
 

Одной из полезных функций данной программы является просмотр свойств каждого процесса, где показаны используемые этим процессом порты. Например, операционная система использует:

Открытый слушающий порт 445 означает, что система может предоставлять доступ к дискам посредством протокола SMB (Server Message Broadcast), также известного под названием CIFS (Common Internet File System) через Интернет. Неправильное конфигурирование этого сервиса может привести к возможности чтения системных и других файлов третьими лицами и захвату контроля над системой. Значительное количество пользователей открывают локальные диски для чтения и записи по сети для упрощения обмена информацией, давая также возможность и третьим лицам работать с их системами. Если вы не хотите, чтобы кто-то изучал ваши диски или даже вносил изменения в данные, хранящиеся на них, то лучше отключить этот сервис совсем.


За 445 порт отвечает драйвер netbt.sys, поэтому есть два способа избавиться от него:

ü отключить драйвер netbt.sys через «Диспетчер устройств», но тогда не будет работать DHCP-клиент Windows, что часто необходимо абонентам Интернета, использующим выделенные линии;

ü переименовать в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters параметр TransportBindName (например, на OldTransportBindName), и после перезагрузки UDP- и TCP-порты будут отключены.

Если у вас внешний IP-адрес, то это нелишне сделать, поскольку по статистике 445 и 135 порты чаще всего сканируют в Интернете (см. статистику https://isc.sans.org/top10.php). Без преувеличения можно сказать, что каждый компьютер во внешней сети подвергается постоянным попыткам соединения с TCP-портами 445 и 135, рассчитывая на то, что пользователи оставили открытым анонимный доступ (null сессию). 135 порт (NETBIOS) отключается в свойствах протокола TCP/IP в свойствах сетевой карты. Открытый порт 1026 говорит о том, что включена «Служба сообщений» (Messenger). Если вы ей не пользуетесь, то отключите этот сервис. Для этого запустите консоль управления сервисами Windows (services.msc), кликните правой кнопкой на «Службе сообщений», выберите «Свойства» и в поле «Тип запуска» выберите «Отключено» и нажмите «OK».

И так далее по шагам для каждой программы нужно изучить, что за порты она использует, зачем они ей нужны и желаете ли вы, чтобы она передавала куда-то данные.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: