miércoles, mayo 10, 2017

Pentesting Windows: Buscar vulnerabilidades no parcheadas con Metasploit, WMI y Powershell #Hacking

Una vez que se está en una máquina comprometida en un proceso de auditoría podemos necesitar escalar privilegios en la máquina. En este blog ya hemos visto diferentes herramientas que ayudan a realizar esto, tanto en entornos Windows como Linux. Además, hemos visto distintas técnicas de bypass UAC para obtener ventaja y privilegio en estos procesos.

Figura 1: Petesting Windows. Buscar vulnerabilidades no parcheadas con Metasploit, WMI & PowerShell

Herramientas como Windows Exploit Suggester, BeRoot, AutolocalPrivilegeEscalation, OSB-Rastreator y la posibilidad de localizar vulnerabilidades en repositorios de código abierto, Lynis para auditar y descubrir estos fallos en sistemas Linux. Como vemos hay distintas herramientas que pueden automatizar el proceso y ayudarnos en la búsqueda de vulnerabilidades que permitan la escala de privilegios o, incluso, la nueva detección de fallos de seguridad conocidos. Además, en este blog hemos visto distintos tipos de bypass a UAC, estos son algunos ejemplos:
Bypass UAC en Windows 10 usando disk cleanup 
Bypass UAC usando AppPaths 
Bypass UAC Fileless 
Bypass UAC aprovechándose de WinSxS 
• Nuestro Invoke-CompMgmtLauncher para bypassear UAC 
• El último Fileless 2
Hoy hablaremos de otras técnicas para encontrar la falta de parches de seguridad en sistemas Microsoft Windows, por lo que tendremos nuevas formas y vías para lograr detectar vulnerabilidades en nuestras auditorías de sistemas.

PoC con Metasploit, PowerShell y WMI

Para ejemplificar formas vamos a utilizar diferentes entornos: un módulo de mi querido Metasploit, que usaremos en el curso online de Pentesting con Metasploit - que comienza este viernes y se entrega el el libro Metasploit para Pentesters - un script de Powershell y las posibilidades que proporciona WMI como lenguaje de instrumentación en los propios sistemas.

Figura 2: Curso Online de Pentesting con Metasploit 

En la siguiente imagen, se puede ver el módulo post/windows/gather/enum_patches, el cual permite enumerar parches de seguridad que no se encuentran en la máquina y relacionarlos con módulos que están cargados en Metasploit y que pueden ser la clave para lograr la escalada de privilegio. Para configurarlo se necesita, solamente, la sesión por la que tenemos el payload.

Figura 3: Enumeración de parches con Metasploit usando enum_patchers

Sherlock es un script de Powershell que implementa la detección de diversas vulnerabilidades en sistemas operativos Microsoft Windows. Nosotros aprovechamos la sesión de Meterpreter utilizada en el ejercicio anterior para lanzar el script en Powershell.

Figura 4: Sherlock en GitHub

Para ello, nos apoyamos en la descarga del script en raw desde Github y poder cargar dinámicamente sus funciones en memoria, y aquí se puede ver su utilización.

Figura 5: Funciones de Sherlock cargadas en remoto  dentro de Powershell

Como podemos ver ejecutando el proveedor de funciones de Powershell, aparecen nuevas funciones como Find-AllVulns, Find-CVE20177199, Find-MS16023, etcétera. Se puede ir probando una a una las diferentes funciones o, directamente, ejecutar la primera de las funciones que probará todas: La función Find-AllVulns.

Figura 6: Ejecución de Fin-AllVulns en Powershell

Por último, vamos a mostrar un ejemplo con WMI para poder ver qué parches de seguridad hay instalados en el equipo. Como se puede ver en la imagen, lanzamos la instrucción WMI en una en una shell:
wmic qfe get Caption,Description,HotFixID,Installation
Es, sin duda, una interesante forma de conocer el estado de seguridad del sistema Microsoft Windows. Llegados a este punto, ya podemos meter herramientas como Windows Exploit Suggester.

Figura 7: Búsqueda de parches instalados usando WMI

Sin duda, diferentes formas para encontrar la falta de parches de seguridad en sistemas Windows y tener una visión completa de qué vulnerabilidades conocidas existen en esta máquina en concreto para proseguir el proceso de pentesting.  En el siguiente vídeo tienes un ejemplo completo de esta idea.

Figura 8: PoC de búsqueda de parches y vulnerabilidades en Windows

Una vez que tenemos una sesión o una máquina comprometida es importante apoyarnos en estas herramientas para lograr un camino hacia la escalada de privilegios, aunque no hay que dejar de lado herramientas como BeRoot que nos permite ayudarnos también de las debilidades y malas configuraciones de los administradores para lograr la ansiada escalada.

Autor: Pablo González Pérez (@pablogonzalezpe)
Escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares