GrabDuck

Добываем логины под брут

:

Я заметил, что довольно часто возникает вопрос, где взять логины под брут. В основном советуют брать списки из уже составленных часто встречающихся логинов и на них брутить, в надежде, что какая-то часть из них окажется в зареганных на ресурсе. Так же встречаются грабберы логинов, в основном заточенные под конкретные порталы, самым пожалуй универсальным, который мне попадался в паблике, это несколько грабберов логинов под движок vBulletin, и то ни один из них, начиная с 4 версии двига форума не мог грабить логины. В этой теме, я вам на конкретных примерах, покажу как сграбить логины с практически любого портала с открытым списком мемберов.

Я покажу как с применением тулзы Epic Leech, можно собирать списки пользователей с различных форумов и порталов. Этот инструмент поможет для составления списков реально зареганных пользователей, чтобы осуществлять целенаправленные брутфорс атаки и значительно ускорить скорость/пробиваемость, нежели просто использовать известные и часто используемые ники. Это может показаться немного сложнее на первый взгляд, но разобравшись вы сможете создавать новые конфигурации под нужные сайты, в минимальные сроки.

Открываем Epic Leech:

Для того, чтобы создать конфиг под нужный вам сайт, нажимаете кнопку Войти в редактор << Login Editor>>, которая находится в правом нижнем углу, должно открыться новое окно, которое выглядит следующим образом:

Это окно редактора, которое мы будем использовать, чтобы создать наш собственный шаблон, чтобы вытащить весь список зареганных юзеров из целевого сайта.

Хочу отметить, что этот способ будет работать только если вы сможете просматривать список юзеров целевого web-сайта без необходимости быть авторизованным. Для начала вам нужно определится с целевым сайтом с которого будет осуществляться сбор логинов и последующая брутфорс атака. Для тренировок, чтобы найти простые примеры, вы можете обратится к Google по таким запросам как << forum, members list>>, << inurl:members.php>>, << inurl:memberlist.php>> и др. Как только вы определились с целью, необходимо открыть его в браузере и перейти на 2 страницу списка участников, чтобы посмотреть, как устроена сортировка страниц. Вы увидите, что URL ссылка будет либо << page=>> или << st=>>. Мы будем это использовать, чтобы установить Сортировочный вариант << Sort Option>> в настройках Epic Leech. Просто убедитесь, что эта настройка соответствует типу сортировки используемому на целевом сайте. Теперь когда у нас есть некоторые данные, рассмотрим на конкретном примере.


Ссылка на страницу пользователей:
http://www.vbulletin.org/forum/memberlist.php

Ссылка на 2 страницу пользователей:
http://www.vbulletin.org/forum/membe...sername&page=2

Поле <<Name>> не является обязательным, сюда можно занести допустим название ресурса, с которого собираются ники. Строка <<Get String>>, указываем путь к каталогу для отправки запросов, грубо говоря путь до изначальной страницы пользователей, только без адреса сайта. В строки <<Users Per Page>> и <<# of Pages>>, в первую указываете 1, а во вторую, переходите на последнюю страницу со списком пользователей, сколько страниц всего, это число и указываете. Если допустим список мемберов состоит из 800 страниц, соответственно строки примут значения 1-800.

Так, с этим разобрались. Теперь нам надо задать правильные варианты парсинга, указать из в настройках Epic Leech, чтобы он извлекал из исходного кода страниц, нужную информацию. Если вы запустите до этого, то получите больше чем просто имена пользователей, а будет парсится все подряд. Значит возвращается к первой страницей со списком мемберов и открываем в браузере ее исходный код. Берете одно имя пользователя с этой страницы, нажимаем <<Ctrl + F>> и начинаем его искать в исходном коде. Это позволит немного упростить задачу, нам необходимо определить уникальные тэги для парсинга.

Ниже представлена часть исходного кода, обратите внимание, что имя пользователя <<-MK->>, именно для него мы займемся поиском уникальных тэгов для парсинга.

PHP код:


              
            
    
    
         
     /tr><tr align="center"> 
<
td class="alt1Active" align="left" id="u34580">
<
a href="member.php?u=34580">-mk-</a>
<
div class="smallfont"><a style="text-decoration:none; color:#000088;" href="member.php?u=34580" title="No Releases">Member</a></div>
</
td>
<
td class="alt2"><a href="search.php?do=finduser&amp;u=34580" rel="nofollow"><img src="images/cstyle/blue/buttons/find.gif" alt="find.gif" title="Find all posts by -mk-" border="0" /></a></td>
<
td class="alt1">08 May 2003</td>
<
td class="alt2">11</td>
<
td class="alt1">07 Jul 2009</td>
<
td class="alt2"><img class="inlineimg" src="images/reputation/reputation_balance.gif" alt="-mk- is an unknown quantity at this point" border="0" /></td
В самом коде трудно выделить те моменты, на которые нужно обратить внимание, поэтому я заскринил с выделением важных аспектов.

