He escuchado que podemos crear paquetes ip por nuestra cuenta y enviarlos a una red o host. ¿Cómo se puede hacer esto? Explique paso a paso?
He escuchado que podemos crear paquetes ip por nuestra cuenta y enviarlos a una red o host. ¿Cómo se puede hacer esto? Explique paso a paso?
PCap la biblioteca puede usarse no solo para detectar paquetes, sino también para construir y enviar paquetes.
En el campo de la administración de redes de computadoras, pcap (captura de paquetes) consiste en una interfaz de programación de aplicaciones (API) para capturar tráfico de red. Unix-like sistemas implementan pcap en el libpcap biblioteca; Windows usa un puerto de libpcap conocido como WinPcap.
Hay un buen ejemplo :
La forma más sencilla de enviar un paquete se muestra en el siguiente código retazo. Después de abrir un adaptador, se llama a pcap_sendpacket () para enviar Un paquete hecho a mano. pcap_sendpacket () toma como argumentos un búfer Contiene los datos a enviar, la longitud del buffer y el adaptador. Eso lo enviaremos. Observe que el búfer se envía a la red como está, Sin ninguna manipulación. Esto significa que la aplicación tiene que Crea los encabezados de protocolo correctos para enviar algo. significativo.
Tenga en cuenta que usted tiene el control total. También puedes cambiar el marco de Ethernet.
#include <stdlib.h>
#include <stdio.h>
#include <pcap.h>
void main(int argc, char **argv)
{
pcap_t *fp;
char errbuf[PCAP_ERRBUF_SIZE];
u_char packet[100];
int i;
/* Check the validity of the command line */
if (argc != 2)
{
printf("usage: %s interface (e.g. 'rpcap://eth0')", argv[0]);
return;
}
/* Open the output device */
if ( (fp= pcap_open(argv[1], // name of the device
100, // portion of the packet to capture (only the first 100 bytes)
PCAP_OPENFLAG_PROMISCUOUS, // promiscuous mode
1000, // read timeout
NULL, // authentication on the remote machine
errbuf // error buffer
) ) == NULL)
{
fprintf(stderr,"\nUnable to open the adapter. %s is not supported by WinPcap\n", argv[1]);
return;
}
/* Supposing to be on ethernet, set mac destination to 1:1:1:1:1:1 */
packet[0]=1;
packet[1]=1;
packet[2]=1;
packet[3]=1;
packet[4]=1;
packet[5]=1;
/* set mac source to 2:2:2:2:2:2 */
packet[6]=2;
packet[7]=2;
packet[8]=2;
packet[9]=2;
packet[10]=2;
packet[11]=2;
/* Fill the rest of the packet */
for(i=12;i<100;i++)
{
packet[i]=i%256;
}
/* Send down the packet */
if (pcap_sendpacket(fp, packet, 100 /* size */) != 0)
{
fprintf(stderr,"\nError sending the packet: \n", pcap_geterr(fp));
return;
}
return;
}
Actualizar
Hay varios envoltorios disponibles:
Lea otras preguntas en las etiquetas ip-spoofing packet network-scanners