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. Bypassingtheworld
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
Métodos de control
¿Cómo podemos controlar un bot
si se lo hemos añadido a nuestro
virus?.
• 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
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
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
SEO es tu amigo
Uso malintencionado de SEO.
• 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.
• Funcionamiento de la pornografía orientada al
malware.
Página
de temática
“Amateur”
Página
de temática
“Amateur”, e
n el jardín
Página
de temática
“Amateur”,
en la ducha
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.
• 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.
• 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.
Encriptación y mutaciones
Métodos criptográficos en
virus, mutaciones etc…
1.Shellcodecrypt/decrypt
2.Como funciona un packer
3. Soy mutante
• 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.
ShellcodeCrypt
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
addecx, 2
inc edi
jmp crypt_loop
• 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).
• 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.
• Cambiamos fracciones de código servible o no
servible.
Malware.exe
x90x90x…
Malware.exe
Tras la primera
ejecución
x40x48x….
Parte del código no
utilizable ejemplo
“x90x90x90x90…”
Parte del código no
utilizable
“x40x48x40x48…”
• 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
“x11x62x23…”
Parte del código no
utilizable
“x94x75x56…”
Bucle
descifrado
Código cifrado
Clave cripto 0x9a
Bucle
descifrado
Código cifrado
Bucle de cifrado Bucle de cifrado
• 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
“x11x62x23…”
Parte del código no
utilizable
“x94x75x56…”
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
• 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”
Bypassingtheworld
¿Cómo salimos de la red?
Envío de 29 bytes comprimidos de forma totalmente
indetectable y pasando por cualquier firewall que no tenga el
servidor DNS aislado.
• Compresión de un número de 16 dígitos ( como
una tarjeta de crédito por ejemplo).
5 8 7 9 9 9 8 9 3 3 1 5 8 9 0 2
16 bytes
/ 4098
/ 4098
/ 4098
=
5 bytes + 1 byte
8 5 4 4 0 A
Si es un numero impar
tenemos un “flag” para
restar „1‟ al resultado final
sumado al número
anteriormente
• Muchos sitios ( ya cada vez menos ) permiten la
resolución DNS publica lo cual nos permite la
creación de un túnel “tcptodns”.
• Si tu dominio no esta en una blacklist no es muy
habitual encontrar filtrados por whitelist.
• Los túneles http no suelen ser filtrados.
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.
• Con rawsocket 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.
• Una conexión como la de reDuh através del
servidor proxy de lugares “seguros” es posible.
•Podemos conseguir el proxy utilizado actualmente
por el sistema en la clave de registro
“HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternetSettingP
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
•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 webopensource para el control
de botnet.
Infección y entrada
Infección básica de un PE.
• 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 “ImportTable”.
• Cambio del “EntryPoint” consiguiendo que se
ejecute nuestro código.
• Nuestro código malicioso salta al antiguo
“EntryPoint” asegurándose la correcta ejecución
del binario ya que no ha sufrido ninguna
modificación.
• La infección básica mas conocida consiste en el
añadido de una sección de código y un cambio en
el “EntryPoint”, y un salto hacia el punto de
entrada anterior, ejecutándose primero el virus.
Code
EntryPoint
PE HEADER
Code
PE HEADER
EntryPoint
Evil code
Antiguo EntryPoint
Jumpto
original
entrypoint
Ejecutable normal Ejecutable infectado
•EntryPointobscuring (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
EntryPoint
PE HEADER
Code
PE HEADER
EntryPoint
Evil code
ret_malware
Jumpto
evilcode
Ejecutable normal Ejecutable infectado
Jmpret_malware
•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.
•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.
Código inteligente y actualizable
Tu virus puede ser inteligente y
actualizable.
• 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.
• 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
• 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.
• 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.
Rootkit escóndete en el sistema
Cosas interesantes para
esconderse.
• 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.
• 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.
• 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.
Enlaza tu virus
Js, sys
• 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.
• 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.
• 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
• 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.
•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.
Expande tu virus
Métodos de expansión
• 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
•Hook al teclado
• Envío de las pulsaciones a la ventana
• Robo de contactos
• Infección de archivos PE
• Remplazo de archivo PDF malintencionados
•Exploit de archivos .lnk
El virii debería ser un arte
•Donut by Benny: Infección de archivo MSIL.
•GriYo: EntryPointobscuring
• 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

Virus, el arte de algunos - Alberto García de Dios (/Rooted CON 2011)

  • 2.
    Virus arte dealgunos. - Alberto García de Dios
  • 3.
    1. Métodos decontrol 2. SEO es tu amigo 3. Encriptación y mutaciones 4. Bypassingtheworld 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ómopodemos controlar un bot si se lo hemos añadido a nuestro virus?.
  • 5.
    • Control medianteaplicació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: • Esnecesario 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 enla 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 tuamigo Uso malintencionado de SEO.
  • 9.
    • Aparecer enlos 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 dela pornografía orientada al malware. Página de temática “Amateur” Página de temática “Amateur”, e n el jardín Página de temática “Amateur”, en la ducha 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 encontrarinformació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étodoscriptográficos en virus, mutaciones etc…
  • 14.
  • 15.
    • Parte dela 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.
    ShellcodeCrypt crypt_loop: mov al, byteptr [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 addecx, 2 inc edi jmp crypt_loop
  • 17.
    • Inserción deun 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 incompletorelleno 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 fraccionesde código servible o no servible. Malware.exe x90x90x… Malware.exe Tras la primera ejecución x40x48x…. Parte del código no utilizable ejemplo “x90x90x90x90…” Parte del código no utilizable “x40x48x40x48…”
  • 20.
    • El códigocambia 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 “x11x62x23…” Parte del código no utilizable “x94x75x56…” Bucle descifrado Código cifrado Clave cripto 0x9a Bucle descifrado Código cifrado Bucle de cifrado Bucle de cifrado
  • 21.
    • El códigocambia 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 “x11x62x23…” Parte del código no utilizable “x94x75x56…” 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 delarchivo : “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.
  • 24.
    Envío de 29bytes comprimidos de forma totalmente indetectable y pasando por cualquier firewall que no tenga el servidor DNS aislado.
  • 25.
    • Compresión deun número de 16 dígitos ( como una tarjeta de crédito por ejemplo). 5 8 7 9 9 9 8 9 3 3 1 5 8 9 0 2 16 bytes / 4098 / 4098 / 4098 = 5 bytes + 1 byte 8 5 4 4 0 A 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 “tcptodns”. • 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 manerabastante 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 rawsocketpodemos 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óncomo la de reDuh através del servidor proxy de lugares “seguros” es posible.
  • 30.
    •Podemos conseguir elproxy utilizado actualmente por el sistema en la clave de registro “HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternetSettingP 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
  • 31.
    •También podemos programaraplicaciones 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 webopensource para el control de botnet.
  • 32.
  • 33.
    • Añadido desecció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 “ImportTable”.
  • 34.
    • Cambio del“EntryPoint” consiguiendo que se ejecute nuestro código. • Nuestro código malicioso salta al antiguo “EntryPoint” asegurándose la correcta ejecución del binario ya que no ha sufrido ninguna modificación.
  • 35.
    • La infecciónbásica mas conocida consiste en el añadido de una sección de código y un cambio en el “EntryPoint”, y un salto hacia el punto de entrada anterior, ejecutándose primero el virus. Code EntryPoint PE HEADER Code PE HEADER EntryPoint Evil code Antiguo EntryPoint Jumpto original entrypoint Ejecutable normal Ejecutable infectado
  • 36.
    •EntryPointobscuring (EPO). Nose 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 EntryPoint PE HEADER Code PE HEADER EntryPoint Evil code ret_malware Jumpto evilcode Ejecutable normal Ejecutable infectado Jmpret_malware
  • 37.
    •El método mashabitual 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 archivomí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 yactualizable Tu virus puede ser inteligente y actualizable.
  • 40.
    • Podemos descargarel 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 viruspuede 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 estadividido 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 enel sistema Cosas interesantes para esconderse.
  • 45.
    • La intercepciónde 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.
  • 49.
    • Descarga unarchivo 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 utilizarexploit 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 cargade 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 hooka 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 permitemodificar 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.
  • 55.
    • Infección dearchivos 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 dearchivos PE • Remplazo de archivo PDF malintencionados •Exploit de archivos .lnk
  • 58.
    El virii deberíaser un arte
  • 59.
    •Donut by Benny:Infección de archivo MSIL. •GriYo: EntryPointobscuring • 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