Exploiting Windows Vulnerabilities
Exploiting Microsoft IIS WebDAV
A continuacion se describira como se explotara un servidor WebDAV que se ejecuta en Microsoft IIS, para ello entonces comenzaremos a describir los soguientes puntos.
Microsoft IIS
IIS (Internet Information Services) es un software de servidor web extensible patentado desarrollado por Microsoft para su uso con la familia Windows NT. Lo que quiere decir que este servidor web fue desarrollado por Microsoft. Lo que hace que funcione como cualquier otro servidor, como Apache o Nginx.
Se puede utilizar para alojar sitios web/aplicaciones web y proporciona a los administradores una GUI sólida para administrar sitios web.
IIS se puede utilizar para alojar páginas web estáticas y dinámicas desarrolladas en ASP.NET y PHP. Normalmente configurado para ejecutarse en los puertos 80/443. Extensiones de archivos ejecutables compatibles:
.asp
.aspx
.config
.php
WebDAV
WebDAV (creación y control de versiones distribuidas basadas en web) es un conjunto de extensiones del protocolo HTTP que permite a los usuarios editar y administrar archivos de forma colaborativa en servidores web remotos.
Básicamente, WebDAV permite que un servidor web funcione como un servidor de archivos para la creación colaborativa (autoría).
WebDAV se ejecuta sobre Microsoft IIS o Apache en los puertos 80/443.
Para conectarse a un servidor WebDAV, deberá proporcionar credenciales legítimas (Usuario y Contraseña). Esto se debe a que WebDAV implementa la autenticación en forma de nombre de usuario y contraseña.
WebDAV Exploitation
El primer paso del proceso de explotación implicará identificar si WebDAV se ha configurado para ejecutarse en el servidor web IIS.
Podemos realizar un ataque de fuerza bruta al servidor WebDAV para identificar credenciales legítimas que podemos usar para la autenticación.
Después de obtener credenciales legítimas, podemos autenticarnos con el servidor WebDAV y cargar una carga útil .asp maliciosa que puede usarse para ejecutar comandos arbitrarios u obtener un shell inverso en el objetivo.
Tools
davtest: se utiliza para escanear, autenticar y explotar un servidor WebDAV.
cadaver: cadaver admite carga y descarga de archivos, visualización en pantalla, edición in-place, operaciones de espacio de nombres (mover/copiar), creación y eliminación de colecciones, manipulación de propiedades y bloqueo de recursos en servidores WebDAV.
Nota: Todas las técnicas se realizan en Kali Linux.
Demo
Escanear con nmap para identificar los puertos abiertos y los servicios respectivos.
Identificar el servicio de Microsoft IIS (Puerto 80) y las caveceras de su salida generamente se identifica como "http-webdav-scan"
Se identifico la ruta del path web en donde se insertan las credenciales correspondientes. por lo cual realizaremos un ataque de fuerza bruta utilizando hydra
Después de insertar las credenciales de forma exitosa, visualizara algunos archivos de configuración en el path web. Por lo cual comenzaremos con la explotación atravez de la herramienta davtest.
Durante la ejecución se generara un cadena aleatoria, la misma se utilizara y anexara esencialmente a cualquiera de los directorios o ficheros que se crean . Después de que termine de crear los directorios o ficheros, ejecutara cada archivo creado y verificara si es posible ejecutar el mismo. Descartar las extensiones .txt y .html, posterior a ello cualquiera extension nos puede dar un shell reverso.
Para la explotación utilizaremos la herramienta cadaver.
Listado de webshell e indeitifcar la extension que fue aceptado en el punto 4.
Idenitifcar el qeb shell que se cargara por media de la shell que se abrio en el punto 5.
Desde un navegador web, podrá visualizar el archivo que se subió y desde el mismo podra ejecutar comandos.
Test your knowledge
Exploiting WebDAV With Metasploit
A diferencia del anterior punto, en este punto solo existira algunas variaciones debido a que utilizaremos matasploit. Por lo cual el laboratorio esta disenado para ejecutar diferentes tipos de cargas utiles ASP
Escanear con nmap para identificar los puertos abiertos y los servicios respectivos.
Identificar el servicio de Microsoft IIS (Puerto 80) y las caveceras de su salida generamente se identifica como "http-webdav-scan"
Se identifico la ruta del path web en donde se insertan las credenciales correspondientes. por lo cual realizaremos un ataque de fuerza bruta utilizando hydra
Se reutilziara las mismas credenciales.
Se generara una carga util de ASP. Se recomienda utilizar la carga util de 32bits, debido a que la misma puede funcionar en arquitecturas de 32 y 64.
Para la explotación utilizaremos la herramienta cadaver.
Subiremos el carga util que generamos en el punto 5.
Verificar que el archivo se haya subido.
Desde el lado de hacker se debe de configurar un oyente
Ejecutar el payload desde la lista de archivos (punto 7)
La sesion del meterpreter se ejecutara del punto 9. Adicionalmente se detalla comandos que se puede ejecutar dentro de la sesion de meterpreter.
Otros modos de explotación utilizando metasploit.
Desde el metasploit ejecutar la siguiente linea de comando
Se detalla comandos que se puede ejecutar dentro de la sesion de meterpreter
Lo bueno del ultimo método es que no deja ningun rastro del shell revers (.asp), sin embargo desde la sesion de calavera se puede eliminar una vez se haya establecido conexion.
Test your knowledge
Exploiting SMB With PsExec
Antes de comenzar con el concepto practico, primero debemos de entender de que es SMB y como funciona en terminos de autenticacion, asi como tambien entender que es PsExec y como podemos usarlo para .para obtener acceso a un sistema objetivo.
SMB
SMB (Server Message Block) es un protocolo de intercambio de archivos en red que se utiliza para facilitar el intercambio de archivos y periféricos (impresoras y puertos serie) entre computadoras en una red local (LAN).
SMB utiliza el puerto 445 (TCP). Sin embargo, originalmente, SMB se ejecutaba sobre NetBIOS usando el puerto 139.
SAMBA es la implementación Linux de código abierto de SMB y permite que los sistemas Windows accedan a recursos compartidos y dispositivos Linux.
SMB Authentication
El protocolo SMB utiliza dos niveles de autenticación, los cuales son:
User Authentication
Share Authentication
User Authentication: Los usuarios deben proporcionar un nombre de usuario y contraseña para autenticarse con el servidor SMB y poder acceder a un recurso compartido.
Share Authentication: Los usuarios deben proporcionar una contraseña para poder acceder al recurso compartido restringido.
PsExec
PsExec es un reemplazo ligero de Telnet desarrollado por Microsoft que le permite ejecutar procesos en sistemas Windows remotos utilizando las credenciales de cualquier usuario.
La autenticación PsExec se realiza a través de SMB.
Podemos utilizar la utilidad PsExec para autenticarnos legítimamente en el sistema de destino y ejecutar comandos arbitrarios o iniciar un símbolo del sistema remoto. Por lo cual para utilizar PsExec se debe de utilizar credenciales legitimas.
Es muy similar a RDP, sin embargo, en lugar de controlar el sistema remoto a través de GUI, los comandos se envían a través de CMD.
SMB Exploitation With PsExec
Para utilizar PsExec para obtener acceso a un objetivo de Windows, necesitaremos identificar cuentas de usuario legítimas y sus respectivas contraseñas o hashes de contraseña.
Esto se puede hacer aprovechando varias herramientas y técnicas; sin embargo, la técnica más común implicará realizar un ataque de fuerza bruta al iniciar sesión en SMB.
Podemos limitar nuestro ataque de fuerza bruta para incluir solo cuentas de usuarios comunes de Windows como:
Administrador / Administrator
Una vez que hayamos obtenido una cuenta de usuario y una contraseña legítimas, podemos usar las credenciales para autenticarnos en el sistema de destino a través de PsExec y ejecutar comandos arbitrarios del sistema u obtener un shell inverso.
Demo: Exploiting SMB With PsExec
La utilidad PsExec es un ejecutable de windows, por lo cual no se puede ejecutar en Linux sin embargo existe una herramienta en python llamado PSEXEC.py que es una implementacion en python, que nos permite autenticarnos con un sistema destino.
Si queremos extender la sesion, podemos realizar una sesion de interprete on un modulo de Metasploit
Test your knowledge: Exploiting SMB With PsExec
Exploiting Windows MS17-010 SMB Vulnerability (EternalBlue)
MS17-010 EternalBlue Exploiting
EternalBlue (MS17-010/CVE-2017-0144) es el nombre que se le da a una colección de vulnerabilidades y exploits de Windows que permiten a los atacantes ejecutar código arbitrario de forma remota y obtener acceso a un sistema Windows y, en consecuencia, a la red de la que forma parte el sistema objetivo. de.
El exploit EternalBlue fue desarrollado por la NSA (Agencia de Seguridad Nacional) para aprovechar la vulnerabilidad MS17-010 y fue filtrado al público por un grupo de piratas informáticos llamado Shadow Brokers en 2017.
El exploit EternalBlue aprovecha una vulnerabilidad en el protocolo SMBv1 de Windows que permite a los atacantes enviar paquetes especialmente diseñados que, en consecuencia, facilitan la ejecución de comandos arbitrarios. Tambien puede proporcionar un shell Inversi o una sesion de Interprete. Esto llega a otorgar un accesp al sistema destino, y le llega a proporcionar elevación de privilegios por lo cual el atacante no necesita realizar una escalada de privilegios ya que obtendrá privilegio elevados.
El exploit EternalBlue se utilizó en el ataque de ransomware WannaCry el 27 de junio de 2017 para explotar otros sistemas Windows a través de redes con el objetivo de propagar el ransomware a tantos sistemas como fuera posible. El objetivo fue Eternal identificar otros sistemas windows en la red luego de explotar (Blue)los mismos, por lo cual infectaria a los sistemas, obtendria acceso y luego se ejecutaria el ransomgar. Por lo tanto le permitiria propagar e infectar tantos sistemas como sea posible.
Esta vulnerabilidad afecta a varias versiones de Windows (arquitecturas de x64 y x32):
Windows Vista
Windows 7
Windows Server 2008
Windows 8.1
Windows Server 2012
Windows 10
Windows Server 2016
Microsoft lanzó un parche para la vulnerabilidad en marzo de 2017; sin embargo, muchos usuarios y empresas aún no han parcheado sus sistemas.
El exploit EternalBlue tiene un módulo auxiliar MSF (Metasploit) que se puede usar para verificar si un sistema de destino es vulnerable al exploit y también tiene un módulo de exploit que se puede usar para explotar la vulnerabilidad en sistemas sin parches.
El módulo de explotación EternalBlue se puede utilizar para explotar sistemas Windows vulnerables y, en consecuencia, proporcionarnos una sesión privilegiada de meterpreter en el sistema de destino.
Además de los módulos de MSF, también podemos explotar manualmente la vulnerabilidad utilizando código de explotación disponible públicamente. INE
Demo: Exploiting Windows MS17-010 smb VULNERABILITY (Eternal Blue)
QUIZ
Exploitting RDP
El Protocolo de escritorio remoto (Remote Desktop Protocol - RDP) es un protocolo de acceso remoto GUI patentado desarrollado por Microsoft y se utiliza para conectarse e interactuar de forma remota con un sistema Windows.
RDP utiliza el puerto TCP 3389 de forma predeterminada y también se puede configurar para ejecutarse en cualquier otro puerto TCP. Por ello es importante la fase de enumeracion, para identificar aquellos sistemas que cambiaron de puerto.
La autenticación RDP requiere una cuenta de usuario legítima en el sistema de destino, así como la contraseña del usuario en texto sin cifrar.
Podemos realizar un ataque de fuerza bruta RDP para identificar credenciales de usuario legítimas que podemos usar para obtener acceso remoto al sistema de destino. Durante los siguientes laboratorios se limitara el alcance a la cuenta Administrtor.
Demo: Exploiting RDP
Exploiting Windows CVE-2019-0708 RDP Vulnerability (BlueKeep)
CVE-2019-0708 RDP Vulnerability (BlueKeep)
BlueKeep (CVE-2019-0708) es el nombre que se le da a una vulnerabilidad RDP en Windows que podría permitir a los atacantes ejecutar código arbitrario de forma remota y obtener acceso a un sistema Windows y, en consecuencia, a la red de la que forma parte el sistema objetivo.
Microsoft hizo pública la vulnerabilidad BlueKeep en mayo de 2019.
El exploit BlueKeep aprovecha una vulnerabilidad en el protocolo RDP de Windows que permite a los atacantes obtener acceso a una parte de la memoria del kernel, lo que les permite ejecutar de forma remota código arbitrario a nivel del sistema sin autenticación.
Microsoft lanzó un parche para esta vulnerabilidad el 14 de mayo de 2019 e instó a las empresas a parchear esta vulnerabilidad lo antes posible.
En el momento del descubrimiento, se descubrió que alrededor de 1 millón de sistemas en todo el mundo eran vulnerables.
La vulnerabilidad BlueKeep afecta a varias versiones de Windows:
XP
Vista
Windows 7
Windows Server 2008 y R2
La vulnerabilidad BlueKeep tiene varios PoC's ilegítimos y códigos de explotación que podrían ser de naturaleza maliciosa. Por lo tanto, se recomienda utilizar únicamente códigos y módulos de explotación verificados para la explotación.
El exploit BlueKeep tiene un módulo auxiliar MSF que se puede usar para verificar si un sistema de destino es vulnerable al exploit y también tiene un módulo de exploit que se puede usar para explotar la vulnerabilidad en sistemas sin parches.
El módulo de explotación BlueKeep se puede utilizar para explotar sistemas Windows vulnerables y, en consecuencia, proporcionarnos una sesión privilegiada de meterpreter en el sistema de destino.
Nota: Dirigirse a la memoria y las aplicaciones del espacio del kernel puede provocar fallos del sistema.
Demo: Exploiting Windows CVE-2019-0708
Nota: No se cuenta con el laboratorio y se debe de montar de manera personal una maquina virtual con Windows 7 y Kali Linux
Quiz
Exploiting WinRM
La administración remota de Windows (Windows Remote Management - WinRM) es un protocolo de administración remota de Windows que se puede utilizar para facilitar el acceso remoto con sistemas Windows a través de HTTP(S).
Microsoft implementó WinRM en Windows para hacer la vida más fácil a los administradores de sistemas.
WinRM se utiliza normalmente de las siguientes maneras:
Acceda e interactúe de forma remota con hosts de Windows en una red local.
Acceda y ejecute comandos de forma remota en sistemas Windows.
Administre y configure sistemas Windows de forma remota.
WinRM normalmente usa los puertos TCP 5985 (HTTP) y 5986 (HTTPS) si se ha configurado los certificados SSL.
WinRM implementa control de acceso y seguridad para la comunicación entre sistemas a través de varias formas de autenticación, como con una contraseña o un hash.
Podemos utilizar una utilidad llamada "crackmapexec" para realizar una fuerza bruta en WinRM con el fin de identificar usuarios y sus contraseñas, así como ejecutar comandos en el sistema de destino.
También podemos utilizar un script Ruby llamado "evil-winrm" para obtener una sesión de comando shell en el sistema de destino.
Demo: Exploiting WinRM
Quiz
Last updated