domingo, 20 de marzo de 2016

Jugar con el espacio-TIEMPO es cosa de niños

Estoy orgulloso de poder mostraros por fin, uno de los temas que llevo investigando por mi cuenta, totalmente solo, un trabajo que me ha llevado mis disgustos, enfados conmigo mismo, romper papeles, cuadrar lo que parece imposible de cuadrar al menos para mí-. Pero finalmente, tengo gran parte del trabajo que estoy realizando terminado, por eso; voy a proceder a explicaros qué es lo que se me ha ocurrido en estos meses y cuáles son mis teorías.


Que no os engañe el título, no es algo trivial, pero si que son posibilidades de ataques que se me han ido ocurriendo. Dicho esto, allá vamos.

Sabéis que me encantan los diferentes vectores de ataque que hay posibles a redes de datos con los man in the middle, y como he dicho, estoy bastante  orgulloso de que se me haya ocurrido lo que voy a narrar en las siguientes líneas, sobre todo, si se trata de ataques a HTTPs.
Totalmente de acuerdo que esta frase

Y es que todo empezó cuando leí el trabajo que estaba haciendo José Selvi sobre atacar a HSTS, así que cuando terminé de leerlo, me puse a investigar yo también a ver si llegaba a la misma conclusión yo solo, y empecé a darle vueltas a la cabeza, me quedé por las noches-cuando terminaba de estudiar- investigando, pensando y apuntando sobre esto, despertándome en mitad de la noche porque se me había ocurrido algo nuevo, y como tenía estos apuntes al lado mía siempre, apuntaba lo que se me ocurría.


Y es que desde que se empezó a usar HSTS, esos ataques de Man In The Middle que se hacía, como el que hice a rafa1, eran imposibles de hacer ya, lo que está bien bien, ya que se mejora la seguridad de los usuarios, pero "mal", ya que no podía mostrar cómo se podría robar un usuario y contraseña realizando un Man In The Middle de ese tipo. Pero leyendo el trabajo de José Selvi, se abría otras opciones de ataque.

¿Qué es HSTS?

Es un estándar para que los sitios webs estén seguros de que navegan en HTPPS usando TLS/SSL. Pero no solo las webs navegaran en HTTPs, también los subdominios, es decir, que tanto en https://facebook.com como en https://blog.facebook.com, como podéis ver, se va a navegar en HTTPs. Es por esto, que este estándar se está empezando a usar bastante, y por eso, aún me llega gente diciendo que ha estado probando realizar un Man in The Middle y no le salía, ya que el navegador, pase lo que pase, forzará la conexión mediante HTTPs.

Además hay tres temas que hay que conocer de HSTS, y esos temas son los max-age, que es el tiempo-clave de todo- en segundos de la vida de HSTS; los Include Subdomains, que como ya he hecho alusión anteriormente, a partir de lo que es el "dominio principal" hacia abajo se hará con TLS/SSL, y finalmente, los preloads.

Ejemplo:

Dominio: www.myweb.com
max-age:666666666 segundos (es el número de la bestia, ya sabéis, bestia->Diablo->Malvado)

Y estos valores, se pueden consultar de manera muy sencilla usando Kali Linux, o simplemente haciendo la query a Google Chrome.



Vectores de Ataque

Uno-el usado por José Selvi- es el de hacer caducar los HSTS en el navegador de la víctima, con lo que se haría la petición en HTTP.

"iptables -t nat -A Prerouting -i [Interfaz red] -p udp -s [red origen] ! -d [red destino] -dport 123 -j redirect -to-port-123"

Aunque antes de seguir, es necesario que os deje cómo es un diagrama de conexión en SSL/TLS.



Pero el navegador ha de verificar la validez del certificado emitido por una web, en este caso sería Facebook.

Integridad del certificado, es la verificación de que el certificado emitido está íntegro, realizando dicha verificación, descifrando la firma digital mediante la clave pública de la CA, comparando después, una firma del certificado emitida en ese momento.

Vigencia del certificado, es la comprobación de la fecha emitida y la fecha en la que caduca.

