lunes, 31 de diciembre de 2018

Recapitulación de 2018. 5º año del blog

Este es el 5º año del blog. Han pasado muchas cosas en estos 5 años. He subido mucho contenido, más de 1300 posts que hay en el blog. He aprendido mucho en estos 5 años y queda mucho por aprender y que os iré contando en el blog sin duda. Mientras tanto, vamos a repasar qué ha pachao este año, un año que ha sido, digo ya, MI MEJOR AÑO.


En enero fue el mes de "Manu derrotó a Trinitarios", mi antiguo colegio donde cursé Primaria y la ESO. Ni me acordaba de eso, pero fue una serie de posts que me costó elaborar pero que salió bastante bien creo yo.


En febrero fue una mezcla muy buena, aunque sobre todo está el de Real Academia de Estúpidos, o Virus Intelectual, pero otros posts en los que difundía aún más el uso de software libre con posts como el de cómo generar contraseñas más "seguras" con GNU/Linux o cómo utilizar una VPN gratuita en GNU/Linux. Me metí también con el periodismo bastante. Febrero fue un mes curioso para ser el más corto.

 En marzo fue el mes del How somebody fucked my girlfriend again, pero con todo el tema de la exitosa huelga general feminista, marzo fue feminista en el blog con posts como Sí, la brecha salarial existe o Gracias, Feminismo


En abril fue una mezcla de todo. Aprendí bastante porque publiqué GARUINO y además quedé 4º en el campeonato de Andalucía Skills 2018. Yo creía que no podía mejorar el año, estaba siendo bastante bueno y además pude compartir conocimiento con otros grandes futuros profesionales en Huelva.

Creía que los próximos meses no podían ir mejor, pues voy y publico Hiita y Smart Fridge en mayo.Además empecé a matar a Google y salió la noticia  de EFAIL. Aquí se seguí cociendo algo mucho mayor, y es que también participé con mi Instituto en el que cursé el Bachillerato y el Grado Superior, como alumno colaborador en la elaboración de temas de Redes y de robótica. En los siguientes meses iría publicando los demás temarios y me cercioré de lo que me gusta explicar lo poco que sé de este oficio que tanto amo.

Estaba siendo un año bastante bueno, participé en una competición de Informática, elaboré mi primer proyecto grande como Informático y además pude colaborar con el que ha sido mi centro de estudios durante 4 años en la elaboración de temarios que este año se están dando. Además, cada vez que venía un colegio a visitar el instituto, se me pedía que diese una pequeña charla con demostraciones de robótica, servers y seguridad. Estaba empezando a alzar el vuelo como Informático y no me estaba dando cuenta porque estaba disfrutando del momento.

Pues se ve que estaba de subidón, porque en junio firmé uno de mis mejores meses, ya que elaboré la serie de posts sobre Hardening de servidores GNU/Linux en GLAMP environmets, toda la caña que metí a la Universidad de Extremadura con la explicación de por qué no fue hackeada la prueba de Selectividad como dijeron y cómo sacar las preguntas de exámenes de la Universidad de Extremadura (por cierto, que en la CiberCamp de este año hubo profesores de la Universidad de Extremadura que me mandaron indirectas). También seguí dando palo (o disparando Pan de Higo a la UCO) o de cómo, tal y como aposté, la web no aguantó todo el tráfico de alumnos tras la Selectividad. Como he dicho este mes fue de mucho curro, porque también saqué por ingeniería inversa muchas detalles interesantes de la aplicación de la LaLiga que después usaría para desmentir el comunicado de la propia Liga de Fútbol profesional

En julio yo creía que poco más había además de que empecé a trabajar oficialmente en Informática. En julio empecé a trabajar fuera de Córdoba en CGI Málaga, el que está siendo mi primer trabajo oficial, ya que antes hacía y hago investigación en seguridad y además he estado dando clases particulares de Informática, pero nada oficial hasta ahora. Para mí esto es importante porque es mi primer trabajo, encima en Informática y por si fuese poco en servidores. Lo estoy disfrutando mucho. Pero julio fue más que eso,también elaboré una guía básica de cómo navegar de forma segura, cifrar el correo,etc. Id a julio de este año y echad un vistazo.

Agosto sí que tiene un post que guardo con especial cariño. Ese post es el de "El server me sabe a poco". Le tengo mucho cariño porque mezclo todo lo que me gusta, servers, Debian y seguridad.

En septiembre destaca que empecé con el desarrollo de mi propia distro GNU/Linux. He dado pocas noticias sobre esto, pero está caminando. He tenido algunos problemas compilando paquetes, pero está avanzando. Pero hay muchos otros posts interesantes, pero entended que el de mi propia distro tenga un hueco especial en mi corazón.

De octubre no sabía muy bien que sacar, entre todo destaca mi trabajo de cómo utilizar entornos de ARP y DNS Spoofing para manipular paquetes del source.list de GNU/Linux y así obtener una sesión meterpreter. Además empecé con 2 proyectos nuevos, el de Traceroute y el de Hackeando a Hollywood.

Y llegamos al final del año. En noviembre empecé con el resumen de noticias de seguridad del último mes (ya os aviso que el de diciembre esta vez no lo haré, pero sí el de enero, la razón es porque tengo mucho que anunciar en enero). Además volví a hablar de servidores y de cómo hacer un migrado con los 10 mandamientos de un servidor.

Y finalmente, diciembre. De este mes destaco la publicación de la tool VAR, DragonCard y Atenea. 3 herramientas en un mes, no está nada mal. Y ya os adelanto que en 2019, mínimo, tendréis una más que ya está hecha.

En resumen, 2018 ha sido mi mejor año como ya he dicho, pero con diferencia. No he dicho que termino el año con más de 100000 lectores porque también es algo que no me preocupa el tema de los números. 2016 y 2017 fueron años de sembrar mucho y en 2018 he recogido muy buenos frutos. He elaborado muchos proyectos y tools. He aprendido mucho y, como el año anterior, lo termino mirando atrás y diciendo "Manu del año pasado, no tenías ni puta idea de informática". Algo bien estaré haciendo para aprender tanto y llegar al punto de yo mismo criticarme. Para 2019 traigo sorpresas, pero será, junto a 2020 años de siembra también. 

