Páginas

segunda-feira, 15 de agosto de 2011

A saga do Metasploit Autopwn

Fala ae, pessoal.

Confesso que nunca gostei do autopwn, apesar de eu o considerar uma ferramenta muito boa dentro da framework do Metasploit.
Porém, há algum tempo, estou dando umas dicas a um amigo que quer começar a trabalhar com ferramentas de segurança e tal e, para ajudá-lo, estava tentando ilustrar o uso do autopwn pra automatizar alguns procedimentos e talz.

Eis que me deparei com o erro mais comum, infelizmente, no metasploit:


Mesmo com o serviço do MySQL funcionando, mesmo com o nome do banco correto, mesmo com o login e a senha corretos, O METASPLOIT SIMPLESMENTE NÃO CONECTA NO MYSQL!

Tentei de tudo, acreditem, mas nada pareceu funcionar.
Tentei, então, ir direto à fonte: fui ao canal #metasploit para ver se alguém me ajudava.
Como sempre, o HD Moore me ajudou da melhor forma o possível(Apesar de ser um pouco cético quanto algumas coisas LOL) a resposta dele foi curta e grossa(E nos lembra um pouco da atitude dos WinFags): "Use postgres".

O meu pensamento na hora foi "LOL", mas depois foi "Okay.. :("
Nada que um "apt-get install postgresql" não resolva, é claro.

Pra quem nunca mexeu com a criança, vamos ao básico. Você loga com o seguinte comando:

# su postgres -c psql

 E para criar uma senha, use o seguinte comando:

ALTER USER postgres WITH PASSWORD 'senha';
\q


E crie um banco para o Metasploit usar:

CREATE DATABASE msf3;
\q

Obs: Eu usei o nome 'msf3' porque é o nome que o metasploit já usa, mas você pode criar o nome que quiser e na hora de conectar ao banco, é só informar o nome correto. 

E agora, vamos tentar de novo usar o Metasploit com o postgresql.
Só um adendo, pra 'subir' o serviço do postgres você usa:

# service postgresql-8.4 start

E vejamos o que acontece no Metasploit:

















Funcionou!

Este Post poderia muito bem terminar aqui :)
Mas eu como eu sou um cara legal(E sei que a moçada vai me criticar) eu vou falar de outro problema relacionado: O Fast Track.

O Metasploit está funcionando com o driver do Postgresql, mas o Fasttrack usa o Sqlite3. Será que teremos que recompilar o fast track???

Se quiser, boa sorte champs :)

Mas você pode mudar o funcionamento dele alterando apenas um arquivo.
 O arquivo de 'configuração' do autopwn no fasttrack fica em :

 /pentest/exploits/fasttrack/bin/ftsrc/autopwn.py

Abra-o no seu editor favorito, como dizem os 'professores'(nano se você for badass ou vi se você for hipster) e procure as linhas:

try:
   child1 = pexpect.spawn('%smsfconsole' % (metapath))
# load sqlite3
   child1.sendline ('db_driver sqlite3')
# Destroy database
   child1.sendline ('db_destroy pentest')
# Create database
   child1.sendline ('db_create pentest')

Eu fiz da seguinte forma, mas vocês fazem da forma que acharem melhor:

try: 
   child1 = pexpect.spawn('%smsfconsole' % (metapath))
# carrega o Postgresql
   child1.sendline ('db_driver postgresql')
# conecta no banco
   child1.sendline ('db_connect postgres:flavia@127.0.0.1/msf3') 

E eu apaguei o "destroy" e "create", pois segundo o próprio HD Moore, estes comandos não são mais necessários, pois o msfconsole já se preocupa em fazer isto por nós. 


Curiosamente, o fast-track ainda não funcionava no meu sistema.
Ele acusava "db_driver postgresql not found".
Achei estanho e decidi tentar entrar no msfconsole pra ver se eu havia errado no nome do driver.
Eis que recebo a seguinte mensagem:
















Também não entendi qual entidade fez esse erro aparecer :S


Bom, nada que alguns comandos(e saber ler o que o metasploit me disse pra fazer) não resolva:
apt-get install libpq-dev
 gem install postgres

Deu uns erros pitorescos aqui, mas pelo que vi foi só na hora de criar a documentação(convenhamos, nem sei ler ;) )

E vamos testar o fast-track de novo:

Pwning n00bs FTW

  



















LOL Finalmente funcionou!

Bom, é isso, simples, mas eu já vi MUITA gente apanhando pra fazer isso ;)
Obs: Sim, eu sou hipster e uso o KDE no BT, manolagem.

Qualquer dúvida, comenta ae que eu finjo que leio e ajudo :) 

3 comentários: