Ir al contenido
Perspectiva de los analistas: Descargue hoy mismo su copia del informe Gartner® Hype Cycle™ for Security Operations, 2024. | Obtener informe
Blogs

Guía para principiantes sobre la caza de directorios abiertos maliciosos

Introducción

Es probable que los analistas de amenazas que investigan infraestructuras maliciosas se encuentren con "directorios abiertos" durante sus investigaciones. Estos directorios, comúnmente denominados "opendirs", son servidores de acceso abierto donde los actores de amenazas alojan archivos maliciosos relacionados con sus operaciones.

Un directorio abierto es un concepto sencillo con el que muchos estarán familiarizados. A pesar de ello, existe poca documentación pública sobre su descubrimiento y sobre cómo identificar y rastrear nuevas infraestructuras de directorios abiertos.

Este blog cubrirá los aspectos básicos de un directorio abierto, cómo puede descubrirlos durante la búsqueda y cómo profundizar en sus investigaciones sobre la infraestructura de directorios abiertos.

¿Qué es un Open Directory?

Un directorio abierto es simplemente un servidor en el que un directorio se ha dejado "abierto" y es accesible públicamente navegando a la IP o dominio del sitio.

Desde la perspectiva de los actores de amenazas, este directorio permite que los archivos maliciosos sean fácilmente accesibles y se entreguen cuando y donde se necesiten. A menudo se trata de archivos de segunda fase para malware, o de herramientas utilizadas en operaciones prácticas.

También hay casos de uso legítimo, en los que un servicio legítimo necesita hacer que un archivo sea público y fácilmente accesible, pero por hoy nos centraremos en los casos de uso malicioso y en cómo separarlos de los ejemplos auténticos.

A continuación (compartido por RussianPanda9XX en X/Twitter) se muestra un ejemplo malicioso en el que un directorio abierto aloja archivos maliciosos. Este ejemplo muestra un directorio abierto basado en Apache cuando se ve directamente en un navegador.

Directorio abierto que aloja archivos maliciosos

Otro ejemplo es un directorio abierto utilizado por ValleyRat y reportado por Zscaler.

El directorio abierto utiliza el software HFS (HTTP File Server).

La apariencia difiere entre programas, pero la funcionalidad sigue siendo la misma. He aquí otro ejemplo de ligeras diferencias entre Apache y Python. Estas diferencias se tratan con más detalle en el informe "Dorking The Internet" de Censys.

Diferentes servidores web ofrecen resultados ligeramente diferentes

¿Cómo encontrar un Open Directory?

Los directorios abiertos pueden descubrirse en la edición comunitaria de Censys buscando la etiqueta open-dir.

Censys escanea automáticamente Internet en busca de directorios abiertos y aplica la etiqueta open-dir, independientemente del software utilizado. Esto significa que Apache, Python, HFS y otros serán incluidos y no será necesario buscarlos individualmente.

Esta etiqueta incluirá todos los directorios abiertos, incluidos tanto los resultados maliciosos como los legítimos. La etiqueta por sí sola puede devolver cientos de miles de resultados.

Lo vemos a continuación con una búsqueda simple de labels:open-dir, que devuelve 450.153 directorios abiertos actuales.

etiquetas: open-dir

Como se muestra, la búsqueda de labels:open-dir devolverá todos los resultados independientemente de si son maliciosos o legítimos.

El resto de este blog demostrará cómo combinar esta consulta con parámetros adicionales para identificar sólo los resultados maliciosos.

Sección 1: Nombres de archivo estáticos para la búsqueda en Open Directory

El método más sencillo para identificar directorios maliciosos es aprovechar los nombres de archivos de incidentes anteriores.

Consideremos 81.71.147[.]158, que fue compartida por @morimolymoly2 en Twitter/X. Esta IP contiene un directorio abierto con un gran número de archivos sospechosos.

Si buscamos la IP en Censys, acabaremos en la página del host donde se encuentra la siguiente información en el puerto 80.

Página de host del puerto 80

El directorio abierto en 81.71.147[.]158 contiene múltiples archivos que son lo suficientemente únicos como para ser utilizados como puntos de pivote. Que son valores lo suficientemente únicos como para ser utilizados en una consulta.

Destacan dos patrones principales.

  • A.dll, a.exe, a.hta, a.jpg - Archivos sospechosos con nombres de archivo cortos y de un solo carácter.
  • Yaml-payload.jar - Archivo sospechoso que contiene "payload" en el nombre del archivo. Probablemente relacionado con un exploit de deserialización de Java.