Verifica emisor del certificado, usa una lista de certificado raíz, que están almacenados en tu ordenador-y que puedes comprobar- en las cuales contienen la clave pública de las CAs de confianza.

El caso es que con un Delorean, gracias a un fallo en NTP-ahora explico lo que es- se podría manipular la fecha del sistema de la víctima y así hacer que caduquen los certificados de las HSTS, es decir, hacer que la víctima "viaje al futuro", sí,  a lo "Back To The Future", el bueno de Doc está flipando.


Pero ¿Qué es NTP?

Las siglas vienen de Network Time Protocol, y es que es el protocolo de Internet-muy utilizado- para transferir el tiempo a través de una red, y es lo que hace que tu sistema operativo se configure la hora quasi que por magia, Uo Uo Uo It's Magic.

Ahora, vamos con una pequeña demostración de lo que hizo José Selvi y su Delorean, que por cierto, lo tenéis en GitHub



Y es que una vez configurado el ataque, ya solo es meterse en un agujero de gusano y hacer que la víctima viaje al futuro. Por eso, os voy a pedir que os fijéis bien en la hora del equipo de la víctima, que os fijéis bien en que son las 08:50.



Sólo es dejar correr a la víctima y que llegue al futuro para que así le caduque los certificados. Como veis ahora el equipo tiene que son las 07:51 del 1 de enero -las capturas están tomadas hace tiempo-.



Esto haría que, como veis, a la víctima le caduque los certificados y ya vaya en HTTP, para que así, sus credenciales ya no vayan cifradas, algo tan sencillo como hacer que el max-age llegue a 0; por ejemplo, si el max-age, son 6 millones de segundos, nosotros lo pasamos a años, horas, etc. y así sabemos a dónde tenemos que mandar a la víctima.

Pero ¿Quién hace que mi sistema operativo se configure con este protocolo? 

Aquí está la parte que yo me pregunté cuando vi todo esto, y que como no lo sabía, me tuve que informar.

Y es que todo esto funciona gracias a un reloj atómico, el cual funciona mediante una señal constante emitida por energía de los electrones de un átomo, y para estos relojes, 1 segundo, es igual a 9192631770 oscilaciones entre el isótopo 133 de Cesio. Además, estos relojes, tienen como base, el tiempo de rotación de la Tierra sobre su propio eje, y siguen la relación de que 1 segundo es 1/86400 de esa duración.

Pero como deberíais saber, a estos relojes se les suma unos Leap Seconds, ya que la Tierra no es una esfera exacta y "se siente atraída" por la Luna hace que haya una pequeña diferencia entre la hora de los relojes atómicos y la Hora perpetúa. Y es que el tiempo de rotación ha variado en -2 milisegundos en la última década, pero es que hace 500 millones de años, la Tierra tardaba en dar una vuelta sobre su eje, 22 horas, es decir, que siguiendo esa relación, dentro de 500 millones de años-si sigue con vida la Tierra- tardará 26 horas,pero dentro de 250 millones de años, 25, y dentro de 125 millones de años, 24 horas y 30 minutos, y dentro de 62.5 millones de años, 24 horas y 15 minutos ¿lo vais pillando? Hasta que haciéndolo así a lo bestia, llegas a que la Tierra, mañana tardará más tiempo en rotar que hoy, cierto que es una diferencia que apenas se nota, pero es una diferencia que se puede hacer importante, con lo que nos damos cuenta, que el tiempo, es importante.

En vistas a esto y aprovechando que me gusta la física, he decidido buscar una buena explicación a este fenómeno, y es cuando me he tirado por las noches, investigando y aplicando las matemáticas y la física a la Informática, ya que tanto las matemáticas, coo la física, explican el mundo, y por eso, hay que aplicarlo aquí.

Sería erróneo quedarnos solamente con el movimiento de rotación de la Tierra, ya que realiza otro movimiento, bastante importante y que es lo que lo puede explicar todo, y es que no es otro que el movimiento de traslación.

Y es que aquí, debemos usar la relatividad, le pese a quien le pese, así que he estado varios meses a ver si la sacaba por mí mismo, y finalmente, lo conseguí, llegué a los mismos puntos-básicos- que llegó en su día Albert Einstein. Así que os dejo las anotaciones a limpio.


Con esas fórmulas bastantes fáciles de obtener, solo hay que ponerse un ejemplo de una nave que viaja a Júpiter con un piloto a bordo, con lo que si te preguntas cuánto tiempo pasa para el piloto y para un hombre que ve la nave volar durante 2 minutos, puedes saber el tiempo-ya he dicho que el tiempo es importante- que pasa para el piloto. Y como se puede ver, para el piloto pasa 119.98 segundos,  que están cerca de 2 minutos, pero no llega, y simplemente viajando a 5 millones de metros partido por segundo. Una vez más ¿ Para qué sirve afirmar algo como verdadero según lo que veas o creas?

Algunos puede que aún crea que lo que dijo Isaac Newton es correcto, ya sabéis, todo el tema de la gravedad y que después se aplica a que por ejemplo, la Luna está en órbita con la Tierra ya que la Fuerza Centrípeta es igual a la Fuerza Gravitatoria. Pero no llega a ser del todo cierto, y una vez más, Albert Einstein, sin usar los ojos, simplemente usando la visión espacial y las matemáticas y física. Y explica que todo cuerpo con masa, perturba el espacio y el tiempo, esto es sencillo de entender si os tumbáis en la cama ¿verdad que tu cuerpo empuja a la cama hacia abajo, curvando la cama? Pues lo mismo si haces la prueba con una manta estirada y tiras una pelota, esa pelota curva la manta; lo mismo se aplica al espacio. Además, incluye en su teoría,  que el espacio y tiempo se alargan y se contraen, y es esto, lo que lo explica todo. Es decir, que aunque tú veas a una persona en la parada de autobus que se está moviendo-ves eso siempre y cuando tu estés en un coche, que se produce el efecto nombrado-. Lo que está ocurriendo en realidad, es que el espacio tiempo, se contrae. Es como si las personas estuviésemos metidas en un acordeón, que se alarga y se contrae tocando una bonita melodía. Y esto, evidentemente, también se comprueba con las matemáticas.


Pongamos esta vez el ejemplo de dos barcas que van a la otra punta de la orilla y vuelven, y a una le afecta la marea, y a otra no.

Al final se llega a la conocida fórmula de Albert Einstein E=mc2   y es aquí, donde empieza el juego y donde podemos atacar a los sistemas NTP, siempre y cuando tengamos un tubo de rayos  catódicos, y hacerlos funcionar de manera que un metal, conectado a la corriente, calentarlo, y los electrones del metal se van a agitar tanto que pueden escapar de él, que es a lo que se le llama Teroiónico.

¿Qué conseguimos con esto?

Pues lo que tratamos es de acelerar las partículas del reloj atómico, pero acelerarlas mucho para que reboten mucho en las paredes del reloj, hasta que llegue un punto que a tal punto, que toda esa masa, se convierta en energía, ya que va a cumplir con la fórmula de E=mc2  y llegue a explotar el reloj, ya que se estaría aplicando lo mismo que se aplicó para la creación de la bomba atómica. Aún no me explico por qué cuando llamé para pedir un reloj atómico y contarles lo que tenía pensado, no me lo quisieron dar.

Y si estáis hilando bien, sabréis que si no hay reloj ¿Cómo se realizan las consultas NTP para configurar correctamente el reloj de tu sistema? Ahí está el tema, y es que se podría desconfigurar la hora de toda la gente, y hacer que se configuren a un reloj que tú hayas montado, con funcionamiento parecido al del reloj atómico, y así, le configuras a la víctima la hora que veas oportuna para que caduquen los HSTS y le hagas un sencillo Man In The Middle.

Evidentemente, esto es ponerse totalmente radical, radical hasta el punto de explotar un reloj atómico, pero esto, la gente de SoftCrim, ya hemos encargado un tubo de rayos catódicos para hacer una prueba con esto, no con un reloj atómico evidentemente, pero sí con un sistema que estamos creando.

Hasta la Próxima Malvados!

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...