找出使用Ruby的服务器支持哪些密码

时间:2012-12-05 08:35:24

标签: ruby encryption server-side metasploit

我正在尝试编写/修改metasploit模块以找出服务器支持的密码(用于扫描目的)。我是否必须通过全部尝试来枚举密码,或者我是否可以从服务器请求它支持的密码?

到目前为止,我只能find out我的本地openssl版本支持哪些模块。

当我想阅读有关certificate的信息时,我可以使用:

cert = OpenSSL::X509::Certificate.new(sock.peer_cert)
print_status("#{ip}:#{rport} Public Key: #{cert.public_key}")

密码有类似之处吗?

2 个答案:

答案 0 :(得分:2)

所以,除非有一个请求,我仍然不知道 - 我想这里有一个非常好的描述如何枚举服务器支持的密码:

http://gursevkalra.blogspot.ch/2009/09/ruby-and-openssl-based-ssl-cipher.html

答案 1 :(得分:-1)

首先使用openssl_add_all_ciphers加载所有密码,然后使用EVP_get_cipherbyname查询单个密码。有一些方法可以枚举密码,例如。 using OBJ_NAME_do_all_sorted

Ruby的OpenSSL模块有一个hardcoded list

 class Cipher
    %w(AES CAST5 BF DES IDEA RC2 RC4 RC5).each{|name|
      klass = Class.new(Cipher){
        define_method(:initialize){|*args|
          cipher_name = args.inject(name){|n, arg| "#{n}-#{arg}" }
          super(cipher_name)
        }
      }

PS。显然有ciphers命令,但这并不好玩。