22 abr 2024

Campaña de Malware a Notepad++




Recientemente el grupo de investigadores de AhnLab Security Intelligence Center (ASEC) han descubierto una nueva campaña de malware (WikiLoader) que afecta al popular editor de texto Notepad++. Los atacantes se esforzaron por disfrazar el archivo con la carga maliciosa, de manera que se pareciese a uno propio del paquete de instalación de la aplicación.

La técnica utilizada es la ya conocida “secuestro de DLL o DLL hijacking” y concretamente afecta al complemento predeterminado “mimeTools.dll” (se utiliza para realizar codificación en Base64 y otras tareas). Este módulo se carga automáticamente cuando se inicia el programa, por lo que, los atacantes aprovecharon este hecho para modificarlo y que activara el malware.


Flujo del ataque

Primeramente, los atacantes añadieron al paquete de instalación un código shell malicioso disfrazado como un certificado inofensivo, “Certificate.pem”. Estos modificaron una de las funciones de mimeTools.dll llamada “DllEntryPoint.dll”, permitiendo así cargar el archivo disfrazado, descifrarlo y ejecutarlo. En la siguiente imagen se puede ver la comparación de archivos entre los paquetes de instalación oficiales y maliciosos:



El código shell malicioso modifica el archivo “BingMaps.dll”, más concretamente el código de la función “GetBingMapsFactory()” es sobrescrito por este. En este punto se crea un flujo de ejecución que permite al atacante inyectar un hilo de ejecución en la aplicación “explorer.exe”, esto garantiza la persistencia del ataque y hace que sea más difícil de detectar.

El malware al ejecutarse se conecta a un Command and Control (C2) donde envía datos recopilados de la máquina (Nombre de la máquina, nombre de usuario, si el usuario es miembro del grupo de administradores, idioma y hora del sistema). Después de conectarse al C2 (se hace pasar por una página de inicio de sesión de Wordpress), se realiza una descarga de un payload que resulta estar vacío.


Conclusión

El grupo de atacantes tienen el objetivo de establecer un punto de acceso en la máquina víctima, y lo hacen aprovechándose de una herramienta tan utilizada por los usuarios como Notepad++. WikiLoader plantea un riesgo importante de privacidad, ya que recopila información sobre el sistema infectado y desde Zerolynx recomendamos seguir unas pautas que mantengan vuestros sistemas a salvo:

Descargar las aplicaciones siempre desde fuentes oficiales y confiables.

Actualizar regularmente las aplicaciones y sistemas con su última versión que contengan parches.

*Todas las fotos están obtenidas de la página oficial de ASEC, accede al siguiente enlace si quieres saber más profundamente acerca de esta vulnerabilidad.

Javier Muñoz, Analista de Ciberseguridad en Zerolynx

15 abr 2024

Herramientas para facilitar los trabajos de Pentest sobre dispositivos IoT



Internet de las Cosas o IoT es una terminología utilizada para referenciar a las redes conformadas por dispositivos conectados a Internet. En sus múltiples variantes, como el IIoT (Industrial), comprende multitud de productos interconectados: vehículos, electrodomésticos, cámaras, sistemas de control industrial, etc.

Durante el uso de estos productos, estos recopilan multitud de datos de múltiples fuentes en paralelo y, a menudo, comparten esta información con los fabricantes de estos sin que los usuarios sean conscientes, lo que trae consigo nuevos desafíos para la privacidad o el cumplimiento normativo y regulatorio. ¿Dónde acaba esta información? ¿Acaba en servidores dentro de la UE para cumplir con el RGPD? 

Al mismo tiempo, la amenaza de ataques físicos y lógicos a través de estos dispositivos dispara los riesgos al aumentar la superficie de ataque de las compañías. 

Pentest Tradicional & Pentest IoT

A la hora de realizar pentesting a dispositivos IoT, se pueden observar algunas diferencias respecto al pentesting tradicional. Algunas de estas se muestran en la siguiente tabla:

AspectoPentesting TradicionalPentesting IoT
FocoSistemas y dispositivos diversos, incluidos servidores, aplicaciones y redesDispositivos específicos del Internet de las Cosas (IoT). Ej: cámaras, dispositivos biométricos, etc.
Tipos de dispositivosAmplia gama, incluyendo hardware y software de propósito general.Dispositivos generalmente más pequeños, especializados y con mayores limitaciones.
Complejidad TécnicaMenor especificidad en protocolos y comunicaciones.Uso de protocolos especializados y requisitos de comunicación únicos, añadiendo complejidad al proceso de pentesting.
Riesgos de seguridadVarían ampliamente según el sistema y el contexto, con enfoque en ciberataques.Incluyen riesgos físicos, mayores superficies de ataque debido a la conectividad y comunicaciones con otros sistemas.
Sensibilidad de los DatosDependiendo de la aplicación y el entorno, puede variar.Datos frecuentemente más sensibles o valiosos, aumentando las consecuencias potenciales de las brechas de seguridad.
Objetivos específicosIdentificación y mitigación de vulnerabilidades en una amplia gama de tecnologías.Enfoque en identificar y mitigar vulnerabilidades específicas de los dispositivos IoT y sus integraciones únicas.



Herramientas esenciales para el Pentesting IoT 

Aunque para los no entendidos en la materia pueda resultar sorprendente, los ejercicios de pentest sobre sistemas IoT no son muy diferentes en relación con los ejercicios tradicionales sobre otros sistemas, y las herramientas base con las que trabajamos no dejan de ser muy similares:

WIRESHARK

Se centra en la captura y el análisis de paquetes, implementada sobre las evaluaciones en dispositivos IoT con diversos objetivos. Wireshark es empleada en las revisiones IoT para:

  • Análisis de tráfico de red. Captura y estudia de forma detallada el tráfico de la red, facilitando la identificación de patrones y anomalías. De esta manera es más fácil comprender la interacción del dispositivo con otros sistemas.
  • Resolución de problemas de comunicación. Ayuda a diagnosticar problemas de comunicación al capturar y analizar el tráfico de datos enviado y recibido por un dispositivo.
  • Extracción de datos confidenciales. Puede ser empleada para la extracción de datos sensibles transmitidos a través de la red, como contraseñas o información crítica.
  • Identificación de protocolos de red. También permite determinar los protocolos empleados en una red, proporcionando una visión de como el dispositivo interactúa con otros sistemas.

NMAP

Orientado al reconocimiento de dispositivos en una red, puertos abiertos, sistemas operativos y servicios en ejecución. Alguno de los usos sobres entornos IoT son los siguientes:

  • Descubrimiento de dispositivos. Comprende el escaneo de redes para identificar dispositivos conectados, obteniendo sus direcciones IP y nombres de host. Esto es importante para obtener una visión general de la arquitectura de la red.
  • Escaneo de puertos. Se pueden examinar los puertos abiertos en un dispositivo para descubrir que servicios y aplicaciones están abiertos. Este análisis es muy importante para comprender las comunicaciones del dispositivo con otros sistemas.
  • Huella digital de servicios. Esta funcionalidad de Nmap, permite determinar la versión específica de un servicio que opera en un dispositivo, lo que es crucial para identificar vulnerabilidades conocidas asociadas a esa versión.
  • Mapeo de red. Nmap también se emplea para elaborar mapas detallados de una red, mostrando los dispositivos y sus interconexiones.

BINWALK

Esta utilidad si que es más novedosa con respecto a las herramientas tradicionales de pentest y se basa en la ingeniería inversa y análisis de imágenes de firmware, comúnmente empleada en sobre dispositivos IoT. El objetivo que persigue es profundizar en la estructura y funcionalidad del firmware, facilitando la identificación de vulnerabilidades potenciales. Algunas de las aplicaciones prácticas de Binwalk en el contexto de un pentest de un dispositivo IoT:
  • Análisis de firmware. Permite analizar detalladamente las imágenes de firmware para validar sus estructura interna y funcionamiento. Este análisis es crucial para identificar vulnerabilidades y comprender la estructura interna de un dispositivo
  • Extracción de archivos incrustados. Usando esta herramienta es posible extraer archivos incrustados dentro de las imágenes del firmware, como configuraciones, scripts y otros tipos de datos. Esta funcionalidad es muy útil a la hora de buscar información sensible que podría ser explotada.
  • Escaneo de firmas. Binwalk también se utiliza para realizar escaneos de firmas en imágenes de firmware, buscando firmas de archivo conocidas. Este proceso ayuda a identificar qué tipos de archivos están incrustados en el firmware, lo cual es esencial para la evaluación de seguridad y la identificación de componentes críticos dentro del mismo.

BURPSUITE

Comprende el reconocimiento o mapeo de la aplicación basadas en web y evaluar la seguridad de las comunicaciones entre activos web. Algunos ejemplos de uso de la herramienta en las evaluaciones IoT son:

  • Interceptar el tráfico web: Consiste en interceptar las peticiones Cliente-Servidor, lo cual es útil para el auditor a la hora de identificar patrones y errores que pueda aprovechar para encontrar posibles vulnerabilidades.
  • Prueba de comunicación web: Lanza peticiones modificadas al activo objetivo con el fin de causar una respuesta concreta por parte del servidor.
  • Identificación de vulnerabilidades web: la herramienta cuenta con funcionalidades para, por ejemplo, realizar fuerza bruta a partir de payloads propios o modificados.  Esta funcionalidad puede ser utilizada por el auditor para verificar la seguridad del activo.


AIRCRACK-NG

Centrada en la prueba de seguridad inalámbrica, busca evaluar la seguridad en redes inalámbricas y probar las comunicaciones de estas. Las prácticas de esta herramienta sobre entornos IoT son:

  • Descubrimiento de redes inalámbricas: Realiza búsquedas de redes y recopila información sobre ellas, como su nombre (SSID), el tipo de seguridad que usa y fabricante del punto de acceso. Esta información es de utilidad, ya que puede utilizarla para concretar sus pruebas de seguridad.
  • Descifrar contraseñas: Se puede utilizar para intentar descifrar la contraseña demostrando el impacto que suponen las contraseñas débiles o para conseguir vulnerabilidades que supongan un problema serio de seguridad.
  • Pruebas de comunicación inalámbricas: Aircrack se puede utilizar para captar y manipular el tráfico que se transmite a través de la red, permitiendo identificar vulnerabilidades en la forma que los dispositivos manejan las comunicaciones.

En conclusión, dado el creciente papel de los dispositivos IoT en la vida diaria, es muy importante que estos dispositivos sean sometidos a pruebas de seguridad rigurosas y se establezcan estándares mínimos de protección. Pruebas como las de desbordamiento de búfer, incumplimiento de protocolos y pruebas de hacking en general, son esenciales para mitigar la incorporación de vulnerabilidades en estos dispositivos.

8 abr 2024

CVE-2024-3094 XZ Backdoor



Buenas a todos, en el artículo de hoy vamos a tratar un caso que se está discutiendo bastante en los últimos días y es la vulnerabilidad CVE-2024-3094 o como se le denomina comúnmente “backdoor en XZ”.

XZ Utils es una herramienta (open source) de compresión de datos presente en casi todas las distribuciones Linux, que sirve para comprimir formatos de archivos grandes en tamaños más pequeños y manejables para ser compartidos. Al ser un software de código abierto, es mantenido y actualizado por desarrolladores de manera liberal. 

Estas actualizaciones se añaden al proyecto mediante lo que se denominan “Pull Requests” y antes de ser admitidas, son revisadas por otros miembros del equipo que han contribuido al mismo con anterioridad a fin de evitar errores en el código fuente propuesto.

En este caso, un usuario de Github que contribuyó al proyecto de XZ, llamado Jia Tan logró obtener permisos para revisar y aceptar modificaciones de código, ganándose la confianza del resto del equipo y pudiendo aceptar sus propias contribuciones sin que estas fueran revisadas por otros miembros.

Con esta confianza depositada en su trabajo por los miembros del equipo, Jia incorporó código malicioso al proyecto de xz-utils, con la intención de hacer interferir la autenticación del servicio SSH y permitir una ejecución remota de código o RCE.

Explicación de la vulnerabilidad


explicación de la vulnerabilidad CVE-2024-3094 XZ Blackdoor


Todo nace cuando Andrés Freund, ingeniero de software en Microsoft, detecta un comportamiento inusual con el servicio sshd, el cual estaba consumiendo una alta cantidad de CPU.

Dentro del proceso de compilación de XZ, se ejecuta el script “Build-to-Host.m4”. Este script contiene la siguiente línea de código:

gl_[$1]config='sed "r\n" $gl_am_configmake | eval $gl_path_map | $gl[$1]_prefix -d 2>/dev/null'

La cual, inyecta un script obfuscado al final del script de configuración. Este script de configuracion es el responsable de crear los MakeFiles para xz-utils y liblzma.

El script tiene como objetivo principal modificar el MakeFile de liblzma en tiempo de ejecución, haciendo que el RSA_public_decrypt@....pl apunte al código malicioso de la backdoor.  

Durante el proceso de autenticación de sshd, se invoca a la función RSA_public_decrypt@....pl haciendo que se ejecute el código maliciosos del atacante al cual está apuntando. Este código es el encargado de extraer el payload de la clave pública que se le pasa durante el proceso de autenticación y la cual será sometida a una serie de pasos de verificación y controles de firma. Si pasa con éxito estas comprobaciones, se transfiere a la función system() de libc, que será la encargada de ejecutar el payload y llevar a cabo la ejecución remota de código (RCE).

El código ofuscado que se ejecuta dentro del script de configuración levanta un backdoor únicamente bajo ciertas condiciones:

1. El sistema operativo de destino debe ser Linux x86-64.

2. El proceso de compilación de XZ debe ser parte de la compilación de un paquete Debian o RPM.

3. El binario que se invoca debe estar en el path /usr/sbin/sshd

4. La variable de entorno TERM no debe estar configurada

5. Tampoco deben estarlo las variables LD_DEBUG y LD_PROFILE

6. La variable de entorno LANG debe estar seteada por defecto por sshd.

Distribuciones afectadas

  • Fedora 41 and Fedora Rawhide
  • Kali Linux actualizado entre el 26 y 29 de marzo
  • OpenSuse Tumbleweed
  • Alpine 5.6.0, 5.6.0-r0, 5.6.0-r1, 5.6.1, 5.6.1-r0 y 5.6.1-r1
  • Arch que tengan instalado las versiones de xz-utils 5.6.0 y 5.6.1

Además, para determinar si se ha instalado una versión de software de xz-utils vulnerable, se puede usar el script creado por el equipo JFrog, el cual se encuentra en el siguiente enlace.

Este checker es bastante sencillo, realiza las seis comprobaciones, que forman parte de las condiciones necesarias que hemos comentado anteriormente, para poder explotar esta vulnerabilidad. Os mostramos un ejemplo de uso:



¡Muchas gracias y hasta la próxima entrega!

Alejandro Auñón, Offensive Security Engineer at Zerolynx 
Justo Martín ,Consultor de Ciberseguridad en Zerolynx.


1 abr 2024

Problemas en Lsass dentro de Windows Server



El pasado 12 de marzo Microsoft liberó una actualización para su servicio Windows Server 2022 que está causando problemas que afectan a los controladores de dominio de este.

Muchos usuarios lo estuvieron advirtiendo en Reedit  desde ese día, los servidores se congelan y se reinician de forma inesperada debido a una fuga de memoria producida en el proceso LSASS (Servicio del subsistema de la autoridad de seguridad local).

El problema concreto según los usuarios  que lo han reportado es: “Desde la instalación de las actualizaciones de marzo (Exchange y actualizaciones periódicas de Windows Server), la mayoría de nuestros DC muestran un uso de memoria LSASS en constante aumento (hasta que mueren).”

El servicio LSASS en el proceso responsable de hacer cumplir la política de seguridad de los sistemas Windows: verifica que los usuarios inicien sesión, gestiona los cambios de contraseña y crea tokens de acceso. El uso forzado del servicio puede venir provocado por las condiciones:

  • Tiene muchas confianzas externas y muchas solicitudes de inicio de sesión simultáneos.
  • Estas solicitudes de inicio de sesión no especifican el nombre de dominio.

Esto puede desembocar en retrasos o cuelgues a la hora de realizar la autenticación en el sistema o incluso reinicios al llegar al límite de uso de memoria de este.

Este problema alarma tanto a los usuarios porque al ser un archivo crucial del sistema, a menudo es falsificado por malware. Este servicio se ejecuta desde el directorio Windows\System32, por lo que, si se ejecuta desde otro directorio, lo más probable es que se trate de un virus.

Las actualizaciones relacionadas son KB5035855 (Windows Server 2016) y KB5035857 (Windows Server 2022), sin embargo, el 20 de marzo Microsoft reconoció  que el problema afecta a todos los servidores de controladores de dominio con las últimas actualizaciones: Windows Server 2022, 2019, 2016 y 2012 R2.
Según Microsoft: “Esto se observa cuando los controladores de dominio de Active Directory locales y basados en la nube atienden solicitudes de autenticación Kerberos. Las pérdidas extremas de memoria pueden causar que LSASS falle, lo que desencadena un reinicio no programado de los controladores de dominio (DC) subyacentes”.

Remedio temporal

Microsoft a día de la redacción de este artículo aún no ha publicado una solución para este grave problema de pérdida de memoria y por el momento la solución temporal es no actualizar los servicios o volver a una actualización anterior en el caso de que hayan sido ya actualizados.

Para ello, se debe utilizar la terminal con permisos de administrador y según que actualización se haya instalado en los controladores de dominio afectados, se debe ejecutar uno de estos comandos:
  • wusa /uninstall /kb:5035855
  • wusa /uninstall /kb:5035849
  • wusa /uninstall /kb:5035857

Conclusión

Este problema con el proceso LSASS no es nuevo, ha ocurrido en varias ocasiones como, por ejemplo:
  • En noviembre de 2022, Microsoft publicaba una actualización que afectaba a los servidores , provocando que se congelasen y reiniciasen.
  • En marzo de 2022, Microsoft solucionó otro fallo de LSASS que provocaba reinicios en los DC de Windows Server.
Analizando como trabaja las soluciones de sus parches Microsoft, todo apunta a que este problema será solucionado en la siguiente actualización de abril.

Javier Muñoz, Analista de Ciberseguridad en Zerolynx.

25 mar 2024

Nessus


El objetivo de este post es explicar tanto de manera teórica como práctica la herramienta Nessus para la identificación de vulnerabilidades. En primer lugar, se incluye una sección teórica donde se detallará la herramienta. Luego, se llevará a cabo una prueba práctica analizando las vulnerabilidades de la máquina Metasploitable2, para determinar si Nessus puede detectar alguna de ellas y, en caso afirmativo, intentar explotarlas. Por último, se enumerarán algunas alternativas.

Nessus es una herramienta ampliamente reconocida para realizar escaneos de vulnerabilidades en una amplia gama de sistemas informáticos, que abarca diversos sistemas operativos, dispositivos de red, aplicaciones web y móviles, así como infraestructuras en la nube. Fue creada por Renaud Deraison en 1998 y posteriormente adquirida en 2005 por Tenable. 

A continuación, se enumerar algunos de los aspectos más relevantes de esta herramienta: 

1. Escaneo de Vulnerabilidades: Identificar y analizar las vulnerabilidades que se encuentren presentes en los sistemas informáticos. Este proceso supone la identificación de fallos de seguridad en los puertos abiertos, servicios con malas configuraciones, software desactualizado y vulnerabilidades conocidas en sistemas operativos y aplicaciones.

2. Base de Datos de Vulnerabilidades: Utiliza una amplia base de datos de vulnerabilidades que se actualiza constantemente. Esta base de datos incluye detalles sobre vulnerabilidades conocidas, exploits, parches disponibles y descripciones detalladas de cada vulnerabilidad. Durante el escaneo, esta información se utiliza para identificar vulnerabilidades y luego informar sobre ellas.

3. Escaneos Programados y Personalizables: Posibilidad de programar escaneos automáticos en intervalos periódicos. Además, Nessus ofrece opciones de escaneo personalizables en función de las necesidades de los usuarios. 

4. Informes: Generación de informes detallados en varios formatos que resumen las vulnerabilidades identificadas durante los escaneos de seguridad. Estos informes incluyen información clave como la descripción de la vulnerabilidad, su gravedad, recomendaciones de mitigación y clasificación según su importancia.

Nessus ofrece varias versiones. Nessus Essentials es una opción gratuita dirigida a usuarios individuales o aquellos que buscan protección para fines no comerciales. Por otro lado, Nessus Professional, una versión de pago, proporciona características adicionales y soporte para empresas que requieren una solución más completa de escaneo de vulnerabilidades. Finalmente, Nessus Expert, también de pago, ofrece las funcionalidades más avanzadas y está destinado a grandes organizaciones que necesitan una protección integral y escalable en sus infraestructuras de seguridad.

A continuación, se incluye una tabla que resume los puntos a favor y en contra de Nessus:

Puntos a favorPuntos en contra
Escaneo ExhaustivoFuncionalidades avanzadas asociadas a costes
Base de datps de vulnerabilidades en constante actualizaciónRecursos necesarios en caso de realizar escaneos intensivos
Interfaz gráfica intuitiva y fácil de usarPosibilidad de generarse falsos positivos
Programación y personalizaciónPosibilidad de generarse falsos positivos
Programación y personalizaciónPosibilidad de conflictos con firewalls y sistemas de detección de intrusos
Capacidad de integración con otros sistemas de seguridadDependencia de la calidad de la base de datos de vulnerabilidades
Soporte multiplataforma, incluyendo Windiows,Linux y macOS
Generación de informes que incluyen recomendaciones para mitigar y corregir fallos de seguridad

Como se mencionó en los aspectos positivos de esta herramienta, su gestión se lleva a cabo mediante una interfaz gráfica de usuario. Esta interfaz ofrece acceso a todas las funciones y características de Nessus de manera intuitiva y sencilla. A continuación, se describirán los elementos principales de la herramienta, ya que una explicación detallada podría requerir otro post:

1. Dashboard (Panel de Control): El panel de control es la página de inicio de Nessus y proporciona información clave, como el número de hosts escaneados. Desde aquí, los usuarios pueden acceder rápidamente a los escaneos recientes, los informes y otras áreas importantes de la herramienta.



2. Escaneos (Scans): Esta sección permite a los usuarios configurar y ejecutar escaneos. Los usuarios pueden programar escaneos automáticos, realizar escaneos manuales bajo demanda, importar y exportar escaneos, y revisar el progreso y los resultados de los escaneos en curso. También pueden ver un historial de escaneos anteriores y realizar acciones como pausar, detener o reiniciar escaneos según sea necesario.





3. Informes (Reports): Accediendo a un escaneo, los usuarios pueden revisar y generar informes detallados sobre los escaneos. Los informes pueden personalizarse para incluir información específica y recomendaciones. Los usuarios pueden exportar los informes en varios formatos, como PDF, CSV y HTML, para compartirlos.




4. Policies (Políticas): Las políticas son conjuntos predefinidos de reglas y configuraciones que determinan cómo se realizan los escaneos. Se pueden crear y personalizar políticas para adaptarse a las necesidades específicas del contexto de la organización. Estas políticas pueden incluir configuraciones como el nivel de riesgo a escanear, los tipos de vulnerabilidades a buscar y los hosts o redes a incluir en el escaneo.


5. Configuration (Configuración): Aquí es donde los usuarios pueden configurar opciones y ajustes específicos de la herramienta, como la configuración del servidor, la configuración de autenticación y las opciones de notificación. También pueden administrar usuarios y roles, establecer políticas de retención de datos y configurar integraciones con otros sistemas de seguridad.


Caso práctico


Como una imagen vale más que mil palabras, se procederá a realizar una demostración práctica del uso de la herramienta. El escenario propuesto es el siguiente:



Uso de Nessus

Desde la máquina designada como "Escáner", se ejecutará Nessus. El objetivo del análisis será la máquina conocida como "Víctima". Una vez finalizado el análisis y haber obtenido el informe correspondiente, desde la máquina identificada como "Atacante", se intentará explotar alguna de las vulnerabilidades detectadas con el fin de acceder de forma remota.

En primer lugar, desde la sección de “My Scans”, definimos un nuevo escaneo haciendo clic en el botón “New Scan”: 


Después de hacer clic, se abrirá una nueva ventana cuyo título es "Scan Template". Aquí, se ofrecerá la opción de realizar un descubrimiento de hosts, donde mediante un escaneo básico se comprueba qué hosts están operativos y qué puertos tienen abiertos dentro del mismo rango de red que la máquina donde se ejecuta Nessus. También se podrá optar por ejecutar diversos scripts para detectar vulnerabilidades. 

En este caso, se llevará a cabo un escaneo avanzado o "Advanced Scan" para asegurar que el análisis sea lo más exhaustivo posible:


Una vez aquí, se pueden establecer diversos parámetros, de los cuales únicamente dos son obligatorios: el nombre a asignar al escaneo y los objetivos. Sin embargo, también se puede especificar la carpeta en la que se desea guardar el escaneo, en caso de querer organizarlos por ejemplo por las organizaciones auditadas, o a quién notificar, programar el escaneo, indicar credenciales en caso de ser necesario, seleccionar plugins a utilizar, entre otras opciones. Para esta prueba, se realizará un análisis muy básico donde solamente se especificará el nombre del escaneo, que en este caso será "ZeroTry", y la dirección del objetivo, que es la máquina "Víctima" del escenario previamente mostrado, con la dirección IP 192.168.138.1:



En referencia a la prueba, se observa que la duración del escaneo fue de 10 minutos, el modelo de puntuación utilizado es CVSS 3.0 y se han identificado un total de 181 vulnerabilidades, categorizadas como 12 críticas, 7 altas, 24 medias, 8 bajas y 130 de información.

1. Vulnerabilities: Listado de todas las vulnerabilidades encontradas, ordenadas por severidad. En este caso, no se distingue por host, sino que se recopilan todas ellas. Para cada una se proporcionará información sobre la severidad y el CVSS asociado, el Vulnerability Priority Rating (VPR) para determinar la prioridad de corrección, el nombre de la vulnerabilidad, la familia a la que pertenece y el número de veces que ha sido encontrada.



Además, al hacer clic en alguna de ellas, se mostrará información más detallada, como la descripción, la solución propuesta, la posible salida tras explotar la vulnerabilidad, el CVE asociado y otros detalles adicionales.



En este caso, se puede ver que la máquina cuenta con una vulnerabilidad de la familia Backdoor cuyo nombre es UnreallRCd Backdoor Detection, es decir, que ha explotado el servicio UnreallRCd en su versión 3.2.8.1 corriendo en el puerto 6667. Este servicio trata de un software de servidor de Internet Relay Chat (IRC) que permite establecer y gestionar salas de chat en línea para así finalizar la comunicación en tiempo real. La vulnerabilidad tiene asociado el siguiente CVE, CVE-2010-2075. La fecha de publicación de dicha vulnerabilidad fue el 15/06/2010 y su última modificación el 18/06/2010 y fue reportada por Red Hat, Inc. Puede consultarse más información en la propia web de NIST (https://nvd.nist.gov/vuln/detail/CVE-2010-2075). La vulnerabilidad consistía en una puerta trasera que permite a los atacantes ejecutar comandos en el servidor como usuario root. La vulnerabilidad se introducía en la macro DEBUG3_DOLOG_SYSTEM. Esta macro se utiliza para registrar mensajes de depuración en el sistema de archivos. Un atacante con acceso al código fuente modificó la macro para que, en lugar de registrar un mensaje, ejecutará un comando arbitrario.

2. Remediations: Se presenta un listado de las acciones recomendadas para abordar ciertas vulnerabilidades, especificando la acción a realizar, las vulnerabilidades que se corregirían y en cuántos hosts debería aplicarse cada acción.


En este caso, se recomienda realizar 3 acciones para corregir vulnerabilidades en los servicios UnreallRCd, Samba e ISC.

3. History: Listado de veces que ha sido ejecutado el escaneo. 

4. Report: Posibilidad de exportar un informe detallado de las vulnerabilidades identificadas, permitiendo la opción de configurar diversas características para detallar la información y elegir el formato deseado. 
Este informe se organiza en varios apartados según el número de hosts escaneados y recopila todas las vulnerabilidades, proporcionando información similar a la sección "Vulnerabilities"



Explotación desde KALI


Tras el escaneo realizado con Nessus, se han identificado numerosas vulnerabilidades. Para verificar su existencia, se intentará explotar el servicio UnreallRCd desde una máquina Kali utilizando la herramienta Metasploit.

Mediante un escaneo con Nmap, se consigue averiguar que el servicio se encuentra en ejecución en los puertos 6667 y 6697:


Utilizando la herramienta Metasploit. Se busca algún módulo que pudiera explotar alguna posible vulnerabilidad de este servicio con search UnrealIRCd, y se encuentra lo siguiente:


Se puede apreciar que la versión a explotar el módulo de Metasploit es la 3.2.8.1, coincidiendo con lo que reportaba Nessus. Una vez que se sabe el módulo a utilizar, se selecciona con use 0. 

Hecho esto, se consultan las opciones obligatorias que necesita el módulo para explotar el servicio mediante show options:


Como se puede apreciar, se requiere tanto configurar el puerto como la dirección IP del host remoto, es decir, de la víctima. No es necesario modificar el puerto, ya que coincide con el puerto abierto en la máquina víctima. Sin embargo, si es necesario establecer la opción RHOST, mediante el comando set RHOSTS 192.168.138.131.

Pese a no parecer ser obligatorio, resulta relevante consultar los payloads disponibles en dicho módulo y elegir el más conveniente, esto se consigue con show payloads:


Se aprecian un total de 13 payloads, siendo el primero (id 0) (payload/cmd/unix/adduser), utilizado para la creación de un nuevo usuario, y el sexto (id 5) (payload/cmd/unix/generic) diseñado para la ejecución de comandos genéricos. Los restantes permiten generar una shell reversa a partir de diversos servicios. De todas las opciones disponibles, opté por seleccionar el séptimo (id 6) (payload/cmd/unix/reverse) y debido a esto, fue necesario indicar la dirección IP de la máquina atacante. 

Una vez configuradas las opciones, se ejecuta el payload y se consigue acceso remoto a la máquina víctima bajo el usuario root:



Con esto se ha podido apreciar el potencial y eficacia de la herramienta Nessus.

Alternativas

Existen varias alternativas en el mercado para realizar escaneos de vulnerabilidades, y aunque Nessus ofrece un gran potencial, especialmente en sus versiones de pago, es prudente considerar otras opciones disponibles:

1. OpenVAS (Open Vulnerability Assessment System): Herramienta de escaneo de vulnerabilidades de código abierto que ofrece funcionalidades similares a Nessus. Proporciona escaneo de vulnerabilidades en sistemas operativos, aplicaciones web y bases de datos, junto con la capacidad de programar escaneos, generar informes detallados y realizar análisis de seguridad.

2. Rapid7 Nexpose: Herramienta de gestión de vulnerabilidades que ofrece escaneo de vulnerabilidades en sistemas, redes y aplicaciones web. Proporciona funcionalidades avanzadas como escaneo de credenciales, análisis de configuración y correlación de vulnerabilidades con amenazas activas.

3. Acunetix: Herramienta de escaneo de seguridad web que se enfoca específicamente en identificar y remediar vulnerabilidades en aplicaciones web y servicios web. Ofrece escaneo automático de aplicaciones web, escaneo de inyección SQL, escaneo de cross-site scripting (XSS) y detección de vulnerabilidades de OWASP Top 10.

4. Nikto: Herramienta de código abierto para escanear servidores web en busca de vulnerabilidades y configuraciones subóptimas. Se enfoca en identificar problemas de seguridad comunes, como configuraciones mal configuradas, archivos de configuración expuestos y versiones desactualizadas de software.

5. ZAP: Herramienta de código abierto desarrollada por OWASP (Open Web Application Security Project) que se utiliza para realizar pruebas de seguridad en aplicaciones web. Ofrece funcionalidades de escaneo de vulnerabilidades y pruebas de penetración diseñadas específicamente para aplicaciones web. ZAP permite a los usuarios identificar y explotar vulnerabilidades comunes, como inyecciones SQL, cross-site scripting (XSS), y otras vulnerabilidades de seguridad en aplicaciones web. Además, ZAP proporciona una interfaz gráfica de usuario (GUI) intuitiva y capacidades de scripting para la automatización de pruebas de seguridad. Es una herramienta popular y ampliamente utilizada por profesionales de seguridad y desarrolladores de software para mejorar la seguridad de las aplicaciones web.

Conclusión

Para finalizar, Nessus es una herramienta para identificar y evaluar vulnerabilidades en sistemas informáticos. Su interfaz sencilla de usar, base de datos de vulnerabilidades actualizada y capacidad de personalización en los escaneos, resulta ser muy útil tanto para los pentesters en su tarea de identificación de vulnerabilidades como para las organizaciones en la tarea de proteger su entorno. Sin embargo, la existencia de versiones de pago limita su accesibilidad y potencial, especialmente para particulares y empresas con recursos financieros limitados.

Y así concluye la introducción y la prueba de uso de Nessus. Espero que haya sido una lectura agradable y fácil de entender. ¡Espero que hayas disfrutado y que este no sea mi último post!

Iván Fernández, Intern Cyberanalyst at Zerolynx.

18 mar 2024

CrossLinked – Herramienta OSINT para el descubrimiento de emails


Una de las partes de la metodología OSINT consiste en encontrar información acerca de personas relacionadas con la organización objetivo. CrossLinked es una herramienta de código abierto que permite la enumeración de nombres válidos de usuarios y de cuentas de correo de una organización.

Esta herramienta utiliza el scraping de los distintos motores de búsqueda de Internet contra la aplicación LinkedIn. Esta técnica proporciona resultados precisos sin necesidad de usar claves de API y sin acceder directamente a LinkedIn.

¿Cómo funciona?

Para poder utilizar esta herramienta en concreto, es necesario tener Python instalado en el sistema, más concretamente en su versión Pyhton3.

Para instalarla solo es necesario clonar el repositorio de la herramienta con la versión más actualizada del código:


De esta manera se creará una carpeta que contendrá los scripts que usa la herramienta y donde se guardarán por defecto los ficheros que se generan con cada uso.

Para poder usar CrossLinked hace falta tener claro que nomenclatura de cuentas usa la organización objetivo. Por ejemplo, para una organización que utiliza para sus correos corporativos la forma “{f}{apellido}@dominio.com” (la primera letra del nombre y el primer o segundo apellido), se introducirá así en la herramienta.

El formato que utiliza CrossLinked puede ser de tres tipos:


Un ejemplo básico de uso podría ser:


Para especificar la nomenclatura se utiliza la opción -f, mientras que para especificar el nombre de los archivos que se generarán se utiliza la opción -o.

Adicionalmente, se recomienda que para obtener mejores resultados se añada inmediatamente seguido de la nomenclatura el nombre de la compañía tal y como aparece en LinkedIn, no el nombre de dominio. De la manera:


Resultados

El resultado de la ejecución sería algo como:


Una vez ejecutado, se generan dos tipos de ficheros:
  • Archivo .txt que almacena solo los nombres recopilados.
  • Archivo .csv que almacena toda la información obtenida (nombre, puesto de trabajo y Url del usuario en LinkedIn).

Conclusión

Existen varias herramientas OSINT muy conocidas para el reconocimiento de cuentas de correo, como puede ser Hunter.io, Snov.io o Harvester entre otras. Pero esta herramienta se puede utilizar sobre todo al comienzo de la fase de reconocimiento, ya que permite obtener información fiable sin necesidad de API keys o credenciales para su funcionamiento. 

Además, al conectarse a LinkedIn para obtener la información, la convierte en una herramienta muy fiable que obtiene datos actualizados, con un 88 % en tiempo real y un 12 % restante en los últimos 29 días.

Por lo tanto, podemos considerar a CrossLinked como una herramienta muy recomendable para realizar esta parte del reconocimiento.

Javier Muñoz, Analista de Ciberseguridad en Zerolynx.