Podemos combinar estos nombres de archivo con la consulta labels:open-dir para identificar la infraestructura de directorios abiertos que aloja archivos con los mismos nombres.

Pivotar sobre nombres de archivo estáticos

Los nombres de archivo como a.exe pueden combinarse con el parámetro labels: open-dir para identificar directorios abiertos que alojen archivos con el mismo nombre (aunque no necesariamente el mismo contenido de archivo).

Censys almacena el contenido de los directorios abiertos en el campo services.http.response.body, por lo que es aquí donde podemos colocar un nombre de archivo en combinación con labels: open-dir

Por lo tanto, podemos buscar directorios abiertos que contengan a.exe buscando labels:open-dir y services.http.response.body:a.exe. Esta sencilla búsqueda devuelve 9 servidores similares.

Abrir directorios que contengan a.exe

Como se muestra arriba, la búsqueda revela 9 directorios abiertos que contienen a.exe.

El primer resultado de la búsqueda es 159.223.130[.]216. Al navegar por la página del host asociado, se muestra un directorio abierto que aloja a.exe, así como otros archivos con esquemas de nomenclatura similares de un solo carácter. Además de a. exe, ahora tenemos b.exe, c.exe y curl.exe.

Curl es una herramienta "legítima" utilizada para descargar archivos, por lo que es poco probable que curl.exe sea malware, sino una herramienta de apoyo utilizada para "instalar" curl durante operaciones en las que la herramienta curl no estaba presente.

curl.exe

Para confirmar la naturaleza de estos archivos, podemos descargarlos (utilizando un sandbox o una máquina de análisis independiente) navegando al sitio directamente y luego realizando un análisis manual o enviándolos a un sandbox. Esto no siempre es recomendable por razones de opsec, pero este es un tema para otra discusión.

In cases where the infrastructure is not sensitive, the files can be scanned by inputting the URL directly into VirusTotal. In this case, we can input <IP>/b.exe and see that it has 34 detections and contains a Sliver C2 Implant.

Tenga en cuenta que este tipo de exploración a menudo alertará al actor de que sus servidores están siendo investigados. Debes tener esto en cuenta cuando investigues la infraestructura.

archivo b.exe

El archivo b.exe tiene 34 detecciones, pero el directorio abierto que lo aloja tiene 0.

Esto significa que probablemente hemos encontrado alguna infraestructura "nueva", utilizando sólo un simple nombre de archivo para nuestro análisis.

abrir directorio hosting b.exe

Podemos seguir investigando los resultados de búsqueda de más instancias de a.exe.

Otro resultado de nuestra búsqueda anterior es 121.43.135[.]166, que contiene a.exe y otros numerosos archivos sospechosos.

a.exe y numerosos archivos sospechosos

Los mismos patrones de nomenclatura de archivos pueden observarse en otros servidores devueltos por la búsqueda, que todos contienen a.exe en combinación con otros archivos sospechosos.

Pivotar sobre un nombre de archivo de exploits

La IP inicial contenía otro archivo sospechoso llamado yaml-payload.jar. Googlear este archivo sugiere que está relacionado con un exploit Yaml Deserialization.

Repitiendo el proceso de antes, podemos identificar servidores similares buscando labels:open-dir y services.http.response.body: "yaml-payload.jar"

labels:open-dir y services.http.response.body: "yaml-payload.jar"

La búsqueda simple devuelve 8 directorios abiertos que albergan archivos con el mismo nombre.

Uno de los resultados contiene yaml-payload.jar y una referencia a artifact_x86.exe, que es un nombre de archivo común para Cobalt Strike.

Esto significa que nuestro simple pivote en yaml-payload. jar probablemente ha llevado al servidor de un actor aprovechando Cobalt Strike.

artefacto_x86.exe

El nombre artifact_x86.exe es lo suficientemente único como para ser utilizado como otro punto de pivote. Un analista podría realizar pivotajes adicionales sobre el nombre artifact_x86 . exe.

Esto sería tan sencillo como repetir las búsquedas anteriores con diferentes nombres de archivo en el campo services.http.response.body .

Resumen - Nombres de archivo estáticos para la búsqueda en Open Directory

Los nombres de archivo estáticos sirven como un medio simple y altamente efectivo para descubrir nuevos directorios abiertos maliciosos.

Mediante el uso de informes públicos (medios de comunicación social, Intel Repos, incidentes internos), puede identificar fácilmente los nombres de archivos simples que pueden conducir a una nueva infraestructura.

Para ello, basta con buscar labels:open-dir y añadir el nombre del archivo sospechoso en el campo services.http.response.body.

Sección 2: Sistemas autónomos y proveedores de alojamiento

La búsqueda de directorios abiertos puede verse muy facilitada si se combinan los proveedores de alojamiento con la consulta labels:open-dir.

Esto puede ser especialmente eficaz cuando un actor utiliza un proveedor de alojamiento único o poco común.

Consideremos la IP 77.105.160.30 (inicialmente compartida por @karol_paciorek). Este servidor tiene un directorio abierto y está alojado en EVILEMPIRE con un número de sistema autónomo de 216309.

Directorio abierto alojado en Evil Empire

Dado que se trata de un proveedor poco común, podemos descubrir más directorios abiertos combinando el número ASN asociado con labels:open-dir.

El uso de EVILEMPIRE es lo suficientemente único como para que sólo haya 8 directorios abiertos alojados en él.

Directorio abierto Evil Empire Uno de esos resultados es 77.105.132[.]27que coincide con nuestros criterios de búsqueda y ya ha sido marcado como C2 conocido.

Directorio abierto en Evil Empire hosting C2Al navegar a la página del host y ver el contenido del directorio, parece que aloja tanto el malware Vidar como Lumma.

Resumen - Sistemas autónomos y proveedores de alojamiento

Combinar la búsqueda en directorios abiertos con proveedores de alojamiento inusuales puede conducir rápidamente a nuevos resultados.

Esto funciona mejor cuando el proveedor no es común o es bien conocido por alojar actores maliciosos. Así que ten cuidado cuando apliques esta técnica a un proveedor grande como Amazon o CloudFlare. Los grandes proveedores como estos pueden estar asociados con decenas de miles de resultados, que pueden ser difíciles de analizar y extremadamente propensos a falsos positivos sin un filtrado adicional.

Considere que CloudFlare estaba vinculado a 38.614 directorios abiertos sólo en 2023. Amazon está vinculado a 21.805. Encontrará más estadísticas en "Dorking The Internet".

Sección 3: Patrones de nombres de archivo y expresiones regulares

En la primera sección, utilizamos nombres de archivo estáticos para pivotar a directorios abiertos adicionales. Sin embargo, hay una manera mucho mejor de hacer esto con la adición de expresiones regulares.

Considere la búsqueda de "archivos denominados a.exe" frente a la búsqueda de "CUALQUIER carácter único .exe". La segunda opción es más genérica (en el buen sentido) y permite una búsqueda más eficaz.

Podemos abstraer el nombre de archivo a.exe utilizando expresiones regulares para buscar cualquier ejecutable de un solo carácter. Para que la búsqueda sea más eficaz, podemos incluso ampliarla a cualquier nombre de archivo de un solo carácter con las extensiones exe, hta o rtf.

Considere los siguientes nombres de archivo de una de nuestras búsquedas anteriores.

Nombres de archivo de un solo carácter con las extensiones exe, hta o rtf

El directorio abierto contiene 9 archivos con un solo carácter antes de la extensión(a.dll, 1.rtf, a.hta etc).

En lugar de buscar estos nombres individualmente, creemos una expresión regular que busque nombres de archivo de un solo carácter con cualquiera de las extensiones exe, rtf o hta.

Podemos crear un prototipo simple usando CyberChef, y luego añadirlo al campo services.http.response.body.

Expresión regular en CyberChef

Tenga en cuenta que ahora tendremos que utilizar el contenido HTML en bruto y no la representación HTML de las capturas de pantalla anteriores, por lo que vamos a añadir .*\" a ambos lados de nuestras expresiones regulares. Esto tiene en cuenta la sintaxis HTML (que se muestra a continuación) y especifica que sólo queremos archivos llamados a.exe, no los que contienen a.exe.

A continuación podemos ver las comillas " antes y después de los nombres de archivo, que debemos tener en cuenta en nuestra expresión regular.

Resultado de la expresión regular

Teniendo en cuenta el HTML en bruto, podemos buscar nombres de archivo de un solo carácter con la siguiente consulta.

labels:open-dir and services.http.response.body:/.*"\w\.(exe|hta|rtf)\".*/

Para quienes no estén familiarizados con las expresiones regulares, he aquí una visualización por cortesía de regexper.com

Visualización de expresiones regulares Al ejecutar esta nueva búsqueda se obtienen 57 resultados para directorios abiertos con nombres de archivo de un solo carácter.

57 resultados para directorios abiertos con nombres de archivo únicos Uno de estos resultados es 20.98.129[.]89que contiene un único carácter e.hta (que coincide con nuestra expresión regular), así como un sospechoso archivo payload.exe.

Resultado Regex con carga sospechosa

Otro resultado de la búsqueda es 1.92.96[.]35, donde nuestra expresión regular ha coincidido con nombres de archivo de un solo carácter como f.exe, m.exe, m.hta, p.hta.

Además de los nombres coincidentes, ahora tenemos un directorio abierto que hace referencia a cs4 .9, que probablemente sea una referencia a la versión 4.9 de Cobalt Strike. La cadena cs4 . 9 sería genial para usarla para pivotes adicionales.

directorio abierto con referencia a c.s49

Otro resultado de la búsqueda es 38.206.173[.]58, que parece alojar ransomware debido a la presencia de unlocker.exe y READ_TO_DECRYPT.html.

Aquí hay numerosas oportunidades para archivos que podrían utilizarse para pivotar a servidores adicionales.

Archivos que podrían utilizarse para pivotar a servidores adicionales

Resumen - Patrones de nombres de archivo y expresiones regulares

Los patrones de nombres de archivo en forma de expresiones regulares pueden ser mucho más eficaces que la búsqueda estática de nombres. Si observa varios nombres de archivo con valores diferentes pero "similares", pruebe a utilizar una expresión regular para agruparlos.

Las consultas avanzadas que utilizan expresiones regulares a menudo conducen a servidores maliciosos adicionales.

Sección 4: Combinación de extensiones de archivo

Las extensiones de archivo pueden ser otra forma sencilla y eficaz de identificar directorios abiertos sospechosos.

Por ejemplo, la combinación de un archivo .exe y .hta en el mismo directorio abierto es rara y es poco probable que ocurra en un directorio legítimo. Así que podemos utilizar esta idea para identificar servidores maliciosos. El mismo concepto puede aplicarse a un .hta y un .ps1 compartiendo el mismo directorio.

Consideremos uno de nuestros resultados anteriores, que contiene una mezcla de .hta, .png, .exe, .msi y .txt. Podemos utilizar esta combinación (o un subconjunto) para identificar infraestructuras adicionales.

Combinaciones de extensiones de archivos en el directorio abierto

Podemos crear una consulta que busque todos los directorios abiertos que contengan las extensiones .hta y .exe.

labels:open-dir y same_service(services.http.response.body:*.hta* y services.http.response.body:*.exe*) y no services.http.response.body:*htaccess*.

Unas notas rápidas sobre esa consulta:

  • Same_service - Esto le dice a la búsqueda que sólo incluya resultados donde los archivos fueron observados en el mismo puerto. No queremos un servidor con.hta en el puerto 443 y .exe por separado en el puerto 80.
  • No .htaccess - Este es un archivo legítimo que coincide con nuestra búsqueda comodín para .hta, queremos excluirlo de nuestros resultados sin recurrir a expresiones regulares.

Al ejecutar esa consulta se obtienen 9 resultados, uno de ellos es un directorio abierto en 20.163.176[.]155.

Este directorio coincide con nuestra búsqueda de un archivo .hta y.exe en el mismo servicio.

Coincidencias de directorio para .hta y .exe en el mismo servicio

Este directorio abierto en 20.163.176[.]155 contiene múltiples archivos de "actualización" que están marcados como descargadores por VirusTotal. Así que nos hemos encontrado con otro servidor que contiene archivos maliciosos.

El directorio abierto también contiene un nuevo patrón de archivos ps1 y exe , por lo que podemos ajustar nuestra consulta para buscar esto e identificar más resultados sospechosos.

Esta consulta buscará directorios abiertos que contengan tanto un script de powershell como un archivo ejecutable.

labels:open-dir and same_service(services.http.response.body:*.ps1* and services.http.response.body:*.exe*)

Abrir directorios que contengan archivos powershell y ejecutables

La búsqueda devuelve 84 resultados de directorios abiertos que contienen scripts y ejecutables powershell.

Uno de estos resultados es 96.255.173[.]42, que contiene tanto .exe como ps1, así como una colección de otros archivos sospechosos probablemente relacionados con PowerSploit Toolkit.

Pivote adicional sobre patrones de nombres de archivo

