Проверка на вирусы, руками
Создана: 16 Декабря 2007 Вск 16:33:47.
Раздел: "Паранойя"
Сообщений в теме: 1, просмотров: 4001
-
Наверное нет уже человека, кто бы прямо или косвенно не пострадал от действий компьютерных вирусов. Антивирусные компании много хотят за свои продукты, которые так и не обеспечивают надлежащей защиты. Спрашивается, зачем вообще тогда ставить антивирусное ПО?
Анализ системы.
Логично, что для того чтобы обнаружить и обезвредить вредоносный код, необходимо существование антивирусной программы. Профилактика остается профилактикой... Для каждого типа вредоносных программ соответственно
есть свои симптомы, которые иногда видны невооруженным глазом, иногда незаметны вовсе. Каике же бывают симптомы?
Поскольку речь идет о компе, подключенном к сети, то первым симптомом является чрезмерно быстрый расход, как правило, исходящего трафика. Конечно, на гигабитном канале это может быть и не так заметно если проводится атака шириной с диалап соединение, но как правило бросается в глаза заторможенность системы при открытии интернет ресурсов.
Следующее по списку, это невозможность зайти или обновиться с сайтов антивирусных компаний, сбои в работе программ типа CRC-error. Это обусловлено тем, что достаточно многие коммерческие протекторы поддерживают функцию проверки четности или же целости исполняемого файла (и не только протекторы, но и сами разработчики защит), что сделано для защиты программы от взлома. Не стоит говорить о эффективности данного метода против крякеров и реверсеров, однако сигнализацией к вирусному заражению это может сработать идеально. Плата начинающих вирмейкеров за не убиваемые процессы, то что при выключении или перезагрузке компьютера идет длительное завершение какого нибудь-процесса, или же вообще компьютер зависает при завершении работы. Думаю про процессы говорить не стоит, а так же про папку автозагрузки, если там есть что-то непонятное или новое, то, возможно, это "то", однако про это попозже.
Частая перезагрузка компьютера, вылет из инета, завершение работы антивирей, недоступность серверов обновленияt, ошибки при обновлении антивиря, появление неизвестных файлов )), вот лишь краткий перечень симптомов зараженной машины. Помимо прямых вредоносных кодов
существует так называемое шпионской ПО, это всевозможные кейлоггеры, дамперы электронных ключей, "помощники" к браузеру. По методу обнаружения их можно разделить на два противоположных лагеря. Если кейлоггер, присоединенный динамической библиотекой к оболочке ОСи обнаружить на лету крайне сложно, то, невесть откуда взявшийся плагин к ослику (как правило) бросается в глаза сразу же...
Обнаружение на лету.
Про почтовые уже достаточно рассказывалось, алгоритм он один для всех, однако метод распространения почтовых червей настолько банален, что если "умудриться" запустить файл из аттача, то эта статья не поможет все равно )). Для наглядности пример из жизни, не определяемый ни одним антивирем (до сих пор) IRC-bot. Принцип распространения довольно прост, через найденную уязвимость в оси. Если подумать головой то можно понять, что основным способом забросить себя на уязвимую машину является вызов ftp-сервера на этой машине. По статистике уязвимостей это печально известный tftp.exe. Первый симптом таких червей это исходящий трафик, вирь, попадая на машину, начинает поиск другой уязвимой машины в сети, то есть попросту сканирует диапазоны IP-адресов. Далее все очень просто, первым делом смотрим логи в журнале событий ОСи.
Т.е. Панель управления ---> Администрирование --->Журнал событий.
Здесь интересуют уведомления о запущенных службах и главное уведомления об ошибках. Уже как два года черви лезут через ошибку в DCOM сервере, поэтому любая ошибка, связанная с этим сервером уже есть повод полагать о наличие вируса в системе. Чтобы точно убедится в наличии последнего, в отчете об ошибке надо посмотреть имя и права пользователя допустившего ошибку. Если на этом месте стоит "пользователь неопределен" или что-то подобное то радуйтесь, возможно заражение прошло успешно! Далее действуя логически, первым делом необходимо закрыть дыру в системе для последующих проникновений, а потом уже локализовывать вири. Как уже говорилось, такие вирусы обычно лезут через tftp.exe, поэтому удаляем его из системы. Для этого сначала удаляем его из архива
%WINDIR%Driver Cachedriver.cab
, затем из папок обновления ОСи, если таковые имеются, после этого из
%WINDIR%system32dllcache
и уже потом просто из
%WINDIR%system32
Возможно, ОСь скажет, что файлы повреждены и попросит диск с дистрибом, не соглашайтесь! А не то он восстановится и опять будет открыта дыра. Когда все будет позади, можно приступать к локализации виря. Посмотреть какие приложения используют сетевое подключение, помогает маленькая удобная программа TCPView, однако некоторые черви имеют хороший алгоритм шифрации или же прикрепляются к процессам либо маскируются под процессы. Самый распространенный процесс для маскировки - это, несомненно, служба svhost.exe, в диспетчере задач таких процессов несколько, к тому же, можно создать программу с таким же именем и тогда отличить, кто есть кто практически невозможно. Но шанс есть и зависит от внимательности. Первым делом просмотрите диспетчер задач. У svhost.exe это как не странно M$, конечно можно добавить подложную информацию и в код вируса, однако тут есть пара моментов. Первый и наверное главный состоит в том, что хорошо написанный вирус не содержит ни таблицы импорта, не секций данных. Поэтому ресурсов у такого файла нет, а, следовательно, записать в ресурсы создателя нельзя. Либо можно создать ресурс, однако тогда появится лишний объем файла, что крайне нежелательно вирмейкеру. Еще надо сказать про svhost.exe, это набор системных служб и каждая служба - это запущенный файл с определенными параметрами.
Соответственно в Панели управления ---> Администрирование ---> Службы,
содержатся все загружаемые службы svhost.exe, далее подсчитать количество работающих служб и процессов svhost.exe, если не сходиться , то уже все понятно (естественно надо сравнивать с количеством РАБОТАЮЩИХ служб). Возможно и среди служб есть вирь, на это можно сказать одно, список служб есть и на MSDN и еще много где в сети, так что просто взять и сравнить проблемы не составит. После таких вот действий можно получить имя файла, который возможно является вирем.
Для нормальной работы ОСи необходимо 5 файлов в корневом каталоге, поэтому все остальные файлы вы можете смело удалять, если конечно вы не умудряетесь ставить программы в корневой каталог. Файлы для нормальной работы:
ntldr
boot.ini
pagefile.sys
Bootfont.bin
[внешняя ссылка]
Больше ничего быть не должно. Естественно вирус должен как-то загружаться при старте системы, как правило. Соответственно смотрим следующие ключи реестра на предмет подозрительных программ:
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonNotify
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonUserinit
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonShell
HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun
HKLMSOFTWAREMicrosoftActive SetupInstalled Components
HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorer SharedTaskSchedulerHKLM
SOFTWAREMicrosoftWindowsCurrentVersionShellService ObjectDelayLoad
HKCUSoftwareMicrosoftWindowsCurrentVersionRun
Конечно это сработает при выявлении простых червей. Вычислить хороший вирус сложно. Однако на обнаружение хорошего бэкдора, кейлоггера, стелс-вируса, потокового вируса или же просто виря, в котором используется перехват вызовов API-функций файловой системы (тогда вирус получается действительно невидимым), может уйти много времени! Правда таких творений действительно мало, мало настоящих вирмейкеров в наши дни. Огорчает...
Шпионское ПО, или, как их называют буржуи SpyWare. Простейший шпион очень часто скрывается за невинным на вид тулбаром. Знайте, что если у вас, вдруг, откуда не возьмись, появилась новая кнопка или же строка поиска в браузере то считайте это сигналом. Так же отчетливо видно, если вдруг изменилась стартовая страница браузера, тут уж и говорить нечего. Хотя вири, меняющие стартовые страницы вовсе не обязательно шпионы.
Как вообще может пролезть шпион в систему? Есть несколько методов, как вы уже заметили речь идет про ослика, дело в том, что самый распространенный метод проникновения через браузер - это именно использование технологии ActiveX, саму технологию уже достаточно описали и зацикливаться я на ее рассмотрении не стоит. Так же заменить стартовую страницу, к примеру, можно простым Java-скриптом, расположенным на странице, javascript'ом элементарно закачивать файлы и выполнять их на уязвимой системе.
Существует три наиболее распространенных способа, как шпионы располагаются и работают на машине жертвы.
Первый - это реестр и ничего более, вирус может сидеть в автозагрузке, а может и вообще не присутствовать на компе, но цель у него одна - это заменить через реестр стартовую страницу браузера. В случае если вирус или же скрипт всего лишь однажды заменил стартовую страницу, вопросов нет, всего лишь надо очистить этот ключ в реесре, если же после очищения, через некоторое время ключ снова появляется, то вирус запущен и
постоянно производит обращение к реестру. Если есть опыт работы с
отладчиками типа SoftIce то можно поставить точку остановок на доступ к реестру (bpx RegSetValue) и проследить, какая программа, кроме стандартных, производит обращении к реестру. Дальше по логике уже.
Второй - это именно перехватчики системных событий, или хуки. Как правило, хуки используются больше в кейлоггерах, и представляют собой библиотеку, которая отслеживает и по возможности изменяет системные сообщения.
Обычно есть уже сама программа и прикрепленная к ней библиотека, поэтому
исследуя главный модуль программы ничего интересного не получить.
Третий способ - это прикрепление своей библиотеки к стандартным программам ОСи, таким как explorer.exe и iexplorer.exe, проще говоря написание плагинов к этим прогам. Тут опять же есть пара способов, это прикрепление с помощью BHO и просто внедрение своей библиотеки в исполняемый файл. Разница, примерно в том что Browser Helper Object используется как плагин к браузеру, а внедрение библиотек - это уже не столько плагин, сколько как самодостаточная программа, больше напоминающая файловый вирус прошлых лет.
Ключи реестра, куда могут прописаться недоброкачественные товары, в виде тулбаров, кнопок и стартовых страниц браузера.
Стартовая страница
HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain параметр StartPage.
HKEY_USERSS-1-5-21-1214440339-507921405-839522115-
1000SoftwareMicrosoftInternet ExplorerMain параметр StartPage
Регистрирование объектов типа кнопок, тулбаров и т.д.
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentV ersionExplorerBrowser
Helper Objects
Вот тут регистрируется все "помошники" и если у вас таковых нет то ключ должен быть пуст, если не пуст, то неоходимо удалить.
Для более детального анализа потребуются некоторые инструменты, такие как PETools by NEOx и PEiD. Возможно, проверив реестр, так и не удасться найти изменения статовой страницы, а так же не найти регистрации плагинов в браузере. При детальном осмотре окажется, что данная строка поиска (тулбар) появляется во всех окнах ОСи. Это уже немного меняет суть дела. Возможно занимаются этим два независимых друг от друга шпиона и именно методом внедрения динамической библиотеки. При этом надо различать, что если тулбар был бы только в браузере, значит, внедрился он в процесс iexplorer.exe, но он везде, следовательно, проверять надо было в explorer.exe. Запускаем PETools и просто смотрим, какие библиотеки использует браузер. И если на фоне системных библиотек из %SYSTEMROOT% красуется некая smt.dll с путем, уходящем, куда то в TEMP, то цель достигнута. Перезагрузка в безопасном режиме и удаление этой библиотеки, и все в норме, шпион убит. Осталось только опять вызвать PETools, кликнуть правой кнопкой мыши на процессе и произвести пересборку файла. Это самый простой случай.
Даее надо найти и убить тулбар. Тем же образом смотрим процесс explorer.exe, ничего бросающегося в глаза...? Скорее всего тулбар затерялся среди библиотек, мсотрите внимательнее )). Но как же тогда отличить настоящую библиотеку от подложной? Как известно вирмейкеры гонятся за минимализацией и зашифрованостью кода. То есть не один тулбар как правило не будет лежать в открытом виде, во-первых код можно уменьшить, а значит нужно, и во-вторых если кто нибудь (чаще даже не антивирус, а конкурент) обнаружит данную библиотеку то ему незашифрованный код легче понять. Поэтому берем PEiD и производим массовое сканирование импортируемых библиотек. Библиотеки от microsoft естественно написаны на visual C++ и ничем не упакованы, поэтому если видно упакованную или зашифрованную библиотеку то 99% это, то, что искали. Проверить она это или нет очень просто, переместите в безопасном режиме ее и посмотрите результат.
Если все-таки не удается найти упакованную библиотеку, то полезно редактором ресурсов типа Restorator посмотреть версии файла. Вот на таких делах прокалываются вирмейкеры.
Стоит еще заметить, что библиотека *.dll не обязательно может внедрятся в процессы. В ОСи Win# есть такое полезное и известное приложение, как rundll32.exe, и с помощью этого процесса можно запускать любую библиотеку. И при этом не обязательно в автозагрузке писать rundll32.exe myspy.dll, достаточно прописать это внутри зараженного файла. Тогда вы будете видеть только свои (зараженные файлы, которые маловероятно будут обнаруживаться антивирем) и процесс rundll32.exe, и больше ничего. Как быть в таких случаях? Здесь уже придется углубляться в структуру файла и ОСи...
Список системных служб svhost.exe (WinXP)
DHCP-клиент svchost.exe -k netsvcs
DNS-клиент svchost.exe -k NetworkService
Автоматическое обновление svchost.exe -k netsvcs
Вторичный вход в систему svchost.exe -k netsvcs
Диспетчер логических дисков svchost.exe -k netsvcs
Запуск серверных процессов DCOM svchost -k DcomLaunch
Инструментарий управления Windows svchost.exe -k netsvcs
Клиент отслеживания изменившихся связей svchost.exe -k netsvcs
Модуль поддержки NetBIOS через TCP/IP svchost.exe -k LocalService
Обозреватель компьютеров svchost.exe -k netsvcs
Определение оборудования оболочки svchost.exe -k netsvcs
Рабочая станция svchost.exe -k netsvcs
Сервер svchost.exe -k netsvcs
Служба восстановления системы svchost.exe -k netsvcs
Служба времени Windows svchost.exe -k netsvcs
Служба регистрации ошибок svchost.exe -k netsvcs
Службы криптографии svchost.exe -k netsvcs
Справка и поддержка svchost.exe -k netsvcs
Темы svchost.exe -k netsvcs
Уведомление о системных событиях svchost.exe -k netsvcs
Удаленный вызов процедур (RPC) svchost -k rpcss
Центр обеспечения безопасности svchost.exe -k netsvcs
Диспетчер авто-подключений удаленного доступа svchost.exe -k netsvcs
Протокол HTTP SSL svchost.exe -k HTTPFilter
Расширения драйверов WMI svchost.exe -k netsvcs
Служба загрузки изображений (WIA) svchost.exe -k imgsvc
Служба обеспечения сети svchost.exe -k netsvcs
Служба серийных номеров переносных устройств мультимедиа
svchost.exe -k netsvcs
Совместимость быстрого переключения пользователей
svchost.exe -k netsvcs
Съемные ЗУ svchost.exe -k netsvcs
Узел универсальных PnP-устройств svchost.exe -k LocalService
Управление приложениями svchost.exe -k netsvcs
Фоновая интеллектуальная служба передачи svchost.exe -k netsvcs
Диспетчер подключений удаленного доступа svchost.exe -k netsvcs
Сетевые подключения svchost.exe -k netsvcs
Система событий COM+ svchost.exe -k netsvcs
Служба обнаружения SSDP svchost.exe -k LocalService
Служба сетевого расположения (NLA) svchost.exe -k netsvcs
Службы терминалов svchost -k DComLaunch
Телефония svchost.exe -k netsvcs
Windows Audio svchost.exe -k netsvcs
Доступ к HID-устройствам svchost.exe -k netsvcs
Маршрутизация и удаленный доступ svchost.exe -k netsvcs
Оповещатель svchost.exe -k LocalService
Планировщик заданий svchost.exe -k netsvcs
Служба сообщений svchost.exe -k netsvcs
(с) Shturmovik