epespad

Solucion al error "Broken Pipe" en Armitage - msf

Hola a todos

En este post les traigo la solución al tan aburridor error de Metasploit Framework que a muchos les ha salido y ha sido muy difícil encontrar la solución a este problema.

Básicamente el error que sale en pantalla es como el siguiente:


[email protected]:~# msfconsole

     ,           ,
    /             
   ((__---,,,---__))
      (_) O O (_)_________
          _ /            |
          o_o    M S F   | 
                  _____  |  *
                |||   WW|||
                |||     |||


       =[ metasploit v4.0.1-dev [core:4.0 api:1.0]
+ -- --=[ 728 exploits - 372 auxiliary - 79 post
+ -- --=[ 227 payloads - 27 encoders - 8 nops
       =[ svn r13641 updated today (2011.08.26)

msf > db_nmap 127.0.0.1
<li> Nmap: Starting Nmap 5.51SVN ( http://nmap.org ) at 2011-08-27 23:16 COT</li><li> Nmap: Nmap scan report for localhost (127.0.0.1)</li><li> Nmap: Host is up (0.0000090s latency).</li><li> Nmap: Not shown: 998 closed ports</li><li> Nmap: PORT     STATE SERVICE</li><li> Nmap: 21/tcp   open  ftp</li><li> Nmap: 5432/tcp open  postgresql</li><li> Nmap: Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds</li>[-] Error while running command db_nmap: Validation failed: %{errors}

Call stack:
/opt/framework/msf3/lib/active_record/validations.rb:1089:in `save_with_validation!'
/opt/framework/msf3/lib/active_record/dirty.rb:87:in `save_with_dirty!'
/opt/framework/msf3/lib/active_record/transactions.rb:200:in `block (2 levels) in save_with_transactions!'
/opt/framework/msf3/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction'
/opt/framework/msf3/lib/active_record/transactions.rb:182:in `transaction'
/opt/framework/msf3/lib/active_record/transactions.rb:200:in `block in save_with_transactions!'
/opt/framework/msf3/lib/active_record/transactions.rb:208:in `rollback_active_record_state!'
/opt/framework/msf3/lib/active_record/transactions.rb:200:in `save_with_transactions!'
/opt/framework/msf3/lib/msf/core/db.rb:311:in `report_host'
/opt/framework/msf3/lib/rex/parser/nokogiri_doc_mixin.rb:135:in `db_report'
/opt/framework/msf3/lib/rex/parser/nmap_nokogiri.rb:342:in `report_host'
/opt/framework/msf3/lib/rex/parser/nmap_nokogiri.rb:88:in `end_element'
/opt/framework/ruby/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3/lib/nokogiri/xml/sax/document.rb:125:in `end_element_namespace'
/opt/framework/ruby/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3/lib/nokogiri/xml/sax/parser.rb:110:in `parse_with'
/opt/framework/ruby/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3/lib/nokogiri/xml/sax/parser.rb:110:in `parse_memory'
/opt/framework/ruby/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3/lib/nokogiri/xml/sax/parser.rb:83:in `parse'
/opt/framework/msf3/lib/msf/core/db.rb:3897:in `import_nmap_noko_stream'
/opt/framework/msf3/lib/msf/core/db.rb:3914:in `import_nmap_xml'
/opt/framework/msf3/lib/msf/core/db.rb:3867:in `import_nmap_xml_file'
/opt/framework/msf3/lib/msf/ui/console/command_dispatcher/db.rb:1609:in `cmd_db_nmap'
/opt/framework/msf3/lib/rex/ui/text/dispatcher_shell.rb:380:in `run_command'
/opt/framework/msf3/lib/rex/ui/text/dispatcher_shell.rb:342:in `block in run_single'
/opt/framework/msf3/lib/rex/ui/text/dispatcher_shell.rb:336:in `each'
/opt/framework/msf3/lib/rex/ui/text/dispatcher_shell.rb:336:in `run_single'
/opt/framework/msf3/lib/rex/ui/text/shell.rb:199:in `run'
/opt/framework/msf3/msfconsole:130:in `<main>'
msf >


Después de tanto buscar y buscar alguna solución a este problema, por fin encontré en un foro de BackTrack la solucion, que al parecer el error es con la base de datos de Postgres.

La solucion es muy sencilla, lo unico que hay que hacer es dejar de utilizar postgres como gestor de base de datos para metasploit, y en su lugar utilizar mysql, y seleccionar la ultima version de ruby para utilizarla.

¿Como? sigue estos pasos:

Abre una terminal y ejecuta la siguiente linea:

update-alternatives --config ruby

En el menu que se despliega selecciona la ultima version de ruby instalada para utilizarla siempre.

Luego ejecuta la siguiente linea para iniciar mysql:

service mysql start

Y por ultimo ejecuta la siguiente linea para iniciar la conexion que utilizaremos:

]msfrpcd -f -U msf -P test -t Basic

Solo queda iniciar Armitage e ingresar los datos del comando anterior usuario msf y contraseña test y seleccionar como driver mysql y utilizar SSL.

Ahora iniciara Armitage con todas sus funciones!

En este foro fue donde encontre la solución: (en ingles)

http://www.backtrack-linux.org/forums/backtrack-5-bugs/44279-armitage-error-db_nmap-broken-pipe.html?langid=4

1 comentario - Solucion al error "Broken Pipe" en Armitage - msf