PDA

Просмотр полной версии : Автодампинг md5


xss-faq
24.12.2009, 10:49
Скрипт из заданного диапазона символов (задается в массиве $char) скрипт генерирует ВСЕ возможные кобинации и их соответствующие md5 хэши и пишет это все в базу mysql.
В начале скрипта прописывается настройки бд. Для начала экстремальной закачки бд райнбов таблицы md5 просто запустить скрипт. За все последствия с Вашим сервером я ответственности не несу. :D

<?php


// Конфигурация
$host = 'host'; // Хост БД
$user = 'username'; // Паользователь БД
$password = 'passtodb'; // Пароль БД
$database = 'md5'; // Имя БД
// Соединяемся с БД
mysql_connect($host, $user, $password) or die('Не удалось подключиться к БД.');
// Выбираем Необходимую БД
mysql_select_db($database);

error_reporting(E_ALL & ~E_NOTICE);

// Устанавливаем неограниченное время выполнения скрипта
set_time_limit(0);

function addmd5($pass) {
// Массив символов
$char[] = 'a'; $char[] = 'b'; $char[] = 'c'; $char[] = 'd'; $char[] = 'e';
$char[] = 'f'; $char[] = 'g'; $char[] = 'h'; $char[] = 'i'; $char[] = 'j';
$char[] = 'k'; $char[] = 'l'; $char[] = 'm'; $char[] = 'n'; $char[] = 'o';
$char[] = 'p'; $char[] = 'q'; $char[] = 'r'; $char[] = 's'; $char[] = 't';
$char[] = 'u'; $char[] = 'v'; $char[] = 'w'; $char[] = 'x'; $char[] = 'y';
$char[] = 'z'; $char[] = '1'; $char[] = '2'; $char[] = '3'; $char[] = '4';
$char[] = '5'; $char[] = '6'; $char[] = '7'; $char[] = '8'; $char[] = '9';
$char[] = '0'; $char[] = 'A'; $char[] = 'B'; $char[] = 'C'; $char[] = 'D';
$char[] = 'E'; $char[] = 'F'; $char[] = 'G'; $char[] = 'H'; $char[] = 'I';
$char[] = 'J'; $char[] = 'K'; $char[] = 'L'; $char[] = 'M'; $char[] = 'N';
$char[] = 'O'; $char[] = 'P'; $char[] = 'Q'; $char[] = 'R'; $char[] = 'S';
$char[] = 'T'; $char[] = 'U'; $char[] = 'V'; $char[] = 'W'; $char[] = 'X';
$char[] = 'Y'; $char[] = 'Z'; $char[] = '!'; $char[] = '@'; $char[] = '.';
$char[] = '"'; $char[] = "'"; $char[] = '#'; $char[] = ';'; $char[] = '$';
$char[] = '№'; $char[] = "%"; $char[] = '^'; $char[] = ':'; $char[] = '?';
$char[] = '&'; $char[] = "*"; $char[] = '('; $char[] = ')'; $char[] = '-';
$char[] = '_'; $char[] = "+"; $char[] = '='; $char[] = '/'; $char[] = '\\';
$char[] = ",";
///////////////////////////////////////////////////////////
// Выбираем количество символов ( Если поставите 4 то он будет генерировать на 5 и т.д. )
$maxlen = 3;

if(strlen($pass) > $maxlen) return 'end.';
for($j = 0; $j < count($char); $j++) {
$temp = $pass.$char[$j];
$insert_hash = md5($temp);
$insert_pass = addslashes($temp);
// Добавляем хеш в БД
$query = "INSERT INTO MD5_BASE(id,hash,pass) VALUES (NULL, '$insert_hash','$insert_pass')";
$insert_md5 = mysql_query($query);
////////////////////////////////////////////////
$result = addmd5($temp);
}
}

addmd5("");

?>



Создаём базу из SQL:

-- phpMyAdmin SQL Dump
-- version 2.9.0
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Дек 24 2009 г., 09:33
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.6
--
-- База данных: `md5`
--

-- --------------------------------------------------------

--
-- Структура таблицы `md5_base`
--

CREATE TABLE `md5_base` (
`id` int(11) default NULL,
`hash` text,
`pass` text
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `md5_base`
--





Для линивых массивы символов

$char[] = 'a'; $char[] = 'b'; $char[] = 'c'; $char[] = 'd'; $char[] = 'e';
$char[] = 'f'; $char[] = 'g'; $char[] = 'h'; $char[] = 'i'; $char[] = 'j';
$char[] = 'k'; $char[] = 'l'; $char[] = 'm'; $char[] = 'n'; $char[] = 'o';
$char[] = 'p'; $char[] = 'q'; $char[] = 'r'; $char[] = 's'; $char[] = 't';
$char[] = 'u'; $char[] = 'v'; $char[] = 'w'; $char[] = 'x'; $char[] = 'y';
$char[] = 'z'; $char[] = '1'; $char[] = '2'; $char[] = '3'; $char[] = '4';
$char[] = '5'; $char[] = '6'; $char[] = '7'; $char[] = '8'; $char[] = '9';
$char[] = '0'; $char[] = 'A'; $char[] = 'B'; $char[] = 'C'; $char[] = 'D';
$char[] = 'E'; $char[] = 'F'; $char[] = 'G'; $char[] = 'H'; $char[] = 'I';
$char[] = 'J'; $char[] = 'K'; $char[] = 'L'; $char[] = 'M'; $char[] = 'N';
$char[] = 'O'; $char[] = 'P'; $char[] = 'Q'; $char[] = 'R'; $char[] = 'S';
$char[] = 'T'; $char[] = 'U'; $char[] = 'V'; $char[] = 'W'; $char[] = 'X';
$char[] = 'Y'; $char[] = 'Z'; $char[] = '!'; $char[] = '@'; $char[] = '.';
$char[] = '"'; $char[] = "'"; $char[] = '#'; $char[] = ';'; $char[] = '$';
$char[] = '№'; $char[] = "%"; $char[] = '^'; $char[] = ':'; $char[] = '?';
$char[] = '&'; $char[] = "*"; $char[] = '('; $char[] = ')'; $char[] = '-';
$char[] = '_'; $char[] = "+"; $char[] = '='; $char[] = '/'; $char[] = '\\';
$char[] = ",";



$char[] = 'а'; $char[] = 'б'; $char[] = 'в'; $char[] = 'г'; $char[] = 'д';
$char[] = 'е'; $char[] = 'ё'; $char[] = 'ж'; $char[] = 'з'; $char[] = 'и';
$char[] = 'й'; $char[] = 'к'; $char[] = 'л'; $char[] = 'м'; $char[] = 'н';
$char[] = 'о'; $char[] = 'п'; $char[] = 'р'; $char[] = 'с'; $char[] = 'т';
$char[] = 'у'; $char[] = 'ф'; $char[] = 'х'; $char[] = 'ц'; $char[] = 'ч';
$char[] = 'ш'; $char[] = 'щ'; $char[] = 'ъ'; $char[] = 'ы'; $char[] = 'ь';
$char[] = 'э'; $char[] = 'ю'; $char[] = 'я'; $char[] = '1'; $char[] = '2';
$char[] = '3'; $char[] = '4'; $char[] = '5'; $char[] = '6'; $char[] = '7';
$char[] = '8'; $char[] = '9'; $char[] = '0'; $char[] = 'А'; $char[] = 'Б';
$char[] = 'В'; $char[] = 'Г'; $char[] = 'Д'; $char[] = 'Е'; $char[] = 'Ё';
$char[] = 'Ж'; $char[] = 'З'; $char[] = 'И'; $char[] = 'Й'; $char[] = 'К';
$char[] = 'Л'; $char[] = 'М'; $char[] = 'Н'; $char[] = 'О'; $char[] = 'П';
$char[] = 'Р'; $char[] = 'С'; $char[] = 'Т'; $char[] = 'У'; $char[] = 'Ф';
$char[] = 'Х'; $char[] = 'Ц'; $char[] = 'Ч'; $char[] = 'Ш'; $char[] = 'Щ';
$char[] = 'Ъ'; $char[] = 'Ы'; $char[] = 'Ь'; $char[] = 'Э'; $char[] = 'Ю';
$char[] = 'Я'; $char[] = '!'; $char[] = '@'; $char[] = '"'; $char[] = ",";
$char[] = "'"; $char[] = '#'; $char[] = ';'; $char[] = '$'; $char[] = '№';
$char[] = "%"; $char[] = '^'; $char[] = ':'; $char[] = '?'; $char[] = '&';
$char[] = "*"; $char[] = '('; $char[] = ')'; $char[] = '-'; $char[] = '_';
$char[] = "+"; $char[] = '='; $char[] = '/'; $char[] = '\\'; $char[] = '.';



$char[] = 'a'; $char[] = 'b'; $char[] = 'c'; $char[] = 'd'; $char[] = 'e';
$char[] = 'f'; $char[] = 'g'; $char[] = 'h'; $char[] = 'i'; $char[] = 'j';
$char[] = 'k'; $char[] = 'l'; $char[] = 'm'; $char[] = 'n'; $char[] = 'o';
$char[] = 'p'; $char[] = 'q'; $char[] = 'r'; $char[] = 's'; $char[] = 't';
$char[] = 'u'; $char[] = 'v'; $char[] = 'w'; $char[] = 'x'; $char[] = 'y';
$char[] = 'z'; $char[] = 'A'; $char[] = 'B'; $char[] = 'C'; $char[] = 'D';
$char[] = 'E'; $char[] = 'F'; $char[] = 'G'; $char[] = 'H'; $char[] = 'I';
$char[] = 'J'; $char[] = 'K'; $char[] = 'L'; $char[] = 'M'; $char[] = 'N';
$char[] = 'O'; $char[] = 'P'; $char[] = 'Q'; $char[] = 'R'; $char[] = 'S';
$char[] = 'T'; $char[] = 'U'; $char[] = 'V'; $char[] = 'W'; $char[] = 'X';
$char[] = 'Y'; $char[] = 'Z'; $char[] = 'а'; $char[] = 'б'; $char[] = 'в';
$char[] = 'г'; $char[] = 'д'; $char[] = 'е'; $char[] = 'ё'; $char[] = 'ж';
$char[] = 'з'; $char[] = 'и'; $char[] = 'й'; $char[] = 'к'; $char[] = 'л';
$char[] = 'м'; $char[] = 'н'; $char[] = 'о'; $char[] = 'п'; $char[] = 'р';
$char[] = 'с'; $char[] = 'т'; $char[] = 'у'; $char[] = 'ф'; $char[] = 'х';
$char[] = 'ц'; $char[] = 'ч'; $char[] = 'ш'; $char[] = 'щ'; $char[] = 'ъ';
$char[] = 'ы'; $char[] = 'ь'; $char[] = 'э'; $char[] = 'ю'; $char[] = 'я';
$char[] = '1'; $char[] = '2'; $char[] = '3'; $char[] = '4'; $char[] = '5';
$char[] = '6'; $char[] = '7'; $char[] = '8'; $char[] = '9'; $char[] = '0';
$char[] = 'А'; $char[] = 'Б'; $char[] = 'В'; $char[] = 'Г'; $char[] = 'Д';
$char[] = 'Е'; $char[] = 'Ё'; $char[] = 'Ж'; $char[] = 'З'; $char[] = 'И';
$char[] = 'Й'; $char[] = 'К'; $char[] = 'Л'; $char[] = 'М'; $char[] = 'Н';
$char[] = 'О'; $char[] = 'П'; $char[] = 'Р'; $char[] = 'С'; $char[] = 'Т';
$char[] = 'У'; $char[] = 'Ф'; $char[] = 'Х'; $char[] = 'Ц'; $char[] = 'Ч';
$char[] = 'Ш'; $char[] = 'Щ'; $char[] = 'Ъ'; $char[] = 'Ы'; $char[] = 'Ь';
$char[] = 'Э'; $char[] = 'Ю'; $char[] = 'Я'; $char[] = '!'; $char[] = ",";
$char[] = '@'; $char[] = '"'; $char[] = "'"; $char[] = '#'; $char[] = ';';
$char[] = '$'; $char[] = '№'; $char[] = "%"; $char[] = '^'; $char[] = ':';
$char[] = '?'; $char[] = '&'; $char[] = "*"; $char[] = '('; $char[] = ')';
$char[] = '-'; $char[] = '_'; $char[] = "+"; $char[] = '='; $char[] = '/';
$char[] = '\\'; $char[] = '.';

Еще раз повторяю, за все последствия с Вашим сервером я ответственности не несу. :D Вы используете скрипт на свой страх и риск.

shellz[21h]
24.12.2009, 11:04
воо изврат :)

Kernet
24.12.2009, 11:53
ыы, идея хорошая, а реализация пздц))
Все твои $char можно короче записать, ога.

spider-intruder
24.12.2009, 12:08
Описал бы еще размеры БД для 6 символов, для 7 символов и т.п. Хоть примерно. Считать лень :-) Ты начал статью ты ее и закончи ))

Lilo
24.12.2009, 12:12
а помойму это просто пистец
тс ты что курил?

spider-intruder
24.12.2009, 12:17
Да нормально все. Не самая быстрая реализация построения РАИНБОУ, но принцип верный. Я бы писал это все в многопотоке, на чем то более низкоуровневом и хранил ы в оракле вместо майсекеля. Но где взять столько места?! :-)

З.Ы.
Я "курю" или для 6 символов при алфавите = 75 места нужно около 5 TB ??

xss-faq
24.12.2009, 12:18
Неужели это так сложно?
50000000=2.5гб
Например ты генерируешь на 100 символов-
100*100*100*100*100*100=1000000000000
1000000000000 / 5000000 = 200000
200000*2.5=500000=ПИЗДЕЦ ГБ

spider-intruder
24.12.2009, 12:20
50000000=2.5гб - Это ЧТО ТАКОЕ?!

xss-faq
24.12.2009, 12:22
50000000(Записей хешь+пасс)=2.5гб(пространств на кластере)

