Суббота, 20.04.2024, 02:29 Приветствую Вас Гость

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

Меню сайта
Мини-чат
Наш опрос
Нравится?
1. Нравится
2. Не нравится
Всего ответов: 1
Статистика
Яндекс.Метрика
[ Новые сообщения · Участники · Правила форума · Поиск · 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