29 may 2020

Pktmon: El tcpdump de Windows. Parte 2

Continuando con la cadena de posts sobre pktmon, hoy vamos a ver cómo jugar con los filtros del software y cómo explotar con algo más de detalle los resultados. Jugando con los filtros, podremos capturar solamente la información justa y necesaria, ahorrandonos tiempo a la hora de interpretar la información.

En el siguiente ejemplo, me he creado una serie de filtros para los siguientes puertos, utilizando la instrucción "pktmon filter add -p <PORT>":



Al igual que ocurre con otros sniffers de red, podremos seleccionar determinadas interfaces de red para limitar los resultados a una determinada interfaz. Para visualizar cuales tenemos disponibles, podremos utilizar el parámetro "comp list":


Como podéis ver, en mi caso la tarjeta de red se corresponde con el Id 13, por lo que para iniciar la captura en esa interfaz, podré hacerlo mediante el parámetro "-c 13":


Ahora, si paramos la captura, podremos ver los paquetes capturados en esa interfaz por pktmon:


Y ya podremos explotar el archivo generado, tal y como vimos en el post anterior de la cadena:


Por otro lado, existen utilidades como Microsoft Network Monitor, que os permitirán explotar los resultados de pktmon de una forma visual:


Y esta herramienta también la podemos utilizar como escáner, para visualizar la información capturada en tiempo real, tal y como podréis ver en la siguiente imagen:



Eso es todo por hoy. En próximos artículos de esta cadena seguiremos sacando partido a esta interesante utilidad.

Saludos!

28 may 2020

Pktmon: El tcpdump de Windows. Parte 1

Buenas a todos, en el post de hoy quería hablaros de pktmon, una herramienta de Windows que no es muy conocida y que podríamos definir de forma sencilla como "el tcpdump de Windows".

pktmon fue incluída en la actualización de Windows 10 de octubre de 2018, con el objetivo de dotar al sistema de Microsoft de un sniffer de red de forma nativa. 

pktmon es una herramienta de consola, con la que podréis trabajar desde Powershell de forma sencilla, elevando previamente permisos de administración. El binario se encuentra, como es habitual, en System32.



Añadir filtros en pktmon es sencillo, y bastará con ejecutar el programa con el parámetro "filter add". Por ejemplo, a continuación os muestro como aplicar un filtro para FTP al puerto 21:



Para ver los filtros aplicados, podréis utilizar el parámetro "filter list":



Para comenzar la captura de tráfico, bastará con lanzar el parámetro "start":



Y para parar la captura, utilizaremos el parámetro "stop":



Esto nos generará un archivo ETL, el cual podremos convertir con el propio pktmon a TXT:



Y este archivo, ahora sí, podremos interpretarlo con cualquier bloc de notas:



En el próximo post de esta cadena veremos como sacar más partido a pktmon y comenzaremos a explotar los datos recolectados.

Saludos!

27 may 2020

Algunas citas: El mundo se ha transformado y los eventos no son menos

Durante todo este confinamiento hemos visto como muchas cosas han estado cambiando, la forma en la que nos relacionamos y, seguramente, nos relacionemos no serán iguales, la forma en la que miramos al futuro no es la misma, la forma en la que vemos las oportunidades, el aprendizaje, el trabajo, los eventos no es igual. También os digo, que seremos más fuertes. 

Justo al terminar la Rooted 2020 había un evento en el que mi compañero y amigo Álvaro Nuñez-Romero y yo teníamos muchas ganas de asistir. Este evento era ViCON. Una conversación durante la Rooted en la que comentábamos que todo seguiría adelante en ViCON para el día 3 abril. La historia todos los sabéis: no pudo ser. El esfuerzo de la gente de ViCON está siendo enorme para planificar el evento durante este año, siempre que se cumplan las medidas de seguridad y sanitarias adecuadas. Es un esfuerzo que valoramos desde aquí. Y si este año no puede ser, que sea en 2021. Gracias por vuestro esfuerzo.


Durante estos meses han ido surgiendo diferentes eventos online y otros que han pasado a versiones online como, por ejemplo, BlackHat USA. Eventos tan internacionales como éste ha decidido celebrar una nueva edición desde el plano virtual, con todos los elementos que tiene una BlackHat


Hoy, tengo la suerte de estar en 42. Para el que no conozca el proyecto 42 debería pasar por su web y echar un ojo a la metodología de aprendizaje y todo lo que ofrece. 42 es un proyecto internacional y que está teniendo grandes resultados. Innovación y educación van de la mano. Hoy daré una charla sobre el ámbito de la seguridad ofensiva y cómo dedicarse a este mundo, viendo algunas expectativas y algunas realidades. Una charla especial, en un entorno especial. 


La 8dot8 también está pensando en el futuro y en cómo será éste. Mientras algunas cosas se irán viendo con el paso del tiempo, la 8dot8 ha puesto en la mano de el que quiera apuntarse 4 workshops.   El próximo día 4 de junio de 9.00 a 13.00 (horario en Chile) estaré junto a Philippe Deltell, Jaime Restrepo (DragonJAR) y Lorenzo Martínez. El workshop que daré es el 'Los niños y los pentesters nunca mienten', con una aproximadamente una hora de duración. 


En la siguiente web puedes inscribirte, el evento es totalmente gratuito


La 8dot8, cada año, tiene una palabra que la define. Yo he tenido la suerte de estar en la edición: Super Héroes 2014, Villanos 2015, Infinity 2018, Nine 2019. En esta décima edición de la 8dot8 hemos visto su gran crecimiento con todos los países dónde hacen una edición, y el nombre que le han puesto a la décima edición es: Leyendas. No sabemos si será online o podrá ser presencial, pero este año, en principio, podemos decir que impartiré 3 talleres en el evento, pero como digo, será online o presencial, todo dependerá de cómo se encuentre el estado en el que nos encontramos. 


Entre los días 10 y 12 de julio se celebra en Panamá el evento Dojo Conference Panamá. En esta ocasión será en edición virtual. Seguramente el dia 11 de julio impartiré una charla y, aunque no pueda ser de forma presencial, disfrutaré mucho la experiencia de compartir el tiempo con ustedes. Los organizadores de este evento son una gran comunidad dedicada al aprendizaje y al compartir conocimientos entre los miembros de la Comunidad. Además, son los organizadores de BSides en Panamá

A finales de junio tenía programado un vuelo a Paraguay para dar una charla en HackDay Paraguay. Debido a todo lo ocurrido se barajan la posibilidad virtual o el aplazamiento. Veremos si se aplaza y más adelante podemos compartir en Paraguay las experiencias. Poco a poco se iban desvelando ponentes y tenía la suerte de compartir espacio con Lorenzo Martínez y Álvaro Andrade. 


Y otro de los eventos que están en el horizonte es el de Open Hacking en Guatemala. El año pasado me lo perdí por motivos profesionales, pero en esta ocasión, estaré en el evento a través de la videoconferencia.


Estos son solo algunos ejemplos de cómo estamos cambiando algunas cosas, transformándonos y empujando hacia delante. En España tenemos algunas dudas de cómo se irán haciendo algunas cosas, esperemos que podamos seguir disfrutando, sea de una u otra forma, de toda la calidad de eventos que tenemos. Seguiremos empujando y apoyando. Seguiremos luchando.

26 may 2020

ENISA... esa gran desconocida

¡Hola lectores!

Como algunos sabréis, [momento autopublicidad on] soy profesor en el capítulo de Madrid de ISACA. Los alumnos de estos cursos van desde gente con mucha experiencia en nuestro sector, acostumbrados a hablar de ciberseguridad (e incluso, alguna vez, lectores habituales de este blog), hasta personas totalmente alejadas de nuestro mundo, que hacen un esfuerzo enorme por entender nuestro lenguaje y conocer algo más de qué es la ciberseguridad. Personalmente, recuerdo sesiones que he impartido a alumnos que se dedicaban a marketing o abogacía, que han sido todo un reto, para ellos, y para mí. [momento autopublicidad off]

Sin embargo, hay una cosa que viene siendo habitual en todas las ediciones del curso independientemente de la procedencia de los alumnos. La mayoría están acostumbrados a oír hablar del NIST, pero muy pocos conocen ENISA. Me sorprende que una entidad americana como es ISACA, tenga citas dentro de su material a ENISA, pero que a muchos profesionales del sector, esta entidad no les suene de nada. Por este motivo, surge la iniciativa de este post, para tratar de acercar a nuestros lectores esta institución.

