Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #82, ОКТЯБРЬ 2005 г.

Подключим - поиграем!

Хаштамов Адиль (adi1@ok.kz)

Хакер, номер #082, стр. 082-064-3


1. Хэндл на именованный канал, созданный с помощью CreateNamedPipe или CreateFile

2. Указатель на структуру данных, которые запишутся в канал

3. Размер 2 параметра

4. Указатель на буфер, принимающий ответ от канала

5. Размер 4 параметра

6. Указатель на переменную, которая принимает количество байт, прочитанных из канала

7. Указатель на OVERLAPPED структуру. В данном случае он игнорируется

В главной функции main() расположена структура NETRESOURCE:

NETRESOURCE nr;

nr.dwType = RESOURCETYPE_ANY; #это тип ресурса

nr.lpLocalName = NULL; #локальное имя машины

nr.lpRemoteName = unc; #удаленное имя машины

nr.lpProvider = NULL; #провайдер

Несколько лет назад Horrific писал статью, в которой описывался пример создания сканера ресурсов. Так вот, в нашем случае используются функции и структуры аналогичные тем, что были разобраны в его статье. Далее в сплоите создается соединение с хостом, указанным в первом аргументе функции main():

server=argv[1];

_snprintf(unc, sizeof(unc), "\\\\%s\\pipe", server);

WNetAddConnection2(&nr, "", "", 0);

Процедура WNetAddConnection2() соединяет машину с сетевым ресурсом, у этого блока кода имеется 4 аргумента:

1. Указатель на структуру NETRESOURCE

2. Пароль

3. Имя пользователя

4. Флаг

Флагов очень много, я рассмотрю лишь некоторые:

* CONNECT_INTERACTIVE - если этот флаг установлен, то ОС взаимодействует с пользователем через аутентификацию

* CONNECT_PROMPT - В данном случае ОС делает все по умолчанию. То есть никакая аутентификация не требуется

Теперь расскажу о том, каким образом можно создать анонимный именованный канал. Реализуется это следующим образом:

_snprintf(szPipe, sizeof(szPipe), "\\\\%s\\pipe\\browser",server);

hFile = CreateFile(szPipe, GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

BindRpcInterface(hFile,"8d9f4e40-a03d-11ce-8f69-08003e30051b","1.0");

[эпидемия птичьего гриппа]

Буквально на второй день после публикации информации об уязвимости P'n'P, в Сети появился злобный червь, который поражал непропатченные системы. Оказалось, что по всему миру бесчисленное множество бажных машин. Новому червю дали звучное имя - Zotob. Процедура размножения этого червя чрезвычайно банальна: он просто сканирует огромные сетевые диапазоны в поисках уязвимых машин и заражает найденные машинки. Червь также умеет получать команды по irc: хозяин irc-сервера указывает команду ботам, а те охотно выполняют ее. Сразу же, как новость о новом черве просочилась в массы, стали появляться клоны червя. Ими уже, скорее всего, управляли другие люди. Клоны начинали проверять признаки раннего заражения на удаленной машине, и если признаки выявлялись, они старались удалять старые варианты червей. И тут уже разразилась настоящая бойня за каждую отдельную машину. Заражению подверглись десятки тысяч компьютеров! В их числе были машины таких крупнейших корпораций, как Microsoft, CNN и NY Times.

[защита от заразы]

Как говорится, нужно знать своего врага в лицо. Поэтому я хочу описать подробности обнаружения этой заразы и последующего удаления ее из твоего компа. Во-первых, что меня удивило, так это тот факт, что zotob практически никак не маскируется. Никак не скрывает ключей в реестре, не перехватывает API вызовы. Его обнаружить очень легко. Первое, что бросается в глаза, так это запись в реестре на автозагрузку червя. Обычно в реестре он пишется в такие стандартные ключи, как HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run и HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices.

Назад на стр. 082-064-2  Содержание  Вперед на стр. 082-064-4