Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Distorsion en 31 Diciembre 2011, 19:08 pm



Título: Añadir código basura para Av
Publicado por: Distorsion en 31 Diciembre 2011, 19:08 pm
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!!




Título: Re: Añadir código basura para Av
Publicado por: .:UND3R:. en 1 Enero 2012, 00:44 am
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


Título: Re: Añadir código basura para Av
Publicado por: Distorsion en 1 Enero 2012, 19:46 pm
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!


Título: Re: Añadir código basura para Av
Publicado por: karmany en 1 Enero 2012, 23:11 pm
Por 35$ tienes un crypter bueno:
http://rdgsoft.8k.com/Tejon.html (http://rdgsoft.8k.com/Tejon.html)


Título: Re: Añadir código basura para Av
Publicado por: Distorsion en 2 Enero 2012, 06:43 am
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!!


Título: Re: Añadir código basura para Av
Publicado por: karmany en 2 Enero 2012, 11:22 am
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]



Título: Re: Añadir código basura para Av
Publicado por: Distorsion en 2 Enero 2012, 14:14 pm
Me gusta lo de los saltos condicionales!!

Thanks :)


Título: Re: Añadir código basura para Av
Publicado por: Иōҳ en 2 Enero 2012, 21:11 pm
Por 35$ tienes un crypter bueno:
http://rdgsoft.8k.com/Tejon.html (http://rdgsoft.8k.com/Tejon.html)

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

Joder..



Título: Re: Añadir código basura para Av
Publicado por: _Enko en 2 Enero 2012, 22:04 pm
Código
  1. oep dd DIR_REAL_OEP
  2. start:
  3.        xor eax, eax
  4.        test eax,eax
  5.        mov  ecx, 25
  6.        mov  eax, oep - 100
  7.        jmp  dword[eax + ecx * 4]; oep - 100 + 25 * 4 = oep
  8.  

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