Hackear al hacker

Текст
Автор:
0
Отзывы
Читать фрагмент
Отметить прочитанной
Как читать книгу после покупки
Шрифт:Меньше АаБольше Аа

2
Cómo hackean los hackers

La actividad profesional más agradable que hago es la prueba de intrusión (también conocida como pen testing). La prueba de intrusión es hackear en el sentido más estricto de la palabra. Es un humano contra una máquina en una batalla de ingenio. El «atacante» humano puede utilizar su propio ingenio y herramientas nuevas o existentes mientras busca debilidades, basadas ya sea en una máquina o en un humano. En todos los años que llevo de pruebas de intrusión, a pesar de que normalmente necesito semanas para realizar una prueba, la mayoría de las veces he hackeado con éxito mi objetivo en aproximadamente 1 hora. El mayor tiempo que he necesitado han sido 3 horas. Esto incluye bancos, sitios de Gobiernos, hospitales y sitios corporativos que me han contratado para hacerlo.

Y tampoco soy tan bueno como pentester. En una escala del 1 al 10, en la que un 10 es el mejor, yo estoy sobre el 6 o el 7. En el lado de los defensores, me siento el mejor del mundo. Pero como atacante, soy bastante normal. He estado rodeado por impresionantes pentesters —hombres y mujeres que solo piensan en crear sus propias herramientas para pruebas o que no consideran sus pruebas un éxito a menos que no generen un evento en un archivo de registro que podría haber causado una alerta—. Pero incluso la gente a quien yo considero un 10 se considera ella misma normal y admira a otros pentesters de los cuales piensa que son dieces. ¿Cómo deben ser de buenos esos hackers?

Sin embargo, no tienes que ser extremadamente bueno para ser un hacker de éxito. Incluso no tienes que entrar en la red del cliente que te ha contratado (asumo que te pagan de forma legal para la prueba de intrusión) para estar satisfecho con tu trabajo. De hecho, tu cliente estaría completamente emocionado si no tuvieras éxito. Podrían jactarse de que han contratado a un hacker y su red ha resistido el ataque. Todos salen ganando. A ti te pagarán lo mismo y ellos presumirán de ser impenetrables. Este es el único trabajo que conozco en el cual no puedes tener un mal resultado. Desgraciadamente, no conozco a ningún pentester que nunca haya entrado con éxito en todos sus objetivos. Estoy seguro de que existen hackers que fallan, pero la amplia mayoría de los pentester «consiguen su premio».

NOTA Si tu prueba de intrusión no encuentra ninguna debilidad y poco después tu cliente es asaltado por atacantes reales, no quedarás bien. Si esto ocurre muchas veces, correrá la voz y probablemente tendrás que buscar otro empleo. Las debilidades están ahí. Encuéntralas.

Los pentesters suelen hacer cosas extra para impresionar a los altos directivos de su objetivo, como sacar una foto clandestina del CEO en su mesa de trabajo o incrustar la contraseña del administrador del dominio en la imagen de una bandera pirata que aparece en el salvapantallas del administrador de seguridad. Una imagen vale más que mil palabras. Nunca subestimes lo que una imagen tonta puede hacer crecer la satisfacción de tu cliente con tu trabajo. Hablarán de la foto (y presumirán de ti) años después de que hayas acabado tu trabajo. Si puedes, termina siempre el pastel con una guinda. Con esta recomendación, quedarás como «un consultor de oro».

El secreto de hackear

Si existe algún secreto sobre cómo hackean los hackers, es que no hay ningún secreto de cómo lo hacen. Es un proceso de aprendizaje de los métodos correctos y del uso de las herramientas adecuadas para el trabajo, exactamente como un electricista, un fontanero o un constructor. Tampoco hay una única manera de hacerlo. Sin embargo, sí que hay un conjunto definido de pasos que describe el proceso más amplio y global, y que incluye todos los pasos que un hacker debería llevar a cabo. No todos los hackers utilizan todos los pasos, pero en general, si los sigues todos, es probable que tengas mucho éxito hackeando. Puedes saltarte uno o más de estos pasos y continuar siendo un hacker de éxito. El software malicioso y otras herramientas para hackear, a menudo, permiten a los hackers saltarse pasos, pero como mínimo uno de estos pasos, el punto de intrusión inicial, siempre es obligatorio.

Independientemente de si te vas a dedicar a ser hacker (legal), si vas a luchar contra hackers maliciosos, tienes que entender la «metodología del hackeo» o como lo llame la persona o el documento que la describe. Los modelos pueden variar, así como el número de pasos incluidos, el nombre de los pasos y los detalles específicos de cada paso, pero todos ellos contienen los mismos componentes básicos.

La metodología del hackeo

La metodología del hackeo contiene, en este orden, los siguientes pasos:

1. Recopilación de información

2. Intrusión

3. Opcional: Garantía de un acceso futuro más fácil

4. Reconocimiento interno

5. Opcional: Movimiento

6. Ejecución de la acción prevista

7. Opcional: Borrado de pistas

Recopilación de información

A menos que una herramienta de hacker lo esté ayudando a acceder de forma aleatoria a cualquier sitio vulnerable posible, el hacker suele tener un objetivo en mente. Si un hacker quiere introducirse en una empresa determinada, lo primero que debe hacer es investigar todo cuanto pueda acerca de la empresa que lo ayude a entrar. Como mínimo, esto significa direcciones IP accesibles, direcciones de correo electrónico y nombres de dominios. El hacker descubre a cuántos sitios y servicios potenciales puede acceder que están conectados con la empresa. Utiliza los medios de comunicación y los informes financieros públicos para averiguar quiénes son los altos cargos o para encontrar otros nombres de empleados para ingeniería social. El hacker busca noticias para ver qué software nuevo ha comprado el objetivo recientemente, qué fusiones o separaciones se están produciendo (estos son siempre asuntos confusos y acompañados a menudo por una relajación o pérdida de la seguridad) y con qué socios interactúa. Muchas empresas se han visto afectadas a través de un socio mucho más débil.

Averiguar a qué activos digitales está conectada una empresa es la parte más importante de la recopilación de información en la mayoría de los ataques de hackers. No solo son los sitios y servicios principales (públicos) lo que normalmente se identifica, sino que para el atacante suele ser más útil localizar los sitios y servicios conectados menos populares, como portales de empleados y socios. Los sitios y servidores menos populares son más propensos a tener alguna debilidad en comparación con los sitios principales, con los cuales ya se ha luchado durante años.

Todo buen hacker empieza recopilando todos los programas informáticos y los servicios alojados en cada uno de estos sitios, un proceso generalmente conocido como fingerprinting. Es muy importante saber qué sistemas operativos (OS) se utilizan y en qué versiones. Las versiones del sistema operativo pueden indicar a un hacker qué nivel de parches y qué errores de software existen o no existen. Por ejemplo, puede encontrarse con Windows Server 2012 R2 y Linux Centos 7.3-1611. Después, busca programas informáticos y las versiones de estos programas (por la misma razón) que se ejecutan en cada sistema operativo. Si se trata de un servidor web, podrá encontrarse con Internet Information Server 8.5 en el servidor de Windows y Apache 2.4.25 en el de Linux. Realiza un inventario de cada dispositivo, sistema operativo, aplicación y versión ejecutados en cada uno de sus objetivos previstos. Siempre es mejor hacer un inventario completo para obtener una imagen global del objetivo, pero otras veces el hacker puede encontrar una gran vulnerabilidad muy pronto y simplemente saltar al paso siguiente. A menos que encuentre una vulnerabilidad tan rápido, cuanta más información tenga acerca de lo que se está ejecutando, mejor. Cada programa informático y versión adicional proporciona posibles vectores de ataque adicionales.

NOTA Algunos hackers denominan la recopilación de información general y no técnica footprinting y el mapeado del sistema operativo y los programas informáticos, fingerprinting.

A veces, cuando un hacker se conecta a un servicio o sitio, este responde amablemente con información de versión muy detallada, por lo que no se necesita ninguna herramienta. Cuando esto no es así, existen muchas herramientas de ayuda para el fingerprinting del sistema operativo y las aplicaciones. De lejos, el número uno de las herramientas de fingerprinting utilizadas por hackers es Nmap (https://nmap.org/). Nmap se utiliza desde 1997. Se presenta en múltiples versiones, incluyendo Windows y Linux, y es como la navaja suiza para el hacker. Puede llevar a cabo todo tipo de pruebas y escaneos de servidores y es un excelente fingerprinter de sistemas operativos y una buena aplicación de este tipo. Existen mejores aplicaciones fingerprinters, especialmente aquellas que están centradas en un tipo determinado de fingerprinting, como servidores web, bases de datos o servidores de correo electrónico. Por ejemplo, Nikto2 (https://cirt.net/Nikto2) no solo realiza el fingerprint de servidores web mejor que Nmap, sino que además lleva a cabo miles de pruebas de intrusión y permite conocer las vulnerabilidades existentes.

 

Intrusión

Este es el paso que da nombre al hacker, (N. del T.: en inglés, to hack significa obtener acceso de forma ilegal). El éxito de este paso es crucial para todo el ciclo. Si el hacker ha hecho sus deberes en la etapa del fingerprinting, esta etapa realmente no es difícil. De hecho, yo siempre la he superado. Siempre hay software antiguo, cosas sin parchear e, incluso, algo mal configurado en la recopilación de software identificado.

NOTA Uno de mis trucos favoritos es atacar el software y los dispositivos que los defensores utilizan para defender sus redes. A menudo, estos dispositivos se denominan aparatos (appliances), que es simplemente otra forma de designar un ordenador con software difícil de actualizar. Estos aparatos son conocidos por estar años sin sin que se les apliquen parches.

Si, afortunadamente, todo el software y los dispositivos son perfectamente seguros (y nunca lo son), puedes atacar al elemento humano, que es siempre la parte más débil de la ecuación. Pero sin la intrusión inicial, el hacker lo tiene todo perdido. Afortunadamente para él, hay muchas maneras de entrar en el objetivo. Estas son las diferentes técnicas que un hacker puede utilizar para ello:

■ Ataque de día cero

Software sin parche

Software malicioso o malware

■ Ingeniería social

■ Problemas con contraseñas

■ Ataque de intermediario/MitM

■ Fuga de información

■ Configuración errónea

■ Ataque de denegación de servicio

■ Información privilegiada/socio/asesor/proveedor/terceras partes

■ Error de usuario

■ Acceso físico

■ Escalada de privilegios

Ataque de día cero Los ataques (exploits) de día cero no son tan frecuentes como las vulnerabilidades habituales, que los proveedores normalmente ya han parcheado hace tiempo. Un ataque de día cero es aquel para el cual el software objetivo todavía no ha sido parcheado y la gente (y normalmente el proveedor) lo desconocen. Cualquier sistema informático que utilice un software con un error de día cero es esencialmente explotable a voluntad, a menos que la víctima potencial desinstale el software o haya colocado en su lugar algún tipo de solución (por ejemplo, un cortafuegos, una lista de control de acceso [ACL], segmentación de VLAN, software antidesbordamiento de búfer, entre otros).

Los ataques de día cero son vulnerabilidades menos conocidas que las habituales, dado que no pueden ser ampliamente utilizadas por un atacante. Si un atacante lleva a cabo un ataque de día cero, el valioso agujero será descubierto y parcheado por los fabricantes y colocado en firmas antimalware. Actualmente, la mayoría de los fabricantes pueden parchear nuevas explotaciones en unas horas o hasta pocos días después de su descubrimiento. Cuando se lanza un ataque de día cero, o bien se utiliza contra muchos objetivos al mismo tiempo para una mayor posibilidad de explotación o bien «a fuego lento», que significa con moderación, a veces y solo cuando se necesita. Los mejores hackers profesionales del mundo suelen tener colecciones de ataques de día cero que solo utilizan cuando todo lo demás falla, y de tal forma que pasen totalmente desapercibidos. Un ataque de día cero debe utilizarse para conseguir un acceso inicial a un objetivo especialmente resistente; después, todas las pistas deberán ser eliminadas y, a partir de ese punto, se utilizarán métodos más tradicionales.

Software sin parchear El software sin parchear es siempre una de las razones más frecuentes por las que un ordenador o un dispositivo es explotado. Cada año, hay miles (normalmente, entre 5.000 y 6.000, o 15 al día) de nuevas vulnerabilidades anunciadas públicamente entre todo el software más utilizado. (Echa un vistazo a las estadísticas reportadas en cada edición de Microsoft Security Intelligence Report, http://microsoft.com/sir.) Por lo general, los fabricantes han mejorado en el desarrollo de código más seguro y la localización de sus propios errores; sin embargo, existe un número cada vez más elevado de programas y billones de líneas de código, por lo que el número total de errores se ha estabilizado relativamente durante las dos décadas anteriores.

La mayoría de los fabricantes realizan un buen trabajo parcheando sus programas de una manera oportuna, especialmente después de que una vulnerabilidad se haga pública. Desgraciadamente, los clientes tardan mucho en aplicar sus parches, llegan incluso a desactivar las rutinas automáticas de aplicación de parches establecidas por el fabricante. Un porcentaje moderado de usuarios no parchean nunca su sistema. Hay quien ignora las múltiples advertencias sobre parches y simplemente le aburren o desconoce que un parche deba aplicarse. (Por ejemplo, muchos sistemas de puntos de venta no notifican al cajero que es preciso aplicar un parche). La mayoría de los ataques de software ocurren contra programas que no han sido parcheados en muchos, muchos años.

Aunque una empresa concreta o un usuario parchee una vulnerabilidad crítica en cuanto esta se anuncia, un hacker paciente y persistente puede esperar a que se anuncie dicho parche, que está en el inventario de fingerprint de su objetivo, y lanzar el correspondiente ataque antes de que el defensor tenga tiempo de parchearlo. (Es relativamente fácil para un hacker hacer ingeniería inversa de un parche y descubrir cómo explotar una vulnerabilidad en concreto).

Tanto los ataques de día cero como las vulnerabilidades de software normales se explican por prácticas de codificación de software inseguras. Las vulnerabilidades de software serán tratadas en el Capítulo 6.

Software malicioso o malware Los programas maliciosos se conocen como malware y los tipos tradicionales más conocidos son los virus, los troyanos y los gusanos, aunque el malware actual suele ser una mezcla de varios tipos. El malware permite al hacker utilizar un método de explotación para atacar más fácilmente a sus víctimas o llegar a un mayor número de víctimas de forma más rápida. Cuando se descubre un nuevo método de explotación, los defensores saben que los desarrolladores de malware utilizarán malware automatizado para difundir la explotación más rápidamente en un proceso denominado weaponization. Aunque las explotaciones son algo que debería evitarse, suele ser la weaponization de la explotación lo que genera un mayor riesgo para el usuario final y la sociedad. Sin malware, un atacante está obligado a implementar un ataque contra una víctima a la vez. Con malware, millones de víctimas pueden ser explotadas en cuestión de minutos. El malware será tratado con más detalle en el Capítulo 9.

Ingeniería social Una de las estrategias de hackeo más exitosas es la ingeniería social. La ingeniería social, ya sea llevada a cabo manualmente por un adversario humano o mediante un método automatizado, es un truco de hackers que consiste en engañar a un usuario final para que haga algo perjudicial para su propio ordenador o seguridad. Puede ser un correo electrónico que engaña al usuario para que haga clic sobre un vínculo web malicioso o que ejecute un archivo adjunto falso. También puede ser algo o alguien que engaña a un usuario para que revele su información privada de acceso (truco conocido como phishing). La ingeniería social ha sido muy frecuente en los ataques perpetrados por hackers. El que fue durante mucho tiempo hacker de sombrero blanco, Kevin Mitnick, solía ser uno de los mejores ejemplos de ingenieros sociales maliciosos. El perfil de Mitnick se muestra en el Capítulo 5, mientras que la ingeniería social se trata más detalladamente en el Capítulo 4.

Problemas con contraseñas Las contraseñas o sus derivaciones almacenadas internamente pueden ser descifradas o robadas. Durante mucho tiempo, adivinar contraseñas (o la ingeniería social) era uno de los métodos más populares para conseguir el acceso inicial a un sistema informático o una red, y lo sigue siendo. Sin embargo, el robo de credenciales y su reutilización (como los ataques pass-the-hash) ha entrado por la puerta grande en el campo del hackeo de contraseñas en la última media década. Mediante el robo de contraseñas, el atacante normalmente consigue el acceso administrativo a un ordenador o dispositivo y recupera una o más credenciales de inicio de sesión almacenadas en el sistema (ya sea en memoria o en el disco duro). Las credenciales robadas se utilizan después para acceder a otros sistemas que aceptan los mismos datos de inicio de sesión. Casi todos los grandes ataques corporativos han tenido el robo de credenciales como componente de explotación común, tanto es así que la técnica del descifrado de contraseñas ya no se utiliza tanto. El hackeo de contraseñas se tratará en el Capítulo 21.

Ataque de intermediario/MitM El ataque de intermediario o de Man-in-the-Middle (MitM) pone en peligro una conexión de red legítima para obtener acceso a las comunicaciones o participar de ellas maliciosamente. La mayoría de los ataques de intermediario ocurren por fallos de red o de protocolos de aplicación, aunque también pueden llevarse a cabo por un error humano. Actualmente, los ataques de intermediario se producen en redes inalámbricas. Los ataques a redes se tratarán en el Capítulo 33 y los ataques inalámbricos, en el Capítulo 23.

Fugas de información La fuga de información privada puede ser el resultado de una de las formas de hackeo existentes o bien de una acción humana no intencionada (o intencionada). La mayor parte de las fugas de información ocurren a causa de una ubicación descuidada de la misma (y con poca protección) o porque algún hacker ha descubierto el modo de acceder a datos que eran privados. No obstante, los ataques internos, donde un empleado o empresario roba o utiliza de forma intencionada información privada, también es una forma común de hackeo. Muchos de los capítulos de este libro tratan sobre la prevención de las fugas de información.

Configuración errónea También resulta común para usuarios y administradores de ordenadores implementar (a veces sin saberlo) opciones de seguridad muy débiles. No sabría decir cuántas veces he ido a un sitio web público y he encontrado que la mayoría de los archivos críticos estaban marcados con permisos del grupo Todo o Público —y estos permisos son exactamente lo que parecen—. Y cuando se permite a todo el mundo acceder a todos los archivos que desee, tu sitio o los archivos almacenados en él dejarán de ser privados en poco tiempo. La seguridad en sistemas operativos y configuraciones se tratará en el Capítulo 30.

Ataque de denegación de servicio Incluso si no hay nadie que haya cometido un error o que haya dejado una pequeña parte de un software sin parchear, todavía es posible hacer caer de Internet casi cualquier sitio web o cualquier ordenador. Aunque tú seas perfecto, tus ordenadores dependen de uno o más servicios que no lo son, que tú no controlas. Hoy en día, los grandes ataques de denegación de servicio distribuido (DDoS) pueden hacer caer o perjudicar de forma importante casi cualquier sitio web u ordenador contectado a Internet. Estos ataques suelen contener miles de millones de paquetes por segundo, lo que sobrecarga el objetivo (o sus vecinos de origen o destino). Existen decenas de servicios comerciales (a veces ilegales) que cualquiera puede utilizar tanto para causar un enorme ataque DDoS como para defenderse de él. Los ataques DDoS se tratarán en el Capítulo 28.

Información privilegiada/socio/asesor/proveedor/terceros Incluso si toda tu red y todos sus ordenadores están perfectos (que no lo están), puede ocurrir un fallo en un ordenador conectado de un socio o de un empleado interno. Esta categoría es muy amplia e implica varios de los métodos de hackers.

Error de usuario Esta categoría de intrusión también implica varios métodos de hackeo. Por ejemplo, un usuario puede enviar de forma accidental información privada a un usuario no autorizado simplemente introduciendo un carácter mal escrito en una dirección de correo electrónico. Otro usuario puede olvidarse por error de parchear un servidor en riesgo o configurar un permiso equivocado. Un error común de usuario es cuando alguien responde a un correo electrónico pensando que dicha respuesta es privada o que va dirigida a una breve lista de gente, pero en realidad está contestando a una amplia lista o, incluso, a alguien de quien se está hablando mal. Señalo estos errores de usuario por separado porque a veces ocurren y los hackers están preparados para sacar partido de ellos.

 

Acceso físico El saber popular dice que si un atacante tiene acceso físico a un activo, este simplemente lo robará todo (uf, tu teléfono móvil ha desaparecido) y lo destruirá o se saltará todas las protecciones para acceder a la información privada. Y esta percepción se ha demostrado bastante precisa hasta el momento, incluso contra las defensas que están explícitamente destinadas a proteger dicho activo ante cualquier ataque físico. Por ejemplo, muchos programas de cifrado de discos pueden ser vencidos por el atacante con un microscopio electrónico para obtener las claves secretas de protección identificando por separado los electrones que componen dichas claves. O la RAM puede congelarse con aire comprimido para traducir la clave secreta encriptada en texto sin cifrar debido a un fallo en la manera en que la memoria almacena físicamente la información.

Escalada de privilegios Cada hacker utiliza uno de los métodos de intrusión descritos en las secciones anteriores para explotar inicialmente un sistema objetivo. La única cuestión tras haber conseguido entrar es con qué tipo de acceso de seguridad se encontrará. Si están explotando un programa o un servicio informático que se ejecuta en el contexto de seguridad del mismo usuario, solo tendrán por el momento los mismos privilegios y permisos de acceso que el usuario conectado. O pueden conseguir el Santo Grial del sistema y obtener el acceso completo al sistema administrativo. Si el atacante solo cuenta con permisos de acceso normales y sin privilegios, entonces, por lo general ejecuta un segundo ataque de escalada de privilegios para intentar obtener un mayor acceso privilegiado. Los ataques de escalada de privilegios abarcan toda la gama, esencialmente duplicando los mismos enfoques que para la intrusión, pero empiezan por el punto de partida más alto de tener como mínimo algún acceso. Los ataques de escalada de privilegios son generalmente más fáciles de llevar a cabo que las explotaciones iniciales. Y como dichas explotaciones iniciales tienen el éxito siempre garantizado, la escalada de privilegios resulta mucho más fácil.