spider-intruder
24.12.2009, 12:27
Почему у меня получилось 1.9 а не 2.5 :-)

Если точнее то 1.811981201171875 тб

xss-faq
24.12.2009, 12:28
Я примерно привел размер. Ты не просил точно.

spider-intruder
24.12.2009, 12:31
Короче 6 символов при алфавите 75 = 5 ТБ. Брут 6 символову меня проходит за 2 минуты. Не вижу смысла хранить 6,7 символов в БД

Думаю стоит начинать где-то с 10. Но ГДЕ ЭТО ХРАНИТЬ ))))
Может архивировать это все?! Или распаковка будет занимать дольше времени чем сам перебор?! Есть идеи куда положить этот УГ ?!

Lilo
24.12.2009, 12:34
Короче 6 символов при алфавите 75 = 5 ТБ. Брут 6 символову меня проходит за 2 минуты. Не вижу смысла хранить 6,7 символов в БД

Думаю стоит начинать где-то с 10. Но ГДЕ ЭТО ХРАНИТЬ ))))
Может архивировать это все?! Или распаковка будет занимать дольше времени чем сам перебор?! Есть идеи куда положить этот УГ ?!
ждать лет 5=)

spider-intruder
24.12.2009, 12:35
Через 5 лет алгоритмы сменят. Их уже пора давно сменить после выхода нанешних GPU.

