Virus arte de algunos. - Alberto García de Dios 1.Métodos de control 2.SEO es tu amigo 3.Encriptación y mutaciones 4.Bypassing the world 5.Infección.

1 2 ...
Author: Víctor Venegas Muñoz
0 downloads 0 Views

1

2 Virus arte de algunos. - Alberto García de Dios

3 1.Métodos de control 2.SEO es tu amigo 3.Encriptación y mutaciones 4.Bypassing the world 5.Infección y entrada 6.Código inteligente y auto actualizable 7.Rootkit escóndete en el sistema 8.Enlaza tu virus 9.Expande tu virus 10.El virii debería ser arte 1.Métodos de control 2.SEO es tu amigo 3.Encriptación y mutaciones 4.Bypassing the world 5.Infección y entrada 6.Código inteligente y auto actualizable 7.Rootkit escóndete en el sistema 8.Enlaza tu virus 9.Expande tu virus 10.El virii debería ser arte

4 Métodos de control ¿Cómo podemos controlar un bot si se lo hemos añadido a nuestro virus?.

5 Control mediante aplicación propia Aplicaciones web para la programación de botnet Programación de aplicaciones web para control de botnet Control mediante IRCd

6 En contra: Es necesario mas recursos para no ser detectado el autor Es necesario acceso total a un servidor Es mas estable y rápido Es menos complejo o “enrevesado” Es mas probable que por defecto el firewall no lo permita A favor: Tiene posibilidades de hacer funciones que con otros métodos es imposible Puedes crear túneles y/o abusar de su conexión

7 Usos: Estas en la misma red que la victima La finalidad es control remoto troyano Transferir gran cantidad de datos Control de tipo webcam, pantalla remota Infección especifica por recursos

8 SEO es tu amigo Uso malintencionado de SEO.

9 Aparecer en los primeros puestos en palabras clave es un forma de atraer masas hacia tu/tus código/s mal intencionado/s. La pornografía es un método muy utilizado ya que tiene una gran cantidad de visitas. Los usuarios cuando ven pornografía son mas incautos. Algunos la visitan desde maquinas virtuales Los “boom” del momento también atraen gran cantidad de usuarios.

10 Funcionamiento de la pornografía orientada al malware. Página de temática “Amateur” Página de temática “Amateur” Página de temática “Amateur”, en el jardín Página de temática “Amateur”, en el jardín Página de temática “Amateur”, en la ducha Página de temática “Amateur”, en la ducha Página de temática “Amateur” mas fuerte Página de temática “Amateur” mas fuerte Páginas de promoción con muestra de imágenes o videos Página mal intencionada Llamadas entre si aleatoriamente Llamada tras unas vueltas a la página mal intencionada.

11 Aprovechando el “boom” del momento. Hacer una encuesta sobre “crepúsculo” y estar en las primeras páginas encontradas por google llama en su gran mayoría a un público mas incauto. Puedes crear el “boom”… Típico 0day remoto para OpenSSH.

12 Puedes encontrar información sobre técnicas de SEO Hay técnicas de “moral relajada” que entre otros lugares puedes encontrar en “el lado del mal”. Google hacking o sitios poco seguros con una cantidad de visitas significantes pueden ser utilizados para hacer promoción de tu sitio malintencionado.

13 Encriptación y mutaciones Métodos criptográficos en virus, mutaciones etc…

14 1.Shellcode crypt/decrypt 2.Como funciona un packer 3. Soy mutante

15 Parte de la shellcode contiene datos que van a ser modificados en tiempo de ejecución. Tiene uno o mas bucles de descifrado para modificar los bytes codes. Escribiendo el código, crearíamos una cadena de bytes con los opcode de la shellcode en un “segundo” código que seria el decrypter. Cifrar también los “nop” ayuda en la evasión ids.

