Buenas, como algunos sabréis estoy tratando de implementar un MITM con SSLStrip, bueno empezar con winpcap fue fácil, era un proyecto que al principio no aspiraba a ser más que un sniffer.
Pero me he dado cuenta que winpcap se queda bastante corto, necesitamos sockets. Con winpcap puedes hacer fácilmente un escaneo de red, hacer un arp spoofing (mandar paquetes y esperar respuestas a nuestros paquetes), incluso hacer ip fordwarding modificando unos campos y reenviando al router el paquete y del router al host. Todo eso lo tengo hecho, bien.
Pero, ¿y cuando se necesita mantenimiento de la conexión?, es decir, cuando le enviamos paquetes que pueden o no llegar, ¿como hacemos el control de errores?, ¿metemos un filtro en todos los paquetes que nos diga si se ha recibido el ACK o no?..
He mirado otros programas que hacen ataques de red, como intercepter-ng, usa winpcap. He mirado si abre puertos y actua como servidor puedinedo conectar los sockets de las victimas, y no abre puertos si no me confundí.
Hacer IP fordwarding con winpcap no tiene complicacion y es eficiente, pero al hacerlo solo reenvias paquetes no hay control de los mismos, el control lo lleva la victima y el server, pero si queremos hacer ataques de red tenemos que modificar paquetes, suplantar descargas etc, y ahí el control lo llevamos nosotros de los paquetes, debemos de hacer lo mismo que el servidor, ¿pero como hacerlo sin sockets?.
Me vendrían bien unos consejos e ideas. Tengo 2 opciones ahora solo, una hacer todo con winpcap que va a quemar el ordenador, pues estaría llamando a pcap_next_ex todo el rato en muchas funciones y pcap_sendpacket()... todas estas funciones con un parametro en común (pcap_t*).
Puede funcionar, pero debería de estar muy bien programado y no sé ni si aún así sería viable.
Otra opción sería abrir un puerto en el firewall (80, 21..) se conectarían las victimas a el pensando que es del router y comenzarían el protocolo, aceptaría conexiones y mandaría sus paquetes yo actuando por cada uno de ellos, me lo descargaría todo y se lo enviaría después.
¿alguna opción más?. ¿ideas?.
Saludos y gracias.
Edito: Ahora estoy tratando de suplantar un archivo con winpcap. Cuando una victima solicite descargar un archivo con GET o POST lo detecto y trato de suplantarlo, Y ES DE LOCOS, formando los paquetes campo a campo, byte a byte.
Tengo que formar todo el paquete TCP de pies a cabeza, actuar como el servidor del archivo, pasando por todas las capas, checksums, numeros de secuencia, acks... solo por esto me pasaba a sockets, pero puede merecer la pena intentarlo, quizás los resultados sean mejores de lo esperado.