xss-faq
24.12.2009, 12:36
Sypex Dumper, сам базу архивирует.
Зачем распаковывать если можно открыть в блокноте и нажать поиск?

spider-intruder
24.12.2009, 12:43
Кого ты в блокноте откроешь?! 5 терабайтный файл? И это только для 6 символов(что не актуально впринципе).
Для 10 символов файл (БД) будет занимать сотни терабайт. ТЫ их тоже в блокноте откроешь?! Не говоря уже о том где их хранить :-)

xss-faq
24.12.2009, 12:48
Хранить негде.
Открыть нечем.
Но можно для себя сделать до 4х символов БД eng, rus, eng+rus.
Это около 30гб.

spider-intruder
24.12.2009, 12:49
У меня 4 символа сбрутится за 20 секунд :-) Нафига занимать 30ГБ )

Не я ж к тебе без притензий :-) Просто открытая дискуссия.

xss-faq
24.12.2009, 12:52
У меня сутки, а у тебя 20 сек?

spider-intruder
24.12.2009, 12:52
да

xss-faq
24.12.2009, 12:53
Купи себе кластеров штук 20 ))))))))))))))))

spider-intruder
24.12.2009, 12:56
Какое то абстрактное понятие у тебя помоему о КЛАСТЕРЕ :-)

xss-faq
24.12.2009, 13:02
сектор на жестком диске, минимальный размер места для хранения твоих хешей.

SPIDER-L33T
25.12.2009, 17:55
"Кластер — группа компьютеров, объединённых высокоскоростными каналами связи, представляющая с точки зрения пользователя единую машину..."

Классификация

"...Кластеры высокой доступности

Обозначаются аббревиатурой HA (англ. High Availability — высокая доступность). Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов — два, это минимальное количество, приводящее к повышению доступности. Создано множество программных решений для построения такого рода кластеров. В частности, для OpenVMS, GNU/Linux, FreeBSD и Solaris существует проект бесплатного ПО Linux-HA.

Кластеры распределения нагрузки

Принцип их действия строится на распределении запросов через один или несколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы. Первоначальная цель такого кластера — производительность, однако, в них часто используются также и методы, повышающие надёжность. Подобные конструкции называются серверными фермами. Программное обеспечение (ПО) может быть как коммерческим (OpenVMS, MOSIX, Cluster, Platform LSF HPC, Sun Grid Engine, Moab Cluster Suite, Maui Cluster Scheduler), так и бесплатным (Linux Virtual Server).

Вычислительные кластеры

Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора на операциях над числами с плавающей точкой (flops) и низкая латентность объединяющей сети, и менее существенными — скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети. Одна из типичных конфигураций — набор компьютеров, собранных из общедоступных компонентов, с установленной на них операционной системой Linux, и связанных сетью Ethernet, Myrinet, InfiniBand или другими относительно недорогими сетями. Такую систему принято называть кластером Beowulf. Специально выделяют высокопроизводительные кластеры (Обозначаются англ. аббревиатурой HPC Cluster — High-performance computing cluster). Список самых мощных высокопроизводительных компьютеров (также может обозначаться англ. аббревиатурой HPC) можно найти в мировом рейтинге TOP500. В России ведется рейтинг самых мощных компьютеров СНГ

Системы распределенных вычислений (grid)

Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами. Главное отличие — низкая доступность каждого узла, то есть невозможность гарантировать его работу в заданный момент времени (узлы подключаются и отключаются в процессе работы), поэтому задача должна быть разбита на ряд независимых друг от друга процессов. Такая система, в отличие от кластеров, не похожа на единый компьютер, а служит упрощённым средством распределения вычислений. Нестабильность конфигурации, в таком случае, компенсируется большим числом узлов..."

(c) wikipedia