Conferencia DEFCON 17. ¡Ríete de tus virus! Parte 2

Conferencia DEFCON 17. ¡Ríete de tus virus! Parte 1

Luego puede cargarlo en la IDA y ver que todo en la tabla de direcciones importadas se ve bien, y podemos seguir los enlaces cruzados para establecer el puntero en el archivo deseado. Entonces llegamos a la ubicación exacta del código de cifrado dependiente.



Por lo tanto, con solo unos pocos comandos para volcar la memoria, encontramos el lugar donde se escondía Coreflood. Desmontamos, recuperamos e insertamos el encabezado PE sin siquiera tenerlo, y obtuvimos una tabla de direcciones completamente restaurada en menos de 20 segundos.

La siguiente historia se llama "Cariño, lamento molestarte de nuevo. ¡Me pica Internet!" Esta historia nos dice que el generador de IP defectuoso Conficker.B escanea solo una parte de Internet. Aquí volvemos nuevamente a la función rand. Una parte importante de esta función es la última instrucción que marqué con una flecha verde: ejecuta cualquier valor final en EAX con un valor de 7FFF. Si no está familiarizado con los principios de ensamblaje y no sabe lo que puede hacer esta instrucción, aquí hay una pequeña demostración sobre esto.



Movimos el valor máximo que EAX puede contener a este registro y ejecutamos la instrucción final. Puede ver que "corta" la mitad superior del valor y luego resta 7FFF, que se convierte a 32767 en el sistema decimal. Aparentemente, los autores no se dieron cuenta de que esta restricción que ejecuta Windows no devuelve el tamaño que querían al entero . Lo "corta" para que el valor no supere 7FFF, de modo que un byte de 7F nunca sea mayor que este valor de 7F, es decir, nunca será igual a 80 o algo así.

Más adelante, en el lado izquierdo de la diapositiva, que llamé el "Método Vicioso", verá el código Conficker.B. Esto muestra una llamada a rand que inicia el primer octeto de la dirección IP, que se pretende escanear después de que regrese de rand. La siguiente llamada al sistema rand inicia el tercer y cuarto octeto de la dirección IP, pero debido a lo anterior, dos de estos octetos nunca serán mayores que 7F. Por lo tanto, la mayor parte de Internet no podrá escanearse porque Conficker.B usa este algoritmo.

En el lado derecho de la diapositiva está la parte del código fuente que muestra el ensamblador. Es difícil de leer en la pantalla, pero este ejemplo está disponible públicamente y puede leerlo en línea si está interesado.



Un enlace a esta herramienta se encuentra en la parte inferior de la siguiente diapositiva, titulado "Simulación del método vicioso". También puede ver que la dirección IP se genera con PRNG pero no se escanea.



Quiero agradecer enormemente a Brandon Enright, quien hizo el cronograma en la próxima diapositiva. Este gráfico se llama "curva de Hilbert", y ahora ampliaré la imagen para que pueda ver mejor en la pantalla. El color azul en el gráfico indica el rango de direcciones IP que Conficker.B no puede escanear utilizando este algoritmo vicioso. El color rojo oscuro indica lo que se puede escanear. Verá que la mayoría de las partes del gráfico no son rojo oscuro, sino púrpura, y no verá por qué sucede esto hasta que aumente el rectángulo correspondiente.



Incluso en este rectángulo ampliado, en cada bloque / 16, se ven muchos fragmentos azules que se vuelven rojo oscuro en púrpura. Estas son las partes de las direcciones que Conficker.B no puede escanear.



Esto es bastante interesante porque muchas personas están seguras de que Conficker.B creó "grandes mentes". Quizás lo sea, pero estas mentes no eran conscientes de las limitaciones que existen en Windows rand ().

Matthew Richard: volviendo a esos tipos que, como dije, no manejan muy bien sus virus, por lo que en el cibercrimen esto es similar al proverbio "lobo humano a humano", por lo que estos tipos no son respetados en sus círculos.

Hablemos de las herramientas de hackers Neosploit, que "atraparon" a todos. Podemos decir que el lema de sus desarrolladores fue "Gracias por el dinero, ahora es el momento de correr". Neosploit es un juego de herramientas para organizar ataques web, por lo que los chicos del cibercrimen lo comprarán y lo configurarán contra los chicos del servidor, piratearán el servidor, descargarán códigos, etc.



Los creadores de Neosploit hicieron una buena inversión vendiendo su herramienta, pero no permitiéndole cambiarla, modificarla o usarla en partes. La tercera versión de este kit de herramientas se lanzó en abril de 2008, y la mayoría de los exploits únicos están escritos en C, por lo que no se trata de PHP o algún tipo de aplicación web basura. Los clientes recibieron una distribución binaria con un conjunto de exploits CGI.

Neosploit tiene características que evitan que los clientes dividan o eliminen las vulnerabilidades. Para hacer esto, todos los exploits se presentaron en formato binario, encriptados con XOR. Los creadores lograron que nadie pudiera cortar, pegar y crear su propio conjunto de exploits basados ​​en Neosploit. Hay 40-50-60 diferentes tipos de ataques web, que se basan en códigos robados y copiados insertados en sus propios exploits, por lo que los chicos de Neosploit son un poco más inteligentes al cifrar sus exploits desde el interior. En la captura de pantalla, verá que tienen un archivo con la clave neosploit.key, por lo que este es un software con licencia completa.



No tengo dudas de que tenían un montón de clientes realmente buenos con los que ganaban mucho dinero. Sus clientes más famosos fueron Torpig. Creo que has oído hablar del rootkit de Mebroot, con el que comprometieron los sistemas para crear una red botnet. Pero los creadores de Neosploit tenían muchos otros clientes. En mayo de 2008, lanzaron una nueva mejora: la tercera versión de su kit de herramientas. Se pidió a los clientes que pagaran por adelantado el paquete de exploits con todas las actualizaciones posteriores por $ 1000. Más adelante hablaré sobre esto con más detalle, por ahora notaré que realmente se preocuparon por los piratas y trataron de proteger su producto lo más posible, por lo que definitivamente fue muy divertido.



Incluso los medios de comunicación escribieron que estas hazañas están en todas partes. Así que, por supuesto, intentaremos desmontar el código y mostrar cómo funciona Neosploit.

Lo primero que hicieron después de haber promovido intensamente este conjunto de exploits de abril a julio fue su apoyo desde el 20 de julio de 2008. La explicación que simplemente publicaron en su sitio web decía lo siguiente: "Desafortunadamente El soporte adicional del producto no es factible. Pedimos disculpas por las molestias, pero los negocios son negocios, y el tiempo dedicado al proyecto no se justificó. En los últimos meses, hemos intentado hasta el final para satisfacer los requisitos del cliente, pero algún día el soporte debería haber cesado. Hemos estado con usted durante un año y medio y esperamos que este no haya sido el peor momento para su negocio. Ahora no estaremos cerca de usted, pero, sin embargo, deseamos que su negocio prospere por mucho tiempo ”. En general, recibimos tu dinero, pagaste la suscripción, ¡así que mantente saludable!

Sin embargo, simplemente bromearon y en agosto de 2008 regresaron y lanzaron una versión 3.1 completamente nueva, que proporcionaron a sus clientes clave, lo que indica que todos los demás clientes recibirán una actualización después de que paguen por ella. Esta actualización incluyó varias nuevas vulnerabilidades para Adobe PDF, Shockwave Flash y Quicktime para Firefox.

Luego, nuevamente decidieron hablar en serio y anunciaron que en realidad dejarían de publicar actualizaciones, por lo que todos los que hicieron una suscripción prepaga se equivocaron.

Entonces, pasemos a Neosploit, este kit genial para organizar ataques web. Como sus desarrolladores lucharon contra los piratas y robaron exploits que podían copiarse y pegarse en los kits de otras personas, tomaron cada exploit y lo colocaron en un archivo CGI, codificando de tal manera que era muy difícil sacarlo de allí. Los archivos binarios de exploit C eran ligeramente diferentes de los scripts PHP.



En el blog Neosploit, se publicó la frase de Dancho Danchev de que "cualquiera puede crear un nuevo exploit", pero es bastante difícil. Decidí averiguar lo difícil que era y comencé a desmontar una de las hazañas.

Cada exploit se almacenó en forma cifrada utilizando una clave XOR de 3 bytes. Para cada solicitud entrante, el exploit se descifró y se proporcionó al usuario para trabajar, y dicho ciclo se repitió constantemente.



Entonces, incluso si pudieras revisar la memoria y eliminar el volcado de memoria, aún es bastante difícil y obtener todos los exploits, de todos modos, estos búferes se borran cada vez.

