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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / Re: Ayuda al programar un servidor FTP en C en: 19 Octubre 2018, 22:25 pm
La borre porque no funcionaba pero me falto borrar la paste donde se llama a la función de todas formas si sabes como hacer lo que estoy preguntando seria de mucha ayuda
2  Programación / Programación C/C++ / Re: Ayuda al programar un servidor FTP en C en: 19 Octubre 2018, 21:33 pm
Creo que falto aclarar que todo esta hecho en Linux Ubuntu
3  Programación / Programación C/C++ / Ayuda al programar un servidor FTP en C en: 19 Octubre 2018, 21:09 pm
La cosa es que programe un servidor con protocolo TPC en linux y funciona para enviar mensajes y cosas muy básicas usando el comando telnet de linux. Pero lo que quiero es poder subir archivos o descargarlos desde ese servidor tengo idea de como hacerlo, en Internet vi que podía usar Firezilla que seria la opción fácil pero la verdad quiero yo programar toda la parte del servidor si alguien me puede ayudar a poder hacer eso estaria muy agradecido. Gracias de antemano

Código
  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include <stdio.h>
  4. #include <unistd.h>
  5. #include <sys/socket.h>
  6. #include <arpa/inet.h>
  7. #include <netinet/in.h>
  8. #include <netdb.h>
  9. #include <sys/sendfile.h>               //Sirve para poder enviar archivos
  10. #include <sys/types.h>                  //Sirve para poder recivir archivos
  11. #include <linux/if_packet.h>
  12. #include <sys/ioctl.h>                  // Estas 2 librerias son para poder saber algunos datos sobre el
  13. #include <net/if.h>                     // Cliente en cuention
  14.  
  15. #define BUFFSIZE 1
  16. #define ERROR -1
  17. #define BUFFERSIZE 512
  18.  
  19. // Funciones //
  20.  
  21. int login(int socket_cliente);
  22. void direccip(int socket_cliente, struct sockaddr_in addr);
  23. void salir(int socket_servidor, int socket_cliente);
  24. int intentos = 0;
  25.  
  26. int main(){
  27.  
  28.    int socket_servidor;            //Socket del servidor para escuchar mensajes
  29.    int socket_cliente;             //Socket del cliente para enviar mesajes
  30.    int puerto = 8081;              //Numero de puerto en /etc/service
  31.    char BUFFER[BUFFERSIZE];        //Mensaje para usar los comandos
  32.    FILE * archivo;                 //Archivo sin formato
  33.  
  34.    socket_servidor = socket(AF_INET, SOCK_STREAM, 0);
  35.    socklen_t longc;
  36.  
  37.   // Declaracion de las escructuras;
  38.    struct sockaddr_in servidor, cliente;                   //Creamos las estructuras del cliente y servidor al mismo tiempo
  39.    bzero((char *)&servidor, sizeof(servidor));             //Primero llenamos de 0's la struct
  40.    servidor.sin_family = AF_INET;                          //Asiganamos la estructura
  41.    servidor.sin_port = htons(puerto);                      //Indicamos el puerto
  42.    servidor.sin_addr.s_addr = INADDR_ANY;                  //Esta macro especifica nuestra direccion
  43.  
  44.    if(bind(socket_servidor, (struct sockaddr *)&servidor, sizeof(servidor)) < 0){ //asignamos un puerto al socket
  45.        printf("Error al asociar el puerto a la conexion\n");
  46.        return 1;
  47.    }
  48.  
  49.  
  50.    listen(socket_servidor,3);                              //Escuchamos por este puero maximo 2 clientes distintos
  51.    while(free){
  52.        intentos = 0;
  53.        printf("Escuchando en el puerto %d\n", ntohs(servidor.sin_port));
  54.        longc = sizeof(cliente);                                //Asignamos el tamano de la estructura a esta variable
  55.        socket_cliente = accept(socket_servidor, (struct sockaddr *)&cliente, &longc); // Esperamos una conexion
  56.        if(socket_cliente == -1){
  57.            printf("Error en al conexion\n");
  58.         return 1;
  59.        }
  60.        printf("Conectando con %s:%d\n",inet_ntoa(cliente.sin_addr),htons(cliente.sin_port));
  61.  
  62.    //Login con el servidor
  63.  
  64.        int conexion = login(socket_cliente);
  65.        printf("\n");
  66.        if(conexion == 12){
  67.            while(free){
  68.                bzero(BUFFER, BUFFERSIZE);
  69.                recv(socket_cliente,BUFFER,50,0);
  70.                if(strncmp(BUFFER,"IP",2) == 0){
  71.                    direccip(socket_cliente, cliente);
  72.                }
  73.                if(strncmp(BUFFER,"EXIT", 4) == 0){
  74.                    salir(socket_servidor, socket_cliente);
  75.                }
  76.            }
  77.        }
  78.    }
  79. }
  80. int login(int socket_cliente){
  81.  
  82.    char user[8];
  83.    char pass[8];
  84.  
  85.    if(intentos == 3){
  86.        close(socket_cliente);
  87.        return 0;
  88.    }
  89.  
  90.    memset(user,0 , 8);
  91.    memset(pass,0 , 8);
  92.    printf("%i",intentos );
  93.    printf("\n");
  94.  
  95.  
  96.    send(socket_cliente,"Usuario: ",10,0);
  97.    read(socket_cliente,user,9);
  98.    send(socket_cliente, "Contrasena: ", 12, 0);
  99.    read(socket_cliente, pass, 8);
  100.  
  101.    if(strncmp(user, "root",4) == 0){
  102.        if(strncmp(pass, "root",4) == 0){
  103.            send(socket_cliente,"Bienvenido\n",12,0);
  104.        }else{
  105.            send(socket_cliente,"ERROR\n",7,0);
  106.            intentos = intentos + 1;
  107.            login(socket_cliente);
  108.        }
  109.    }else{
  110.        send(socket_cliente,"ERROR\n",7,0);
  111.        intentos = intentos + 1;
  112.        login(socket_cliente);
  113.    }
  114. }
  115.  
  116. void direccip(int socket_cliente, struct sockaddr_in addr){
  117.    write(socket_cliente, "Tu eres: ",9);
  118.    write(socket_cliente, inet_ntoa(addr.sin_addr), 16);
  119.    write(socket_cliente,"\n",2);
  120. }
  121.  
  122. void salir(int socket_servidor, int socket_cliente){
  123.    write(socket_cliente, "ADIOS ;)\n", 10);
  124.    close(socket_cliente);
  125. }
