elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware
| | |-+  Abril negro (Moderadores: Man-In-the-Middle, WHK, fary)
| | | |-+  Proyecto Metamorph
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 4 5 6 7 8 Ir Abajo Respuesta Imprimir
Autor Tema: Proyecto Metamorph  (Leído 48,799 veces)
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Proyecto Metamorph
« Respuesta #10 en: 29 Abril 2009, 17:49 »

Finalizado Creador BD (Delphi)

El programa cuanta con una base de datos en la que están instrucciones en en asm más o menos equivalentes pasadas a opcodes, para evitar estar compilando todo el rato programé algo en delphi, consta de 2 edit's, en uno meto la instruccion en assembly y en el otro la equivalente y me guarda en un fichero los opcodes, así me ahorro tiempo y errores humanos.

Lo del metodo xor y meepa, pues permite modificar cualquier byte del archivo sin romperlo, cuando postee el source o incluso la beta lo vereis mejor.

Ahora se me presentó un problema, para aplicar el metodo xor y meepa, necesitaba cambiar el entry point del programa hacia mi código, vale, programé una función en c que lo hace, pero al hacerlo, saltan como 4/5 antivirus, sólo cambiando el entry point de un exe en vb. Entonces se me ocurrió dejar el entry point como estaba y modificar los bytes a donde apunta éste por un salto a donde quiero que redireccione y ahí se restauran esos bytes y retorna, pero cual mi sorpresa al ver que no he arreglado nada, los av siguen detectándomelo, a ver si a alguien se le ocurre algo para solucionar eso, sinó cambiaré el entry point y esos 4/5 av saltarán con cualquier ejecutable en vb que se pase por ésta tool  :-\.

Edito: Solucionado gracias al gran Shaddy  :xD.

Saludos


« Última modificación: 29 Abril 2009, 20:48 por Hacker_Zero » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Proyecto Metamorph
« Respuesta #11 en: 2 Mayo 2009, 13:08 »

Bueno, si el anterior fue un gran progreso éste es realmente sorprendente  ;D. RedirectCalls terminado para ejecutables programados en C/C++ y ASM. Aún no funciona con exes en VB ni Delphi porque éstos llaman a las apis de una forma rara diferente, pero también funcionará con éstos. Qué hace ésta función? pues mueve todas las llamadas a las apis a los huecos del exe y en su lugar pone saltos hacia esos calls, aquí una captura del olly con el stub del SecureShade programado por Kizar en C:



¿Vale, y que consigues con eso?

Pues como muchos sabrán, muchos antivirus ponen firmas en éstos sitios porque son "difíciles" de modificar, sirve para ésto:

EL ANTES

 
File Info

Report generated: 2.5.2009 at 12.45.43 (GMT 1)
File size: 4 KB
MD5 Hash: 597E73FB20D376A13CF61800F815C126
SHA1 Hash: 5D36A65B697D5E94474D8AACD2A2E05DD11CB81F
Self-Extract Archive: Nothing found
Binder Detector:  Nothing found
Detection rate: 16 on 24

Detections

a-squared - BehavesLike.Win32.ProcessHijack!IK
Avira AntiVir - TR/Drop.Small.NDH.42
Avast - Win32:Poison-IX [trj]
AVG - Dropper.Generic.ACNF
BitDefender - Trojan.Dropper.Small.NDH
ClamAV - Nothing found!
Comodo - Backdoor.Win32.Poison.~ZU    
Dr.Web - BackDoor.Bifrost.740
Ewido - Backdoor.SdBot.hnn
F-PROT 6 - W32/Backdoor2.COYS
G DATA - Win32:Poison-IX [trj]   B
IkarusT3 - BehavesLike.Win32.ProcessHijack
Kaspersky - Nothing found!
McAfee - Nothing found! 
MHR (Malware Hash Registry) - Virus Found - detect rate 11%
NOD32 v3 - Win32/IRCBot.AJR 
Norman - Nothing found!
Panda - Nothing found!
Quick Heal - Trojan.Agent.ATV
Solo Antivirus - Nothing found!
Sophos - Sus/Behav-168
TrendMicro - Nothing found!
VBA32 - Win32.IRCBot.AJR   
Virus Buster - Nothing found!

Scan report generated by 
NoVirusThanks.org


Y EL DESPUÉS

 
File Info

Report generated: 2.5.2009 at 12.49.45 (GMT 1)
File size: 4 KB
MD5 Hash: 302CC836D99E9309F57D8CC12084A17E
SHA1 Hash: 5113DDDBF338830760E8A434AFAFBE813A2F7EE9
Self-Extract Archive: Nothing found
Binder Detector:  Nothing found
Detection rate: 5 on 24

Detections

a-squared - Heuristic.LOP
Avira AntiVir - Nothing found!
Avast - Win32:Poison-IX [trj]
AVG - Nothing found!
BitDefender - Nothing found!
ClamAV - Nothing found!
Comodo - Nothing found! 
Dr.Web - Nothing found!
Ewido - Nothing found!
F-PROT 6 - Nothing found!
G DATA - Win32:Poison-IX [trj]   B
IkarusT3 - Nothing found!
Kaspersky - Nothing found!
McAfee - virus or variant W32/NGVCK.d  
MHR (Malware Hash Registry) - Nothing found!
NOD32 v3 - Nothing found! 
Norman - Nothing found!
Panda - Nothing found!
Quick Heal - Nothing found!
Solo Antivirus - Nothing found!
Sophos - Sus/Behav-168
TrendMicro - Nothing found!
VBA32 - Nothing found!   
Virus Buster - Nothing found!

Scan report generated by 
NoVirusThanks.org


De esos, a-squared me lo detecta por el cambio del entry point, mcafee se añade con un falso positivo los otros porque tienen otra firma.

Espero comentarios a ver que les parece  ;D. Ahora estoy trabajando para adaptarlo también a exes en VB y Delphi.

Saludos  ;)


« Última modificación: 2 Mayo 2009, 13:13 por Hacker_Zero » En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Karcrack


Desconectado Desconectado

Mensajes: 2.425


Se siente observado ¬¬'


Ver Perfil
Re: Proyecto Metamorph
« Respuesta #12 en: 2 Mayo 2009, 14:11 »

Me encanta ;D Es una gran innovacion no tenerlo que hacerlo a mano.. ya que suele ser una tarea ardua...

El problema es si no hay espacios vacios (muy raro) pero bueno, para eso esta el Topo (o incluso podeis agregar un pequeño tool para eso :P)

Saludos ;)
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Proyecto Metamorph
« Respuesta #13 en: 2 Mayo 2009, 14:14 »

Si, ésa es la limitación que tiene y que tendrá hasta la versión 1.0 final ya que tedría que reprogramar gran parte de lo que tengo, habrá que esperar a la 2.0 para añadir espacio libre a los ejecutables o en su defecto para los impacientes, agregarla a mano o con topo  :P.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Proyecto Metamorph
« Respuesta #14 en: 2 Mayo 2009, 14:30 »

Si, ésa es la limitación que tiene y que tendrá hasta la versión 1.0 final ya que tedría que reprogramar gran parte de lo que tengo, habrá que esperar a la 2.0 para añadir espacio libre a los ejecutables o en su defecto para los impacientes, agregarla a mano o con topo  :P.

Saludos
No seria difícil si lo haces al final de una sección. Puedo ayudarte en eso si quieres

Saludos
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Proyecto Metamorph
« Respuesta #15 en: 2 Mayo 2009, 15:01 »

La verdad sería buena cualquier ayuda y más en C/C++ ya que soy el único que está programando en eso  :xD. Lo ideal sería agrandar la sección de código y nó la última, es más complicado pero así evitamos problemas (algunos antivirus saltan al ver 2 secciones de código  :¬¬). Ahora estoy viendo tambien que por ejemplo con delphi estará difícil, apenas hay huecos  :-(. Yo pensaba hacerlo para la 2.0 pero si hay ayuda las cosas se terminan antes  :).

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Proyecto Metamorph
« Respuesta #16 en: 2 Mayo 2009, 18:10 »

solo abria que mover las demas secciones y colocar en la cabecera la nueva direccion de las secciones. Cuando termine lo que estoy haciendo, que no creo que me lleve mucho lo ago. Saludos

PD: a mi para estas cosas me gusta usar asm porque no hay que estar haciendo casting de tipos.
En línea

YST


Desconectado Desconectado

Mensajes: 966


I'm you


Ver Perfil WWW
Re: Proyecto Metamorph
« Respuesta #17 en: 2 Mayo 2009, 22:27 »

Muy buen proyecto ;) .

Como decia arkangel seria cosa de modificar el PE solamente para poner el espacio que necesites.

Saludos.
En línea



Yo le enseñe a Kayser a usar objetos en ASM
[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.081


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Proyecto Metamorph
« Respuesta #18 en: 8 Mayo 2009, 21:32 »

Bueno, me surgío un problema, en lo de alargar la sección de código, no veo que es lo que falla, los valores del pe se cambian bien, copio lo que hay despues para adelante y relleno de 0's la parte que alargué, no se si falla porque se me pasó cambiar algún valor o por que existe algún valor estático fuera del pe  :-\. Dejo el código que tengo para agrandar la sección de código, a ver si alguien ve donde puede estar el fallo:

Código
  1. HANDLE hFile=CreateFile(nFileName,GENERIC_READ+GENERIC_WRITE,FILE_SHARE_WRITE+FILE_SHARE_READ,0,OPEN_EXISTING,0,0);
  2. if(hFile == INVALID_HANDLE_VALUE)
  3. {
  4. return NULL;
  5. }
  6.  
  7. DWORD szFile=GetFileSize(hFile,0);
  8. if(szFile == INVALID_FILE_SIZE)
  9. {
  10. return NULL;
  11. }
  12.  
  13. szFile=szFile+0x200;
  14.  
  15. HANDLE hCFM=CreateFileMapping(hFile,0,PAGE_READWRITE,0,szFile,0);
  16. if(hCFM==NULL)
  17. {
  18. return NULL;
  19. }
  20.  
  21. CloseHandle(hFile);
  22.  
  23. LPSTR hMVOF=(LPSTR)malloc(szFile);
  24. hMVOF=(LPSTR)MapViewOfFile(hCFM,FILE_MAP_ALL_ACCESS,0,0,0);
  25. if(hMVOF==NULL)
  26. {
  27. return NULL;
  28. }
  29.  
  30. CloseHandle(hCFM);
  31.  
  32. PIMAGE_DOS_HEADER IDH;
  33. PIMAGE_NT_HEADERS INTH;
  34. PIMAGE_SECTION_HEADER ISH;
  35.  
  36. IDH=(PIMAGE_DOS_HEADER)&hMVOF[0];
  37. INTH=(PIMAGE_NT_HEADERS)&hMVOF[IDH->e_lfanew];
  38.  
  39. DWORD ExecutableSection=GetExecutableSection(hMVOF);
  40.  
  41. ISH=(PIMAGE_SECTION_HEADER)&hMVOF[IDH->e_lfanew+sizeof(IMAGE_NT_HEADERS)+sizeof(IMAGE_SECTION_HEADER)*ExecutableSection];
  42.  
  43. LPSTR Temp=(LPSTR)malloc(szFile-(ISH->PointerToRawData+ISH->SizeOfRawData+0x200));
  44. CopyMemory(&Temp[0],&hMVOF[ISH->PointerToRawData+ISH->SizeOfRawData],szFile-(ISH->PointerToRawData+ISH->SizeOfRawData+0x200));
  45.  
  46. CopyMemory(&hMVOF[ISH->PointerToRawData+ISH->SizeOfRawData+0x200],&Temp[0],szFile-(ISH->PointerToRawData+ISH->SizeOfRawData+0x200));
  47.  
  48. BYTE zero=0x00;
  49.  
  50. for(DWORD i=0;i<0x200;i++)
  51. {
  52. CopyMemory(&hMVOF[ISH->PointerToRawData+ISH->SizeOfRawData+i],&zero,1);
  53. }
  54.  
  55. ISH->SizeOfRawData=ISH->SizeOfRawData+0x200;
  56. ISH->Misc.VirtualSize=ISH->Misc.VirtualSize+0x200;
  57. INTH->OptionalHeader.SizeOfImage=INTH->OptionalHeader.SizeOfImage+0x200;
  58.  
  59. for(i=0;i<=INTH->FileHeader.NumberOfSections;i++)
  60. {
  61. ExecutableSection=GetExecutableSection(hMVOF);
  62. ISH=(PIMAGE_SECTION_HEADER)&hMVOF[IDH->e_lfanew+sizeof(IMAGE_NT_HEADERS)+sizeof(IMAGE_SECTION_HEADER)*(ExecutableSection+1+i)];
  63. ISH->PointerToRawData=ISH->PointerToRawData+0x200;
  64. ISH->VirtualAddress=ISH->VirtualAddress+0x200;
  65. }
  66.  
  67. return hMVOF;
  68.  
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Proyecto Metamorph
« Respuesta #19 en: 8 Mayo 2009, 21:52 »

una pregunta, ordenas los datos de las secciones. Esque el orden en el que estan en la cabecera no tiene porque ser el mismo que en el exe.


saludos
PD:Yo estabas haciendo ese code ahora en asm. ya casi esta. Lo pongo en un rato
En línea

Páginas: 1 [2] 3 4 5 6 7 8 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Proyecto en C++
Programación General
El Viejo del Baston 0 643 Último mensaje 26 Marzo 2004, 21:20
por El Viejo del Baston
PROYECTO
Diseño Gráfico
kåhjî£ 1 930 Último mensaje 30 Julio 2004, 08:00
por Morris
[#] Actualizado: Cactus Metamorph 0.2.1 (13/01/08) « 1 2 ... 9 10 »
Análisis y Diseño de Malware
Mad Antrax 97 64,658 Último mensaje 12 Mayo 2009, 09:20
por Mad Antrax
duda con Cactus metamorph
Programación Visual Basic
[SMT] 5 1,589 Último mensaje 24 Junio 2008, 22:34
por Xerok1!
Recluto traductores, para un proyecto o futuro proyecto.. Japones a español
Foro Libre
tomeu00 4 2,093 Último mensaje 5 Febrero 2010, 11:58
por YaTaMaS
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines