Añadir código basura para Av

Iniciado por Distorsion, 31 Diciembre 2011, 19:08 PM

0 Miembros y 1 Visitante están viendo este tema.

Distorsion

Buenas!

Estoy con el OllyDBG empacando a mano un server de troyano a ver si encuentro una manera de eludir los AV.

Lo que hago es cifrar el código con XORs y luego añadir un código que descifre y haga un salto al entrypoit original.

Resultado: los AV no son tontos, si quito el salto a la funcion de descifrado ya no se enteran, pero al añadir el salto para descifrar el código y otro salto al entry ponit pues  saltan.


He pensado en añadir código basura que no haga nada o incluso llamar a una función sleep, aunque no se como llamar a una función, supongo que necesitare importar links a la api y creo que se complicara mucho el trabajo.

Se que esto tiene mucho del apartado Analisis y diseño de malware, pero lo que pregunto básicamente es añadir código basura que haga perder tiempo de computo a los AV y que no lleguen tan rápido a la parte del salto para detectarlo como paquer, así que creo que es una labor más de reversing.

Felices fiestas!!



.:UND3R:.

Una buena idea sería hacer una función que se encargue de cifrar una vez utilizada las instrucciones, lo único que deberías hacer entonces sería intercalar tal función (obviamente una vez ya creada).

en resumen sería descifrar y cifrar, por lo que podría ser muy útil en cuanto a instrucciones basura deberías tener espacio es algo complicado si no sabes la localización exacta de las instrucciones que son detectadas por el AV

pero podrías colocar bucles como
:L1
dec ecx
nop
nop
cmp ecx,0
jne L1

también para que no tengas problemas en cuanto a desbordamiento o pérdidas de variables, puedes usar pushad antes de cada código basura y popad después de cada código basura...

Suerte y saludos

PD: sería genial usar el arte de ASM y reversing en otras cosas pero en fin cada uno elige su destino

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

Distorsion

Gracias por las respuestas!

Lo de PUSHAD si que me puede venir bien, lo de volver a cifrar es innecesario, porque el antivirus solo escanea en disco, una vez descifrado en memoria no escanea la memoria. Lo que me detecta por heuristica es el apaño de un bucle cifrador con XOR y el salto a otra posición alejada de código, es sencillo y lo detectan como paquer.
Pero estoy en ello!

karmany


Distorsion

Mi intención no es la indetectabilidad, es hacer y aprender, es un reto.
Por otra banda ese crypter usa inyeccion con RUNPE, como todos, eso ya lo he trabajado hace unos años y tenia un cryper FUD y con unhook de APIs, no creo que me costara adaptarlo a win7 (excepto el unhook).
A parte de que eso ya lo he trabajado la inyección es carne de cañón para las heuristicas.


Por cierto .:UND3R:. , en cuanto al comentario de las artes oscuras del reversing xD, yo solo le veo utilidades maléficas xD, crackear claves y cosas por el estilo. Bien es cierto que también puedes usarlo para modificar o adaptar programas, aunque modificar colores de menús no le veo gancho xD, será por mi edad xD.
Es un buen tema de debate!

Saludos!!

karmany

Yo simplemente te he comentado el crypter porque dijiste esto para evitar la detección de los Antivirus:
-"Estoy con el OllyDBG empacando a mano un server de troyano a ver si encuentro una manera de eludir los AV."

Yo creo que el problema no es lo que quieres hacer: " añadir código basura que haga perder tiempo de cómputo a los AV", sino en esconder ese salto al OEP de otra forma o intentar ofuscar el código que es detectado.

Intenta para el salto al OEP generar varios jnz condicionales y ofuscar el salto. intenta realizar jmps condicionales e indeterminados: jnz near dword ptr ds:[eax+ebx-3]


Distorsion

Me gusta lo de los saltos condicionales!!

Thanks :)

Иōҳ

Cita de: karmany en  1 Enero 2012, 23:11 PM
Por 35$ tienes un crypter bueno:
http://rdgsoft.8k.com/Tejon.html

No había visto eso o.o, me cansé de leer todo lo que tiene o.o"

Joder..

Eres adicto a la Ing. Inversa? -> www.noxsoft.net

_Enko

Código (asm) [Seleccionar]

oep dd DIR_REAL_OEP
start:
        xor eax, eax
        test eax,eax
        mov  ecx, 25
        mov  eax, oep - 100
        jmp  dword[eax + ecx * 4]; oep - 100 + 25 * 4 = oep


tendria que ser mas que suficiente para engañar a un av.
Saludos.