4  Programación / Programación C/C++ / Re: Como hacer un programa para hacer fuerza bruta no diccionarios en: 15 Junio 2018, 15:10 pm
Y la página web esa no tendrá una protección contra eso, tipo deshabilitar la cuenta después de un número de intentos?
no tiene límite de intentos probé poniendo palabras al azar y aun me dejaba seguir ingresando datos
5  Programación / Programación C/C++ / Re: Ayuda con juego de adivinar palabras en: 15 Junio 2018, 05:45 am
El problema es que te faltaban librerías <windows.h> y <stdlib.h> la primera para poder usar el "cls"y la otra para los números aleatorio y use void gotoxy(int x, int y) para otorgar coordenadas a la parte donde ingresas las letras y asi poder sobre escribir en la misma posición y se viera como si se borrara y use los system("cls") para borrar el monito de palo mostrar el siguiente.

No se si me explique bien pero igual te dejo el código "arreglado"

Código
  1. #include <windows.h>
  2. #include <stdlib.h>
  3. #include <iostream>
  4. #include <string.h>
  5. #include <time.h>
  6.  
  7. using namespace std;
  8.  
  9. void inicio();
  10. void primer_error();
  11. void segundo_error();
  12. void tercer_error();
  13. void cuarto_error();
  14. void quinto_error();
  15. void jugar();
  16. void rellenar(string n);
  17. void intentos(int intento);
  18.  
  19. void gotoxy(int x,int y){
  20. HANDLE hcon;
  21. hcon = GetStdHandle(STD_OUTPUT_HANDLE);
  22.  
  23. COORD pos;
  24. pos.X = x;
  25. pos.Y = y;
  26. SetConsoleCursorPosition(hcon,pos);
  27. }
  28.  
  29. int main(){
  30. int opcion;
  31. srand(time(NULL));
  32. do{
  33. cout << "1. JUGAR" << endl;
  34. cout << "2. SALIR" << endl;
  35. cin >> opcion;
  36. system("cls");
  37. switch(opcion){
  38. case 1: jugar(); break;
  39. case 2: cout << "HASTA LUEGO" << endl; break;
  40. default: cout << "OPCION INCORRECTA, Intente de nuevo" << endl;
  41. }
  42. }while(opcion!=2);
  43. system("pause");
  44. return 0;
  45. }
  46.  
  47. void inicio()
  48. {
  49. cout << "**********" << endl;
  50. cout << "*           " << endl;
  51. cout << "*           " << endl;
  52. cout << "*           " << endl;
  53. cout << "*           " << endl;
  54. cout << "*           " << endl;
  55. cout << "*           " << endl;
  56. }
  57.  
  58. void primer_error()
  59. {
  60. system("cls");
  61. cout << "**********" << endl;
  62. cout << "*        |  " << endl;
  63. cout << "*           " << endl;
  64. cout << "*           " << endl;
  65. cout << "*           " << endl;
  66. cout << "*           " << endl;
  67. cout << "*           " << endl;
  68. }
  69.  
  70. void segundo_error()
  71. {
  72. system("cls");
  73. cout << "**********" << endl;
  74. cout << "*        |  " << endl;
  75. cout << "*        O  " << endl;
  76. cout << "*           " << endl;
  77. cout << "*           " << endl;
  78. cout << "*           " << endl;
  79. cout << "*           " << endl;
  80. }
  81.  
  82. void tercer_error()
  83. {
  84. system("cls");
  85. cout << "**********" << endl;
  86. cout << "*        |  " << endl;
  87. cout << "*        O  " << endl;
  88. cout << "*       /|\\" << endl;
  89. cout << "*           " << endl;
  90. cout << "*           " << endl;
  91. cout << "*           " << endl;
  92. }
  93.  
  94. void cuarto_error()
  95. {
  96. system("cls");
  97. cout << "**********" << endl;
  98. cout << "*        |  " << endl;
  99. cout << "*        O  " << endl;
  100. cout << "*       /|\\" << endl;
  101. cout << "*        A  " << endl;
  102. cout << "*       / \\" << endl;
  103. cout << "*           " << endl;
  104. }
  105.  
  106. void quinto_error()
  107. {
  108. system("cls");
  109. cout << "**********   " << endl;
  110. cout << "*        |   " << endl;
  111. cout << "*        O   " << endl;
  112. cout << "*       /|\\ " << endl;
  113. cout << "*        A   " << endl;
  114. cout << "*       / \\ " << endl;
  115. cout << "*            " << endl;
  116. cout << "     PERDISTE" << endl;
  117. }
  118.  
  119. void jugar()
  120. {
  121. int aleatorio;
  122. string a="OSO", b="PAYASO", c="CUADERNO";
  123.   aleatorio=rand()%3+1;
  124. switch(aleatorio){
  125. case 1: rellenar(a); break;
  126. case 2: rellenar(b); break;
  127. case 3: rellenar(c); break;
  128. }
  129. }
  130.  
  131. void rellenar(string n)
  132. {
  133. int contador=0, aux=0, aux2, MAX=n.length();
  134. char letra, contenedor[MAX];
  135. for(int i=0;i<MAX;i++){
  136. contenedor[i]='_';
  137. }
  138. inicio();
  139. while(contador<5){
  140. aux2=0;
  141. for(int j=0;j<MAX;j++){
  142. cout << contenedor[j] << " ";
  143. }
  144. gotoxy(0,8);
  145. cout << endl;
  146. cout << "Ingrese letra: ";
  147. cin >> letra;
  148. for(int k=0;k<MAX;k++){
  149. if(letra==n[k] && contenedor[k]=='_'){
  150. contenedor[k]=letra;
  151. aux++;
  152. break;
  153. }
  154. else{
  155. aux2++;
  156. }
  157. }
  158. if(aux==MAX){
  159. cout << "GANASTE! La palabra oculta es: " << n << endl;
  160. break;
  161. }
  162. if(aux2==MAX){
  163. contador++;
  164. intentos(contador);
  165. }
  166. }
  167. }
  168.  
  169. void intentos(int intento)
  170. {
  171. switch(intento){
  172. case 1: primer_error(); break;
  173. case 2: segundo_error(); break;
  174. case 3: tercer_error(); break;
  175. case 4: cuarto_error(); break;
  176. case 5: quinto_error(); break;
  177. }
  178. }
  179.  
6  Seguridad Informática / Hacking / Re: ¿Como hacer un ataque de fuerza bruta si el inicio de sesion es limitado? en: 15 Junio 2018, 05:22 am
Supongo que cambiando tu ip cada n cantidad de intentos (depende la cantidad de intentos que te de la pagina supongo) y la verdad no tengo idea si se puede cambiar tantas veces en poco tiempo para que sea util
7  Programación / Programación C/C++ / Como hacer un programa para hacer fuerza bruta no diccionarios en: 15 Junio 2018, 05:05 am
Hola la descubrí que en mi colegio las credenciales para ingresar a la pagina para ver las notas usa la fecha de nacimiento como contraseña y usuario y entonces hice un programa para hacer el diccionario en un txt dejare el codigo(es útil si solo sabes el ano de la otra persona como es mi caso)
Código:
#include <iostream>
#include <stdlib.h>
#include <windows.h>
#include <fstream>
using namespace std;
int dia = 0;
int mes = 1;
int ano = 1971; //EDITA ESTA VARIABLE SI ES NECESARIO
void file(){
ofstream dic;
string nombrearchivo;
cout<<"nombre del archivo + txt?"<<endl;
getline(cin,nombrearchivo);
dic.open(nombrearchivo.c_str(),ios::out);
if(dic.fail()){
cout<<"No se puedo abrir el archivo";
exit(1);
}
for(int i = 1;i<365;i=i+1){
dia = dia + 1;
if(dia == 31){
mes = mes + 1;
dia = 1;
}
if(dia < 10 || mes < 10){
if(mes < 10 && dia < 10 ){
dic<<"0"<<dia<<"0"<<mes<<ano<<endl;
}
}else{
dic<<dia<<mes<<ano<<endl;
}
}
}
void creacion(){
for(int i = 1;i<365;i=i+1){
dia = dia + 1;
if(dia == 31){
mes = mes + 1;
dia = 1;
}
if(dia < 10 || mes < 10){
if(mes < 10 && dia < 10 ){
Sleep(20);
cout<<"0"<<dia<<"0"<<mes<<ano<<endl;
}
}else{
Sleep(20);
cout<<dia<<mes<<ano<<endl;
}
}
}
int main(){
file();
creacion();
system ("pause");
return 0;
}

