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

Easy-Hack

Леонид "R0id" Стройков (r0id@mail.ru), m0r0 (m0r0@inbox.ru), muxx (muxx@bk.ru)


Задача: Вручную пропатчить IM-клиент qutim для работы с новой версией ICQ-протокола.

Решение:

В последнее время перебои в работе ICQ нередкость. Связано это впервую очередь с постоянными обновлениями протокола, вследствие чего большинство неофициальных клиентов попросту перестают корректно работать. Если у владельцев квипа или крысы есть выход - ждать патч, то обладателям qutim'а надеяться не на что, кроме как на самих себя. Впрочем, пропатчить утилу самостоятельно не так сложно, для этого следует произвести ряд нехитрых манипуляций, а именно:

1. Патчим файл oscarprotocol.cpp, а именно:

@@ -46,7 +46,7 @@ oscarProtocol::oscarProtocol(const QStri
connectionSocket = new QTcpSocket(this);
buffer = new icqBuffer(this);
buffer->open(QIODevice::ReadWrite);
- flapSeqNum = rand() % 0x8000;
+ flapSeqNum = 0x0000;
reqSeq = 0x0000;
keepAlive = true;
connectBos = false;

2. Вносим изменения в файл clientIdentification.cpp (87-ая строка):

@@ -84,7 +84,7 @@
QByteArray clientIdentification::getSeqNumber() const
{
QByteArray seq;
- quint16 num = rand() % 0xffff;
+ quint16 num = 0x000;
seq[0] = num / 0x100;
seq[1] = num % 0x100;
return seq;

3. Как вариант решения проблемы для сторонних клиентов - изменение первоначального значения Sequence Number на 0. Кстати, данный способ был обнаружен biophreak'ом, так что при желании ты можешь нагуглить дополнительную инфу по теме.

Задача: Организовать брут асек

Решение:

Спам-рассылки по асям в последнее время приобретают массовый характер, причем, особой популярностью у спамеров пользуются уин-листы с 6-ти/7-ми значными номерками. Так что, как ни крути, а агитировать спам я не стану, так же как не стану агитировать и флуд асек неприятелей. Тем не менее, о том как сбрутить несколько сотен/тысяч icq-номерков - расскажу, и даже не буду спрашивать зачем они тебе нужны :). И так, первое с чем нам нужно определиться - это софт. Дабы не зацикливаться на одном конкретном продукте, я решил остановить выбор на двух хорошо зарекомендовавших себя софтинах - ZBrute и UBrute. Начнем, как водится, по порядку. Если говорить коротко о функционале ZBrute, то следует выделить:

  • Возможность компиляции под *nix и Windows ОС
  • Наличие консольного динамического интерфейса
  • Поддержка удаленной консоли
  • Работа с сокс 4/5 и https-прокси
  • Наличие файла конфигурации

Больше всего нас интересует, естественно, первый пункт - возможность компиляции по никсами и виндой. Чтобы у тебя не возникало лишних вопросов, сейчас мы подробно рассмотрим процесс установки, настройки и запуска тулзы под разными осями, начнем с винды:

1. Сливаем утилу с нашего DVD (желательно на удаленный дедик)

2. Копируем ехе-шник в нужную нам диру, например, C:\ZBrute\

3. Запускаем прогу из консоли:

C:\ZBrute\ZBrute.exe -o C:\ZBrute\settings.txt

Как ты догадался, в файле settings.txt содержатся настройки брутера, о которых мы поговорим позже. А сейчас рассмотрим по-шаговую инсталяцию софтины в *nix-системе:

1. Сливаем сорец брутера zbrute.c с нашего ДВД (можешь смело заюзать один из своих никсовых серверов :)

2. Компилируем с помощью gcc на никсовой машине:

# gcc -lpthread zbrute.c -o zbrute

либо:

# gcc -pthread zbrute.c -o zbrute

3. На выходе получаем бинарник zbrute в указанном каталоге

4. Все параметры запуска совпадают с виндовыми

Теперь немного о конфиге - settings.txt, рекомендую обратить внимание на такие параметры, как:

# Source file
sourcelist = 'C:\zbrute\source.txt' //сурс-лист

# Good file
goodlist = 'C:\zbrute\gd.txt' //good-лист с валидными парами уин:пасс

# HTTPS proxy file
httpslist = 'C:\zbrute\proxy.txt' //прокси-лист

# Socks5 proxy file
# socks5list = '' //сокс5-лист

# Socks4 proxy file
# socks4list = '' //сокс4-лист

# Threads amount
threads = 150 //потоки

Полагаю, проблем с эксплуатацией не возникнет и ты без труда соберешь нехилую базу номерков :). А мы плавно переходим ко второй утиле - UBrute. Для начала о функционале:

  • Ведение статистики по потокам и проксикам
  • Возможность добавления проксиков во время брута
  • Наличие генератора UIN;Password
  • Наличие конфига
  • Поддерживается брут по спискам

Настроить софтинку на рабочий лад довольно просто:

1. Сливаем тулзу с нашего ДВД

2. Запускаем ехе-шник из архива

3. Генерируем лист уин:пасс с помощью встроенного генератора:

  • По диапазону - выбираем диапазон номеров, которые хотим брутить
  • По маскам - выбираем маску и цифры, которые нас интересуют
  • По списку - выбираем файл со списком уинов, отдельно добавляем пароли, затем генерируем список

4. Конфигурируем утилу, либо через гуишный интерфейс, либо редактируем config.ini:

Http=http.txt // http-прокси лист
Socks4=socks4.txt // сокс4-лист
Socks5=socks5.txt // сокс5-лист
Source=source.txt //сурс-лист
Bad=bad.txt // бэд-лист
Good=good.txt // гуд-лист с валидными парами уин:пасс
Thread=1000 // потоки

5. Жмем Start и наблюдаем за статой

Задача: Определить эксклюзивность заданного пароля

Решение:

На нашем диске мы не раз выкладывали объемные листы с паролями для брута по словарю, причем, в последнее время некоторые предприимчивые товарищи используют в своих пасс-листах не обычный набор слов, а список реально используемых паролей, собранных с веба. В связи с этим, позволь у тебя спросить: уверен ли ты в эксклюзивности своих паролей? Затрудняешься ответить? Тогда я тебе помогу. Нет, мы не будем перерывать Гугл в поисках твоего (или не совсем твеого :) пасса. А просто воспользуемся утилой ExclusivePass от NemeZz'а для чека уникальности паролей. Принцип работы проги заключается в поиске указанного пасса в соответствующих базах трех хак-форумов (надеюсь asechka.ru когда-нибудь вновь будет в строю):

Из опций следует выделить:

  • В базах содержится около 3365 постов с четырех разных форумов, даты постов - до 13.03.09 включительно
  • Корректное отображение всех постов
  • Возможность поиска в отдельных базах
  • Полное сохранение формата отображаемого сообщения
  • Наличие кликабельной ссылки на сообщении для возможности просмотра оригинала
  • При отсутствии пароля выводится соответствующее оповещение
  • Возможность поиска пароля с учетом регистра, либо без такового
  • Сохранение запросов в список
  • Возможность работы с собственной базой паролей, что позволяет чекать собственные пассы по уже существующим словарям, либо сохранять пароли для пополнения пасс-листа.
  • Наличие автоподстановки (работает с учётом регистра)

Использовать утилу совсем несложно, для этого:

  1. Сливаем архив с нашего диска
  2. Распаковываем, запускаем ехе-шник
  3. Отмечаем галочками форумы, в базах которых хотим искать пароль. Если хотим работать с собственной базой - жмем соответствующий баттон и заполняем требуемые поля.
  4. Вбиваем пасс в формочку (не забываем про регистр)
  5. Жмем поиск
  6. Наблюдаем результат в окне утилы

Кстати, прога работает с локальными базами, которые ты при желании можешь сомостоятельно дополнить :).

Задача: Вручную управлять включением/отключением авторана на флэшке

Решение:

Частенько нам приходится юзать свои флэшки на посторонних компах, что существенно увеличивает риск подхватить очередного троянчика с зараженной машины. Причем, многие зверьки умело используют авторан флэшки для собственного внедрения в систему. Конечно, можно попросту удалить файл autorun.inf, но ощутимого результата это не принесет, ибо создать новый файл авторана большинству троянов не составит особого труда. Следовательно нужно идти по другому пути - по пути изменения прав доступа к autorun.inf. Здесь есть два варианта - делать это вручную, либо автоматизировать процесс. Мы не будем усложнять себе жизнь и воспользуемся вторым способом, а именно - утилой Anti AutoRUN от Slesh'а. Особенности проги в следующем:

  • Поддерживает только флэшки с FAT32
  • Определение файловой системы флэшки
  • Автоматически создает файл авторана autorun.inf
  • Включает/отключает авторан
  • Работает по принципу замены последнего байта в строке "AUTORUN INF" на 0х40 (атрибут внутреннего использования)

Алгоритм работы утилы довольно просто:

  1. Указываем букву диска флэшки, на которой нам необходимо отрубить авторан
  2. Тулза определяет тип файловой системы на заданном диске (если ФС - не FAT32, завершает работу)
  3. Создается файл авторана autorun.inf
  4. Далее утила открывает диск на чтение/запись и начинает искать текст " AUTORUN INF"
  5. При обнаружении файла авторана есть два варианта событий: включить авторан и отключить авторан.

Сорец утилы ты, как всегда, найдешь на нашем ДВД, дерзай :).

Задача: Избавиться от заголовков, добавляемых Acunetix при сканировании Web-узла

Решение:

Перед тем как пользоваться сканерами безопасности советую проверить, какую инфу они посылают на сканируемый ресурс. Не знаю, как остальные, а вот Acunetix выдает хакера с потрохами, добавляя собственные HTTP-заголовки в каждый отправляемый запрос. Они указывают на то, что запрос сгенерирован Acunetix, что нужно бы чтить соглашения и не сканировать посторонние ресурсы. Ну разве не прелесть? Если уж ты решился кого-нибудь просканить, надо от этого груза избавляться. Интерфейс Acunetix предоставляет возможность редактирования и даже удаления заголовков (в окне ToolsExplorer >> HTTP Editor). Однако эти настройки действуют только при ручной отсылке запросов и игнорируются при сканировании в автоматическом режиме. Что ж, вооружимся фильтрующим прокси и вырежем их сами.

1. Забираем Privoxy по адресу http://sourceforge.net/project/downloading.php?group_id=11118&filename=privoxy_3.0.12.zip&a=84641926.

2. Распаковываем и переходим к редактированию конфигурационных файлов.

3. Активируем файл с пользовательскими фильтрами.

config.txt

filterfile user.filter

4. Добавляем новый фильтр для Acunetix.

user.filter

CLIENT-HEADER-FILTER: acunetix-control Removes Acunetix headers.
s/^Acunetix-Product:\s*.*//i
s/^Acunetix-Scanning-agreement:\s*.*//i
s/^Acunetix-User-agreement:\s*.*//i
s/^Acunetix-Aspect:\s*.*//i
s/^Acunetix-aspect-password:\s*.*//i
s/^Acunetix-aspect-queries:\s*.*//i

5. Активируем созданный фильтр.

user.action

{+client-header-filter{acunetix-control}}
/

6. Запускаем Privoxy.

7. Указываем Acunetix на необходимость работы через Privoxy. На вкладке Settings, выбери LAN Settings и установи настройки HTTP-прокси: Hostname - localhost, Port - 8118.

Для проверки примени директиву debug=64 в основном конфигурационном файле config.txt Privoxy или запусти любой сниффер пакетов. Учти, что возможно наличие и других заголовков, да и пропалиться можно совсем по другому поводу, так что будь начеку, хакер!

Задача: Создать портативную версию .NET-приложения с использованием ThinAPP

Решение:

Мне зачастую приходится пользоваться различными .NET-сборками, в том числе и совсем безобидными. Да и сам я, разрабатывая десктопные приложения, зачастую программирую на C#. Как удобно закинуть все это добро на флеху и пользоваться везде, где только можно. Проблема в том, что фреймворк по умолчанию в WinXP не включается и велика вероятность того, что запуск проги будет связан с необходимостью установки самой среды. Тем не менее, создать портативное приложение можно, например, с использованием виртуального контейнера ThinAPP.

  1. Скачиваем .NET Framework 3.5 по адресу http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe. Я тебе советую скачать весь пакет - еще пригодиться :)
  2. Скачиваем любую среду виртуализации, например VMWare Workstation.
  3. Устанавливаем виртуальную ось. Нужна максимально чистая Windows XP (всякие Zver DVD не рулят)!
  4. ОТКАЗЫВАЕМСЯ от установки VMWare Tools. Поверь мне, так надо, хотя в официальной документации про это ничего нет.
  5. Каким-то образом получаем и инсталлируем ThinAPP - тулза стоит от 6000 вечнозеленых рублей, так что разбирайся сам :)
  6. Делаем снапшот системы под названием ThinAPP Ready.
  7. Запускаем ThinAPP Setup Capture, следуем инструкциям мастера.
  8. Устанавливаем .NET framework.
  9. Настраиваем опции сборки контейнера ThinAPP. Обязательно включи в состав точек входа cmd.exe. В качестве Sandbox Location выбирай USB Flash.
  10. Собираем контейнер. Сохраняем его в укромном месте. И я бы посоветовал еще раз снять снапшот.
  11. Запускаем ThinAPP Setup Capture и устанавливаем/копируем нужное нам приложение. Если копируешь, лучше это делать в папку %programfiles%, она будет видна из контейнера по переменной окружения и, соответственно, через консоль ты получишь доступ к файлам в обход интерфейса приложения.
  12. Настраиваем параметры сборки контейнера и, не запуская build, нажимаем на кнопку Browse Project.
  13. Выбираем для редактирования файл package.ini. Устанавливаем в нем параметр RequiredAppLinks=..\dotnetfx35\dotnetfx35, где ..\dotnetfx35 - путь до контейнера, содержащего .NET, а dotnetfx35 - собственно, имя самого файла контейнера.
  14. Строим контейнер.
  15. Перед запуском приложения удостоверься, что контейнер с .NET-средой доступен по указанному в настройках пути.