Trataré de mejorar como informático, que al fin y al cabo es lo que trato cada día. Intentaré que el 31 de diciembre de 2019 decir "Manu de 2018, no tenías ni puta idea de Informática", ya que eso significaría que he aprendido mucho más. Lo intentaré, pero superar este 2018 va a ser difícil porque ha sido un gran año tras esos años de siembra. Esperemos que 2019 sea, como mínimo un poco mejor, y sino, esperemos que 2021 sea un año increíble, aunque para eso aún queda, vamos primero con 2019, que traerá novedades ;)

¿Hackeamos el Mundo?

P.D: Ah, este año he elaborado 52 estudios, superando con creces los 24 del año pasado.



domingo, 30 de diciembre de 2018

Predicar con el ejemplo

En Navidad se suelen transmitir muchos valores. Demasiados muchas veces. Considero que se aprovecha el pretexto religioso para meter esos valores que sí deberían estar siempre en nosotros. Así que me voy a subir al carro, pero yo no voy a decir cómo actuar, al menos no directamente. Hoy vengo a tratar de la principal ley que me autoimpongo. Predicar con el ejemplo.



Yo no puedo criticar algo si yo no predico con el ejemplo. Yo no puedo pedir seriedad y quedarse hasta resolver un problema, si yo salgo de la oficina a mi hora aunque algo no vaya del todo bien. No puedo decir que considero más importante el trabajo que la vestimenta si tengo prejuicios.

Esta creo que es la mejor forma de influir en las personas. Lo creo así por experiencia propia, no por sabiduría, yo soy un mindundi (porque hay que ser autocríticos ¿verdad? ¿a que todos tenéis claro que hay que ser autocríticos?).

Por ejemplo, yo soy muy de ir vestido como yo quiera, y eso suele excluir casi siempre a las camisas. No me gustan, prefiero las camisetas de grupos de Heavy Metal, de mi Leño o de superhéroes. Además suelo ir con una sudadera (en invierno) colgada de la cintura y una camiseta interior siempre en invierno. La camiseta interior es blanca o negra, y siempre se ve ya que las camisetas que van por fuera son de manga corta SIEMPRE. Añade a eso mi barba, que es larga y despeinada. Para muchos, el look de mendigo de invierno.

A pesar de ese look, por todo lo comentado de que soy el primero que se queda hasta que el problema se soluciona, el que no aparta la mirada del ordenador hasta que termino,etc. cuando entro en la oficina provoco respeto. Es más, mis compañeros de oficina bromean con "Ya ha entrado el team leader", "A Manu vamos a atarlo a la silla y mandarlo a casa para que no trabaje tanto", "el día que Manu diga de no trabajar, estaremos perdidos". A pesar de mi vestimenta y aspecto, con la ley de predicar con el ejemplo, se hace uno respetar.

Es verdad que muchas veces se dice esto por divinizar a las personas y así pensar que llegar a eso es imposible, y no, si yo lo hago y si yo he renunciado a parte de vacaciones para seguir trabajando y que vaya toda la plataforma correctamente, cualquiera lo puede hacer.

Esto no es para decir qué guay soy, si no que con trabajo y predicando con el ejemplo se puede conseguir mucho, al menos así lo he vivido y visto yo.

¿Hackeamos el Mundo? 

sábado, 29 de diciembre de 2018

El truqui del día

Lo que vengo a comentar hoy es algo que descubrí hace un tiempo pero que hay veces que lo comento, y encuentro que hay gente que no lo conocía. Así que como considero que puede ser útil saberlo, vengo a hablaros de un truco que hay en GNU/Linux para que no se loguee los comandos que escribimos.



Como sabréis, con el comando "History" en GNU/Linux podremos listar los comandos introducidos en el sistema.


Veis que el último comando introducido es el propio history ¿verdad? Pues vamos a escribir comandos GNU/Linux sin que aparezcan en el history ¿Cómo? Tan simple como un espacio.


Sí, con un simple espacio antes del comando a introducir, evitamos que aparezca dicho comando en el history. Aquí la prueba.


El último comando sigue siendo el history ocupando la posición 960. Así de simple. Fácil, barato y para toda la familia.

Esto puede ser útil sobre todo en un pentesting contra un servidor GNU/Linux al que hayamos conseguido una shell inversa y queramos introducir comandos sin que el SysAdmin vea qué se está tecleando y ejecutando. Ojo, porque si lanzamos un proceso, sí que se verá.


No es infalible del todo, pero sí que, si tenemos a un SysAdmin de moral distraído, se la podríamos colar. De ahí la importancia del monitoreo en profundidad.

¿Hackeamos el Mundo?

viernes, 28 de diciembre de 2018

El periódico ElPaís me propone ser consejero de Ciberseguridad en sus artículos tecnológicos

Esta historia que os vengo a contar tiene casi 10 meses y se remonta al post "Virus Intelectual", un post en el que criticaba un artículo escrito por Ana Merino en el periódico ElPaís en el que criminalizaba la profesión del Hacker. Ese post trajo consigo importantes movimientos y, sobre todo, comunicaciones.


Casi una semana después de mi artículo contestando a Ana Merino, recibí el siguiente correo de ElPaís.


Yo al principio pensé que era un Fake, pero tras analizar la política SPF y ver que coincidía, entendí que se trataba de un correo original desde la Dirección del periódico ElPaís. Tan rápido como me cercioré de que era real, contesté.


Rechacé inicialmente su propuesta, pero avisé de que revisaría sus artículos para ver si fue un caso aislado o si de verdad requerían de un asesor. 

Me contestaron que no tenían problema y que esperarían mi respuesta en caso de ser necesaria mi asesoramiento. Y así ha sido, durante estos 10 meses he estado revisando sus artículo y a primeros de este mes les contesté con un pdf con los artículos en los que han cometido errores y diciendo que acepta ahora su propuesta si seguía la misma disponible.

Me aceptaron y por esta razón, a partir de 2019 voy a encargarme de la revisión y asesoría de los artículos que se redacten en materia de Ciberseguridad y nuevas tecnologías en ElPaís. Esto me tendrá mucho más ocupado, pero al menos intentaré que se hable con más propiedad sobre la Ciberseguridad.

Por supuesto consulté con mi actual empresa, CGI si podía realizar en paralelo este trabajo y no han tenido problema.

Ya he firmado el contrato, un contrato del que no puedo decir mucho, pues también he firmado un acuerdo de confidencialidad, aunque sí les he dicho que sobre esto hablaría en mi blog y han dado el visto bueno. Es más, este post ha sido revisado por ElPaís para garantizar que no he roto el acuerdo. Han habido algunos cambios con respecto al post original, pero lo entiendo.

Así que lo dicho, a partir de unos días en adelante, revisaré y asesoraré en materia de Ciberseguridad a ElPaís. Sólo decir que intentaré hacerlo lo mejor posible para que no se digan muchas burradas y tratar así de aportar un nuevo enfoque y una visión más real sobre la Seguridad en nuestro país.

¿Hackeamos el Mundo?

P.D: Este artículo ha sido una inocentada por el Día de los Santos Inocentes en España, por tanto, los correos que aparecen en este post han sido creados para cometer la inocentada. El periódico ElPais no ha contactado conmigo para que yo sea su consejero de Ciberseguridad.

jueves, 27 de diciembre de 2018

Si me pides que hackee a algo/alguien te pondré aquí

He perdido la costumbre de publicar en el blog la gente que me pide que hackee algo o a alguien, pero voy a retomar esa costumbre, por eso voy a crear una sección en el blog donde iré adjuntando, de nuevo, todos los correos de este tipo que reciba.


Así que si quieres escribirme para que hackee algo o a alguien, debes ser consciente de que vas a acabar en el blog. Confundir hacker como cibercriminal te va a sacar los colores además, por supuesto, de llevarte una respuesta como esta.

Dicho queda.

¿Hackeamos el Mundo?

miércoles, 26 de diciembre de 2018

Algo se va a romper en breve

No quiero adelantar mucho, pero algo se viene. Lo estoy preparando (junto a las otras novedades que traigo) para principios de 2019. Es un proyecto grande y hasta aquí puedo leer.

¿Hackeamos el Mundo?

martes, 25 de diciembre de 2018

¿En qué escenario podemos utilizar Atenea?

Ayer presenté Atenea, una nueva tool que he desarrollado. Ya quedó claro que uno de los puntos débiles del ataque podría ser el tiempo que tendríamos que esperar hasta sacar el número de teléfono, y más aún si lo que queremos sacar es el nombre. Tenemos que hacer algo para tener entretenido al usuario, a la víctima para que no sospeche nada, pero ¿qué hacer?.


Lo que voy a hacer va a ser exponer un posible escenario, y posteriormente cómo lograr romper el tiempo de la víctima, alargarlo todo lo posible. Como en "La Casa de Papel", cuanto más tiempo lo alarguemos, más ganaremos.

Posible escenario

Hemos empezado nuestro ataque con un ARP y DNS SPOOFING en un entorno de Man In The Middle. Estamos en medio de la conexión y podemos monitorizar todo el tráfico de la víctima.

Aquí lo que podemos hacer es tirar de nuevo de tcpdump y comprobar qué es lo que mira. Esperar si se mete en alguna web en HTTP de la que podamos obtener información útil.


Por ejemplo, si visita mucho páginas donde se hable de Game of Thrones, podremos deducir que le gusta Juego de Tronos. Esto ya nos puede ser de utilidad, pues sin utilizar OSINT, estamos sabiendo ya mucho. Además que no siempre sabremos la identidad de nuestra víctima. Imaginad que esto se hace en una gran empresa donde nos colamos. No tenemos por qué saber el perfil de Twitter o Facebook de cada persona.

Por esto es tan importante utilizar HTTPS, no por el cifrado en tránsito en sí, que también, sino para no permitir casos como estos en los que podemos saber información de nuestra víctima mirando simplemente las webs por las que navega. Con HTTPS no lo tendríamos tan fácil, aunque, como hemos visto, podríamos utilizar un side-channel, pero un side-channel no es tan fácil de encontrar, os lo aseguro.

Pero ¿Para qué nos puede servir esto de saber lo que le gusta a nuestra víctima?

Tan sencillo como fabricar un anzuelo fuerte para la víctima y siempre recordando que nuestra intención es alargar el tiempo. Hacer que pase el tiempo y que la víctima no se de cuenta de que está recibiendo el ataque.


A mí lo que se me ha ocurrido es montar una web falsa de Netflix con algunos episodios de algunas series para que así, mientras el usuario ve las series que les gusta; algo que sabemos gracias al proceso anteriormente descrito, estaría recibiendo el ataque.

Lo que tenemos que lograr es que se pulse en ese botón que pide actualizar el Flash. Lo que hará esto es descargar la tool Atenea (ahora vemos cómo ejecutarla) y se preparará para la ejecución de la misma.

He pensado en Netflix(Por cierto, Chema, te he quitado VirtualHero y me la he llevado a "mi Netflix" xD ) porque podrá reproducir los vídeos de los episodios en pantalla completa, mientras se le van abriendo popups secundarios, es decir, que al tener en pantalla completa nuestro Fake Netflix, por detrás de la página principal, Netflix, se abrirán las peticiones hacia Google Contacts, algo de lo que el usuario no se percatará. Esto Con JavaScript es posible, y de nuevo, volvemos al tema de cómo de dañino podría ser el código JavaScript tal y como vimos en cómo abrir scripts de Linux con NodeJS.

Lo que se plantea es que un código JavaScript genere ese popup como ventana secundaria. El usuario estará viendo nuestro Fake Netflix, y además, podríamos hacer que se ejecute nuestra Atenea con ese mismo código JavaScript.

Por supuesto tendríamos que cambiar nuestra Atenea (la cuál pasaría a ser nuestro Caballo de Troya) para que en lugar de crear la shell, se ejecute directamente.

Y ojo, porque si en 2-4 minutos podemos sacar un número de teléfono, imaginad la de números de teléfonos que podríamos sacar en 40 minutos que dure un episodio. Podríamos sacar unos 10 contactos. Sólo tenemos que buscarnos la forma de que vea, cuantos más episodios mejor; de ahí la importancia de analizar el tráfico o utiliza bien OSINT para que el anzuelo sea lo más fuerte posible.

Si conseguimos que vea tan sólo 3 episodios de una serie de 40 minutos cada episodio, sacaríamos 30 contactos, que ya es una buena lista para ataques futuros.

Ahora os toca a vosotros jugar con esto y mejorar mi ataque. Es posible, lo sé, yo he hecho esto deprisa y ha salido todo esto, imaginad si se le dedica el tiempo necesario. Investigad y cread.

¿Hackeamos el Mundo?

lunes, 24 de diciembre de 2018

Y como regalo de Navidad ¡OTRA TOOL! Atenea

Creía que no me iba a dar tiempo para antes de final de año, pero al final, apretando un poco, ha salido todo como esperaba. Puede que incluso mejor de lo que pensaba. Tengo que admitir que lo mío me ha costado, ha habido bastantes problemas durante el desarrollo de esta herramienta, pero al fin ha salido, le quedan algunos retoques, pero está lista para la batalla. Adelante Atenea.


Pero empecemos esta historia desde el principio. Esta historia comienza cuando vi una conferencia que hizo que se me encendiera la bombilla de perfeccionar un ataque que ya estaba comentando el ponente.


En la CyberCamp  2018 que se celebró este año en Málaga, acudí al taller de José Selvi, un gran investigador de seguridad. En ese taller habló de un side-channel que hay en Google Contacts que permite, a pesar de ser HTTPS, obtener información de esa comunicación cifrada. Me resultó interesante, y conforme veía el taller, pensaba en cómo podría mejorar el escenario y el ataque que presentó.

¿Qué es un side-channel?

Un Side-channel es un canal paralelo. José Selvi lo explica muy bien en la CON de la Ekoparty, una CON de la que os dejo el vídeo. Pero voy a tratar de explicarlo para que todo el mundo lo entienda.

Imagina que pides un paquete por Amazon. Ese paquete llega al repartidor. El repartidor no sabe qué hay en el paquete porque el paquete "está cifrado extremo a extremo". No obstante, hay determinadas acciones que si las hace, podrá ir obteniendo información de lo que hay en el paquete.

Por ejemplo, si mira con la mano cuanto pesa y ve que pesa un poco, ya sabe que un folio no es. Si ve que el paquete es rectangular en lugar de redondo, ya sabe que un balón inflado no es. Si lo mueve un poco y ve que no suena mucho, puede pensar que, a lo mejor, es ropa. Pues un side-channel es eso exactamente.


Pues bien, ahora vamos, y vemos que Google Contacts, utiliza el formulario de búsqueda con el método GET y, si analizamos el tráfico de red, veremos que cuando buscamos un número de teléfono correcto, el paquete tiene un tamaño de 722 bytes. Esto es importante.


Ahora lo que tenemos que probar es a, por ejemplo, cambiar un dígito en el número de teléfono. Vemos que ahora el mismo paquete tiene un tamaño de 723 en lugar d e 722 ¿por qué?


Esto ocurre porque comprueba, carácter a carácter, el dígito que se introduce. Lo que hace es preguntar si en la posición i0 hay una "A" por ejemplo. Si es correcto, nada, devuelve un True y listo. Sin embargo, si no hay una "A", devuelve un False y suma 1 a i0, de ahí que cuando es incorrecto sea 723 (722+1).

Este es nuestro side-channel, pero claro, mandar a manopla de una en una letra por cada hueco del array es bastante tedioso. Para esto tenemos unos equipos muy potentes que nos facilitan el trabajo. En el caso del número es un poco más fácil, ya que sabemos que son 9 dígitos siempre +2 del código  del país (España es +34 por ejemplo)+ 1 del símbolo "+".


Como hemos dicho, para el número de teléfono es "más fácil" ya que sabemos que el tamaño es fijo. Tenemos un total de 48620 combinaciones posibles. No hace falta que nos pongamos nosotros a hacerlo a mano. La herramienta Crunch nos generará el diccionario por nosotros.

crunch 9 9 0123456789 -o numberphones.txt

Con el comando anterior, lo que estamos haciendo es decirle a crunch, que genere un diccionario con un tamaño mínimo de 9 dígitos, un tamaño máximo de 9 también y que en las "palabras", incluya los valores 0123456789. Todo eso, que lo guarde en el documento de texto numberphones.txt.

Es evidente que, al utilizar el método GET, podemos recorrer todo el fichero con las combinaciones de números de teléfono, formando esos números, parte de la URL que vamos a solicitar.

contacts.google.com/search/$numbers

La URL sería algo como eso, y en GNU/Linux es sencillo de montar un escribir que ejecute Firefox haciendo la petición a esta URL en segundo plano. Antes, hemos tenido que lanzar tcpdump en segundo plano para que recoja todo el tráfico.

tcpdump -i eth0 -w captura.pcapng &

Después tendremos que leer esa captura de tráfico. Algo como esto nos servirá.

tcpick -C -yP -r tcp_dump.pcap

Tenemos que tener en cuenta, además, que tenemos que considerar el tamaño de los paquetes. Por supuesto, cuanto más grande sea la query, más tamaño tendrá el paquete. Cuidado con eso. Tendremos que tener en cuenta el pipe grep.


Así pues, para la PoC, me monté sobre un Apache Server una web con un formulario de búsqueda en PHP que consultaba los contactos a una Base de datos que me monté en MariaDB 10.


Para que veáis que no es una página estática, aquí os enseño la Base de datos en la que he añadido 3 contactos, uno el teléfono de las Meetings de trabajo, y otro 2 amigos, Fulano y Pepito.


Ignorad el diseño tan pésimo de la web, es solamente una PoC. Lo importante aquí es que la consulta las hace también con el método GET, por lo que todo lo que pongamos en el cuadro de búsqueda, se reflejará en la barra de direcciones tal y como pasa con Google Contacts.

Que empiece la Guerra contra HTTPS

Aquí entra Atenea, diosa de la guerra, sabiduría y ciencias. De ahí el nombre de la tool. Antes de nada decir que he creado una nueva web por el tema de no exponer los números de teléfono de mis contactos, no por otra cosa.


La tool se divide en 2. Una es atenea_listening, que simplemente pone un netcat en el equipo del atacante a la escucha, el cual va a esperar hasta que reciba el número de teléfono que la propia ./atena va a tratar de obtener.


Como vemos, ./atenea_listening se queda a la espera de una conexión que le muestre por pantalla el número de teléfono. Es un entorno cliente-servidor de libro. Todo, como he dicho, es abrir un netcat y quedarse a la escucha. No hay más. Por esta razón, ./atenea_listening es prescindible, ya que podemos lanzar el netcat sin más, pero era por darle un poco de estilo.