Bueno la cosa es que tengo el diccionario pero necesito hacer otro programa para utilizarlo osea que interactue con al pagina web. Si me pueden orientar un poco para poder hacerlo y no tener que poner todas las contraseñas yo mismo gracias de antemano
8  Programación / Programación C/C++ / Re: Como usar comandos de MSDOS en c++ en: 17 Mayo 2018, 21:23 pm
Osea yo sabia que MSDOS era un sistema operativo y por algún lado leí que la consola de win usa los comandos de MSDOS por eso le dije de esa manera aunque no se si sea correcto. De todas formas gracias
9  Programación / Programación C/C++ / Como usar comandos de MSDOS en c++ en: 17 Mayo 2018, 05:19 am
Hace unos meses publique como podia hacer un backdoor y me dijieron que tenia que aprender a programar en c++ y e leido unos cuantos libros visto videos etc... y vi un video de como ejecutar comandos de MSDOS pero no entendí mucho, quería saber si alguien me puede ayudar diciéndome alguna pagina, libro y/o video, me ayudaría bastante
10  Seguridad Informática / Análisis y Diseño de Malware / Re: Como podria hacer un backdoor en: 4 Marzo 2018, 23:37 pm
Ya me explicaron como hacer lo que decia y estoy leyendo un libro de programacion en c y ademas descarge otros mas de c++ y otros temas los cuales tengo que saber igual muchas gracias.
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines