Пятница, 19.04.2024, 03:30 Приветствую Вас Гость

Программы бесплатно!

Меню сайта
Мини-чат
Наш опрос
Какой антивирус вы считаете лучшим?
1. Kaspersky
2. AVG
3. Microsoft Security Essentials
4. avast!
5. Comodo Internet Security
6. Digital Defender
7. eEye
8. Symantec Norton
9. Trustport
10. GDATA
11. ArcaBit
12. Avira
13. Avira Personal
14. BitDefender
15. Comodo AntiVirus
Всего ответов: 11
Статистика
Яндекс.Метрика
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум сайта » Всё о компьютерных вирусах и как они действуют. » Тактика и стратегия инфицирования
Тактика и стратегия инфицирования
ВованДата: Четверг, 30.06.2011, 22:37 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 42
Статус: Offline

Основные враги ниндзя – темнота, неизвестность, колючая проволока файрволов и волкодавы, снующие по охраняемой территории. Подготовка к заброске shell – кода начинается с определения IP – адресов, пригодных для вторжения. Если червь находится в сети класса C, три старших бита IP – адреса который равны 110, то её можно и про сканировать ( распотрошите любой сканер, если не знаете, как ) Сканирование сетей остальных классов занимает слишком много времени и немедленно привлекает к сибе внимание администраторов, а вниманием администраторов черви предпочитают не злоупотреблять. Вместо этого они выбирают пару – тройку случайных IP – адресов, выдерживая каждый раз секундную паузу, дающую TCP/IP – пакетикам время рассосаться и предотвращающую образование запросов. Червь Slammer, поражающий SQL – серверы, не делал такой паузы и поэтому сдох раньше времени, а вот Love San жив и по ныне. Nimda и некоторые другие черви не играют в кости и определяют целевые адреса эвристическим путём, анализируя содержимое жесткого диска ( перехватывая проходящий сквозь них трафик), они ищут url-ы, e-mail-ы и прочие полезные ссылки, занося их в список кандидатов на заражение.
Затем кандидаты приходят предварительное тестирование. Червь должен убедится, что данный IP-адрес действительно существует, удаленный узел не висит и содержит уязвимую версию сервера или операционную систему, известную червю и совместимую с shell-кодом одной или нескольких его голов. Первые две задачи решаются предельно просто: червь отправляет серверу легальный запрос, на который тот обязан ответить ( для веб - сервера это запрос GET ), и если сервер что-то промычит в ответ, значит, жив курилка. Заметим, что отправлять серверу эхо-запрос, более известный в народе как << ping >>, неразумно, так как его может сожрать недружелюбно настроенный брандмауэр ( помните историю про Красную шапочку?).
С определением версии сервера дела обстоят значительно сложнее. Универсальными решениями здесь не пахнет. Некоторые протоколы поддерживают специальную команду или возвращают версию сервера в строке приветствия, но чаще всего информацию приходится добывать по косвенным признакам. Различные операционные системы и серверы по-разному реагируют на нестандартные пакеты или проявляют себя специфическими портами, что позволяет осуществлять грубую идентификацию жертвы. А точная идентификация червю нужна, как зайцу панталоны, а собаке пятая нога: главное – отсеять заведомо неподходящих кандидатов. Если забросить голову червя на неподходящий укрепленный район, ничего не произойдёт. Голова погибнет, только и всего.



На завершающей стадии разведывательной операции червь посылает удалённому узлу условный знак, например два зелёных свистка ( отправляет TCP-пакет с кодовым посланием внутри ). Если узел уже захвачен другим червём, он должен выпустить в ответ три фиолетовых. Это наиболее уязвимая часть операции, ведь противник ( администратор ) пронюхает об этом, вражеский узел без труда сможет прикинутся без труда << своим >>, предотвращая вторжение. Такая техника антивирусной защиты называется << вакцинацией >>. Для борьбы с ней черви раз в несколько поколений игнорируют признак заражения и захватывают узел повторно, чем и приводят свою популяцию к гибели, ибо все узлы инфицируются многократно и через некоторое время начинают кишеть червями, сжигающими все системные ресурсы со всеми вытикающими отсюда последствиями.
Выбрав жертву, располагающую ко вторжению, червь посылает серверу запрос, переполняющий буфер и передающий бразды правления shell-коду, который может быть передан как вместе с переполняющемся запросом, так и отдельно от него. Такая стратегия вторжения называется многостадийной. Её реализует, в частности, червь Slapper.
При подготовке shell-кода следует помнить о брандмауэрах, анализирующих содержимое запросов и отсекающих все подозрительные пакеты. Этим, в частности, занимаются фильтры уровня приложений. Чтобы избежать расстрела, shell-код должен соответствовать всем требованиям спецификации протокола и быть синтаксически неотличимым от нормальных команд. Ведь фильтр анализирует отнюдь не содержимое ( на это у него кишка тонка ), а лишь форму запроса. За Штирлицем тащился парашют…. Если захват управления пройдёт успешно, shell-код должен найти дескриптор ТСР/IP – соединения, через которое он был заслан, и подтянуть оставшейся хвост ( это можно сделать лобовым перебором всех сокетов через функцию getpeername). Проще, конечно, было бы затащить хвост через отдельное ТСР/IP-соединение, но если противник окружил себя грамотно настроенным брандмауэром, с голыми руками на него не попрёшь. А вот использовать уже установленные ТСР/IP-соединения никакой брандмауэр не запрещает.



И вот вся группа в сборе. Роем окопы от меня и до обеда1 самое идиотское, что только может предпринять спецназ, - это сгрузить свою тушу в исполняемый файл, затерявшийся в густонаселённых трущобах Windows\System32 и автоматически загружающийся при каждом старте системы по ключу HKLM\Software\Microsoft\Windows\CurrentVersion\Run. Хорошее же вы место выбрали для засады. Молодцы, нечего сказать! Стоит администратору дотянутся до клавиатуры, как от червя и мокрого места не останется. А вот если червь внедрится в исполняемые файлы на манер файловых вирусов, тогда его удаление потребует на много больше времени и усилий.
Для проникновения в адресное пространство чужого процесса червь должен либо создать в нём удалённый поток, вызвав функцию CreateRemoteThread, либо отпатчить непосредственно сам машинный код, вызвав WriteProcessMemry ( разумеется, речь идёт лишь об NT-подобных системах, UNIX требует принципиально иного подхода к себе ).
Как вариант, может прописаться в ветке реестра, ответственной за автоматическую загрузку динамических библиотек в адресное пространство каждого запускаемого процесса: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs – тогда червь получит полный контроль над всеми событиями, происходящими в системе, например блокируя запуск неугодных ему программ ( интересно, сколько штанов поменяет администратор, прежде чем разберётся, в чём дело? ).
Окопавшись в системе, червь приступает к поиску новых жертв и рассылке своей головы по подходящим адресам, предварительно уменьшив свой биологический счётчик на единицу, а когда достигнет нуля – вызвав самоликвидацию. Таков в общих чертах жизненный цикл червя, такова его карма.

 
Форум » Форум сайта » Всё о компьютерных вирусах и как они действуют. » Тактика и стратегия инфицирования
  • Страница 1 из 1
  • 1
Поиск:

Вход на сайт

Реклама Партнёров

Заработок в социальных сетях

Заработок в социальных сетях Заработок в социальных сетях
  • Реальный заработок в интернете на социальных сетях!
  • Друзья сайта
    Автосерфинг программы
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Поиск
    Copyright MyCorp © 2024