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ú

Mensajes - soyloqbuskas

#61
Programación C/C++ / Re: funcion getPayloadTcp() en C
29 Septiembre 2012, 22:50 PM
Uuuups! vaya fallo.

otra cosa mas....
la variable buffer es un puntero a un malloc(). ¿Como puedo imprimir el contenido del malloc?

ejemplo:


int data_size=0;
char * buffer=(char *)malloc(65536);
data_size = recvfrom(sock_raw , buffer , 65536 , 0 , &saddr , (socklen_t*)&saddr_size);
printf("data_size: %d\n", data_size);
printf("strlen: %d\n",strlen(buffer));
printf("sizeof: %d\n",sizeof(buffer)); // sizeof strlen y datasize no son iguales....por que?
printf("buffer: \n%s\n", buffer); //aqui me imprime el puntero buffer, pero no el contenido del malloc

#62
Seguridad / Re: Protegerse de sniffers en red local
29 Septiembre 2012, 20:58 PM
¡Buenas chatarrero!

Si estas usando wifi, no puedes protegerte ya que todos los que estan a tu alrededor estan recibiendo las ondas wifi te tu PC y por tanto cualquiera puede poner un sniffer y capturar tus paquetes porque todos estais en un MITM.

Si estas usando ethernet y tienes conexion directa con el router, para que alguien este sniffeando tus paqutes, primero tiene que hacer alguna tecnica de MITM (Main In The Middle). Esto se suele hacer con un arp-poison (aunque hay mas tecnicas). Asi que para detectar un arp-poison puedes abrir un sniffer como wireshark y ver si estas recibiendo muchas tramas arp muy rapido, si es asi, entonces alguien te esta haciendo un arp-poison para poder sniffear tus paquetes.

Tambien creo que con nmap hay un tipo de escaneo que te permite ver si una tarjeta de red esta en modo monitor para sniffear, asi que puedes hacer ese escaneo con la ip que crees que te espia, y si decteta que esta en modo monitor, entonces es posible que te este espiando.

Un saludo.
#63
Programación C/C++ / Re: funcion getPayloadTcp() en C
29 Septiembre 2012, 18:32 PM
¡Buenas 0xDani !

He probado con un malloc y diclarandome la variable datos como un array de caracteres, y de ambas formas no me da fallo de segmentacion. El tema esta en que la variable datos se queda vacia, cuando deberia contener datos de la capa de aplicacion.


char* getPayloadTcp(char* buffer){
        int i=0;
        int f=0;
        int longitud=sizeof((char*)buffer); //tamaño total del paquete (tambien he probado con strlen(buffer))

        struct iphdr *iph = (struct iphdr *)(buffer  + sizeof(struct ethhdr));
        int iphdrlen = iph->ihl*4;  //tamaño de la cabecera ip
        int ethhdrlen= sizeof(struct ethhdr); //tamaño de la cabecera ethernet
        int tcphdrlen= sizeof(struct tcphdr); //tamaño de la cabecera tcp
        int totalhdrlen=(tcphdrlen + iphdrlen + ethhdrlen); //suma de todas las cabeceras
        char  *datos=(char *) malloc(65565);
        printf("cabecera: %d\npaquete: %d\n",totalhdrlen, longitud);
        for(f=totalhdrlen;f<longitud;f++){
                datos[i]=buffer[f];
                i++;
        }
        datos[i]='\0';
        printf("datos: %s\n", datos);

        return datos;
}


He hecho unos printf() de la variable totalhdrlen y de longitud y el resultado es 54 y 4 respectivamente....Cuando en realidad longitud deberia ser siempre mayor que totalhdrlen...algo debo estar haciendo mal...
#64
Programación C/C++ / Re: funcion getPayloadTcp() en C
28 Septiembre 2012, 01:05 AM
Estoy probando ha hacer lo siguiente, pero no me sale bien....me da fallo de segmentacion



char* getPayloadTcp(char* buffer){
       int i=0;
       int f=0;
       int longitud=strlen((char*)buffer); //tamaño total del paquete

       struct iphdr *iph = (struct iphdr *)(buffer  + sizeof(struct ethhdr));
       int iphdrlen = iph->ihl*4;  //tamaño de la cabecera ip
       int ethhdrlen= sizeof(struct ethhdr); //tamaño de la cabecera ethernet
       int tcphdrlen= sizeof(struct tcphdr); //tamaño de la cabecera tcp
       int totalhdrlen=(tcphdrlen + iphdrlen + ethhdrlen); //suma de todas las cabeceras
       char * datos="";

       for(f=totalhdrlen;f<longitud;f++){  
               datos[i]=buffer[f];
               i++;
       }
       datos[i]='\0';
       printf("datos: %s\n", datos);
     
       return datos;
}
#65
Programación C/C++ / funcion getPayloadTcp() en C
28 Septiembre 2012, 00:14 AM
¡Buenas a todos!

Necesito hacer una funcion que me permita sacar el payload (campo de datos) de un paquete TCP.
La funcion seria asi....

char * getPayloadTcp(char* buffer){
     
     //separar la cabecera del campo de datos....
     //¿como puedo hacer esto? no quiero codigo, solo el nombre de funciones que me permita hacerlo


    return payload;
}


Estoy trabajando con C en linux.

Un saludo.
#66
¡Buenas a todos!

Tengo un problemilla con una asignacion.

char * pathGroup[8]; // variable global

int funcion(char * paths[8]){

     pathGroup=paths; // el error esta aqui.
 
     // resto del codigo.................

     return 0;
}


Citar
Y el error reportado por gcc es:
     incompatible types when assigning to type 'char *[8]' from type 'char **

¿Como puedo hacer esa asignacion correctamente?
#67
Dudas Generales / Re: Autor y herramientas hacker
24 Septiembre 2012, 08:11 AM
Y sobre FOCA ¿que opinan?, los autores han hecho un herramienta un tanto peligrosa y ellos se han presentado al mundo como si nada...Quizas el anonimato es mas para las personas que utilizan las herramientas hacker que para los programadores de estas herramientas, al fin y al cabo, programando una herramienta hacker demuestras tus dotes como informatico. En cambio si eres un usuario de dicha herramienta eso si que ya puede ser un problema y entiendo que el usuario prefiera mantenerse en el anonimato. Pero creo que los programadores no tienen problema, si fuera un problema programar aplicaciones hacker, no habria paginas (como FOCA) para descargar dichas herramientas ¿no?

¿ustedes que opninan?
#68
Programación C/C++ / Re: substring en array char
21 Septiembre 2012, 19:51 PM
¡AL FIN! jajaja

Ya tengo el codigo, no me puedo creer que me haya atascado tanto en un funcion tan simple jaja


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

int main(){

       unsigned char * cadena="aaaa\nbbbb\nccccc1\ndddddd\nccccc2\nffff\nccccc3";

       char* buscar="ccc";

       char aux[50]="";  //array donde llenaremos con la cadena troceada
       char* result="";
       int i=0;
       int j=0;
       int longitud=strlen((char*)cadena);

       for(i=0;i<longitud;i++){
               if(cadena[i]!='\n'){  // si no hay \n  sigue llenando aux.
                       aux[j]=cadena[i];
                       j++;
               }
               else{   // hay un \n, busca en el interior de aux
                       aux[j]='\0';
                       result=strstr((char*)aux,buscar);
                       if(result){
                               printf("Encontrado: %s\n",result);  //si encuentras imprime
                               // return 0;  Si quieres que solo imprima el primero descomenta la linea.
                        }
                       j=0;
               }
       }

       //ahora hay que imprimir el ultimo porque el bucle solo imprime hasta que encuentra un \n
       result=strstr((char*)aux,buscar);
       if(result) printf("Encontrado: %s\n",result);

       return 0;
}


Muchas gracias a todos por vuestra ayuda, un saludo.
#69
Programación C/C++ / Re: substring en array char
21 Septiembre 2012, 19:15 PM
¡Buenas a todos!

Xiruko, andamos cerca pero no damos en el clavo! jaja a ver si nos sale :-)

Citarno imprimira todo, imprimira desde el primer "bien" hasta el final de la cadena

Efectivamente, pero yo no quiero que me imprima hasta el final de la cadena quiero que imprima desde que encuentra la cadena hasta el primer \n.

Ejemplo:

Citar
unsigned char* cadena="hola\nque tal\nbien\n"
Resultado:
que tal
/******************************************/
unsigned char* cadena="hola\nque tal\nbien\n¿que haces hoy?"
Resultado:
que tal
que haces hoy?

Para conseguir estos resultados 1º hacer un bucle que me trocee la cadena usando como delimitador el \n y me lo guarde en una variable y luego a esa variable hacer el strstr().

Gracias a todos por las respuestas, un saludo.
#70
Programación C/C++ / Re: substring en array char
21 Septiembre 2012, 05:09 AM
Ya pero si lees bien lo que pone, dice que localiza la primera aparicion solamente, a ti te lo muestra las 2 veces porque imprime hasta el caracter nulo. De hecho si pruebas a cambiar tu variable texto por esta:
texto[]="hola que tal\nbien y tu\ngracias\n¿Por que imprime el gracias y esto?"

Veras como lo imprime todo...