Post on 20-Sep-2018
Understanding Malware for fun and
Profit
1
Software Malicioso
Luis Guillermo Castañeda Estañol
Solution Architect || Logrhythm
luis.castaneda@logrhythm.com
Material Adicional
Acceso a Material Adicional
Para acceder al material adicional de este módulo:
http://itesm.daemonlab.org
l:itesm
p: _______
Mat
eria
l Adi
cion
al
2
Índice de temas
Agenda
Introducción
-Características básicas del malware.
-Historia-Clasificación extensa.
-Ejemplos
Como trabajan?
-Conceptos básicos de arquitectura y sistema operativo.
-Conceptos de arreglos y seguridad de arquitecturas.-Conceptos internos básicos de Windows
-Métodos de escalamiento y bypass de seguridad.-Overflows (Buffer/Stack/Heap/Off-By-One)-Client Side Exploitation-Leaks-Fallos comunes de configuración
-Escalamiento, deploy y errores comunes.-Creación-Replicación-Métodos de ofuscación (Stealth and Obfuscation Methods).
Daños que un virus puede generar.
Agen
da
3
Índice de temas
Agenda
Como se analizan (Ingeniería Inversa)
-Assembly Language 101-Debugging (Depuración) y Debugging against Disassembling
(Depuración en contra de desensamble)-Cracking????....-Desensamble Fraccionado
-Problemas comunes.-Empaquetadores-Polimorfismo / Metamorfismo-Código Ofuscado (Obfuscated Code).
-Eliminación de problemas comunes.-Ejemplos.
DETECCION Y FRENADO
-Pattern Matching (Comparación de Patrones).-Model Validation (Validación de Patrones).-Heurística (Heuristics).
Agen
da
4
Características
Características básicas del código malicioso
5
-Replication
-Stealth Methods
-Activation/Trigger
-Payload
*Exploitation/Privilege
Scalation Methods
-Replicación
-Métodos de ocultamiento
-Activación
-Manifestación
*Explotación y escalamiento de
privilegios
Características
Replicación
6
Si un programa cuenta con esta característica se le considera
virus, sin importar que tenga alguna otra característica.
Características
Ocultamiento
7
Es la capacidad que tiene el código malicioso para evadir las
protecciones comunes de los sistemas operativos, detectores
de intrusos y sistemas antivirus.
-Encripcion (Polimorfismo Básico)
-Polimorfismo Avanzado o Metamorfismo
-Cambio de extensiones*
-Companion/Hidra o Multi-infector
Características
Activación
8
Es la capacidad del código malicioso para activarse,
comúnmente:
-Contador
-Doble Click
-Encender el ordenador
-Ejecutar un programa
-Etc.
Características
Manifestación
9
Comúnmente es la capacidad que nos hará notar que tenemos
código malicioso en nuestro ordenador.
-Enviar un mensaje
-Formatear el disco rígido
-Borrar información
-Modificar información
-Robar Información
-Deteriorar el rendimiento de la
infraestructura de networking
-Etc.
Historia
Pequeña historia del código malicioso
10
1983: Frederick B. Cohen – Demuestra como es posible replicar codigo,inyectarlo y fusionarlo.
1983: Ken Thompson y el laboratorio de investigacion y desarrollo de Bell Labs y ATT comienzan
a difundir el conocido juego corewars.
Años despues los primeros virus en unix del dr. Cohen comienzan a salir on the wild en
lenguajes tales como C y scripting basico.
Mas tarde XEROX tiene un leak de su tecnologia y se comienzan a difundir los famosos Worms
de xerox.
1986: Dos programadores pakistanies crean el virus ASHTAR que evolucionaria como BRAIN
para infectar disketes de 5 ¼.
Historia
Pequeña historia del código malicioso
11
1987: Es detectado el virus VIENA que tenia la capacidad de infectar binarios tales como el
fichero “command.com”, de aqui comienzan a crearse virus tales como el famosísimo Viernes 13
o Jerusalem, de aquí comienzan los primeros reales peligros como STONED en todas sus series
que tenia la capacidad de modificar la tabla de particiones.
1990: El virus ping-pong crea revuelo, posteriormente dark avenger libera la tecnologia
polimórfica, una tecnología que haría revuelo y que hasta hoy en día crea perdidas millonarias y
hace que muchos antivirus queden a merced de virus de este tipo
1996-2004: Los virus han evolucionado de manera tal que gracias a internet lo que podría ser un
experimento escolar, o un regalo para una stripper se han convertido en cataclismos graves que
hacen perder millones y millones de dólares cada año.
Clasificación
Virus
12
VIRUS:
Simplemente considerados como tal si se replican en memoria o en disco sin el consentimiento del usuario.
Algunos pueden contener un payload malicioso o no, todo depende del codificador[programador] del mismo.
Clasificación
Bombas Lógicas
13
BOMBAS LOGICAS:
Comúnmente se definen como código malicioso en espera de un trigger para detonar su
payload.
Clasificación
Macrovirus
14
MACROVIRUS:
Entran dentro de esta clasificación los códigos que se auto repliquen en memoria o en disco programados en lenguaje macro. El lenguaje macro es una característica de programas como microsoftoffice [word, excel, powerpoint, access, project, etc], Microsoft visual InterDev, etc, etc.
Clasificación
Troyanos
15
TROYANOS:
Denominados así a los programas que se ocultan dentro de otro que posiblemente necesitemos, simulando el ataque de la ciudad de micenas liberada por agamenon en contra de la ciudad de troya.
El fin de un troyano es infectar y esparcir un programa malicioso comúnmente un backdoor que viene contenido dentro de otro que comúnmente es utilizado por muchos usuarios, de ahí el termino romanización.
Clasificación
Backdoors
16
BACKDOORS:
Denominados de esta manera los códigos que contienen una puerta trasera, nos referimos a puerta trasera a una forma de evadir una medida de seguridad o “entrar por otro lado”.
Clasificación
Polimorfismo/Metamorfismo
17
POLIMORFISMO:
Polimórficos/polimorfos y Metamórficos.
Polimorfismo: Dícese del código que cambia su forma, es el código que genera una variación en los métodos de infección, propagación, programación, etc.
Metamorfismo: Dícese del código que cambia su forma de una manera aun mas extraña y “brutal”, convirtiéndose en uno “casi nuevo”. Es una de las técnicas de creación MAS difíciles, debido a su grado de mutación.
Clasificación
Boot Sector
18
VIRUS DE BOOT SECTOR:
Es el código malicioso que se aloja en algún sistema [device]de booteo, le llamamos booteo a un medio para arrancar el ordenador.
Clasificación
Worms
19
GUSANOS (Worms):
Son el código que se disipa en redes de ordenadores, como un gusano[fisico], también puede ser reconocido por sus interminables “cabezas” y persistencia.
GUSANOS DE INTERNET (I-Worms o Internet Worms):
Son aquellos que se replican por internet, su método de replicación puede ser escalamiento de privilegios, envió de correo electrónico [massive mailing], enumeración nula por protocolos [SMB,NMB], etc, etc.
MAILERS MASIVOS [Massive Mailers @mm]:
Gusanos que se su técnica de replicación es el mailing masivo.
GUSANOS DE PEER TO PEER:
Aquellos gusanos que cuentan con un método de disipación mediante programas Peer to peer, como kazaa, morpheus, audiogalaxy, etc etc.
Clasificación
Worms
20
Octopus / Pulpos:
Tipo de gusano sofisticado que se copia en diferentes partes de un “universo” (red, ordenador, array, cluster) y que opera de forma independiente para llegar a un fin común y permanecer “indetectable”.
Rabbits/Conejos:
Tipo de gusano que se copia en un cierto punto y después “brinca” a otro borrando total traza de el mismo, utilizando sus propios fines. Algunos otros los describen como programas que consumen recursos de ordenadores desmedidamente.
Clasificación
Multipartitas
21
MULTIPARTITAS (Companion/Hydras):
Estos son un caso especial, son aquellos que llevan varios distintos tipos de código [programas] que ejecutan payloads, modos de replicación, etc, etc, dentro de un mismo código [programa] que los ejecuta y reparte al ejecutarlo.
Clasificación
TSR
22
RESIDENTES EN MEMORIA (TSR):
Son aquellos que aun, que dentro del disco no se encuentre un solo rastro de infección, el mismo se encuentra activo [Terminate and Stay Resident], esto se logra bajo la interrupción [int 27h] bajo plataformas de 16 bits, dentro de plataformas de 32 bits, es común que no se encuentren estas malformaciones, aunque existen casos como i-worm.slammer, el cual solo la infección se realiza mediante un buffer overflow, después de el escalamiento de privilegios solo la infección permanece en memoria.
Clasificación
Script Malware
23
VIRUS DE SCRIPT (Script Based Viruses):
Este tipo de código necesita ser ejecutado o parseado por un interprete para poder ser ejecutado.Dentro de esta clasificación nombraremos algunos:
VBS: Programados bajo lenguaje Visual Basic Script, denominados [.vbs], son de los mas comunes dentro de los principiantes en programación de malware.PHP: Programados bajo lenguaje PHP, debido a que PHP es un lenguaje multiplataforma, existe código malicioso que comúnmente es utilizado para dispersar infecciones dentro del mismo.PERL: Programados bajo lenguaje PERL, también multiplataforma.JAR/JS: Programados en java o javascript es común ver este tipo de gusanos bajo los includes de un sitio web. HTML/JML/DHTM: Programados bajo lenguaje HTML el cual es interpretado por el browser.SQL: Programados como scripts de auto ejecución en bases de datos MySQL, MSQL, Oracle, Sybase, etc.
Clasificación
Script Malware
24
VIRUS DE SCRIPT (Continuacion):
BAT: Programados bajo lenguaje Batch o procesos por lotes de Windows.SH/CSH/TCSH/KSH: Programados bajo lenguaje Batch o por lotes de unix.ABAP: Programados sobre plataformas propietarias.INF: Scripts de instalación de Windows por instrucciones directas al kernel.
Clasificación
Plataformas Extrañas
25
Virus para plataformas Extrañas*:
Son código para plataformas y programas no muy utilizados o que no existen muchos virus para ellos.
OS/2: Programados para sistema OS/2Unix [Linux, Solaris, HP/UX, BSD, etc]: Programados para plataformas unix, en forma binaria.HLL: Bajo archivos de “ayuda” cifrados.HLP: Archivos de “ayuda” no cifrados.PALM: Programados para PALM/OS.ANSI BOMB: Bombas ansi para plataformas.Macintosh: Virus para plataformas mac.Amiga: Virus para plataforma amiga.Atari/Comodore: Virus para plataformas atari o C32/C64Autocad: Virus para plataformas Autocad.Z80: Plataformas para Z80.SAP: Virus para SAP.
Clasificación
Otros
26
Programas Peligrosos (Harmfull Code):
-Hydras-Droppers-Ciphers y empaquetadores (Zippers).-Fuzzers-Dialers-Injectors-Rootkits-Virus Generatos-Spammers-Flooders-Keyloggers
MALICIOSOS (Not Viruses):
-Spyware*-Ad-ware*-Jokes-Hoaxes-Exploits*-Joiners
Estrategias
Infección
29
• MBR
– Manipulación del Bootstrap– Cambio de entradas PT– Reemplazo pero no salvar– Salvarlo al final del disco– Marcar sectores como malos– Formatear sectores extra– Con sistema operativo cargado
• Infeccion de archivos
– Sobreescritura– Sobreescritura aleatoria– Appending (apendizar)– Prepending (prependizar)– Parasitacion– Uso de cavidades (cavity viruses) (fraccionado y no fraccionado– Compresion– Amoeba*– Decriptor embedido (embedded decryptor)– Saltos (tricky jump)
Estrategias
Infección
30
– EPO (Ocultación de Entrypoint)
• Reemplazo de Tabla de Imports (Import table replacing)
• Trazado de instrucciones (instruction tracing)
• Entrypoints desconocidos (unknown entrypoint)
• Integración de código (code integration)
– Generación de código (Code Builders)
• En memoria
– Cargado Normal (Direct-action)
– Residentes en memoria (TSR)
– Manejo de interruciones y Enganchado (Interrupt Handling and Hooking)
– Enganchado a IAT (Hook to Interrupt Address Table)
– Read Stealth
– Full Stealth
– Hardware Stealth
– Disk Cache y System Buffer
– Swapping
Clasificación
Nombramiento
Nombramiento:
Desde 1991, los miembros de CARO (Computer Antivirus Researchers Organization) designaron un nombramiento (COMPUTER MALWARE NAMING SCHEME) para su uso en antivirus
<tipo de malware>://<plataforma>/<nombredefamilia>.<nombredegrupo>.<tamañodeinfector>.<variante><devolución><modificadores>
31
Clasificación
NombramientoABAP ABAP Malware for the SAP /R3 Advanced Business Application Programming environment.
ALS ACADLispScript Malware that requires AutoCAD Lisp Interpreter.
BAT BAT Malware that requires a DOS or Windows command shell interpreter or close clone.
BeOS BeOS Requires BeOS.
Boot Boot Requires MBR and/or system boot sector of IBM PC–compatible hard drive and/or floppy. (Rarely used in practice.)
DOS DOS Infects DOS COM and/or EXE (MZ) and/or SYS format files and requires some version of MS-DOS or a closely compatible OS. (Rarely used in practice.)
EPOC EPOC Requires the EPOC OS up to version 5.
SymbOS SymbianOS Requires Symbian OS (EPOC version 6 and later).
Java Java Requires a Java run-time environment (standalone or browser-embedded).
MacOS MacOS Requires a Macintosh OS prior to OS X.
MeOS MenuetOS Requires MenuetOS.
MSIL MSIL Requires the Microsoft Intermediate Language runtime.
Mul Multi This is a pseudo-platform, and its use is reserved for a few very special cases.
PalmOS PalmOS Requires a version of PalmOS.
OS2 OS2 Requires OS/2.
32
Clasificación
NombramientoOSX OSX Requires Macintosh OS X or a subsequent, essentially similar version.
W16 Win16 Requires one of the 16-bit Windows x86 OSes. (Note: Several products use the Win prefix.)
W95 Win95 Requires Windows 9x VxD services.
W32 Win32 Requires a 32-bit Windows (Windows 9x, Me, NT, 2000, XP on x86).
W64 Win64 Requires Windows 64.
WinCE WinCE Requires WinCE.
WM WordMacro Macro malware for WordBasic as included in WinWord 6.0, Word 95, and Word for Mac 5.x.
W2M Word2Macro Macro malware for WordBasic as included in WinWord 2.0.
W97M Word97Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Word (that shipped in Word 97) or later. Changes in VBA between Word 97 and 2003 versions (inclusive) are sufficiently slight that we do not distinguish platforms even if the malware makes a version check or uses one of the few VBA features added in versions subsequent to VBA v5.0.
AM AccessMacro Macro malware for AccessBasic.
A97M Access97Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Access that shipped in Access 97 and later. As for W97M, changes in VBA versions between Access 97 and 2003 (inclusive) are insufficient to justify distinguishing the platforms.
P98M Project98Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Project that shipped in Project 98 and later. As for W97M, changes in VBA versions between Project 98 and 2003 (inclusive) are insufficient to justify distinguishing the platforms.
33
Clasificación
NombramientoV5M Visio5Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Visio that shipped in Visio 5.0 and later. As for
W97M, changes in VBA versions between Visio 5.0 and 2002 inclusive are insufficient to justify distinguishing theplatforms.
XF ExcelFormula Malware based on Excel Formula language that has shipped in Excel since the very early days.
XM ExcelMacro Macro malware for Visual Basic for Applications (VBA) v3.0 that shipped in Excel for Windows 5.0 and Excel for Mac 5.x.
X97M Excel97Macro Macro malware for Visual Basic for Applications (VBA) v5.0 for Excel that shipped in Excel 97 and later. As for W97M, changes in VBA versions between Excel 97 and 2002 (inclusive) are insufficient to justify distinguishing the platforms.
O97M Office97Macro This is a pseudo-platform name reserved for macro malware that infects across at least two applications within the Office 97 and later suites. Cross-infectors between Office applications and related products, such as Project or Visio, can also be labeled thus.
AC14M AutoCAD14Macro VBA v5.0 macro viruses for AutoCAD r14 and later. As with W97M malware, minor differences in later versions of VBA are insufficient to justify new plat form names.
ActnS ActionScript Requires the Macromedia ActionScript interpreter found in some ShockWave Flash (and possibly other) animation players.
AplS AppleScript Requires AppleScript interpreter.
APM AmiProMacro Macro malware for AmiPro.
CSC CorelScript Malware that requires the CorelScript interpreter shipped in many Corel products.
HLP WinHelpScript Requires the script interpreter of the WinHelp display engine.
INF INFScript Requires one of the Windows INF (installer) script interpreters.
34
Clasificación
NombramientoJS JScript, JavaScript Requires a JScript and/or JavaScript interpreter. Hosting does not affect the platform
designator—standalone JS malware that requires MS JS under WSH, HTML-embedded JS malware, and JS malware embedded in Windows-compiled HTML help files (.CHM) all fall under this platform type.
MIRC mIRCScript Requires the mIRC script interpreter.
MPB MapBasic Requires MapBasic of MapInfo product.
Perl Perl Requires a Perl interpreter. Hosting does not affect the platform designator—standalone Perl infectors under UNIX(-like) shells, ones that require Perl under WSH and HTML-embedded Perl malware all fall under this platform type.
PHP PHPScript Requires a PHP script interpreter.
Pirch PirchScript Requires the Pirch script interpreter.
PS PostScript Requires a PostScript interpreter.
REG Registry Requires a Windows Registry file (.REG) interpreter. (We do not distinguish .REG versions or ASCII versus Unicode.)
SH ShellScript Requires a UNIX(-like) shell interpreter. Hosting does not affect the platform name—shell malware specific to Linux, Solaris, HP-UX, or other systems, or specific to csh, ksh, bash, or other interpreters currently all fall under this platform type.
VBS VBScript, VisualBasicScript Requires a VBS interpreter. Hosting does not affect the platform designator—standalone VBS infectors that require VBS under WSH, HTML-embedded VBS malware, and malware embedded in Windows-compiled HTML help files (.CHM) all fall under this platform type.
35
Clasificación
Nombramiento
UNIX UNIX This is a common name for binary viruses on UNIX platforms. (More specific platform names are available.)
BSD BSD Used for malware specific to BSD (-derived) platforms.
Linux Linux Used for malware specific to Linux platforms and others closely based on it.
Solaris Solaris Used for Solaris-specific malware.
36
Como trabajan
Diferencias entre modo real y modo protegido-Modo Real: Las instrucciones son accedidas sin problemas en la arquitectura, se pueden realizar llamadas directas a interrupciones para manipular devices complejos, como el CMOS, el teclado, etc.
-Modo Protegido: Las instrucciones son accedidas con restricciones de seguridad, lo cual hace difícil el acceso directo a interrupciones.Las características principales de el modo protegido son:
-Paginación; Las unidades de memoria son divididas en paginas para agilizar su acceso y manipulación.
-Segmentación: Las unidades de memoria de paginación son accedidas en segmentos, esto ayuda a que las aplicaciones por diseño del procesador no se “pisen”, eso quiere decir que las aplicaciones utilizan su propia memoria para funcionar.
-Multi-tasking: Se permite correr aplicaciones múltiples en múltiples ambientes, un ejemplo muy importante es mostrar la interrupcion 27h, la cual invoca el modo TSR (Terminate and StayResident).
-Modo-virtual
37
Como trabajan
Diferencias entre modo real y modo protegido
-SMM (System Management Mode): Este modo provee al sistema operativo o kernel ejecutivo con un mecanismo transparente para la implementación de funciones nativas “platform-specific” como manejo de corriente o seguridad del sistema.
38
Como trabajan
El señor de los anillosDe ahí el procesador y el sistema operativo permutan los niveles internos de seguridad.
Llamados anillos.
The lord of the rings ☺
Ring 0
Ring 1
Ring 2
Ring 3
Ring 0: Kernel Level
Ring 1: Sub Started Kernel Level
Administrative for Shared Libs.*
Ring 2: Maximum User Level Non
Administrative Shared Libs
Used.*
Ring 3: User Land
40
Como trabajan
Memoria virtual y stack
Copyright. Mark Rusinovich. www.sysinternals.com
Virtual memory Physical Memory
42
Como trabajan
Escalamiento de privilegios
Kernel Level Ring 0
Kernel Level Ring 3
Kernel Level Ring 1*
Kernel Level Ring 2*
Advapi32.dll Comctl32.dll Gdi32.dll Kernel32.dll User32.dll Shell32.dll
Ntdll.dll Rpcrt4.dll
Irda32.dll
atapi32.dll
Sim32.dll
Icq32.exe Imtta.exe Notepad.exeWinword.exeIexplore.exe Sam.dll
Sys.com Msim.exe Microdu.exe
Virus.exe
Ejecutando
Infectando
Virus.exe
Virus.exe
Virus.exe
Virus.exe
Escalando
Virus.exe
Virus.dll
A userland para infectar mas equipos
57
Como trabajan
Métodos de escalamiento de privilegios
Buffer Overflow [Desbordamiento de Buffer]: Sobrecarga de pila generada por Emisión de números demasiado grandes que el preprocesador no puede analizar, generando el volcado de la memoria residente para uso. Es importante recalcar que puede ser utilizado para ejecución de código arbitrario en ordenadores donde es aplicado.
Format Bugs [Bugs de Formato]: Errores de impresión dentro de los cuales se puede tanto ver como manipular la memoria, así es posible cambiar el flujo de la salida de un programa y/o su ejecución.
Off By One: Manipulación de código arbitraria por un fallo de conteo en el formato de la aplicación.
58
Otros vectores de explotacion
Client side exploitation
Cualquiera de los ataques anteriores sugiere o se piensa que su principal método de ataque
puede ser utilizando un exploit en contra de un servicio”en un servidor”, pero no siempre es
así, pocas veces como administradores le damos importancia a las explotaciones “del lado
del cliente” o client-side exploitation.
Examinemos algunos casos:
-XSS Exploitation
-ActiveX Exploitation
-RealPlayer-WMP-etc Exploitation
-Flash Player Exploitation
-Several Apps (Exploitation)
59
Creación
Métodos de creación
-En su mayoría los programadores de código malicioso utilizan lenguajes de alto nivel aunque algunos de ellos se valen de lenguajes de mediano y bajo, programar buen código en la actualidad es un arte, consideramos que un código que esta bien diseñado es IMPOSIBLE de detectar, eliminar y trazar.
-En su mayoría, el programador se tiene que valer a veces de fallos de seguridad en el sistema operativo, fallos en compilación, fallos en diseño de programas a atacar, fallos en el diseño de interrupciones a memoria, fallo en su utilización y/o ingeniería social. El código “impune” o perfecto, es realmente difícil de alcanzar debido a que en su mayoría el programador recurre al sistema operativo, utiliza sus funciones, recurre al diseño del lenguaje, recurre a un sin número de problemas que aunque el código sea perfecto, siempre podrá ser detectado.
Ahora bien, quien crea los virus y porque?
60
Creación
Métodos de creaciónTipos de virus y métodos de ocultamiento y creación.
Infectores Primarios:
ELF [Infector]Common Output File [Infector]PE [Infector]COM [Infector]X [Infector] (macros, fallas y demas).
Infectores Secundarios:
Virus Dobles [Multipart] o Companion COM.Parasitarios Infectores COM.Residentes en memoria.Parasitos PE.Virus Residentes [Por usurpación arbitraria de memoria].Virus de Boot SectorVirus Infectores de Dispositivos.
65
Creación
Métodos de creación
Infectores parasitarios a SourceCode.Virus de MacroVirus Dobles o Companion [PE]Parasitación de binarios por expandimiento de memoria.Mecanismos reales de ocultamiento [STEALTH Mechanism].Polimorfismo en Código.Polimorfismo Avanzado.Encripción de código a memoria.Encripción de código a archivos para no detección.Instalación de máquinas virtuales para descripción del mismo.Esteganografía a código.Esteganografía a memoria.Segmentación de memoria.Segmentación parcial de memoria [Utilización de fallas de seguridad
66
Creación
Métodos de ocultamientoUna vez colocado, el siguiente paso es… ocultarlo
Ocultamiento de archivos
-Estricto uso de polimorfismo (No empacadores basicos UPX/FSG-Estricto uso de mecanismos e replicacion automatizada para mantener el incidente vivo.-En NTFS puede utilizar file streams para ocultar archivos (NTFS utiliza streams para manipular datos, puedeutilizar ese flujo para ocultar datos).-Mantener permisos heredados (EFS?)
Ocultamiento en memoria
-Utilización del device physicalmemory-Moverse en la memoria utilizando polimorfismo
Utilizando la red
-Comunicación cifrada (cryptoapy?)-Manejo de señales básicas (SEH)-Connect Back
67
Creación
EjemploEl polimorfismo es una buena forma de evadir antivirus.Virus polymorficos tales como methaphor (w32.simil.gen) prueba que la evolución de los virus pueden destruir los metodosanticuados de detección que comunmente utilizan los antivirus.Variaciones de w32.simil hoy en dia, no son detectadas por software antivirus.
Los mecanismos de replicacion automata son buenas formas de mantener vivos los backdoos y pueden ser utilizados paramantener las amenazas vivas en si.
ADS are a probe of the NTFS “dark side”…. Lets check the facts.Symantec Norton Antivirus do not detect ADS in filesTrendMicro OfficeScan Antivirus do not detect ADS in filesNOD32 Antivirus do not detect ADS in filesPanda Software do not detect ADS in filesClamav do not detect ADS in files.Mcafee and Kaspersky detect ADS in files.
Mantener permisos heredados de EFS (Encrypted File Systems), tambien puede hacer que algunos antivirus no detecten elsoftware para el cual se esta generando una amenaza.
68
Creación
EjemploMost Microsoft Windows Corporate Server runs on systems that hold NTFS file systems preferred for stability, security andmanageability, the worst case is that we can use Alternate Data Streaming (ADS) to hide executable code even in MacintoshHierarchical File System (MHFS), for example we can use images, music, bin´s, to hide executable code.
A basic example is:1- Hello world Program jmp @F
szDlgTitle db "NTFS FileStream Example",0szMsg db "EXAMPLE EXAMPLE EXAMPLE",0
@@:
push MB_OKpush offset szDlgTitlepush offset szMsgpush 0call MessageBox
push 0call ExitProcess
end start
@echo off
if exist test.obj del test.objif exist test.exe del test.exe
\masm32\bin\ml /c /coff /nologo test.asm\masm32\bin\Link /SUBSYSTEM:WINDOWS /MERGE:.rdata=.text test.obj > nul
dir test.*
pause
.386
.model flat, stdcalloption casemap :none
include \masm32\include\windows.incinclude \masm32\include\user32.incinclude \masm32\include\kernel32.inc
includelib \masm32\lib\user32.libincludelib \masm32\lib\kernel32.lib
.code
start:
Write
Build
Then..
69
Replicación
Métodos de replicación
Los métodos de dispersión en la actualidad son muy variados, los podemos encontrar de cualquiera de las siguientes formas:
-Ejecución de simples archivos ejecutables.
-Ejecución de simples archivos interpretados.-Correo Electrónico **
-Archivos y/o carpetas compartidas
-Fallos de seguridad **
-Explotación de memoria parcial por mal diseño de código.
-Infección de booteadores maestros en dispositivos exportables [discos duros, discos flexibles].-Infección esteganográfica por máquina virtual.-Ingeniería Social.
73