La tool en sí, ./atenea, lo que hará será crear una shell en la que tenemos un catálogo de parámetros que nos ayudará a la hora de extraer los números de teléfono de los contactos de nuestra víctima. (Por cierto, me encantan las letras de Atenea, me gusta casi más eso que la tool en sí ;P ).


Con el parámetros brute=ON, lo que hacemos es decir que queremos que lance el ataque de fuerza bruta para extraer el número de teléfono. A continuación, nos pide que introduzcamos el nombre de un contacto si es que lo sabemos para agilizar la búsqueda. Lo ideal es que antes, hayamos hecho un trabajo previo de recolección de información de fuentes públicas con OSINT.

Este proceso es lento, sí. Tened en cuenta que tiene que generar todas las combinaciones de números de teléfono para después lanzar el ataque de fuerza bruta. Irá probando cada número en cada hueco del array hasta que termine todo el proceso (para el número tarda entre 2-3 minutos más o menos). Cuando termine, nos pide que introduzcamos un atacante válido.


Esto no es para otra cosa que para abrir también otro netcat y enviar a esa IP (la del atacante) el número de teléfono con el formato [Nombre Contacto]:[Número de teléfono].


Si volvemos a la terminal de ./atenea_listening, vemos que ya nos ha mandado el output con el número de teléfono y cierra el netcat rápidamente. Para ejemplificar mejor esto, he elaborado un vídeo.




Como vemos, esto toma su tiempo, y eso que estamos tratando de sacar "lo más fácil y rápido", que es el número de teléfono (Nota: El vídeo hay partes que he recortado ya que llegaba a los 10 minutos). Si quisiéramos hacer la operación contraria, llevaría mucho más. Hasta aquí, es lo mismo que José Selvi presentó. Mi herramienta tiene algunos cambios respecto a la suya, además consigo reducir un poco los tiempos al probar directamente con el número completo y no 1 a 1. No reduzco mucho, ya que lo que doy con una mano, lo quito con otra.En probar números de teléfonos tarda menos, pero ese tiempo se compensa con lo que tarda en generar todas las combinaciones.

Pero claro ¿Cómo mejoramos esto? ¿Cómo dominamos el tiempo para que la víctima no sospeche de lo que está ocurriendo? Aquí viene el cambio más grande con el ataque expuesto de José Selvi. Yo contesté esta pregunta con un "El usuario, lo que más tiene es tiempo; pero ¿cómo hago para que tenga ese tiempo que el usuario no sabe que tiene?". La respuesta a esa pregunta ya es tema de otro post.

¿Hackeamos el Mundo?

domingo, 23 de diciembre de 2018

Mejorando DragonCard

Hace unos días ya os presenté la herramienta que he elaborado y que he llamado DragonCard. Hoy vengo a comentar algunas cosas que se podrían hacer para mejorar nuestro ataque o la apariencia de nuestro equipo. Este post es más que nada trastear con la tecnología y jugar.


Lo primero que voy a enseñar es cómo se ve desde fuera mi "laboratorio" para los testeos con DragonCard.


Obviad el Windows, es el ordenador de la empresa y no puedo quitarlo por políticas de empresa. Pero si os fijáis, inicié Kali Linux y ahí veis la tarjeta Alfa Atheros. Eso así está muy bien, pero ocupa mucho espacio. Podemos hacer que quede todo más bonito.


Podríamos imprimirnos una pieza como está en una impresora 3D para sujetar la tarjeta de red y después ponerle una ventosa para fijarla a la tapa de portátil.


Algo parecido a lo que se ve en la foto de arriba.

Y finalmente para la parte más de ataque, lo comentado, cambiar la herramienta para que no espere parámetros y realice los ataques sin más y posteriormente, los resultados, pasarlos con nc o incluso con rsync limitando el ancho de banda. Una forma muy sencilla de perfeccionar la tool.

¿Hackeamos el Mundo?

sábado, 22 de diciembre de 2018

Ejecutar scripts de GNU/Linux mediante NodeJS

NodeJS es muy usado en aplicaciones webs, eso es algo que los que nos dedicamos a esto sabemos, y más aún los programadores. Yo siempre tiemblo un poco cuando veo un nodejs. El código JavaScript no garantiza la privacidad del usuarios, hay muchas formas de utilizar JavaScript para obtener información del cliente. No vale decir que, al ser un lenguaje de programación, la culpa es de quién lo utilice y no del lenguaje. JavaScript está hecho para saber por dónde pasa el ratón el usuario, sacar el user-agent o para descargarle un archivo para ponerlo a minar Bitcoins. Es por esta razón que en Firefox tenemos extensiones para deshabilitar el código JavaScript de las páginas por las que navegamos.


No, JavaScript no es como el ejemplo del cuchillo, que es bueno dependiendo de para qué lo utilices. JavaScript es más bien como una pistola. Ojo, que con todo esto, puedes utilizar JavaScript para cosas chulas como hacer más dinámica una web, al igual que si a una pistola le metes pintura en lugar de balas, pero lo normal no es eso.

Tras esta matanza a JavaScript, vamos con lo que es el post en sí. Supongo que lo que traigo hoy aquí lo sabéis ya todos, pero no es para enseñar algo nuevo (a lo mejor alguien no lo sabía y le sirve, ojo), es más bien para advertir de posibles peligros que ya a día de hoy estamos viendo.


Para ilustrar esto, he hecho dos scripts. Uno en JavaScript y otro en ShellScript. El de arriba es javascript que, lo que hace, es llamar a y ejecutar un script que he llamado test.sh. Abajo veis que, para el ejemplo, tan sólo he hecho un conteo de los archivos que hay en el directorio actual. No es muy peligroso, aunque si fuese un ls sin más sí que podría ser más peligroso. Pero no tienen por qué ejecutarse siempre scripts tan inofensivos.


Al ejecutar el javascript con nodejs, lo que se hace es leerse en el javascript que se llama a la ejecución de test.sh, se ejecuta y da el output.

Este es un simple ejemplo, pero en los próximos días publicaré un post en el que he estado trabajando sobre este tema y veréis que puede ser más problemático de lo que parece, además de que servirá como una prueba de que se puede hacer y la cantidad de datos que se pueden obtener.

¿Hackeamos el Mundo?

viernes, 21 de diciembre de 2018

¿Cómo se desarrolla la tecnología?

Hoy voy a contar un secreto que tenemos los que nos dedicamos al mundo de la tecnología. No lo solemos decir también porque no suele salir el tema, no por otra cosa, no es que sea un ultra secreto, es simplemente la forma que tenemos de trabajar. Posiblemente, o ya lo sepáis, o hayáis caído, por eso digo que no es que sea un secreto que mantengan corporaciones, no, es simplemente la manera que tenemos de trabajar. Mejor o peor, pero así es como trabajamos, y cuando te dedicas a desarrollar tecnología te das cuenta.


A mí me gusta y de hecho apuesto por el desarrollo tecnológico, eso sí, siempre cumpliendo y garantizando la privacidad y respetando los datos del usuarios. Avisando debidamente, y si el usuario quiere asumir el riesgo, entonces adelante. 

Me gusta desarrollar tecnología. Me gusta utilizar una Raspberry para utilizarla como servidor de copias de seguridad, centro multimedia o para controlar partes de una casa tal y como expuse en GARUINO.

Pero hay un "secreto". Cuando estamos creando tecnología, muchas veces lanzamos un pequeño cebo. Muchas veces damos algo pequeño para que sirva de prueba hasta que saquemos en lo que de verdad estamos trabajando o queremos sacar. Por ejemplo, esto lo habéis visto cuando publiqué el post de la tarjeta de red Alfa Atheros antes de publicar en lo que estaba trabajando de verdad, DragonCard.

En este caso han sido días, pero lo podríamos hacer con años de diferencia. Pongamos ejemplos. Imaginad que queremos sacar una tecnología que utilice la realidad aumentada con unas gafas que se conecten a Google Maps y, conforme conduces, te pinte la zona por la que tienes que ir para llegar a tu destino. En la misma carretera, ya no en un mapa, no, en la misma carretera para facilitar así el guiarte hasta tu destino.

Claro, para llegar a ese punto, sacamos muchas tecnologías menores. No es por nada, puede ser que esa tecnología ya la tengamos, pero preferimos esperar unos años para hacer las pruebas necesarias hasta estar seguros.

Por ejemplo podemos sacar unas gafas peores que usemos para un juego de conducir y así, mientras lo sacamos y probamos, tenemos algo para que la gente pruebe. Es de un potencial mucho peor, pero nos sirve para recoger información.

Ojo, esto es distinto a las actualizaciones. Podemos sacar una tecnología que sabemos que puede tener algunos fallos en determinadas partes, pero aún así sacarla para ver como se comporta cuando quienes usan esa tecnología no son informáticos. Eso nos sirve para, en la próxima versión mejorarla con las mejoras que ya sabíamos que hacían falta y las que reporten los usuarios.

También esto de sacar tecnologías más pequeñas, nos sirve para probarnos. Muchas veces no sabemos qué queremos en la versión final y probamos con algo más pequeño para probar una función de programación, una estructura,etc. Puede que quiera probar a sacar una shell grande y potente, pero puede que me atasque mientras estoy desarrollando la shell, por lo que creo una más pequeña y veo como se comporta, y si tiene algo de sentido, la publico para que se siga testeando.

Es similar a, cuando no sabemos resolver un problema de matemáticas, nos ponemos otro pero más sencillo para probar cómo se comporta la ecuación. Lo mismo aquí.

Ese era "el secreto". No es nada especial, pero así entenderéis mejor el por qué, muchas veces, salen las cosas que salen y podáis responder, de una manera razonada y objetiva cuando digan "con lo fácil que sería sacar X ¿por qué nolo hacen?". Puede que ese X ya esté hecho, pero mientras probamos con cosas más pequeñas, además de escucha a la gente pidiendo ese X que hemos creado.

¿Hackeamos el Mundo?

jueves, 20 de diciembre de 2018

DragonCard: Liamos la Dragonera en nuestras {y no nuestras} tarjetas de red

Quería guardarme esta carta hasta comienzos del año que viene, pero 2019 va a traer varias sorpresas y por eso he decidido adelantar este post. También podéis considerar este post como "Mi regalo" de Navidad para vosotros. A lo mejor saco algo más, nunca se sabe, pero de momento considerad este como mi regalo de navidad. La tool DragonCard.


Esta tool es un complemento a lo ya mencionado en "Sé un hacker de verdad con una tarjeta de red  Alfa Atheros".En ese post, además de hablar un poco de la tarjeta de red Atheros, comenté un script que tengo yo para poner las tarjetas de red en modo monitor de una forma verdaderamente hacker.

El que lo haya llamado DragonCard es por una coña y una parodía a la atracción Dragon Khan de Port Aventura. En mi caso se llama DragonCard porque vamos a tocar las tarjetas de red. Y claro, si hablamos de dragones, si no hablamos de Khaleesi, estaremos pecando muy fuerte. Como dice esta canción parodia, vamos a formar la dragonera al Khaleesi style.



Pues bien, vamos a comentar un poco la tool, es bastante sencilla y la mitad de la tool ya la visteis en el post comentado anteriormente.


Lo que se necesita para esta herramienta es un PC con GNU/Linux ya que yo no desarrollo para Windows, me niego. Se recomienda un Kali Linux por la simple razón de que todas las tools que vamos a incorporar a DragonCard ya las tiene.


Aquí tenéis un vídeo con la PoC que he realizado. Por si queréis saber un poco cómo se ha hecho, os lo explico ahora y posteriormente comento con qué idea la he creado yo.

En primer lugar, la herramienta mata todo lo que pueda interferir con nuestra tarjeta de red. Viene siendo todo lo que toque la tarjeta de red. Todo esto ya lo comenté en el post de la tarjeta Alfa Atheros de hace unos días.

Ahora pasamos al comprobar si a nuestras tarjetas de red que ya hemos puesto en modo monitor se les pueden realizar ataques de inyección. Lo probamos con aireplay.



Para lo que es el ataque cree una shell en la que esperamos que se introduzcan 2 parámetros, el Ihost que es la interfaz de red origen y el Itarget que es la interfaz a la que vamos a atacar. Vamos a meter esos valores, cada uno en una variable que después pasaremos a aireplay-ng tal y como veis en la imagen de arriba.

¿Para qué podemos utilizar esto?

Pues mi primera idea fue para Blue Team y ver si nuestras a nuestras tarjetas de red se les pueden hacer ataques de inyección y así ver cómo nos podemos prevenir. Pero claro, cuando le das vueltas a la cabeza sacas más ideas.

También lo podemos utilizar como Red Team si estamos en una auditoria. Podemos utilizar esta tool de 2 maneras.


  1. Si nos dan acceso a los equipos, la instalamos y listo. Ojo a que no se nos pasen los requirements.
  2. Si no tenemos acceso a la máquina, podemos montar un entorno de ataque de Man In The Middle y pasarle a la máquina, de la manera que sea, la tool. Eso sí, tendremos que modificarla un poco para que se ejecute como un demonio y no tenga que esperar los parámetros, que se ejecute con los parámetros ya por defecto. Sería buena idea también, por ejemplo, pasar esos datos a la máquina atacante. En otro post diré cómo se podría hacer.
Tenemos la defensa y el ataque. No es una herramienta perfecta ni mucho menos, tiene muchísimo margen de mejora, pero no puede cesar la actitud hacker de investigar, crear y romper. Ah, y antes de cerrar el post, por el código fuente no os preocupéis, lo tendréis junto a la tool que cree  llamada VAR. Esa es una de las novedades de 2019. Una de ellas.

¿Hackeamos el Mundo?

miércoles, 19 de diciembre de 2018

Qué regalar a un Hacker por Navidad

Aunque la Navidad me desagrada bastante, sé que a muchas personas sí les gusta y aprovecha estas fechas para que el nivel de consumo crezca aún más de los valores normales. Así pues que aprovecho este post para decir esas cosas que podéis regalar a ese amigo que siente pasión por la seguridad informática o qué cosas podéis poner en la lista de Reyes Magos o Papa Noel si sois vosotros los que sentís pasión por la seguridad.



Regala CTFs

Si conoces a gente que le guste la seguridad, uno de los mejores regalos que les puedes hacer (¡y gratis!) es un CTF hecho por ti mismx. Tenéis miles de pequeños ejemplos en rootme o Atenea. Además, si queréis algo más elaborado con una historia detrás, yo hice hace un tiempo uno sobre encontrar a Pablo Escobar.

Regala conocimiento 

Otro de los mejores regalos que podéis hacer es el del conocimiento. Tened por descontado, que un buen libro de seguridad informática es algo que le gustará seguro. Y aquí depende mucho de la persona eso sí, aunque si de verdad es hacker, regales el libro que le regales, le gustará. Pero hay matices.

Casi cualquier libro de 0xWord le gustará, tienen un buen catálogo. La gran mayoría están bastante bien y si conoces un poco a ese amigo/familiar/pareja que le gusta la seguridad, puedes comprarle uno más especializado. Por ejemplo:

- Si le gusta la seguridad web, puedes regalarle:

-Si le gusta las redes:

- Si tiene un perfil más programador, pero crees que también le mola la seguridad:

       - Python para Pentester
       - Hacking con Python
       - Python Scapy Dot11

- Si es pentester:


- Linux y servidores en general


Estos de GNU/Linux se pueden ir un poco más de precio, pero posiblemente si buscáis bien, encontraréis alguno en pdf. Si los imprimís y encuadernáis, podéis regalar un muy buen pack por poco dinero.

Regala tecnología

Otra opción es la de regalar tecnología para que juegue con ella, que es como más se aprende. Por cacharros que no sea.

- Una tarjeta de red Alfa Atheros. Ya lo comenté en el blog en este post. Y es que da mucho juego como pudisteis comprobar(además podéis dejarle también un enlace a ese post por si quiere empezar a cacharrear con lo comentado en ese artículo).

- Una Raspberry Pi 3 (o la 2, no pacha nada). Las Rapsberries son muy económicas y pueden dar mucho juego, sobre todo si tienes un buen arsenal de tarjetas SDs. Las puedes utilizar desde servidores de copia de seguridad, servidores webs en las que testear configuraciones de Apache como las comentadas en "El Server me sabe a poco" y atacarlo con nuestra máquina, ya sea sobremesa o portátil. Con 2 rapsberries puedes encima tratar de montar un servidor con balanceador de carga y probar de realizar DoS o de encontrar vulnerabilidades para acceder con una sesión meterpreter, escalar privilegios y tratar de pivotar hacia la otra máquina. Como veis tenemos mucho juego, por esta misma razón una Raspberry puede ser otro gran regalo. Esto sobre todo a los que hacen Seguridad. Las 2 opciones primeras (Regalar CTF y conocimiento) es sobre todo para gente aprendiendo (ojo que incluso los más experimentados estamos aprendiendo aún diariamente).

- Un Arduino. Esto que, en apariencia parece que está más destinada para desarrolladores, puede dar mucho juego si tienes mentalidad Hacker. Por dar ideas, yo desarrollé un coche inteligente para posteriormente hackearlo.

Estos son algunos ejemplos. Para mí son los mejores regalos para empezar porque con el primero, rompes cosas como un hacker, con el segundo aprendes como un hacker, y con el tercero creas tecnología y juegas como un hacker. Regalas actitud hacker, que, sin duda, el mejor regalo que se pueda hacer.

¿Hackeamos el Mundo?

martes, 18 de diciembre de 2018

La importancia de reducir los tiempos de respuesta

Si os dedicáis al soporte, este es un concepto que os debe de resultar bastante familiar. Ya sea en soporte de distros, de servidores o de cuentas de usuario, el concepto de tiempo de respuesta es algo que siempre es un quebradero de cabeza.


El tiempo de respuesta siempre es un quebradero de cabeza porque se trata de reducir, pero hay veces que el problema al que nos enfrentamos es más complejo de lo que pensábamos en un principio, pero esto hasta cierto punto es entendible.

Al menos deberemos estar sacando soluciones o hipótesis para solucionarlo, para que se vea que no estamos parados, que estamos trabajando para resolver el problema.

Pero para esto tenemos que hacer varias cosas, una de ellas es resolver rápidamente los problemas sencillos. Por ejemplo, si un usuario nos pide (como fue mi caso más reciente del otro día) que no puede acceder a su cuenta y sabemos que la solución es hacer un restart del servicio, hazlo lo antes posible.

Es más, ese tipo de requests, deberíamos tenerlas en una carpeta a parte del correo para que así al ver que hay un mensaje vayamos corriendo a resolverlo, pues es una tarea sencilla que no debe ocupar mucho tiempo, y todo el tiempo que nos lleve de más, es tiempo que estamos perdiendo.

En mi caso, tengo una regla que este tipo de requests, llegan a una carpeta y me sale una alerta. Así se dan casos como que se resuelven estas peticiones en 16 minutos (es mi récord). Aún así es mucho tiempo, pues son 16 minutos que nuestro cliente está sin acceso a su cuenta.

Para el cliente está bien, es más, siempre agradecen la rápida solución,pero a nosotros (al menos a mí) no nos puede bastar con eso. Tenemos que reducir aún más los tiempos. Es cierto que hay veces que vemos ese mensaje pero estamos en una tarea con más priority o a veces que simplemente no nos damos cuenta del mensaje por el exceso de peticiones.

Imaginad un servidor mal configurado y que en pleno Black Friday empiece a petar y los clientes no tengan acceso a la web, el redecir esos 16 minutos de tiempo de respuesta por usuario se hace más difícil, aunque con una buena configuración como en el post de "El server me sabe a poco" nos ayudaría mucho, ya que menos peticiones, más rapidez al actuar.

Esto mismo es lo que se aplican las distintas distros, y como soy un amante de Debian, decir que su tiempo de respuesta es bastante bueno, no llega al de CentOS, pero no nos quedamos atrás. Pero como he dicho, toca mejorar.

¿Hackeamos el Mundo?

lunes, 17 de diciembre de 2018

Sé un hacker de verdad con una tarjeta de red Alfa Atheros

La parte de la seguridad informática en la que estoy más especializado es en sistemas informáticos, servidores y redes, sobre todo redes. Las redes es una de las partes más importantes de nuestra vida por no decir la más importante. El mundo tal y como lo conocemos no sería posible sin las redes. Está muy bien que programes, pero al fin y al cabo, al final vas a tener que poner esa página en la red, y puede que, incluso sepas mucho de sistemas, servicios y servidores, pero que después por no configurar debidamente la red, tengas caídas de red, latencias altas y sea un verdadero infierno tu conexión.

Además, que para realizar ataques o auditorias, necesitamos saber de redes, porque hacer un pentest publicando tu dirección ip pública y tu dirección MAC, es de primero de script kiddie, ni si quiera de primero de hacker.



Tenía una tarjeta de red TP-Link de estas que conectas por USB al equipo, por lo que operaba con 2 tarjetas de red siempre. Ya sabéis, por lo de tener actitud hacker y eso. Pero desgraciadamente mi tarjeta de red TP-Link murió y tuve que buscar una sustituta. 

Hacía tiempo que iba detrás de una Alfa Atheros, que es bastante potente y da para jugar bastante. Así que me metí en Amazon y la compré. Ya os digo que os deis prisa porque Alfa dejará de fabricarlas, yo por eso me compré una en cuanto pude, además es bastante económica.



A mí me llegó en unos 4 días y porque creo que estaba el fin de semana por medio. A mí nada más llegarme me entraron ganas de ponerme a jugar con la tarjeta, pero estaba trabajando desde casa y tenía que esperar.


Las características más importantes y destacables de la tarjeta de red ya la veis en la foto de la caja. Como he dicho es muy potente y nos servirá para realizar nuestras pruebas y tests, ya que con muchas de las tarjetas de red internas que tienen nuestros ordenadores, presentas unas características que hacen que no nos den tanto juego. Y nosotros somos hackers, tenemos que jugar con la tecnología.


La gran mayoría de vosotros, lectores, sois Windows users o al menos visitáis el blog desde un Windows (mal, sois las ovejas negras de la familia ;P). Sobre el setup de la tarjeta Alfa Atheros en Windows no tengo ni puta idea, así de claro lo digo. Solamente toco Windows en el trabajo y porque me obligan, por lo demás todo GNU/Linux. No obstante, por si queréis hacer pruebas, os recomiendo que tiréis de VM. En VirtualBox, añadir la tarjeta Alfa es tan fácil como conectarla por usb, ir a los ajustes de la VM, pulsar en "Usb" y posteriormente al botón de añadir. Ahí veremos que nos despliega unas opciones, entre las que está nuestra tarjeta Atheros. Tan simple como eso.


El setup es bastante complejo. Tienes que iniciar la máquina y ya. Por si no te lo crees, puedes probar a hacerlo y ejecutar el ifconfig y verás que, además de tu eth0 clásica, ves una wlan0. Esa es tu Atheros. Imagino que en Windows será igual, aunque como he dicho, no lo he probado.


Pero ahora vamos con el juego de verdad. Yo tengo mi airmon-ng personalizado para poner las tarjetas en modo monitor.No es nada complejo, simplemente es un for que mira todas las tarjetas de red y las pone en modo monitor. Pone en down todos los servicios que puedan tener conflicto con la tarjeta de red (que básicamente son todos los que toque la tarjeta de red), nos pone el regdomain en Bolivia porque Bolivia nos da más potencia y setea la tarjeta de red para que opere en modo monitor. Así de simple. Además también nos ha suplanto un fabricante de tarjetas de red (se genera random) y  nos cambia la MAC address, porque si somos hackers, somos hackers. Está muy feo eso de lanzar un ataque y que después en la captura de tráfico se vea tu MAC que es trazable.



Si ahora hacemos de nuevo el ifconfig, lo que vemos es que esa wlan0 se ha cambiado por nuestra mon0, lo que demuestra que nuestra Atheros está en modo monitor. Pero sigamos jugando.


Con aireplay podemos testear si nuestra tarjeta de red permite la inyección de paquetes. Ojo porque no todas las tarjetas de red lo permiten, de ahí que tengamos que testearlo. En mi caso vemos que sí permite la inyección. Decir que no os dejo el código del anterior script porque aún lo estoy mejorando para una herramienta aún más completa y que, con suerte, veréis antes de que termine el año.


Además, aireplay con la opción -i y la interfaz, lanza ataques de inyección de la interfaz especificada. Y ojo, porque aquí no todos los ataques son posibles en todas las tarjetas de red, y saber esto es importante sobre todo, si nos queremos proteger...o atacar si nos montamos bien el escenario. Pero no adelanto nada aún, eso será para otro post.

¿Hackeamos el Mundo?

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...