16 Shellcode Crypt crypt_loop: mov al, byte ptr [esi+edi] add al, bl mov dl, byte ptr [esi+ecx] add dl, bl mov byte ptr [esi+edi], al mov byte ptr [esi+ecx], dl cmp ecx, 0 je crypt_end_loop add ecx, 2 inc edi jmp crypt_loop

17 Inserción de un archivo dentro de un método de extracción automática (Unión de dos archivos). Copia a una carpeta temporal o con privilegios y posterior desempaquetado y descifrado en caso de estarlo. Copia en extractos de memoria y posterior ejecución. Habitualmente en la memoria “Heap” (dada su situación estática).

18 Bucle incompleto relleno con una cadena recogida de internet. Dificulta el reversing antes de la ejecución del malware. Sección o “Stub” con opción “read/write” siendo descifradas en tiempo de ejecución Fragmentación en varias secciones de memoria diferentes con saltos de una a otra para dificultar su análisis.

19 Cambiamos fracciones de código servible o no servible. Malware.exe \x90\x90\x… Malware.exe Tras la primera ejecución \x40\x48\x…. Parte del código no utilizable ejemplo “\x90\x90\x90\x90…” Parte del código no utilizable “\x40\x48\x40\x48…” Parte del código no utilizable “\x40\x48\x40\x48…”

20 El código cambia su cambia su clave criptográfica Malware.exe Clave cripto 0x5e Malware.exe Tras la primera ejecución Parte del código no utilizable ejemplo “\x11\x62\x23…” Parte del código no utilizable “\x94\x75\x56…” Parte del código no utilizable “\x94\x75\x56…” Bucle descifrado Código cifrado Clave cripto 0x9a Bucle descifrado Código cifrado Bucle de cifrado

21 El código cambia también el cifrado entre 3 o mas opciones, lo cual complica la firma. Malware.exe Clave cripto 0x5e Malware.exe Tras la primera ejecución Parte del código no utilizable ejemplo “\x11\x62\x23…” Parte del código no utilizable “\x94\x75\x56…” Parte del código no utilizable “\x94\x75\x56…” Clave cripto 0x9e Bucle descifrado 1 Código cifrado Bucle descifrado 2 Bucle descifrado 3 Bucle descifrado 1 Código cifrado Bucle descifrado 2 Bucle descifrado 3 Bucle de cifrado 1 Bucle de cifrado 2 Bucle de cifrado 3 Bucle de cifrado 1 Bucle de cifrado 2 Bucle de cifrado 3

22 Apertura del archivo : “OpenFileA/NtOpenFile” Podemos utilizar la propia firma o una cadena especifica para la búsqueda “ db ‘JennyLab’, 0 ” Si escribimos al final de un archivo PE, no ocurre nada lo cual nos permite incluso meter datos para la mutación. Podemos inyectar un hilo para mover archivos o hacer algún cambio, tras el cierre del proceso malware “CreateRemoteThread”

23 Bypassing the world ¿Cómo salimos de la red?

24 Envío de 29 bytes comprimidos de forma totalmente indetectable y pasando por cualquier firewall que no tenga el servidor DNS aislado.

25 Compresión de un número de 16 dígitos ( como una tarjeta de crédito por ejemplo). 16 bytes / 4098 = 5 bytes + 1 byte 85440A Si es un numero impar tenemos un “flag” para restar ‘1’ al resultado final sumado al número anteriormente Si es un numero impar tenemos un “flag” para restar ‘1’ al resultado final sumado al número anteriormente

26 Muchos sitios ( ya cada vez menos ) permiten la resolución DNS publica lo cual nos permite la creación de un túnel “tcp to dns”. Si tu dominio no esta en una blacklist no es muy habitual encontrar filtrados por whitelist. Los túneles http no suelen ser filtrados.

27 De una manera bastante habitual se suele encontrar servidores que por actualizaciones o razones varias salen por el puerto 80 tcp. Esto puede ser útil para sacar datos de la red sin necesidad de utilizar proxy, lo cual puede ser útil en virus a medida.

28 Con raw socket podemos hacer en el servidor de sniffer de la capa IP, utilizando la capa ICMP para recibir datos del infectado. Haciendo hooking de la capa NDIS podemos hacer el sniffer de protocolos de capas inferiores como STP. Librerías como libpcap nos permitirían hacer el sniffer pero dependerías de librerías.

29 Una conexión como la de reDuh através del servidor proxy de lugares “seguros” es posible.

30 Podemos conseguir el proxy utilizado actualmente por el sistema en la clave de registro “ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSetting\P roxyServer ”. Podemos utilizar “ReDuh” en el servidor web con que haga el túnel de http a tcp ReDuh usa un archivo javascript con unas funciones básicas. “startReDuh”, “getData”, “killReDuh”, “createSocket”, “newData”, “debug” ReDuh también recoge los parámetros “targetHost”, “targetPort”, “servicePort”, “data”, etc..

31 También podemos programar aplicaciones simples en “php”, que permitan el control del virus, haciendo que conecte a cualquier servidor gratuito con “php”. Alguno virus han utilizado cosas como redes sociales, grupos etc... Hay aplicaciones web opensource para el control de botnet.

32 Infección y entrada Infección básica de un PE.

33 Añadido de sección o al final del archivo añadimos el código, ya que si escribimos al final de un archivo PE no ocurrirá nada. Las llamadas a las API’s la haremos utilizando la “IAT” o sacaremos las API’s usando PEB aunque no es lo mas correcto dado que ya tenemos recuperadas las API’s en la “Import Table”.

34 Cambio del “Entry Point” consiguiendo que se ejecute nuestro código. Nuestro código malicioso salta al antiguo “Entry Point” asegurándose la correcta ejecución del binario ya que no ha sufrido ninguna modificación.

35 La infección básica mas conocida consiste en el añadido de una sección de código y un cambio en el “Entry Point”, y un salto hacia el punto de entrada anterior, ejecutándose primero el virus. Code Entry Point PE HEADER Code PE HEADER Entry Point Evil code Antiguo Entry Point Jump to original entry point Ejecutable normalEjecutable infectado

36 Entry Point obscuring (EPO). No se modifica la dirección de entrada ya que es sospechoso, si no que se cambian los primeros bytes con un jmp hacia el código o durante la ejecución Code Entry Point PE HEADER Code PE HEADER Entry Point Evil code ret_malware Jump to evil code Ejecutable normalEjecutable infectado Jmp ret_malware

37 El método mas habitual de entrada es exploit en el explorador web, plugin del mismo o archivos mal intencionados. El exploit ejecuta código binario o interpretado por el explotador.

38 Descarga un archivo mínimo que hace posteriores descargas previamente deshabilitando el sistema de seguridad instalado en el PC cliente. En su defecto desempaqueta un archivo binario que es el virus. Empieza la infección y el intento de trasmisión a otros equipos.

39 Código inteligente y actualizable Tu virus puede ser inteligente y actualizable.

40 Podemos descargar el nuevo archivo por http ya sea usando las API’s o alguna inyección al explorador o exploradores utilizados. Se debe tener en cuenta que la mayoría de los usuarios no domésticos necesitan conectar mediante proxy. Funcionar mediante módulos (dll’s), es una buena opción para “instalar” remotamente partes del virus, puede perder infectados que no le permitan salir por http.

41 Tu virus puede descargar una nueva versión y ser remplazado o borrado previamente a la copia. Tu virus puede ser inteligente si esta dotado de matriz

42 Si esta dividido en módulos, actualizar cualquier módulo es tan fácil como no cargarlo o inyectarlo en otro proceso hasta el remplazo. En caso de ser el ejecutable o no estar dividido en módulos, podemos inyectar código y cerrar el proceso padre antes de que sea sobrescrito o borrado. Si esta divido en módulos, se puede hacer un módulo de actualización.