Теперь вам нужно определиться, какой метод парсинга использовать, единичный или двойной. В данном примере, нам нужно определить технику анализа, чтобы парсинг происходил правильно. Если тэги, которые мы будем использовать, появляются в других местах исходного кода, придется использовать двойной метод парсинга, в связи с тем, что тэги появляются более чем в одном месте исходного кода, а не только вокруг имени пользователя. Так что нам нужно будет искать либо уникальные тэги или применять метод двойного парсинга. Метод двойного парсинга заключается в том, при первом парсинге он отмечает указанные теги, а затем он анализирует уже информацию внутри этих тегов, используя второй набор тегов. Данные методики помогут фильтровать мусор и сосредоточить внимание на именах пользователей. Методом проб и ошибок, поможет вам определить оптимальный вариант, если не получится сразу, просто продолжайте играть с тегами, чтобы посмотреть как оно влияет на то, что добавляется, как спарсенные <<Имена пользователей>>. Если у вас не получается добиться успеха с методом единичного парсинга, попробуйте двойной парсинг и вторичные теги, которые помогут сузить результаты.

Опираясь на отрывок исходного кода выше, было установлено что каждый логин обрамлен в следующие теги <<title="Find all posts by>> и <<border="0">>. Поэтому в данном случае подойдет метод единичнго парсинга. Смотрим на скриншоте куда прописываются эти значения.

Вы только что создали свой первый профиль. Нажимаете кнопку <<Save Site>> и можете наблюдать ваш новый профиль в списке доступных вариантов, чтобы начать скачивать. Нажимаем <<Start Leeching>> чтобы начать проверку на корректность настроек, если парсится много лишней информации, тогда вам понадобится пересмотреть используемые теги для парсинга, а затем снова настроить пока вы не найдете оптимальный вариант, который заработает под конкретно выбранную вами цель. Но и не забывайте, что сайты время от времени делают чистку от неактивных/массово зареганных акков, в связи с этим часть списка может стать не актуальной, следить за обновлением списка перед брутом.

Скриншот работы программы по выше составленному кофигу:


Ну и вторым примером в нашем обзоре, я выбрал форум нульдэя, из-за его некоторой особенности, вернее проблемы, с которой вы столкнетесь после сбора логинов.

Ссылка на страницу пользователей:
http://forum.0day.kiev.ua/index.php?act=Members

Ссылка на 2 страницу пользователей:
http://forum.0day.kiev.ua/index.php?...otoonly=&st=10

Смотрим в конец ссылки на 2 страницу, <<st=10>>. Значит в редакторе параметр <<Sort Options>>, ставим галку <<Start(st=0)>>. Как видим ссылка 2 страницы получилась довольно длинной и там полно не нужной информации, путем экспериментов у меня получилась следующая конструкция <</index.php?act=Members&st=[MPP]>>. Но косяк в том, что здесь за обозначение страницы берутся не st=1, st=2, st=3 и т.д. А сразу десятки, то-есть:
st=10 - вторая страница
st=20 - третья страница
st=30 - четвертая страница

Тулза же по единично меняет это значение, как на большинстве форумов. Чтобы пройтись допустим мембер лист на 800 листов, нам нужно это значение умножить на 10, соответственно в тулзе как конечную страницу указываем 8000, и в конце нужно будет удалить из списка дубликаты.

Теперь открываем исходник страницы, предварительно скопировав в буфер обмена один из ников с этой самой страницы. Я взял <<_STINGER_>>. Смотрим код:

Как видим ник обрамляет конструкция из тэгов <!-- End of Entry --><!-- Entry for и -->. И так для каждого ника. Соответственно тип парсинга выбираем одинарный. Вот так выглядит готовый скрин настроек:

Еще такой косяк, у конкретно данного форума, в исходном коде страницы, некоторые символы в другой кодировке отображаются, допустим:
отображается:должно быть

Чтобы это исправить, вам просто нужно открыть исходный файл с логинами в программе Штирлиц, она сама автоматически переведет в нужную кодировку, далее сохраняем исправленный вариант.

Скачать:
http://dl.dropbox.com/u/39292033/t00lz/Epic%20Leech.rar
http://www.motorocker.ru/download/autoformat.zip [ для удаления дублей]
http://www.softportal.com/getsoft-3560-shtirlits-1.html [ для исправления кодировки]

P.S. как видно, в настройках конфиг файла, имеется строка авторизации с пунктами под логин и пароль, но они у меня не активны. А то получилась программа которая позволяет парсить юзернеймы отовсюду, даже где эти данные защищены авторизацией для просмотра. Но не беда, мне где то попадалась тулза по типу Epic Leech и вот там уже была реализована авторизация, найду довыложу

P.P.S. как будет время, основываясь на этом материале, а также технике по социальной инженерии, я расскажу в отдельной статье, как собрать крупномасштабный ботнет. Методика показала себя эффективной, а размер ботнет сети, через некоторое время, будет самостоятельно увеличиваться, независимо от нас