Если тебе неохота засовывать само приложение в отдельный контейнер, можно этого и не делать. Надеюсь, ты включил в качестве точки входа в контейнер .NET cmd.exe (если нет - кури пункт 9). Запусти cmd.exe из папки с контейнером и уже из консоли вызови .NET приложение. Могу тебя уверить - среду оно увидит и запустится нормально!

Задача: Создать портативную версию .NET-приложения с использованием Xenocode

Решение:

Конечно, можно сделать все с помощью ThinApp: создать контейнер со средой .NET и натравить на него каким-либо образом тулзу на дотнете. Но... контейнер весит 150 метров. А что, если тулза при этом весит каких-нибудь пару мегабайт? Что, тащить за ней весь контейнер со средой? Конечно, нет!! И если вмварез не справляется с данной задачей, то на помощь приходит Xenocode Postbuild! Он проанализирует код (точнее, секцию using) и сам определит, какие длл’ки из среды .NET нужно класть в контейнер с твоей тулзой. Вдобавок он умеет обфусцировать код несколькими методами (есть даже специально против ILDASM). И все это управляется из интерфейса ribbon (а-ля office 2007). Моя тулза весом 2 метра превратилась в экзешник 25 мегабайт (я использую Xenocode Postbuild v7.0.162).

  1. Идем на вкладку application, добавляем в список свою тулзу
  2. Идем на вкладку output, ставим галку compile application to native x86 executable image
  3. Выбираем single application executable и в комбобоксе выбираем экзешник, к которому xenocode добавит среду .NET. Тут же есть галка Generate diagnostic-mode executable. Если впоследствии тулза будет сыпаться с ошибками, можно попробовать скомпилить с этой галкой. Тогда в папку с приложением будет падать лог с подробным описанием того, что происходит.
  4. Идем на вкладку Virtualize. В Runtimes можно выбрать версию среды, добавляемую в экзешник. Имей в виду, что среду xenocode подгружает из интернета со своего сайта, даже если она уже установлена в системе.
  5. В Filesystem можно добавить все, что должно быть в виртуальной файловой системе приложения. Например, моя тулза не может жить без длл’лек пакета DevExpress, который разрабатывает сторонняя контора и которые поэтому не входят в состав среды .NET. Поэтому в папку Application Directory я добавил длл’ки из этого пакета.

Если не требуется обфускация (это тема для отдельного разговора), то на этом все. Можно жать Xenocode Application, и через несколько десятков секунд в твоем распоряжении портативная версия приложения, не требующая среды .NET!

Теперь о неприятном, то есть о минусах. К сожалению, точка входа может быть только одна. Если твое приложение состоит из нескольких исполняемых файлов, то выхода тут может быть три.

  • Ксенокодить каждый exe по очереди. Тогда к каждому исполняемому файлу будет добавляться среда .NET;
  • Сделать точкой входа cmd.exe. Туда добавится часть среды .NET, необходимая для работы твоих приложений (не забудь только их тоже добавить в список на шаге 1). Но тогда каждый раз придется открывать заксенокоденную cmd.exe и уже оттуда запускать приложения, чтобы они увидели среду .NET;
  • Использовать thinapp. Если у тебя много дотнетовского кода, который нужно сделать портативным, сделай один контейнер со средой .NET, который будут использовать все приложения;

Что использовать в каждом конкретном случае, решать, конечно же, опять тебе. Но я бы советовал следующее: если есть пара приложений, которые неплохо бы сделать портативными, используй ксенокод. Если же тебе нужна вся среда .NET на флешке, ThinApp тебе в помощь.

Содержание