Posts Tagged ‘ ruby

Metasploit com rubygems 1.5

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.

Metasploit + PostgreSQL 9.0 no Snow Leopard

Depois de muito pesquisar, consegui achar a solução mais elegante para instalar o Metasploit com PostgreSQL no Snow Leopard sem muitas gambiarras, então fica o guia pros amigos que quiserem fazer o mesmo.

Vamos por partes. Você vai precisar do git já instalado, para começar. Acredito que ele venha por padrão com o Snow Leopard, mas se não tiver, baixe em http://git-scm.com/download e instale.
Também é necessário ter a versão mais recente da tollchain da Apple (XCode et al). Baixe em http://devworld.apple.com/technologies/tools/.

Também é importante desisntalar o fink e o macports, caso tenha eles instalados, bem como tudo instalado por eles. Não se preocupe, depois você pode instalar tudo denovo com o Homebrew.

Agora vamos começar com o rvm.

rvm, Ruby Version Manager, é exatamente isso. Ele te permite instalar mais de uma versão do ruby no seu computador, sem gambiarras, limitado a uma espécie de sandbox fácil de ser removida, além de facilitar a troca de versões.

bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )

Siga as instruções do instalador, depende da shell que você usa (eu uso zsh).

Agora instale os pacotes para o ruby com o rvm:

rvm package install readline
rvm package install iconv
rvm package install zlib
rvm package install openssl

Agora instale o ruby-1.9.2-p0, que é atualmente a melhor versão para rodar o Metasploit.

rvm install 1.9.2 -C --with-readline-dir=$HOME/.rvm/usr --with-iconv-dir=$HOME/.rvm/usr --with-zlib-dir=$HOME/.rvm/usr --with-openssl-dir=$HOME/.rvm/usr

Espere terminar, deve demorar um bocado, dependendo do teu sistema.
Agora vamos usar o 1.9.2 como default.

rvm 1.9.2 --default

Caso você deseje voltar para o ruby que veio com o sistema,

rvm system

o –default é opcional e torna ele o ruby padrão para novas shells.
Vamos ficar com o 1.9.2 agora.

Vale lembrar que com o rvm você não usa sudo em momento algum.

Agora vamos instalar o homebrew.
O Homebrew é um gerenciador de pacotes para o OSX que se integra lindamente ao sistema e usa a toolchain da Apple para compilar os programas, ao invés de instalar tudo do zero e fazer uma bagunça, como o macports ou o fink.

ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"

Pronto, Homebrew instalado. Fácil, não?

Agora instalemos o PostgreSQL 9.0.

brew install postgresql

Podia ser mais fácil? Acho que não. Ele deve instalar o readline como dependência, mesmo você tendo instalado com o rvm. Não tem problema, é assim mesmo. Deste jeito temos certeza de que não há conflitos entre os headers por causa de patches de um gerenciador ou o outro.
Vá lá buscar um café porque isso demora um bocado também, ele vai compilar todo o Postgres.

Terminado isso, o homebrew já cria um superuser no PostgreSQL para ti, com o teu nome de usuário atual e senha.

Agora, criar um usuário pro Metasploit.

createuser msf_user -P

Dê uma senha para o usuário e responda não para as três perguntas.

Crie um banco de dados:

createdb --owner=msf_user msf_database

Pronto, agora vamos instalar o Metasploit.

Primeiro, a gem do Postgre.

gem install pg

Sem sudo!

Vá até www.metasploit.com/framework/download/ e baixe o tarball mais recente (o arquivo .tar.bz2)

Descompacte o arquivo e mova ele para /opt:

tar xvjf framework-3.4.1.tar.bz2
sudo mv msf3 /opt/metasploit

sudo chown -R $USER:$USER /opt/metasploit
sudo ln -sf /opt/metasploit/msf* /usr/local/bin/

Criemos um script para atualizar o metasploit pelo svn.
Com o seu editor favorito (vim, por favor) crie /usr/local/bin/msfupdate

#!/bin/sh
/usr/bin/svn update /opt/metasploit

Dê permissão de execução para o arquivo

sudo chmod 777 /usr/local/bin/msfupdate

Rode msfupdate para atualizar o framework e rode msfconsole para iniciar o metasploit.

msf> db_driver postgresql
msf> db_connect msf_user:[senha]@127.0.0.1:5432/msf_database
msf> db_hosts

Agora edite seu ~/.msf3/msfconsole.rc para iniciar a db automaticamente cada vez que você iniciar o metasploit.

db_driver postgresql
db_connect msf_user:[senha]@127.0.0.1:5432/msf_database
db_workspace -a MyProject

Rode o msfconsole mais uma vez para ter certeza de que tudo funcionou e seja feliz.

Consertando o Rails 3 no Snow Leopard

Dica rápida para quem está usando o Rails 3 no Snow Leopard, com o rvm.

Possivelmente, ao rodar rails s você irá se deparar com um erro parecido com esse:

➜  demo_app git:(master) ✗ rails s
/Users/ppvanzella/.rvm/gems/ruby-1.9.2-p0/gems/sqlite3-ruby-1.3.1/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
[1]    99112 abort      rails s

Isto acontece porque o rails está com o caminho para o system ruby hardcoded, e tenta executar então com o ruby 1.8.7-p174 que veio com o Snow Leopard, e não com o 1.9.2-p0 que você deve ter instalado pelo rvm.
Para arrumar, edite:

sudo mvim /usr/bin/rails

(vim porque sou marrento)
E troque a primeira linha, que começa com

#!/System/…

Por

#!/usr/bin/env ruby

Salve e seja feliz.

:wq

Barcos de Programação

Se as linguagens de programação fossem barcos…

Java
Java

Java seria um cargueiro. Voltado para grandes empresas, parrudo e estável. Mas não é divertido dirigir.

PERL
Perl

Perl é um rebocador. Poderoso o suficiente para encarar quase tudo o que o java faz, em menos de 80 caracteres.

Ruby
Ruby

Divertido de dirigir, sexy e rápido, Ruby é um speedboat.

PHP
PHP

Um monte de pedaços de pau agrupados, mantidos juntos por meios rudimentarem. Seria uma jangada. Faz o serviço, e só.

C
C

Submarino nuclear. O manual deve estar em alguma língua estrangeira obscura, mas todo o hardware está optimizado para permormance extrema.

HTML
HTML

HTML não é um barco uma linguagem de programação.

[Fonte]

 
SEO Powered by Platinum SEO from Techblissonline