El directorio mostrado anteriormente contiene varios archivos con "power" en el nombre del archivo, seguido de una extensión ps1 o py.

Utilizando expresiones regulares, podemos convertir esto en una consulta genérica para cualquier directorio abierto que contenga.py o ps1 y un nombre de archivo que empiece por power.

Primero podemos crear un prototipo de expresión regular utilizando CyberChef.

prototipo de expresión regular utilizando Cyber Chef Con la expresión regular funcionando, podemos buscar .ps1 o .py cuyo nombre de archivo contenga power.

Buscar archivos .ps1 o .py cuyo nombre de archivo contenga power

La búsqueda arroja 7 resultados, uno de los cuales es 95.111.214[.]111.

Podemos ver que este directorio contiene aún más archivos relacionados con kits de herramientas Powershell ofensivos.

Directorio con archivos Powershell ofensivos

Otro resultado es 116.114.20[.]180, que contiene powercat.ps1, entre otros nombres de archivo sospechosos.

El archivo Powercat es probablemente una referencia a la implementación Powershell de Netcat.

Implementación Powershell de Netcat

Resumen: Combinación de extensiones de archivo

Las extensiones de archivo pueden ser tan útiles y sencillas como los nombres de archivo a la hora de buscar directorios abiertos.

Si una investigación muestra un directorio abierto con una combinación inusual de tipos de archivo, intente utilizarlo en su consulta. Te sorprendería lo sencillo que es, pero la frecuencia con la que puede conducir a nuevos resultados maliciosos.

Conclusión

Ahora hemos mostrado 4 técnicas útiles para identificar y cazar directorios abiertos maliciosos. Estas técnicas son extremadamente efectivas para encontrar y cazar la infraestructura de directorios abiertos utilizada por los Actores de Amenazas.

Aunque no se trata de una lista exhaustiva, estas técnicas, tanto por sí solas como combinadas, son métodos increíbles para tener en su caja de herramientas de investigación.

A excepción de las expresiones regulares, todas estas técnicas pueden probarse en la edición Community de Censys.

Y para los amantes de las estadísticas y las inmersiones profundas, echa un vistazo al informe Dorking The Internet de Censys. Este enorme informe de 31 páginas echa un vistazo a todos los detalles de la exposición de directorios abiertos, incluyendo cómo y dónde se encuentran tanto en escenarios maliciosos como legítimos.

 

Gráfico de directorios abiertos de Censys Informe Dorking the Internet

Consultas relacionadas con la bonificación 

Para usuarios comunitarios

CUALQUIER directorio abierto(Enlace)

etiquetas:open-dir

Abrir directorios que contengan archivos a.exe(Enlace)

labels:open-dir y services.http.response.body:a.exe

Abrir directorios que contengan "Payload.exe"

labels:open-dir y services.http.response.body:payload.exe

Directorios abiertos que hacen referencia a CS4.9(Enlace)

etiquetas:open-dir y servicios.http.response.body:cs4.9

Para usuarios con acceso a expresiones regulares

Abrir directorios que contengan archivos "Power" con extensión ps1 o py

labels:open-dir y services.http.response.body:/.*power[a-z]+\.(ps1|py).*/

Abrir directorios que contengan archivos "Power" con extensión ps1 o py

Abrir directorios que contengan archivos RTF, HTA o PS1 de un solo carácter

labels:open-dir y services.http.response.body:/.*W\w\w.(hta|rtf|ps1)\W.*/Abrir directorios que contengan archivos RTF, HTA o PS1 de un solo carácter

Abrir directorios que hagan referencia a cualquier versión de Cobalt Strike en formato csX.X(Enlace)

labels:open-dir y services.http.response.body:/.*\W(cs|cobalt)[34]\d(\.exe)?.*/

Abrir directorios que hagan referencia a cualquier versión de Cobalt Strike en formato csX.X (Enlace)

Abrir directorios con nombres numéricos cortos para archivos PNG

labels:open-dir and services.http.response.body:/.*\”[0-9]{1,5}\.png\W.*/

Abrir directorios con nombres numéricos cortos para archivos PNG

 

 

Visite Embee Research

Ir a Censys Buscar

Sobre el autor

Matthew Embee Investigación
Matthew
Investigación Embee
Matthew (alias @embee_research) es un investigador de seguridad residente en Melbourne, Australia. Le apasiona el malware, los burritos y la creación de contenidos cibernéticos educativos.

Contenido similar

Volver al Centro de Recursos
Soluciones de gestión de la superficie de ataque
Más información