miércoles, marzo 25, 2020

Cómo extraer credenciales de Windows: Formas de hacer un minidump al proceso lsass.exe #pentesting #pentest

Durante estos días estamos viviendo experiencias nuevas, duras, pero con tiempo en casa para poder hacer muchas cosas en el tiempo que estamos ahorrando en los traslados de casa al trabajo y del trabajo a casa. Se puede aprovechar para avanzar en proyectos personales tecnológicos, ocio, deporte, etcétera, o proyectos familiares, para pasar más tiempo con la familia y aprovechar para ponerse al día en ciertas cosas que tal vez tuviéramos siempre en la lista de To-Do.

Figura 1: Cómo extraer credenciales de Windows:
Formas de hacer un minidump al proceso lsass.exe

En el artículo de hoy quería mostrar cómo llevar a cabo la extracción de credenciales de cuentas en sistemas Microsoft Windows que se encuentra en el proceso lsass.exe. Esto no es algo nuevo, y siempre que se habla de Hacking Windows: Ataques a Sistemas y Redes Microsoft, es un tema obligatorio, y que Microsoft ha intentado eliminar en Windows 10 con el uso de Credential Guard.

Figura 2: Hacking Windows: Ataques a Sistemas y Redes Microsoft

Hoy quería recopilar diferentes formas de hacer el volcado o dump de la memoria del proceso lsass.exe y aprovechar, por ejemplo, herramientas como Mimikatz para leer la información de dicho volcado de memoria.

Acceso físico: Create Dump File en el Task Manager

En primer lugar, vamos a ver la técnica más sencilla, que puede ser utilizada en un proyecto de Ethical Hacking. Si se tiene acceso al equipo, se puede hacer un volcado de la información del proceso lsass.exe desde el propio Administrador de Tareas (Task Manager). Esto tiene sentido cuando tenemos acceso físico a la máquina.

Figura 3: Solicitando un volcado de la memoria de lsass.exe desde el Task Manager

Cuando se genera el fichero de dump, éste se almacena en la ruta \Users\[nombre usuario]\AppData\Local\Temp. El volcado del proceso estará alrededor de los 40-43 MB y estará listo para ser “ojeado” por el pentester.

Figura 4: Libro de Ethical Hacking

En la Figura 3 se puede ver el "Task Manager" de un sistema Windows 7, aunque el proceso en un Windows 10 sería el mismo. Este proceso sirve para hacer volcados o minidump de procesos que se están ejecutando en la máquina.

Utilizando Mimikatz con minidump

Con Mimikatz podemos hacer uso de minidump para enlazar el dump del proceso lsass.exe con las instrucciones de sekurlsa. Lo que ocurre es un switch para las instrucciones de sekurlsa, para que operen sobre el volcado de memoria proporcionado bajo la instrucción sekurlsa::minidump [ruta al fichero DMP].

Figura 5: Mimikatz con instrucción skurlsa

En este momento, en cuanto hagamos uso de sekurlsa::logonpasswords u otras instrucciones que se pueden ejecutar y que hacen uso de lsass.exe. La imagen de la Figura 5 está sacada de un Windows 7.

Utilizando Procdump de Sysinternals

La herramienta Procdump de Sysinternals sirve para llevar a cabo un volcado de memoria de un proceso. Para llevar a cabo un volcado de proceso con procdump se debe ejecutar la siguiente instrucción:
procdump –ma lsass.exe lsass.dmp
El resultado es un volcado como el obtenido en el ejercicio anterior. El uso de procdump necesita de privilegios, pero se puede ejecutar a través de una shell remota, aunque previamente se debe subir el binario. Al ser un binario de SysInternals, no será detectado como algo malicioso.

Figura 6: Utilizando procdump.exe

El tema de la detección es interesante, ya que utilizar herramientas como PSExec o las PSTools ayudan a realizar acciones en el pentesting que no son tratadas como maliciosas.

Figura 7: Una vez conseguido el volcado. Mismo proceso.

Una vez obtenido el volcado del proceso se puede realizar la misma acción que hicimos con Mimikatz en el apartado anterior. El resultado es el mismo, como puede verse en la Figura 7.

Utilizando comsvcs.dll para hacer el volcado

De forma nativa, Windows 7, incluso Windows 10, permiten hacer el volcado de un proceso. Para llevar a cabo esta operativa lo vamos a ejemplificar en un Windows 10 y una Powershell 5.1, haciendo un poco de Penstesting con PowerShell.

Figura 8: Pentesting con PowerShell (2ª Edición)

Lo primero es listar el proceso lsass.exe y recoger el ID de este proceso. Por ejemplo, haciendo uso de get-process lsass en una Powershell. Después se puede ejecutar el binario:
rundll32.exe [ruta a comsvcs.dll], MiniDump [PID] [ruta almacenar el DUMP]
Tal y como puede verse en la imagen es algo sencillo y silencioso. Eso sí, necesitaremos privilegios previos.

Figura 9: Volcado de memoria con lsass.exe con PowerShell

Y, por último, cómo hemos hecho antes, ejecutamos Mimikatz en Windows 10. La sintaxis en Mimikatz es igual en todos los casos.

Figura 10: Usando Mimikatz para extraer las credenciales

Diferentes formas de hacer lo mismo y analizar el volcado del proceso. Técnicas que se deben conocer y que son útiles en un proceso de Ethical Hacking. Practica durante estas semanas, pasa el tiempo y aprovecha para mejorar tu conocimiento.
Recuerda, que durante este tiempo tienes la opción de adquirir los cursos y libros de 0xWord con un 10% de descuento, y que además puedes consultar a todas las cuentas de MyPublicInbox a mitad de Tempos.

Saludos,

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Figura 12: Contactar con Pablo González

2 comentarios:

  1. Hola Chema, una pregunta cuando me descargo el mimikatz desde https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20200308-1/mimikatz_trunk.zip, de momento Chrome no me deja porque no le gusta ese fichero, pero el Sr.Mozilla si me deja descargarlo e incluso llego a descomprimirlo con el winrar pero oh mi sorpresa que creia haber superado el control antimalware de windows cuando el Sr.Panda directamente se ha cargado el fichero ejecutable del mimikatz ya descomprimido.
    Como puedo implementarlo en mi windows 10? y si descargo el codigo fuente y lo compilo con Visual Studio me ocurrirá lo mismo o tambien se lo cargará? en ese caso como consigo tenerlo operativo para poder ejecutar el pentest de tu brillante articulo?
    Gracias por tu respuesta y encantado de conocerte, te sigo por todos los medios. Me dedico al mundo pericial informatico, soy de Cadiz.
    Feliz "confitamiento"

    David Soto.

    ResponderEliminar
    Respuestas
    1. Hola David un gusto saludarte por configuraciones de seguridad chrome no te deja , y comentas que mozilla si desactiva el panda y en window 10 tienes que desactivar todas las configuraciones de seguridad

      Eliminar