Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #98, ФЕВРАЛЬ 2007 г.

Hack-Faq

Иван Скляров

Хакер, номер #098, стр. 066


(sklyaroff@mail.ru, www.sklyaroff.ru)

Q: Что такое MIM-атака?

A: Аббревиатура MIM, или MITM, происходит от английского Man-in-the-Middle, то есть «атака с человеком посередине». Суть MIM-атаки в том, что между двумя (или более) узлами, обменивающимися данными, вмешивается третья сторона, которая перехватывает, прослушивает или блокирует передачу информации. Существует множество разновидностей MIM-атак под различные среды передачи информации.

Q: А можно конкретный пример MIM-атаки?

A: Разумеется, можно, вот типичная MIM-атака - ARP Redirect (ARP-spoofing). Суть ее состоит в следующем. Допустим, хакеру нужно перехватить трафик между узлами A и B в коммутируемой (построенной на свитчах) сети. Любой узел в сети Ethernet, посылая данные по какому-либо IP-адресу, должен знать также MAC-адрес своего собеседника. Поэтому каждая машина, перед тем как послать данные, всегда сначала просматривает свой ARP-кэш, в котором хранятся соответствия «IP-MAC», на наличие нужного MAC-адреса. Если такого соответствия не обнаруживается, узел посылает широковещательный ARP-запрос. Хакер может послать фальсифицированное ARP-сообщение узлу A, указав, что MAC-адрес машины хакера соответствует IP-адресу узла B. Узел A занесет эти сведения в свой ARP-кэш и, когда будет посылать пакеты узлу B, в реальности отправит их узлу хакера. Для полноценного двустороннего перехвата хакеру нужно проделать аналогичные действия с ARP-кэшем узла B. После этого весь трафик между узлами A и B будет идти через машину хакера. Хакеру необходимо периодически посылать фальсифицированные ARP-сообщения узлам A и B для обновления их ARP-таблиц, иначе они рано или поздно сформируют правильную таблицу.

Q: Хочу научиться писать эксплойты, что для этого нужно?

A: Во-первых, для этого нужна голова, а в ней - мозги. Во-вторых, необходимо выучить языки программирования Си и Ассемблер, разобраться с устройством операционных систем. Затем можно приступать к чтению специализированных статей и книг конкретно по программированию эксплойтов. Правда, на русском языке хороших мануалов по этому вопросу почти нет. Из книг могу посоветовать только свою собственную - «Программирование боевого софта под Linux» (Иван Скляров). В ней наиболее полная и детальная информация по программированию локальных и удаленных эксплойтов под ошибки переполнения буфера в стеке и куче, bss, форматной строки, но только под операционную систему Linux. Под Windows надо смотреть другие источники, либо ждать, пока я напишу «Программирование боевого софта под Windows».

Q: В чем суть FTP Bounce атаки?

A: FTP Bounce Attack (скрытая атака по FTP) - это применение FTP-сервера в качестве proxy для проведения атак на другие узлы с целью сокрытия своего местоположения. Основана эта возможность на использовании одной особенности FTP-серверов: после подключения к FTP-серверу клиент должен передать ему команду PORT с параметрами, указывающими, с каким IP-адресом надо соединиться и какой порт открыть по этому адресу - обычно этот порт и адрес соответствуют самой машине клиента. Однако вместо своего IP-адреса и порта на своей машине хакер может передать IP-адрес и TCP-порт машины-жертвы. Таким образом, например, можно выполнять анонимное сканирование портов машины-жертвы. Выполняя команду LIST, FTP-сервер попытается прочитать ней текущий каталог, посылая на указанный в команде PORT порт назначения TCP SYN-запрос. Если порт на машине-жертве открыт, то на сервер приходит ответ TCP SYN АСК и FTP-клиент получает «150» и «226», если же порт закрыт, то - «425. Can't Build Data Connection: Connection Refused» («425. Невозможно установить соединение: в соединении отказано»). Далее в цикле FTP-серверу можно последовательно выдавать команды PORT и LIST и осуществлять сканирование разных портов. Подобным образом обходятся файрволы. К сожалению, в наше время не все FTP-серверы позволяют использовать этот метод.

Q: Что означает термин «ксорить»?

A: Ксорить - это выполнять логическую операцию XOR (исключающее ИЛИ), которая имеет следующую семантику:

0 xor 1 = 1

1 xor 0 = 1

0 xor 0 = 0

1 xor 1 = 0

Обычно эту операцию используют для простейшего шифрования. Я тебе советую заглянуть в мою книгу «Головоломки для хакера», там ты сможешь порешать кучу головоломок на дешифрование текстов с использованием XOR.

Q: Посоветуй логклинер под Linux, который не просто удаляет записи из utmp/wtmp/lastlog, а способен подменять записи на поддельные.

A: Пожалуйста: логклинер Mr-Lynd0v1_2.c способен подменять пользователей и хосты в логфайлах; mme.c позволяет подставлять записи с другого логина вместо реальных; nabi.c может подменять любые указанные данные в записях на новые. Ищи все эти и другие логклинеры на http://packetstormsecurity.org.

Q: Как скопировать SAM-файл?

A: Напомню, что в файле SAM (Security Account Manager - диспетчер защиты учетных записей) хранятся учетные записи пользователей, содержащие в том числе имя пользователя и его пароль в Windows NT/2000/XP/2003. Этот файл расположен в каталоге %SystemRoot%\system32\config, но к нему нельзя получить доступ, пока Windows NT/2000/XP/2003 загружена, так как он постоянно открыт операционной системой для того чтобы изменения становились доступны без перезагрузки компьютера. Поэтому можно поступить одним из следующих способов:

  1. Если на компьютере установлена еще одна операционная система (например, Linux), то загрузиться с нее, выйти в нужный раздел и скопировать SAM-файл в другой каталог или на дискету/CD (кроме SAM, обычно нужно еще переписать файл SYSTEM из того же каталога).
  2. Использовать с той же целью Live-CD (например, Knoppix).
  3. Если Windows NT/2000/XP/2003 была установлена на файловую систему FAT (FAT32), то просто создать загрузочную дискету, загрузиться с нее и скопировать файл SAM в другой каталог или на дискету. Если Windows установлена на файловую систему NTFS, то для доступа к файлу SAM использовать дискету, созданную в программе NTFSDos Pro.
  4. Иногда копия файла SAM хранится в каталоге %SystemRoot%\repair, из которого ее можно скопировать без перезагрузки.

Только зачем тебе копировать файл SAM? Если для того, чтобы получить из него логины и пароли, то лучше сразу использовать одну из следующих программ: L0phtcrack 4, LCP (www.lcp.da.ru), Advanced NT Explorer (www.elcomsoft.com) или SAMInside (www.insidepro.com). Они позволяют расшифровать пароли без предварительного копирования файла SAM, в том числе на удаленном компьютере.

Q: Что такое Autorooter?

A: Autorooter (от английского auto — автоматический и root — права системного администратора в UNIX-подобных системах) — это комплекс из одного или множества эксплойтов и других боевых утилит, таких как сканер портов или сканер безопасности. Авторутеры могут быть выполнены в виде одного файла или множества связанных файлов. Они специально создаются хакерами для облегчения взлома серверов. Авторутер самостоятельно ищет в сети уязвимые машины, осуществляет их взлом и затем оповещает об этом своего хозяина. Осуществляя массовый автоматический взлом в сети, авторутер имеет еще одно название — massrooter (от английского mass — массовый). Массрутеры действуют во многом аналогично интернет-червям, но только находятся при этом под полным контролем хакера. Публичных массрутеров пока известно не очень много, но, очевидно, число их будет расти. Из тех, что доступны в публичных интернет-архивах, можно назвать massroterfinal от Daddy_cad, lpd autorooter от dave, OpenSSL-uzi от Harden и других. Всех их можно найти на http://packetstormsecurity.org.

Q: Подскажи какой-нибудь работающий генератор номеров кредитных карт?

A: Вот, пожалуйста: THC-Credit v1.91 от известной немецкой команды THC, он генерирует абсолютно правильные номера кредитных карт (Visa, American express и пр.). Одна только проблемка - вряд ли ты в настоящее время сможешь воспользоваться этими номерами, так как почти везде, кроме номеров, требуется указать дату окончания срока действия карты, имя владельца кредитной карты, напечатанной на самой карте, CVC/CVV2-код и т.д. Хотя, надо заметить, на сайте www.thc.org в Top 3 Downloaded Releases по количеству скачиваний генератор THC-Credit v1.91 до сих пор стоит на первом месте. И это, несмотря на то что программа была написана в 1999 году!

Q: В чем суть ошибки Integer Overflow и существуют ли под эту ошибку эксплойты?

A: Суть ошибки Integer Overflow заключается в том, что в 32-битных системах значения переменных типа Integer могут лежать только в пределах от –2147483648 до 2147483647 (4 байта) или от 0 до 4294967295 для беззнаковых целых (Unsigned Integer). Если же в переменную записать значение, превышающее максимально возможное число, поведение программы непредсказуемо и зависит от компилятора. Следующий пример в системе Linux после компиляции и исполнения выдает 0, хотя, по логике, должен выдавать 4294967296:

#include <stdio.h>

int main() {

int sum = 4294967295 + 1;

printf("sum = %d\n", sum);

}

В стандарте ISO C99 для устранения этой уязвимости рекомендовалось просто использовать в вычислениях Unsigned Integer, однако на практике это нисколько не решает проблемы. Для устранения ошибки Integer Overflow необходимо добавить в код проверки на превышение значений переменных Integer максимального предела.

Эксплойты под эту ошибку, разумеется, существуют, достаточно набрать в www.google.ru «integer overflow exploit» и все увидеть своими глазами.

Содержание