Detection and Evading Detection
Última actualización
Última actualización
La detección de comandos en lÃnea basada en listas negras es fácil de evadir, incluso usando una simple ofuscación con mayúsculas y minúsculas. Sin embargo, aunque crear una lista blanca de todos los comandos permitidos en un entorno puede llevar tiempo al principio, es una solución muy robusta que permite detectar y alertar rápidamente sobre comandos inusuales.
La mayorÃa de los protocolos cliente-servidor requieren que el cliente y el servidor negocien cómo se entregará el contenido antes de intercambiar información. Esto es común en el protocolo HTTP
. Existe la necesidad de interoperabilidad entre diferentes servidores web y navegadores para asegurar que los usuarios tengan la misma experiencia sin importar el navegador que usen. Los clientes HTTP
suelen identificarse por su cadena User-Agent, que el servidor usa para saber qué cliente se está conectando, por ejemplo, Firefox, Chrome, etc.
Los User-Agent no solo se usan para identificar navegadores web, sino que cualquier cosa que actúe como cliente HTTP
y se conecte a un servidor puede tener su propia cadena User-Agent (por ejemplo, cURL
, un script en Python
, o herramientas como sqlmap
o Nmap
).
Las organizaciones pueden tomar algunas medidas para identificar posibles cadenas de User-Agent sospechosas, comenzando por crear una lista de User-Agent legÃtimos conocidos, los que usan por defecto los procesos del sistema operativo, los que usan los servicios de actualización como Windows Update, actualizaciones de antivirus, etc. Estas listas pueden incorporarse a herramientas SIEM para hacer threat hunting, filtrar el tráfico legÃtimo y centrarse en las anomalÃas que podrÃan indicar actividad sospechosa. Cualquier User-Agent sospechoso puede ser investigado más a fondo para ver si se usó para llevar a cabo acciones maliciosas. Esta sirve para identificar cadenas de User-Agent comunes. se puede consultar una lista de User-Agent.
Las transferencias de archivos maliciosas también pueden detectarse a través de su User-Agent. A continuación, se muestran los User-Agent y cabeceras observadas en técnicas comunes de transferencia HTTP
(probado en Windows 10, versión 10.0.14393, con PowerShell 5).
Invoke-WebRequest - Client
Invoke-WebRequest - Server
WinHttpRequest - Client
WinHttpRequest - Server
Msxml2 - Client
Msxml2 - Server
Certutil - Client
Certutil - Server
BITS - Client
BITS - Server
Esta sección apenas comienza con la detección de transferencias de archivos maliciosas. SerÃa un excelente punto de partida para cualquier organización crear una lista blanca de binarios permitidos o una lista negra de binarios que se sabe que se utilizan con fines maliciosos. Además, la búsqueda de cadenas de agente de usuario anómalas puede ser una excelente manera de detectar un ataque en curso. Abordaremos las técnicas de búsqueda y detección de amenazas en profundidad en módulos posteriores.
Si los administradores o defensores han bloqueado alguno de estos User-Agent, el comando Invoke-WebRequest
tiene un parámetro llamado -UserAgent
que permite cambiar el valor por defecto. Podemos poner uno que imite a Internet Explorer, Firefox, Chrome, Opera o Safari.
Por ejemplo, si en la red del cliente todo el tráfico web pasa por Chrome, usar ese User-Agent puede hacer que la petición parezca legÃtima y asà pasar más desapercibidos.
Listing out User Agents
Invocar Invoke-WebRequest para descargar nc.exe mediante un agente de usuario de Chrome:
Request with Chrome User Agent
El uso de whitelisting de aplicaciones puede impedirnos ejecutar herramientas como PowerShell o Netcat, y además, el registro de comandos puede alertar a los defensores de nuestra actividad. En estos casos, una opción útil es recurrir a un LOLBIN (Living Off The Land Binary), también conocidos como binarios de confianza mal ubicada.
Un ejemplo de LOLBIN es el GfxDownloadWrapper.exe, que forma parte de los drivers de gráficos de Intel en Windows 10. Este binario ya viene instalado en algunos sistemas y tiene la capacidad de descargar archivos de configuración de forma periódica. Podemos aprovechar esa funcionalidad para descargar archivos de forma encubierta con un simple comando como:
Transferring File with GfxDownloadWrapper.exe
Ese tipo de binario (como GfxDownloadWrapper.exe
) puede estar permitido por las polÃticas de whitelisting y además no generar alertas, ya que es legÃtimo y forma parte del sistema.
Existen otros binarios aún más comunes que se pueden aprovechar, y por eso vale la pena revisar el proyecto , donde se recopilan binarios legÃtimos de Windows que pueden ser usados para descargar archivos, ejecutar comandos, etc.
En Linux, el equivalente es el proyecto , que también merece la pena revisar. A dÃa de hoy, GTFOBins documenta casi 40 binarios comunes que pueden usarse para transferencias de archivos y otras acciones útiles en post-explotación o evasión.