05 julio 2014

Detalles que se convierten en un ataque de ingeniería social


Hace poco he sido participante del I Reto para Jóvenes Profesionales de ISACA, presentando un paper sobre information gathering y social engineering. Tras pasar dos procesos de selección me quedé a las puertas del evento final, quedándome sin la posibilidad de exponer mi paper.

El motivo de este post es para enseñar unos de los ejemplos que contenía mi paper, donde se observa como el más mínimo detalle puede acabar resultando en un ataque de ingeniería social.

Todo empezó en mi antiguo trabajo, debido a que una de las aplicaciones no gestionaba correctamente el envío de información y cualquiera que tuviera acceso a la misma red podría leerla sin problema.

Mientras tuneaba el SIEM me encuentro con varias alertas que indicaban que "habiámos sufrido" un ataque web, sin embargo, se trataban de falsos positivos. Lo curioso es que al analizarlas me encuentro que la petición que había hecho saltar la alarma era parecida a la siguiente:

  1. GET /someapp/consultas.jsp?sendMail=true&nombre=nombre1+&apellidos=martinez+apellido2&documento=12345678A&fechaNacimiento=10%2F08%2F1962&email=uncorreo%40gmail.com&consulta=Buenas+tardes%2C+estaba+en+el+paro+y+trabaj%E9+durante+un+mes+en+Dinosol%2C+del+25+de+noviembre+de+2013+al+25+de+diciembre+de+2013%2C+quisiera+saber+si+la+empresa+al+terminar+el+contrato+me+vuelve+a+poner+directamente+en+el+INEM+o+tengo+que+ir+yo+a+la+oficina+a+inscribirme%2C+gracias.&Submit=Enviar HTTP/1.1" 200 6966 "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36"

Vemos como una persona realiza una consulta, y no solo se muestra el contenido de ésta, sino que encima se muestran multitud de datos personales como nombre y apellidos, NIF, fecha de nacimiento o email. Vamos a ver que se puede hacer con esta información...

Buscando en Google por el nombre completo se obtienen fácilmente dos perfiles de esta persona, uno es el perfil público de Infojobs y el otro de la red http://es.administrativos.com. Voy a evitar poner screenshots de ambos perfiles para no afectar a la privacidad de esta persona, ya que por mucho que enmascare datos, dejando los relevantes para que se entiendan las screenshots (y no parezcan un manchurrón rojo) se puede identificar fácilmente a esta persona utilizando los operadores de búsqueda. Ambos perfiles contienen prácticamente la misma información: experiencia profesional, estudios y una lista de skills. Además, en el perfil del portal de administrativos indica que tiene muy buena disponibilidad para viajar y cambiar de residencia, además de tener permiso de conducir y vehículo propio.

Con todos estos datos se puede montar un ataque de phising con el objetivo que cada uno quiera. Instalar una shell, robo de credenciales... En este ejemplo elegí un reverse VNC server, ataque con el que se obtendría acceso a la pantalla y se vería que es lo que está haciendo.

Para la realización del ataque se utiliza el framework por excelencia para ingeniería social, Social Engineering Toolkit, más conocido como SET. En Kali viene por defecto instalado y se ejecuta por medio de setoolkit. Se seleccionan las opciones 1 y después 4, para llegar al menú de "Create a payload and a listener". En este menú se pide la IP del servidor que estará escuchando, es decir la máquina atacante, y el tipo de payload que queremos usar.




Una vez elegido el payload (en este caso, elige la opción 3), se nos pide que seleccionemos el modo de empaquetado, recomendando utilizar el método de "Backdoored Executable". A continuación se pide el puerto del listener y finalmente se crea el backdoor.



Listener activo, ahora solo falta que la víctima caiga en nuestra trampa. Aquí es donde entra en juego la ingeniería social y el uso de los datos recopilados previamente. Se tiene información sobre su vida profesional, por lo que se podría redactar un email tal que así:

Estimada Sra Martínez,


Mi nombre es Ramón Benito Suárez, Director de Recursos Humanos de Embutidos S.A., empresa que en un mes abrirá una nueva sede en Tenerife.



Analizando los perfiles de las personas demandantes de empleo de la isla, creo que usted sería ideal para el puesto de Responsable Administrativo. Buscamos gente con experiencia y sus 13 años como Responsable Administrativo en Supermercados S.L. hablan por sí solos.



Somos una empresa consciente de la difícil situación que viven los desempleados mayores de 50 años, y por ello apostamos por ustedes, porque se merecen un mejor trato en el mundo laboral. Gracias a esta mentalidad, hemos conseguido ser la empresa líder en el sector.



Si está interesada en formar parte de nuestro equipo, responda a este correo rellenando el cuestionario adjunto antes del 7 de Julio.



Reciba un cordial saludo,

Ramón Benito Suárez
Director de Recursos Humanos, Embutidos S.A.


En este correo se juega con varias emociones y sentimientos que aumentan la probabilidad de que el ataque tenga éxito. Empatía y comprensión de la difícil situación laboral de los mayores de 50 años, que genera esperanza y alegría. Por otro lado, indicando una fecha máxima, que además es en pocos días, se produce miedo, estrés, angustía, agobio y demás emociones negativas que afectan a que la persona no reflexione antes de tomar una decisión.


Haciendo un resumen, hasta ahora se ha creado un "arma" que permitirá visualizar el ordenador de la víctima, y se ha establecido un vector de ataque. Ahora toca juntar ambas cosas, es decir, enviar el arma a través del vector de ataque, lo que se puede decir en otras palabras como crear un adjunto creible que la víctima abra.

Para esto voy a utilizar WinRAR y la opción de crear un archivo self-executable.


El siguiente paso es ir a la pestaña Advanced y pulsar sobre las opciones de SFX. En la pestaña setup se introduce el nombre del .exe generado por SET en el campo de ejecutar después de la extracción. Para hacer aún más creible el ataque, se podría crear incluso un cuestionario real y añadir el fichero en este campo también, de modo que al ejecutar el fichero se ejecutarían ambos, el payload y el cuestionario.


En Modes se selecciona Hide all para que la víctima no se entere de que se ha extraído un archivo.



En Update se marca la casilla de Overwrite all files para prevenir que le salga un mensaje preguntando si quiere sobreescribir un archivo.


Y finalmente en la pestaña Text and icon se añade un icono familiar para la víctima, por ejemplo como en este caso se trata de un cuestionario, le pondremos el icono de Word.

El resultado final es un archivo que parece ser un archivo de Word legítimo.


Una vez ejecutado este archivo, en la máquina atacante podemos ver todo lo que esté haciendo la víctima.



Hasta aquí una demostración de como podría plantearse un ataque de ingeniería social a partir de información que "viaja" por ahí.. Sin embargo, lo cierto es que este ataque no funcionaría por varios motivos. Primero, el correo de la víctima es GMAIL, y en GMAIL se analizan los adjuntos en buscar de archivos potencialmente sospechosos y se bloquea el correo. Segundo, lo más perspicaces se habrán dado cuenta que en la última screenshot el antivirus está desactivado, de lo contrario el archivo era detectado. Ya a la hora de elegir el empaquetado el propio SET advertía que la mayoría de payloads eran detectados por los antivirus más comunes, por lo que hay que utilizar técnicas adicionales para evitar esta detección. De este tema no controlo por lo que no voy a hablar, pero ya en SBD se han escrito multitud de entradas sobre ello.

Este artículo, además de para ejemplificar un ataque de ingeniería social, pretende también concienciar a los programadores para que tengan en cuenta que una pieza de información mal gestionada puede acabar causando problemas tanto a si mismos como a terceros.


Contribución gracias a Ayoze Fernández

6 comments :

Federico Almada dijo...

Creo que es un buen vector de ataque. Lo que veo difícil es que se lleve a la práctica, ya que a menos que tengas un objetivo en concreto, llevar esto a escala masiva sería costoso y poco viable (ya que necesitarías muchos datos, y el trabajo de personalizar cada ataque es costoso en tiempo y esfuerzo).

Si el objetivo fuese elegido a mano, sería un desafío recolectar los datos... Y si solo atacas a los que ya te dieron los datos, te juegas una apuesta entre el esfuerzo necesario vs la potencial (y desconocida) ganancia.

Saludos!

aloon dijo...

Parece que todos los métodos se basan en caché de navegador, si lo borras también aparte de de cookies y no tienes java ni flash en el navegador(evercookie) si que no hay forma de seguirte, ¿estoy equivocado?

JMFA dijo...

Interesante. Los datos personales en la Red tienen tanto caudal que casi cualquier lugar en el que uno mire encuentra posibles buenos vectores de ataque. Como dice Fererico, realizar este ataque de forma sistematica con estos vectores solo supondrian tiempo, pero son buenos cuando despues de tener un objetivo (como una persona), y despues de un buen proceso de information gathering podemos empezar a buscar este tipo de vectores en las paginas por las que usualmente navega el objetivo.

pobrecito hablador dijo...

Esto ya se usaba para comprobar direcciones de email validas enviando una pagina publicitaria a todas las direcciones pero en cada correo se cambiaba el nombre de una imagen de manera que se podía saber si la cuenta existía o el usuario mostraba interés en un tema u oferta concreto.

LOLIZ dijo...

Pero podrias engañar a personas comunes, es Genial, Maravilloso!

Turo dijo...

Gran aporte.Gmail no lee .rar con password e indetectar un troyano por un tiempo limitado tampoco es algo.......:-)