Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нити 
:(
    Опции темы
DimanLin
Дата 10.5.2009, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.2.2008

Репутация: нет
Всего: нет



Народ, взялся я ту периберать пароли от моего ssh. Написал небольшой скриптик: для этого. Это не точный пример но выглядил он как то так::

Код

for page in pages
  threads << Thread.new(page) { |myPage|
    begin
      puts "Try password #{passwordarr}"
      Net::SSH.start('localhost', 'root', :password => "#{passwordarr}")
      puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
      exit
     rescue Net::SSH::AuthenticationFailed

     end
  }
end


Поскольку соединений было слишком много на единицу времяни и приходилось создавать на каждое соединение свою нить. То это выходило очень дорого для процессора.

И я решил что лудше сразу создать оптимальное количество нитий, дать каждой их них по куску словаря и пусть себе подбирают.

Код

require "rubygems"
require 'net/ssh'


class << Net::SSH
  def butforse(passwordarr)
            begin
              puts "Try password #{passwordarr}"
              Net::SSH.start('localhost', 'root', :password => "#{passwordarr}")
              puts "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
              exit
            rescue Net::SSH::AuthenticationFailed

            end
  end
end

arrays = Array("a".."zz")
arr1 = arrays[0, (arrays.size-1) / 2]
arr2 = arrays[(arrays.size - 1) / 2, arrays.size - 1]

threadsz = []
threadsz2 = []

threadsz << Thread.new(arr1) { |items|
  for item in items
    Net::SSH.butforse(item)
  end
}

threadsz2 << Thread.new(arr2) { |items|
  for item in items
    Net::SSH.butforse(item)
  end
}

threadsz.each {|i| i.join}
threadsz2.each {|i| i.join}



Try password a
Try password mm
Try password b
Try password mn
Try password c
Try password mo
Try password d
Try password mp
Try password e
Try password mq
Try password f
Try password mr
Try password g
Try password ms
Try password h
Try password mt
Try password i
Try password mu
Try password j
/usr/local/lib/ruby/gems/1.8/gems/net-ssh-2.0.11/lib/net/ssh/transport/server_version.rb:44:in `readline': end of file reached (EOFError)
    from buter_ssh.rb:39:in `join'
    from buter_ssh.rb:39
    from buter_ssh.rb:39:in `each'
    from buter_ssh.rb:39

Выскакивает вот такая ошибка. Я всё голову сломал в чём проблема.... Подскажите пожалуйста. Почему ошибка именно в этом месте вылетает? И что она вобще обозначает?

PM MAIL   Вверх
GrayCardinal
Дата 11.6.2009, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: нет
Всего: 58





--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0783 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.