Afortunadamente, si puede copiar y pegar estos exploits en el programa que necesita, puede encontrar la respuesta. Para esto, se utiliza una herramienta de descifrado muy poderosa: secuencias de comandos IDA. Con él, puede comentar o volcar un área de memoria específica, actualizar exploits, puede ser útil para trabajar con malware que utiliza cadenas complicadas por xor, base64, etc. Escribí un script IDE con el que traté de desmontar un volcado de memoria capturada de un exploit cifrado.



Revisa todos los objetos cifrados, busca todas las llamadas a las funciones de descifrado, captura los objetos cifrados, los descifra usando XOR y luego elimina el volcado. Esta es una forma, pero creo que podría escribir su propio script, una aplicación que hace lo mismo. Si sabe cómo agregar nuevos exploits a Neosploit, puede hacer algo en esta dirección y, por supuesto, tan pronto como elimine el volcado, reconocerá todo el texto sin formato, puede "arrancarlo" de la instrumentación y revenderlo. Los nuevos muchachos que desarrollaron las hazañas simplemente se dieron por vencidos porque alguien ganaba mucho dinero sin preocuparse por sus clientes.

Si alguien ha escuchado al gran filósofo de hip-hop Biggie Smalls de Notorius BIG, entonces conoce su canción llamada Diez mandamientos de crack, "Los diez mandamientos de crack", que contiene una gran sabiduría. Si usted es un traficante de drogas, entonces siga el mandamiento 4: "Nunca se siente en su propia droga que empuja". Probablemente el tipo al que llamé Peeper y que distribuyó su propio código malicioso nunca escuchó esta canción porque probó su producto en sí mismo.

Su ataque fue el siguiente. Envió correos electrónicos, disfrazados de varias agencias gubernamentales y se dirigió a las personas con el nombre: "Estimado tal y tal, alguien presentó una queja contra su empresa ante la Comisión Federal de Comercio, así que haga clic aquí para descargar un documento que describe la esencia en detalle" .



Luego, el usuario siguió el enlace e intentó descargar este documento, y realmente era un documento de Word en formato .doc. Sin embargo, había una característica muy complicada. Tuviste la oportunidad de simplemente arrastrar y soltar archivos ejecutables desde un documento de Word y luego cambiarles el nombre, pero cuando intentaste descargar el archivo, el mensaje "Microsoft Word detectó un problema y el documento no se pudo descargar. Haga doble clic en el icono del documento para continuar ". Idea genial!



Naturalmente, la gente hizo clic, hicieron clic 6 veces para recibir este mensaje infectado, por lo que este tipo tuvo muchas víctimas. Me gustó este mensaje: "Intentaron engañarme, bla, bla, bla".

Lo siguiente que encontramos al rastrear a este tipo fueron los directorios abiertos de Drop Directory, donde descargó la información que recibió.



Tal vez no tenía sus propias herramientas para administrarlos, o pensó que los directorios abiertos son algo bueno, pero los directorios abiertos son malos si almacena mucha información recibida de diferentes personas. Cualquier servidor que configuraría para su sitio de "aterrizaje" tenía un directorio abierto, y usted podía entrar allí y ver las listas de todas sus víctimas y cada una individualmente.

En cierto modo, fue un buen desarrollador porque escribió un código de calidad. Pero su inconveniente era que cuando dirigía su código a un servidor en vivo, usaba su dirección IP real, y no duraría mucho con esas cosas.



De hecho, tenía un módem DSL estándar que se puso en contacto con Ucrania, probó todo su código y malware, que tiene una buena función llamada "sígueme" o "síguele". Este tipo estaba ocupado robando información bancaria, pero a veces solo quería mirar a sus víctimas para ver qué estaban haciendo, así que lo llamamos Peeper u "Observador". No estaba satisfecho con la funcionalidad simple de su software, comenzó a monitorearse a sí mismo. Parece bastante extraño, como si abrieras ventanas de acceso remoto VNC en tu propia computadora y las recorrieras, obteniendo imágenes cada vez más pequeñas. De hecho, hizo esto muchas veces, en muchos servidores de "aterrizaje", de hecho, fue muy, muy extraño. Entonces, mirando a través de estos servidores de "aterrizaje", uno podría decir: "Oh, mira, esta es una imagen en la que se está observando a sí mismo, a sí mismo, a quién se está observando a sí mismo".



"Mi luz, espejo, dime, ¿quién en el mundo es el más dulce"?

Sobre todo me gustó lo que hizo por sí mismo. Utilizó esta función Sígueme en el proceso de desarrollo del código. De hecho, escribió el código, observándose a sí mismo, enviando todo esto de vuelta al servidor de comando y control. Por lo tanto, hizo posible que los oficiales entraran por la puerta trasera, lo dejaran boca abajo en el piso y confiscaran su computadora. En resumen, nada ayuda a deshacerse de usted como una imagen de un árbol fuente adjunto a su dirección IP.



La última pieza de malware que veremos seguramente interesará a las personas que están familiarizadas con Internet Explorer 7. Pero no se preocupe, Microsoft dice que todo está bajo control, ¡confíe en ellos!



Entonces, Microsoft tuvo un gran problema con Internet Explorer 6, debido al hecho de que era muy fácil robar contraseñas guardadas de este navegador. Por lo general, va al sitio, le preguntan si desea guardar la contraseña, se llama a un formulario especial, responde "sí" y se guarda en el registro. El problema con IE 6 fue que si inicia sesión como usuario, solo necesita hacer una llamada al sistema CryptUnprotectData () para descifrar estas contraseñas que realmente no tienen protección.

Por lo tanto, el malware que se ejecuta con privilegios de usuario lee estas contraseñas libremente y las envía al atacante. Por lo tanto, en IE 7 instalaron un excelente "parche": las contraseñas se cifraron con una clave de 128 bits. ¡Realmente no es una solución crackable!
Si observa más a fondo, puede ver el hash disponible en el sitio, lo explicaré un poco más adelante, en el que hay un archivo binario que contiene el nombre de usuario y la contraseña. Quiero citar a otro gran filósofo, John Travolta, de la película Swordfish. Mi pasaje favorito es cuando él se sienta allí y explica: "Este código es tan bueno que ni siquiera yo puedo descifrarlo". Creo que tenía en mente el cifrado de 512 bits, y él, el mejor encriptador del mundo, por qué fue contratado, dice que ni siquiera él puede hacerlo.

Entonces, esto es lo que hizo Microsoft. Cifran la contraseña, para lo cual generarán una clave de 128 bits basada en el hash MD5 del sitio para el que guardan esta contraseña. Esto parece bastante razonable, así que si va a www.bank.com/login.sp , tomarán esta línea, pondrán todas las letras en minúsculas, luego las codificarán en caracteres grandes y usarán el algoritmo MD5, convirtiendo esta línea en una clave que se usará para cifrar la contraseña en el registro del nombre de usuario.

Luego, cuando visita este sitio para el que hay una contraseña guardada, hacen lo contrario: IE normaliza la URL, transcodifica la cadena y busca en el registro para ver si hay valores almacenados para usted. En detalle, sucede así:

  • lea el hash del registro para cada URL en index.dat;
  • La URL se convierte a minúsculas;
  • Los parámetros GET se reducen;
  • La URL se convierte en caracteres grandes;
  • Si el hash del valor de la URL es igual a cualquier valor en el registro, los datos se descifran utilizando esta URL.

Esto parece bastante razonable, pero si lo piensa, hay un pequeño problema. De hecho, hay muy poca entropía, y el pirata informático puede hacer frente fácilmente a esto. Esto no es mucho más complicado que el cifrado de contraseña en IE 6.

Hackearlo es bastante simple. Para guardar la contraseña, el usuario debe visitar el sitio, que se puede encontrar fácilmente en index.dat o en la sección de clave de registro "TypedURLS". Si consideramos solo los Estados Unidos, entonces hay alrededor de 15,000 sitios de bancos y cooperativas de crédito, y puede encontrarlos fácilmente. , , , . , .

, , , , , : Facebook, Myspace Twitter , . Alexa, , . , - « » Rainbow Table .

, IE 7 : , .

? , . . , Mozilla Firefox, , . , , , «Remember My password». . Firefox IE 7 , , , , .

, , , .

Laqma. , , . - , , , command and control.



, . , , PHP -, PHP , – .

.

: , , , . , . Laqma, . , , Laqma , . , SSDT, IDA - .
, Volatility, . , Laqma, SSDT , , . SSDT, , SSDT, SSDT.



TOS, win32k, , . SSDT , , TOS win32k.

, , , , drv, .sys, . , . , SSDT . .



SSDT. , BSOD, IDA. IDB, , IDB, « » SSDT.

, , SSD , IDB , , , IDB, .
, !


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 EE. UU. 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/es428860/


All Articles