1

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

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

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

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

密码有类似的东西吗?

4

2 回答 2

2

因此,除非有这个我仍然不知道的请求 - 我想这是对如何枚举服务器支持的密码的一个很好的描述:

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

于 2012-12-05T10:51:49.380 回答
-1

您首先使用 加载所有密码,openssl_add_all_ciphers然后您可以使用EVP_get_cipherbyname. 有一些方法可以枚举密码,例如。使用OBJ_NAME_do_all_sorted.

Ruby 的 OpenSSL 模块有一个硬编码列表

 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命令,但这并不好玩。

于 2012-12-05T09:16:50.680 回答