Hay que reconocer que, tampoco ayuda que ENISA sea como ese amigo que todos tenemos, que siempre tiene muy buenas intenciones, pero termina haciendo las cosas más difíciles de lo que son. Sino, no me explico como pudieron llamar NIS a la directiva de ciberseguridad Europea de ENISA.

Fuera de las sensaciones personales que uno puede tener, no hay nada más que ver sus cuentas oficiales de Twitter, para saber la repercusión que tienen cada uno de ellos:

Pobre ENISA, sigue a NIST, pero no hay followback... 

Sin aburriros entrando en definiciones oficiales, os indico, cómo se autodefinen ellos:

NIST (National Institute of standards and technology):  promueve la innovación y la competitividad de los Estados Unidos al promover la ciencia, los estándares y la tecnología de medición para mejorar la seguridad económica y mejorar nuestra calidad de vida.

ENISA (European Network and Information Security Agency): proporciona recomendaciones sobre ciberseguridad, apoya el desarrollo de políticas y su implementación y colabora con equipos operativos en toda Europa.

Como recoge la propia Microsoft en su blog, a ambas entidades las separa algo más que un océano.

Seguro que a más de un lector, le suena a que ambas hacen lo mismo.

En resumen, ENISA es una entidad europea dedicada en exclusiva a la ciberseguridad, que comenzó su andadura en 2004 y el NIST, es una veterana entidad norteamericana, que no se dedica en exclusiva a la ciberseguridad y fue fundada en el año 1901. ENISA es una adolescente que está comenzando y buscando su sitio, mientras que el NIST, ya lo "ha visto todo".

En sucesivos post os presentaré algunas de las herramientas que considero más útiles de ENISA, para que entre todos, cambiemos un poco esta situación. Pero por ahora, lo que todos podemos hacer es comenzar aseguir a ENISA en redes sociales como Twitter :)


Un saludo


25 may 2020

Covenant: Un Command and Control un tanto vacilón (Parte I)

¡Muy buenas a todos!

En esta serie de tres artículos os vengo a hablar de Covenant, un sencillo Command & Control, desarrollado por Ryan Cobb, con el que llevo trabajando varias semanas y para el que solo tengo buenas palabras... aunque a veces sea un poco cabroncete. ¡Comencemos!

Tras sufrirlo y disfrutarlo durante tantas horas, me gustaría compartir una serie de "trucos" para resolver determinadas situaciones que pueden llegar a convertir la experiencia con Covenant en una auténtica pesadilla.
Descripción gráfica de mi persona trabajando con Covenant.

Problema 1: Si impersonamos un usuario mediante el comando MakeToken e intentamos ejecutar un comando con ShellCmd, podremos comprobar que no se ejecuta correctamente, devolviendo por pantalla el siguiente error.

Fig 1: El usuario Ruperto es Administrador del equipo DC-01, sin embargo, el comando no funciona.

Solución: En la versión actual, no hay solución todavía (v0.4). No obstante, como parche temporal, podemos emplear los comandos ShellRunAs y ShellCmdRunAs que nos permiten incluir el usuario y la contraseña como parámetros. Otra opción factible es lanzar los comandos mediante Powershell. Podéis indagar más en detalle en el issue abierto por Attl4s en GitHub.

Fig 2: Empleando ShellCmdRunAs o ls sí funciona.

Problema 2: Covenant no dispone de mecanismos de Port Forwarding por defecto, por lo que es necesario que empleemos alguna técnica externa para poder realizar esta técnica.

Fig 3: Estamos trabajando en ello.


Solución: Aunque existen infinidad de mecanismos, la manera "más nativa" de realizarlo es mediante la carga en memoria de una Meterpreter empleando el comando Shellcode.

Fig 4: Donde Hex es la Meterpreter en hexadecimal.


Problema 3: El proceso de Covenant empieza a ser inestable, e incluso, se llega a cerrar solo, impidiendo su reinicio.

Fig 5: Si empiezan a salir errores de este estilo... temeos lo peor.


Solución: La base de datos de Covenant es muy inestable, por lo que es probable que tras varias horas funcionando empiecen a aparecer diversos errores en el log del proceso llegando incluso a cerrarse solo. Aunque algunos recomiendan eliminar los SMB Grunts en los que hayamos perdido la sesión mediante el uso de un navegador SQL (SQLite, por ejemplo), en mi caso, la única solución que ha funcionado siempre ha sido borrar la base de datos de Covenant (Covenant.db) y desplegar todo de nuevo desde cero.

Fig 6: Localización del fichero covenant.db. Al buen sudo fire.


Fig 7: Localización de los Grunts en el fichero Covenant.db usando SQLite.

Y hasta aquí este primer artículo de la serie. !Nos vemos en el próximo!

Happy Juancking!

22 may 2020

Liberamos un modelo para detectar con una cámara si llevas puesta una #mascarilla

Buenas a todos, como ya sabréis, las mascarillas ya son obligatorias en España para las personas mayores de seis años en espacios cerrados públicos y en la calle, a menos que se pueda garantizar la distancia mínima de seguridad de dos metros entre personas. Dada la situación, en muchas organizaciones se están implementando políticas para garantizar el cumplimiento de esta obligatoriedad, y facilitar mascarillas o guantes a los clientes y empleados que por cualquier circunstancia no los llevasen puestos. 

Desde hace varias semanas estoy viendo artículos como éste, donde se habla de IAs capaces de detectar mascarillas a través de cámaras, y he querido probar cuánto tiempo me llevaría entrenar un modelo con Teachable Machine, software del que ya os hemos hablado en estos 2 posts, para reconocer con una simple webcam si una persona lleva o no puesta la mascarilla:
El entrenamiento lo he llevado a cabo en apenas 2 minutos, con 50 fotografías descargadas de Internet con personas que llevan mascarilla, y con otras 50 fotografías de personas que no la llevaban:




Y el resultado lo podéis ver a continuación. Con una tasa del 100% de éxito, cuando una persona se sitúa delante de nuestra webcam, detecta perfectamente si lleva puesta o no una mascarilla:



Si este modelo lo incorporaseis a un software que recuperase la salida de una cámara, podríais implementar algún tipo de alarma sonora que avisase cuando alguien no la lleve puesta, y tan solo tendríais que dejar la cámara y el ordenador en la entrada de vuestra empresa, para alertar de que alguien podría entrar en vuestra oficina sin cumplir las medidas de seguridad sanitaria. Sencillo ¿verdad?

Para que no tengáis que perder tiempo en entrenar el modelo, os lo he dejado subido a mi cuenta de Github:
Saludos!

21 may 2020

Cazando bots en Twitter con Botometer

¡Muy buenas!

Estábamos el otro día unos cuantos compañeros del blog teniendo una lluvia de ideas sobre cómo detectar bots que difundan fake news en Twitter, y mientras nos dábamos cuenta de que es imprescindible tener estas conversaciones con una buena cerveza en la mano, me dio por mirar por Internet a ver si me encontraba con alguna herramienta interesante.

Obviamente, sí.

Os presentamos Botometer 
Botometer es una aplicación que ya lleva bastante tiempo entre nosotros. De hecho, el proyecto antes se llamaba BotOrNot, y su cuenta de Twitter lleva activa desde nada menos que 2014. Vamos, que no os estamos descubriendo una herramienta de hace un par de días exactamente. No obstante, si yo no conocía la herramienta, entiendo que habrá mucha gente que tampoco la conozca, así que creo que este pequeño post les va a resultar de los más interesante.

Botometer usa la API de Twitter para obtener información sobre un perfil de Twitter específico (datos del perfil, tweets, interacciones, etc.), y los pasa por un algoritmo de machine learning que analiza, entre otras cosas, el perfil de la cuenta, amigos, estructura de la red social, patrones de actividad temporal, lenguaje y sentimiento de los mensajes. De este modo, se va calculando una puntuación (sobre 5) que indica si la cuenta es potencialmente un bot o no.

Además de poder analizar un perfil específico, se pueden analizar los seguidores y seguidos de una cuenta, pudiendo comprobar a cuántos bots sigues o te siguen.

A continuación, vamos a descubrir si soy un ser humano o un robot:
Menos mal, me he quitado un peso de enicma

Aquí podéis ver que la cuenta de Flu se lleva con mucho cariño y humanidad :P



Y, finalmente, veamos el caso de una seguidora de última hora de mi perfil en Twitter, ¿creéis que le interesará la ciberseguridad?
¡Y yo que pensaba que había ligado!


Y por si os lo estáis preguntando: no sigo a ningún bot. ¿Y vosotros? ¿Creéis que si todo el mundo comprobase qué contactos a los que sigue son meros bots, mejoraría la convivencia en Twitter? Tal vez más adelante hablemos sobre lo absurdamente fácil que es hacer una cuenta falsa en Twitter...

¡Saludos!

20 may 2020

Decálogo del Buen Hacker

¡Muy buenas a todos!

¿Es tu primer día de analista y necesitas algún consejo? ¿Te encanta petar HTB, pero no sabes escribir informes ni en español, ni en inglés? ¿Sospechas que el pensamiento lateral es un invento de EEUU? ¿Lanzas los exploits sin ni siquiera leerlos antes? ¡No desesperes! @macgruap y @MrSquid25 están aquí para darte una serie de consejos que harán de tu carrera como juanker un camino sencillo hacia la gloria y el pwn.

Bienvenidos al...
FREE OFFER FOR LIMITED TIME!!
Consejo nº 1: Ayuda a la comunidad. Métete en todos los grupos de hacking que puedas. En cuantos más, mejor para todos, el suyo beneficio propio. ¡Hazte con todos!
¡Mira mamá, tengo muchos amigos h4x0rs!
Consejo nº 2: Censura sabiamente. Toda la información sensible de tus informes deberá ser ofuscada. Pero a medias. Que se vea que les has petado, que no duden de tu poderío.
Nunca descubrirán la contraseña, no son tan listos como tú.
Consejo nº 3: Nunca dejes de aprender, el hacking es un estilo de vida el hacking es TU VIDA. NO puedes parar JAMÁS de FORMARTE, no tengas vida, TENALP EHT KCAH!
Él se registró ayer en HTB. Ya es Omniscient. ¿Y tú, qué rango eres, parguela?
Consejo nº 4: Tu trabajo es petar cosas; ¡que escriban los de letras! Cambia el icono del reporte de esa herramienta y listo. ¿Que no sabes inglés? No importa, no eres filólogo: Google Translate sí.
These DO is a inform of quality!
Consejo nº 5: Vístete como lo haría un verdadero hacker. Te tienen que reconocer nada más entrar por la puerta.
¡OJO! El efecto M4tr1x no se incluye con la capucha, solo te lo regalan al aprobar el OSCP.
Consejo nº 6: No obstante, a veces es necesario trabajar de incógnito. Aprende también a camuflarte a simple vista like a PRO.
Ya decía yo que becario y con esas pegatinas en el PC...
Consejo nº 7: Recuerda, no solo eres hacker; por desgracia, también eres consultor. Si te preguntan algo, tienes que saber qué responder... es decir: Verborrea mode ON.
Sabe de todo. Experto en nada.
Consejo nº 8: La ingeniería social debe ser tu técnica más desarrollada. ¡Los productos de tu empresa no se venden solos!
Recuerda, aunque no funcionen, ¡te sigues llevando comisión!
Consejo nº 9: Entiende tu posición. A diferencia de los del SOC, tú tienes el don del pensamiento lateral. Aunque no sepas bien qué significa eso, siéntete superior por ello.
Su movimiento lateral se llama Duck Duck Go.
Consejo nº 10: El más importante de todos y el único que tienes que grabar a fuego en tu Cherry: tu ego es tu posesión más preciada. No importa cuánto la estés liando, nunca aceptes que no tienes razón. ¡La humildad es de muggles y script kiddies!
Tu API es vulnerable a clickjacking. Alta. Auditoría hecha.
Tras estos consejos, seguramente muchos hayáis trascendido hasta el reino de los dioses del pwn. No obstante, algunos compañeros necesitarán una ayudita más para alcanzaros… ¿Qué más consejos les podríais dar? Ayudadles por Twitter con el hashtag #ConsejoH4x0r y ¡compartid este post!
P.D. Ser malos! Buenos días hackers :)
Happy Trolling!