Título: [Serio] Implementar ataque MITM + SSLstrip para windows con C# y winpcap Publicado por: Kaxperday en 15 Mayo 2015, 21:27 pm 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. Título: Re: [Serio] Emular SSLstrip para windows Publicado por: kub0x en 15 Mayo 2015, 22:52 pm Supongo que la herramienta del capitán marlinspike utiliza libpcap en GNU/Linux. ¿Has probado si con Cygwin funciona? Lo más sabio sería no utilizar Windows para estas cosas, de hecho no conozco software en Win$ con el fin que propones. Supongo que utilizarás la variante ssltrip2 para hacerse cargo de HSTS.
Recomiendo las charlas de moxie a todo el mundo, uno de los titanes, porque romper PKI es de TITANES. Saludos. Título: Re: [Serio] Emular SSLstrip para windows Publicado por: Kaxperday en 16 Mayo 2015, 17:29 pm Hola Kub0x, mira he estado probando primero a recibir los paquetes con el programa C#:
Me estoy ayudando con este link: winpcap C# (https://dranaxum.wordpress.com/2010/11/20/using-winpcap-in-c/) Utiliza la librería winpcap de /system32/ para extraer las funciones que permiten extraer los paquetes de la red con facilidad, como usa más adelante en el código que está en el link. Simplemente hay que importarlas así: Código
No da error, en caso de que no estaría en ese directorio bastaría con incluirla al proyecto, que no es el caso ya que es la librería estándar "para ver paquetes de red" de windows. Tras leer y buscar, se recomienda usar esta librería antes que tratar de crear un programa que obtenga los paquetes, básicamente por el filtrado que hacen ya sus funciones de los mismos. Por lo que creo que es recomendable usarla, al código le faltan algunas funciones que "nos deja como tarea". Sin embargo, el problema de como conseguir los paquetes de red queda resuelto con la librería wpcap, y en el código ya podemos hacer uso de sus funciones. (queda saberlas llamar con los datos necesarios). Entonces tendremos acceso a los paquetes de la red, si realizamos un MITM inyectando paquetes dhcp a los usuarios de la red, winpcap nos debería de devolver sus paquetes es allí donde los modificariamos y conectariamos con el servidor (puerta de enlace). Pasaríamos los paquetes por el sslstrip, pasandolos a su puerto de escucha con la ejecución del comando para windows netsh. Poco a poco, saludos. Edito: estaría bien mirar esto (https://www.winpcap.org/docs/docs_412/html/group__wpcap__tut1.html) ante de usar winpcap. Os dejo el código que debería mostrarme las interfaces de red, los drivers: Código
Sin embargo no sale nada, ¿alguien sabe porque? Me dice que no encuentra ninguna interfaz que me asegure de que tengo winpcap instalado??, vamos a ver yo uso wpcap.dll de windows para cargar esas funciones, porque necesitaria el winpacap? y no viene intalado?, raro. Edito:Olvidad lo anterior, FUNCIONA!!!! necesitaba permisos de admin claro!!!! Ya he listado los "devices", ahora a seguir con lo demás, aunque despues de esto haré un descanso, no estuvo mal por hoy. Hola de nuevo, he conseguido listar las interfaces de red en mi caso son 4, una es la de realtek (la del wifi), es en ella donde quiero escuchar y obtener el trafico. Pero no obtengo los paquetes con éxito, ¿qué puede fallar? Lo corrí como admin y tampoco funcionaba. Código
pcap_next_ex(fp, ref hdr, ref data)) siempre devuelve 0, porque no recojo paquetes? SI FUNCIONA!!!!!! TENGO LOS PAQUETES! ERA OTRA INTERFAZ!! Hola de nuevo, ya tengo los paquetes, abri wireshark y vi que el wifi correspondia al primer servicio de windows y no al de realtek como pensaba (donde no pasaban paquetes). Este es la funcion que muestra los paquetes: Código
Ahora debería de filtrarlos ... el programa parece mostrarme todos los paquetes de la interfaz, alguien sabe como obtener solo los de un puerto?? de todas formas voy progresando gracias a los tutoriales de winpcap y un poco de google (para pasar de c++ a c#). Esto es un ejemplo de los paquetes que recojo, como estos aparecen decenas diría por segundo si produzco el trafico: Citar tamaño paquete teorico: 85 tamaño paquete practico: 85 tiempo recojer paquete (s): 1431904982 tiempo recojer paquete (us): 800752 datos del paquete: <G◄6~↔p↑<Ã' E G♫* ?◄¾´À¨☺♥Ø:ÓáÍ«☺» 3µ+♀Ó∟wôóT,Þ♂Ü∟♫õuðTûSFÊ B7wë6;~▼s8◄eò ♦àæ¦Í↨É tamaño paquete teorico: 1392 tamaño paquete practico: 1392 tiempo recojer paquete (s): 1431904982 tiempo recojer paquete (us): 883303 b}òü╬×Q024♣AÖL½TÛG<G◄6~↔p↑<Ã' E ♣b.¸ ?◄~þÀ¨☺♥Ø:ÓîÍ$☺»♣NCã ÈÓ☻ ☺ ♦CHLO↨ PAD '☺ SNI ¤☺ STK Þ☺ VER â☺ CCS ò☺ NONC↕☻ MSPC▬☻ AEAD→☻ UAID0☻ SCID@☻ TCIDD☻ PDMDH☻ ICSLL☻ PUBSl☻ SCLSp☻ KEXSt☻ COPTt☻ CCRTO☻ CGST?☻ IRTT"☻ CETV8♥ CFCW<♥ SFCW@♥ ---------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -----------------------------------------clients1.google.com<G♥ÇD↔å¾♣¥¶u♂´?ì↕½¢3 ÁÈ.CDJ1L<þ^ÒÖjQ0249YùS@÷þÉ{&éçä\qÿUY"ÖQZ¤ï,-7ªÚ <a°?«®§hBFÊ☻XÃ{L►bd AESGm Chrome/42.0.2311.1529'%/?ß¿[ãmª¥÷P\£ X509▲ DIæ♥ ¡bu¶ßÀèsë♂-äªå"çltBgÚÄ?H☺ C255'N^»8ò☺²↕GýMB'@♂{?©®yëQBIC?õ B╬éOÈ?╬-r'¶'Ü->¾2½ J?c½,'Õ↔âo~µåç'O/N♠K·▼@Ç'Oò÷Òsd©¸ƒRÈj×ùplaÓ%à}Ã/ní¥♀cÀ/♀å¤-tXË↔¥TIø6♠íu±ÍL6Þh"¨" Q<kBÚ\~$e♀w"ö'³¡",±°↕`-}♦º▼Å%<s©ÙÍÛé½Ql¬¸§Ds½1⌂?i*>á→TT?Êûä% hXO_X ::) ::) ::) Ahora a ver si alguien me ayuda me gustaría filtrarlos, luego quiero hacer ARP POISONING para obtener los paquetes de los demas ordenadores de la red, tengo que saber cuales filtrar y cuales enciar al sslstrip y hacer la inet. Poco a poco, pero con mas ayuda y codigo sería mas facil (aunque bien que aprendo asi..) no hay mal que por bien no venga, compartir es vivir!! Saludos!! Título: Re: [Serio] Implementar ataque MITM + SSLstrip para windows con C# y winpcap Publicado por: shargon en 20 Agosto 2015, 08:54 am Para leerlos entiendo que primero tendrás que leer la cabecera TCP
https://en.wikipedia.org/wiki/Transmission_Control_Protocol en el caso de que sean TCP, ahi tienes los puertos de origen y de destino Título: Re: [Serio] Implementar ataque MITM + SSLstrip para windows con C# y winpcap Publicado por: shargon en 20 Agosto 2015, 09:00 am De todas maneras creo que no vas a poder editarlos, solo verlos, corregirme si me equivoco, pero con winpcap solo podrás recibir, "si no estoy equivocado"
Ceo que winpcap solo permite ver el paquete, no interceptarlo y esperar una respuesta De todas maneras me gusta la idea de crear un sniffer que altere los paquetes en Windows, mediante plugins en c#, quizá deberías crear un proyecto en GitHub Título: Re: [Serio] Implementar ataque MITM + SSLstrip para windows con C# y winpcap Publicado por: Kaxperday en 11 Octubre 2015, 17:57 pm Hola, así es con winpcap los paquetes no se pueden modificar pero si leer. Pero cuando estas haciendo un MITM al controlar el ip fordwarding de los hosts lees los paquetes que te envían los modificas y mandas al server lo que quieras.
De esta manera se podría implementar el sslstrip facilmente, pero la idea es implementar el sslstrip2, y para eso necesitaré hacer dns spoofing, llevando a las victimas del mitm a un servidor http levantado en la maquina de atacante que haga conexion https con paginas que lo soporten y http con las demas. De esta manera evadimos todo lo que quieran poner de seguridad XD. Aunque lo jodido es como extraer el tamaño de los campos y el contenido de los dns responses, algo que me da muchos errores de momento, luego es jugar con subprocesos clientes y servidores. Saludos. |