Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Los usuarios son a veces el eslabón más débil de una organización. Un empleado sobrecargado que trabaja rápidamente puede no notar que algo no funciona bien en su equipo cuando navega por una unidad compartida, hace clic en un enlace o ejecuta un archivo. Como se ha comentado a lo largo de este módulo, Windows nos presenta una enorme superficie de ataque y hay muchas cosas que comprobar al enumerar los vectores de escalada de privilegios locales.
Una vez que hemos agotado todas las opciones, podemos buscar técnicas específicas para robar credenciales de un usuario desprevenido espiando su tráfico de red/comandos locales o atacando un servicio vulnerable conocido que requiera la interacción del usuario. Una de mis técnicas favoritas es colocar archivos maliciosos en recursos compartidos de archivos a los que se accede con frecuencia en un intento de recuperar los hashes de contraseñas de los usuarios para descifrarlos sin conexión más tarde.
Si Wireshark
está instalado, los usuarios sin privilegios pueden capturar el tráfico de red, ya que la opción para restringir el acceso del controlador Npcap solo a los administradores no está habilitada de forma predeterminada.
Aquí podemos ver un ejemplo aproximado de captura de credenciales FTP en texto sin formato ingresadas por otro usuario mientras está conectado al mismo equipo. Si bien no es muy probable, si Wireshark
está instalado en un equipo en el que aterrizamos, vale la pena intentar una captura de tráfico para ver qué podemos detectar.
Al obtener un shell como usuario, puede haber tareas programadas u otros procesos en ejecución que pasan credenciales en la línea de comandos. Podemos buscar líneas de comandos de procesos utilizando algo como este script que se muestra a continuación. Captura líneas de comandos de procesos cada dos segundos y compara el estado actual con el estado anterior, mostrando las diferencias.
Podemos alojar el script en nuestra máquina de ataque y ejecutarlo en el host objetivo de la siguiente manera.
Esto es exitoso y revela la contraseña del usuario sqlsvc
, que luego podríamos usar para obtener acceso al host SQL02
o potencialmente encontrar datos confidenciales como credenciales de base de datos en el recurso compartido backups
.
Cualquier ejecutable ubicado en ese directorio se ejecutaría cuando:
Se inicie la aplicación Docker y
Cuando un usuario se autentique usando el comando docker login
.
Si bien es un poco más antiguo, no está fuera del ámbito de la posibilidad encontrar una estación de trabajo de desarrollador ejecutando esta versión de Docker Desktop, por lo que siempre es importante enumerar minuciosamente el software instalado. Si bien esta falla en particular no nos garantizaría un acceso elevado (ya que depende de un reinicio del servicio o una acción del usuario), podríamos colocar nuestro ejecutable durante una evaluación a largo plazo y verificar periódicamente si se ejecuta y nuestros privilegios están elevados.
El Explorador de Windows utiliza un archivo de comandos de Shell (SCF) para desplazarse hacia arriba y hacia abajo por directorios, mostrar el escritorio, etc. Se puede manipular un archivo SCF para que la ubicación del archivo de iconos apunte a una ruta UNC específica y hacer que el Explorador de Windows inicie una sesión SMB cuando se acceda a la carpeta donde se encuentra el archivo .scf.
En este ejemplo, vamos a crear el siguiente archivo y nombrarlo de una forma similar a @Inventory.scf
(similar a otro archivo en el directorio, para que no parezca fuera de lugar). Ponemos un @
al comienzo del nombre del archivo para que aparezca en la parte superior del directorio para asegurarnos de que Windows Explorer lo vea y lo ejecute tan pronto como el usuario acceda al recurso compartido. Como estamos conectados por VPN aquí ponemos nuestra dirección IP tun0
y cualquier nombre de recurso compartido falso y el nombre de archivo .ico.
A continuación, inicia Responder en la máquina de atacante y espera a que el usuario navegue por el recurso compartido. Si todo sale como está previsto, veremos el hash de la contraseña NTLMV2 del usuario en nuestra consola e intentaremos descifrarlo sin conexión.
Luego podríamos intentar descifrar este hash de contraseña sin conexión con Hashcat
para recuperar el texto sin formato.
Nota: En nuestro ejemplo, espere entre 2 y 5 minutos para que el "usuario" explore el recurso compartido después de iniciar Responder.
Pruebe esta técnica en el host de destino para familiarizarse con la metodología y agregar otra táctica a su arsenal para cuando encuentre entornos donde prevalece Server 2019.
Utilizando las técnicas de esta sección, obtén las credenciales en plano para el usuario SCCM_SVC.
Además, supongamos que nuestro cliente nos posiciona en una máquina de atacante dentro del entorno. En ese caso, vale la pena ejecutar tcpdump
o Wireshark
por un tiempo para ver qué tipos de tráfico pasan por la red y si podemos ver algo interesante. La herramienta se puede ejecutar desde nuestra máquina de ataque para rastrear contraseñas y hashes desde una interfaz en vivo o un archivo pcap. Vale la pena dejar que esta herramienta se ejecute en segundo plano durante una evaluación o ejecutarla contra un pcap para ver si podemos extraer alguna credencial útil para la escalada de privilegios o el movimiento lateral.
También podemos encontrarnos con situaciones en las que aterrizamos en un host que ejecuta una aplicación vulnerable que se puede usar para elevar privilegios a través de la interacción del usuario. es un gran ejemplo de esto. Esta era una vulnerabilidad en Docker Desktop Community Edition antes de 2.1.0.1. Cuando se inicia esta versión particular de Docker, busca varios archivos diferentes, incluidos docker-credential-wincred.exe
, docker-credential-wincred.bat
, etc., que no existen con una instalación de Docker. El programa busca estos archivos en el directorio C:\PROGRAMDATA\DockerDesktop\version-bin\
. Este directorio estaba mal configurado para permitir acceso de escritura completo al grupo BUILTIN\Users
, lo que significa que cualquier usuario autenticado en el sistema podría escribir un archivo en él (como un ejecutable malicioso).
Si cambiamos el IconFile a un servidor SMB que controlamos y ejecutamos una herramienta como , o , a menudo podemos capturar hashes de contraseñas NTLMv2 para cualquier usuario que explore el recurso compartido. Esto puede ser particularmente útil si obtenemos acceso de escritura a un recurso compartido de archivos que parece ser muy utilizado o incluso a un directorio en la estación de trabajo de un usuario. Es posible que podamos capturar el hash de la contraseña de un usuario y utilizar la contraseña en texto sin formato para aumentar los privilegios en el host de destino, dentro del dominio o para ampliar nuestro acceso/obtener acceso a otros recursos.
El uso de SCF ya no funciona en los hosts Windows Server 2019, pero podemos lograr el mismo efecto utilizando un archivo malicioso . Podemos utilizar varias herramientas para generar un archivo .lnk malicioso, como , ya que no es tan sencillo como crear un archivo .scf malicioso. También podemos crear uno utilizando algunas líneas de PowerShell: