Metasploit com rubygems 1.5

15/02/2011

O rubygems 1.5 foi lançado há quase um mês, e, junto com novas features, ele quebrou várias coisas, entre elas o Metasploit.

Tentar iniciar o msfconsole solta um belo

Encoding::UndefinedConversionError

Como pode ser visto neste bug.

Por sorte, há um fix bem fácil.

Primeiro, encontre todos os arquivos no seu rubygems que carregam outros arquivos com UTF:

grep -ri ‘File.read.*utf’ ~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby

Atente para o fato de que ruby-1.9.2-p136 pode mudar, dependendo do teu sistema e da versão do ruby que você instalar. Se você não usa rvm, aí não faço idéia de onde você encontra.

Aqui a pesquisa retornou dois arquivos (além de vários de gems como o Nokogiri e o builder, mas as linhas não eram exatamente o que procurava):

~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/rubygems/source_index.rb

~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb

Caso haja outros arquivos, aconselho editar primeiro esses dois, testar, e então modificar os outros, caso o problema persista.

Nesses dois arquivos, procure a linha que diz

File.read file, :encoding => “UTF-8”

Ela deve estar em um bloco if-else. Você pode remover todo o bloco, deixando somente a linha

File.read file

Ou editar a primeira linha e remover da vírgula até o fim, tanto faz.

Após editar estes dois arquivos, o metasploit deverá carregar corretamente.

Testei isso tanto no Fedora 14 quanto no Snow Leopard 10.6.6 e funcionou. Qualquer coisa deixe um comentário.

This entry was tagged as Hack Metasploit Ruby Rubygems Rvm Segurança

blog comments powered by Disqus