Цель: создать пассвордлист для гидры (hydra-gtk), содержащий даты в разном формате.
Ранее пробовал сделать свой словарь паролей с датами. Например мой ДР: 26081983 или 260883.
Для этого в EXCEL создал столбик с датами от 01.01.1970 до 31.12.2012 и еще один от 01.01.70 до 31.12.12 (благо — это не надо вводить в ручную, а всего лишь потянуть за правый нижний угол первой ячейки и подождать пока список не дойдет до нужной даты).
Далее эти колонки скопировал в блокнот и методом поиска/замены — заменил все точки на пустую строку, что привело к их удалению: было 26.08.1983 — стало 26081983.
Итого в словаре у меня получилось два формата даты 010170 и 01011970, но ведь первое января многие запишут как 1.01.1970 (т.е. без нуля впереди).
Попробовал написать генератор паролей на Ruby:
t1 = Time.now
start = Time.new(1970, 1, 1) # 1:01:1970 - начальная дата
array = Array.new
while start.year < 2013 # с 1-01-1970 по 31-12-2012
array.push(start.strftime("%-d%m%y")) # 1 01 70 => 10170
array.push(start.strftime("%d%m%y")) # 01 01 70 => 010170
array.push(start.strftime("%-d%m%Y")) # 1 01 1970 => 1011970
array.push(start.strftime("%d%m%Y")) # 01 01 1970 => 01011970
start +=86400 # инкремент +1 день (60 х 60 х 24= 86400сек)
end
fff = File.open("pass_date.txt", "w") # сохраняем в файл pass_date.txt
fff.puts(array.uniq) # удаляем дубликаты
puts "======= finish: #{Time.now-t1} seconds" # затраченное время
запускаем руби_код:
ruby pass_gen.rb
запускаем брут почты:
hydra -L login.txt -P pass_date.txt -o log.txt -t 128 pop.mail.ru pop3
В итоге имеем:
1. четыре варианта формата даты;
2. возможность изменять начальную и конечную дату.
Это моя первая программа вообще и на руби в частности — буду очень рад критике и поучениям!
Если кто-нибудь знает как значительно улучшить код в целях красоты и быстродействия — буду очень признателен.
Спасибо.
Автор: dimarikpro
не подскажите плиз, словарь брута пароля чтоб символы не повторялись больше 2 раз?
К примеру чтоб вот такого не было: aaa, 1111, q1q1q1, 4g4g4g, &&&&, %%% etc.
нужно востановить пароль: в нем символы дублируются всего 2 раза. Пример: QptQtp, 016160, 1e6tyt1e6y, PP1nGn1G и т.д.