43 Creando “arrays” con antivirus, antispyware, firewall de host, nids y otros sistemas de seguridad host, podemos detectarlos he intentar matarlos o interrumpir su detección. Podemos detectar programas que pongan en peligro el virus por que sean de análisis, ingeniería inversa etc… Debería tener un sistema de auto borrado y desinfección para intentar evadir esto.

44 Rootkit escóndete en el sistema Cosas interesantes para esconderse.

45 La intercepción de API’s de conexión a internet, como (connect, WSAConnect), (URLDownloadToFile*, URLDownloadToCacheFile* ) etc… es útil para filtrar La API “WSAIoctl” y el argumento “SIO_RCVALL”, pueden ser utilizadas para hacer un “sniffer” del tráfico lo que pone en peligro la detección del tráfico del virus.

46 Las API’s “GetTcpStatsFromStackEx”, “GetUdpStatsFromStackEx”, “GetIpStatsFromStackEx”, y varias API’s mas, de (iphlpapi) pueden ser interceptadas con la finalidad de esconderse de aplicaciones como “netstat” y otras aplicaciones básicas para la estadística o monitorización del estado de la pila IP, TCP y otros protocolos utilizados en el sistema.

47 La API “WSAIoctl” y el argumento “SIO_RCVALL”, pueden ser utilizadas para hacer un “sniffer” del tráfico lo que pone en peligro la detección del tráfico del virus. Las API’s (gethostbyname, GetAddressByName), hacen resoluciones dns, podemos filtrar IP’s de lugares de actualización, antivirus online y otros contenidos peligrosos para el virus.

48 Enlaza tu virus Js, sys

49 Descarga un archivo pequeño que hace posteriores descargas previamente deshabilitando el sistema de seguridad instalado en el PC cliente. En su defecto desempaqueta un archivo binario que es el virus. Empieza la infección y el intento de trasmisión a otros equipos.

50 Puede utilizar exploit para exploradores web que permitan la ejecución de javascript, haciendo descarga y ejecución de nuestro virus. La explotación de un overflow también puede ser utilizada para la descarga y ejecución de nuestro virus. Otra opción es utilizar archivos mal intencionados como puede ser pdf y su oleada de exploits o otros formatos vulnerables.

51 La carga de un driver mal intencionado se puede utilizar para hacer hook a la SSTD, permitiéndole interceptar llamadas del modo kernel. Haciendo hook a API’s, Zw*, Nt*, Rtl* etc…, podemos interceptar llamadas de otras aplicaciones aunque la aplicación corra en “ring3” modo user

52 Haciendo hook a la capa NDIS podemos evadir los sniffers. Haciendo hook a API’s de procesos cómo (ZwOpenProcess, NtOpenProcess). Podrá esconder su presencia como proceso. Conexión TCP o UDP en modo kernel utilizando la capa TDI.

53 Javascript nos permite modificar cadenas, lo cual nos permite decodificar en tiempo de ejecución. La función “unescape()” de javascript nos permite decodificar cadenas esto dificulta levemente el análisis. La función “Chr()” de javascript nos permite meter bytes en lugar de la cadena dificulta levemente el análisis.

54 Expande tu virus Métodos de expansión

55 Infección de archivos en discos montados con recursos compartidos, para ejecución desde otros equipos que accedan a el y ejecuten los archivos. Búsqueda de recursos compartidos tipo “IPC$”. Mensajería instantánea Exploits

56 Hook al teclado Envío de las pulsaciones a la ventana Robo de contactos

57 Infección de archivos PE Remplazo de archivo PDF malintencionados Exploit de archivos.lnk

58 El virii debería ser un arte

59 Donut by Benny: Infección de archivo MSIL. GriYo: Entry Point obscuring Z0MBIE: Infección de imágenes ISO. La mayoría del malware “comercial” no aporta mucho y en casó de hacerlo quien lo saca a la luz son las personas que lo analizan. No publicar virus para que no lo usen comercialmente