Pentester público

Ingeniería, auditoría, pentesting, hacking y otras cosas que me gustan!

Captura de credenciales en la red y cracking de passwords

Una de las pruebas o ataques de red que puede ser de mucha utilidad en un pentesting (prueba de instrucción) o auditoría de seguridad informática, es la captura de credenciales (usuario y contraseña) y posteriormente el rompimiento o cracking del hash de la contraseña para hacer la intrusión en un activo de información (servidor, equipo de computo, aplicación…)

En este post se muestra una técnica de captura de credenciales en los protocolos LLMNR (Link-Local Multicast Name Resolution) / NBT-NS (
NetBIOS Name Service) y las herramientas usadas para lograr este objetivo.

Escenario:   Las pruebas se realizaron en una infraestructura tecnológica que cuenta con sistemas operativos Windows y protocolos de resolución de nombre de dominio LLMNR (Para Windows Vista en adelante o NBT-NS para sistemas operativos Microsoft anteriores).

Recordemos que la prioridad para resolver nombres de domonio de un equipo Windows, es la siguiente: Localhost -> DNS -> LLMNR or NBT-NS.

Ataque LLNBR-NBT-NS
Ataque LLNBR-NBT-NS

Herramientas o tools usadas:

Procedimiento realizado:

  1. Clonación de Responder.py
git clone https://github.com/SpiderLabs/Responder.git

2. Ejecutar responder para escuchar las credenciales de red.

Responder.py  -I eth0 - wrf 

El resultado del comando es algo similar a lo siguiente:

Luego empieza la captura de paquetes en la red.

Los hash capturados se almacenan en la base de datos Responder.db la cual se puede ver o consultar sus registros con la herramienta SQLite.

Para ver la Base de datos en formato GUI se puede usar el comando:

sqlitebrowser Responder.db

Para acceder de forma consola o geek, se puede usar el comando:

sqlite3 Responder.db
Los comandos mostrados en la imagen, son para colocar la BD el modo CSV y luego exportar sus registros a un archivo separado por comas (CSV).

Luego se debe parsear el archivo para que se interprete mejor por Hashcat.

Luego le pasamos el archivo con los hash parseados a Hashcat y usamos el diccionario para iniciar el crackeo de las contraseñas.

El resultado Hashcat en ejecución, se ve de la siguiente forma:

Hashcat en ejecución.

Luego ya solo falta esperar para que rompa el hash de la contraseña, como se muestra en la siguiente imagen, que solo demoro 20 segundos.

Hash NTLMv2 Crackeado

Finalmente, solo faltaría probarla en un equipo o servicio del dominio, ver que privilegios tiene este usuario y el resto de cosas que esten en la imaginación del pentester.

Un agradecimiento a @johanych por el conocimiento compartido en el tiempo que trabajamos juntos y permitirme publicar este post en su blog.

By @JOGAcrack.

Búsquedas Dork automatizadas para obtención de información de servicios GIS

No es el objetivo de este post exponer información sensible de alguna organización, por lo tanto, se protegieron los nombres y ubicaciones.


Hace ya algún tiempo estuve haciendo un análisis a una aplicación móvil, durante la revisión del tráfico me llamó la atención unas llamadas GET a un servicio online de georeferenciamiento en donde uno de los recursos del dominio era un fragmento de letras y números aleatorios. Estas llamadas lo que hacían era traer información de puntos georeferenciados como oficinas y lugares, entre otra información; sin embargo, lo que me causó mas inquietud es que es posible listar los demás recursos compartidos expuestos a través de este servidor web, los cuales no necesariamente tienen que ver con sitios, sino también con información sensible de diversa indole.

Landing page del servicio:

En la anterior imagen se muestra cómo se ve el servicio siendo accedido desde un navegador web y no desde una app móvil. El ‘nombre de la empresa’ o dueños de esos datos, está enmarcado en el recuadro verde en la primer parte del path de la URL y corresponde entonces a un fragmento de letras y números aleatorios, a continuación se especifica el servicio que se quiere consumir a través de la aplicación móvil.

Listado de servicios expuestos por esa entidad / empresa / usuario:

Ahora bien, en estas ubicaciones se publica información que en algunos casos tiene todas las características de datos públicos; sin embargo, hay otras ubicaciones que comparten datos sensibles de esas empresas, sus infraestructuras y hasta sus empleados.

Con el objetivo de analizar si nuestras empresas o clientes se encuentran dentro de aquellas que exponen información y en ese orden de ideas, realizar el correspondiente aseguramiento, surge entonces la primera pregunta; podríamos obtener un listado de urls que tengan este tipo de servicios indexados en Internet, teniendo en cuenta que su nombre es una cadena random? Por supuesto!. En realidad no necesitamos conocer estas cadenas randómicas, sólo necesitamos hacer uso de las consultas dork para saber qué sitios están indexados por el metabuscador partiendo de datos que sí conocemos y son estáticos, como, el dominio y uno de los path. Para este caso se nos ajusta a la perfección los parámetros inurl (con este determino cuál path o segmento de la URL quiero buscar) y site (retornará resultados basados en el dominio o web que especifiquemos).

De acuerdo con lo anterior, desde la página de google es posible entonces hacer una consulta dork, así:

site:subdominio.dominio.com inurl:/servicio/

De esta forma obtenemos un listado de sitios indexados por Google con las características especificadas.

Hasta aquí la parte fácil, ahora bien, Cómo podríamos obtener este mismo listado pero desde una terminal?

Podría parecer sencillo, pero hay que tener en cuenta algunos trucos que no conocía y que nos permitirá evitar el fatídico HTTP Error 503: Service Unavailable. Que en un navegador equivaldría a la solicitud de captcha, el cual se origina por un comportamiento sospechoso que Google detecta y controla de esa forma.

Con el siguiente fragmento en la solicitud GET y un time.sleep evitamos el anterior error:

ie=utf-8&oe=utf-8

Adicionalmente, con la variable num y la variable start controlamos la paginación, es decir, como máximo podemos acceder a 100 resultados, por lo tanto, num = 100; start = 0, implica que comenzará a mostrar resultados a partir del registro 0 y lo iremos iterando de 100 en 100, así:

for num in range(0,400,100): 

A continuación el código de la solución propuesta:

gissearch.py

En https://github.com/johanych/gissearch pueden encontrar el código completo.

Resultado de la ejecución del script.

Para finalizar, que información podemos encontrar en estos sitios? Muchos mapas con tablas de datos incluidas.!!

Mapas con datos extraños …

Estos datos se pueden acceder directamente en el mapa o se pueden acceder a través de consultas GET como la siguiente, la cual genera un listado json de 2000 registros de salarios de empleados de una empresa X.

En conclusión, no considero que esto sea un problema de los proveedores de este tipo de servicios de georeferenciamiento, creo que las empresas no son lo suficientemente conscientes de las implicaciones técnicas que tiene el uso de este tipo de servicios e incluso creo que en muchas ocasiones no saben lo que tienen público en Internet.

Es una buena oportunidad para poner a prueba nuestros skills en programación y evaluar si nuestras organizaciones conocen la información que tienen expuesta a través de los servicios de georeferenciamiento.

Saludos y hasta la próxima!!


P.D. Gracias a @dasouch por la ayuda en la construcción del script!

Charla – Día internacional de la protección de datos personales

En el marco de la celebración del día internacional de la protección de los datos personales de este 28 de enero de 2019, fui invitado por la empresa donde trabajo a compartir una charla sobre este tema, particularmente querían conocer acerca de la Deep Web y Dark Net, temas que generan en el publico mas incógnitas que respuestas. Así que a continuación les comparto los slides usados en la charla.

Para los que quieran investigar un poco mas en el tema, les recomiendo el libro de la conocida editorial 0xWord “Deep Web: TOR, FreeNET & I2P. Privacidad y Anonimato” de Daniel Echeverri Montoya.


Saludos!!

La gestión de riesgos como estrategia para la toma de decisiones – más hacking menos checklists!

TL;DR. Lo que a continuación leerán surge de un ensayo que escribí para la maestría en seguridad informática que curso actualmente y que quise compartirles, ya que, en este, trato de argumentar porque es importante que la auditoria interna dé un paso adelante y se convierta en un apoyo real en temas de ciberseguridad para las organizaciones. Los checklists son buenos, pero el cumplimiento no implica seguridad.

Este post se enmarca en dos puntos fundamentales que apoyan la toma de decisiones: el primero resalta la necesidad de realizar la gestión de la información como insumo fundamental y base para la toma de decisiones. El segundo, y no menos importante, una mirada desde la perspectiva de la seguridad informática y la auditoría como evaluador y agregador de valor en la gestión de riesgos organizacionales.

El futuro es ahora; la era digital en la que vivimos actualmente nos permite disfrutar de acceso a información en cualquier momento, desde cualquier dispositivo y desde cualquier lugar, de forma que podemos interactuar, aportar e intercambiar conocimiento a través de diferentes ambientes colaborativos o de relacionamiento. Esto está llevando a las organizaciones a definir y habilitar mecanismos para el intercambio de información, la realización de trámites y transacciones y la interacción entre el negocio, los directivos, los clientes y los dispositivos que hacen parte del Internet de las cosas, independiente del lugar donde se encuentre y el medio que use. El panorama anterior demanda de las organizaciones nuevos comportamientos y formas de hacer las cosas y desde luego ofrece nuevas oportunidades, lo que en consecuencia genera nuevos riesgos.

Estos nuevos comportamientos incluyen la identificación de mecanismos que permitan avanzar en el trabajo colaborativo, gobierno corporativo, simplificación de los procesos, convergencia tecnológica, más velocidad en capacidad de respuesta y adaptación y, en general, moverse en el mundo digital sin importar la ubicación física de los diferentes actores o el dispositivo que utilicen. Así las cosas, resulta necesario e imperativo la gestión adecuada de riesgos que involucre activamente, entre otros, el conocimiento del entorno, ya que la dinámica actual de las amenazas globales de seguridad de la información, por mencionar alguna, viene marcando una tendencia creciente en cuanto a nivel de sofisticación de los ataques informáticos, facilidad para ejecutarlos, recursividad e innovación.

En este sentido, uno de los aspectos a tener en cuenta dentro de la Gestión de Riesgos implica la identificación de información dentro de una organización (NTC-ISO 31000, 2009), la cual debe contar con su respectiva documentación de políticas, lineamientos, reglas de negocio, estandares, procedimientos e instructivos para su clasificación, protección, uso y aprovechamiento. Esta gestión busca brindar cierto nivel de tranquilidad y confianza a la dirección proporcionando un insumo oportuno y efectivo para la toma de decisiones. Por tal motivo, resulta necesario, propender por la integridad, confidencialidad y disponibilidad de la información, que brinde elementos suficientes y completos para el cumplimiento de los objetivos estratégicos de la organización. Para estos efectos, se debe contar con herramientas y técnicas de gestión para la evaluación y análisis de riesgos, las cuales permitan identificar amenazas, clasificar activos de información y calificar las vulnerabilidades del sistema para que, de esta forma, se puedan implementar los controles adecuados en los procesos o activos que lo requieran.

Ahora bien, la gestión de riesgos, se inter-relaciona naturalmente y de manera transversal, con los procesos organizacionales como por ejemplo: procesos estratégicos (Planeación Integrada, Gestión de Crecimiento, Gestión de proyectos…) procesos de soporte (Gestión de Tecnologías de Información, Financiera, Jurídica, Talento Humano…) y procesos misionales dependiendo el core o la misión de la empresa, lo cual precisamente genera que en los puntos de enlace, es decir, en la relación insumo-proceso-producto, se presenten debilidades de control que hacen más vulnerables los procesos y sobre todo, cuando se presentan procesos disruptivos como es el caso de la implementación de las conocidas “supply chain” o cadenas de suministro. 

Lo anterior, exige que se afinen los procesos de análisis de riesgo para que se pueda identificar esos puntos de corte entre procesos con debilidades de control y realizar, de esta forma, las evaluaciones adecuadas que permitan obtener planes de mejoramiento pertinentes para mitigación de los riesgos. En otras palabras, se deben realizar evaluaciones técnicas –  especializadas permanentes sobre los comportamientos de los controles y los riesgos que permitan el mejoramiento continuo de los procesos y de la misma gestión integral de los riesgos a nivel organizacional.

Es una práctica recurrente en las organizaciones actuales el hecho de buscar formas de potenciar la información como activo empresarial para mejorar los procesos de toma de decisiones. Sin embargo, este enfoque debe estar estrechamente ligado a una Gestión de riesgos que, mediante un monitoreo continuo del entorno y una definición clara del contexto de aplicación, permitiendo identificar, evaluar y tratar los diferentes riesgos (NTC-ISO 31000, 2009), apoyándose activamente en análisis de información histórica y modelos que permitan predecir eventos adversos, por ejemplo, a través de minería de datos o modelos matemáticos y/o estadísticos. Así las cosas, la gestión de la información y la gestión de riesgos con base en la proyección organizacional y el entorno tecnológico actual, requieren de una alta calidad y desarrollo, que permitan la asertividad, proactividad y visión en la toma de decisiones estratégicas y operativas. O lo que es lo mismo, la ausencia de un proceso estructurado de gestión de riesgos, sumado a una reducida calidad de la información, tienen una alta probabilidad de fracaso respecto a la toma correcta y oportuna de decisiones organizacionales, lo cual puede llegar a ser catastrófico para la sostenibilidad de una empresa y el entorno mismo.

En consecuencia, las decisiones que se tomen a nivel organizacional sobre el aseguramiento de nuestras infraestructuras tecnológicas deberían ir más allá de una identificación y gestión de riesgos y controles de la forma tradicional: se requiere de un enfoque innovador, radical (disruptivo) y ante todo proactivo. Se requieren entornos controlados de evaluación e identificación de nuevas amenazas y conocimiento avanzado que nos permita estar un paso adelante en la protección de los activos críticos (donde también se enmarca la información). Determinar estas nuevas amenazas (informáticas, humanas…) son esenciales en la construcción de una adecuada estrategia de seguridad empresarial. Es necesario entender en profundidad qué habilidades poseen los atacantes actuales y qué esquemas ofensivos pueden ser usados en contra de las infraestructuras tecnológicas actuales de forma que los activos y en consecuencia las organizaciones, estén lo suficientemente preparadas para afrontar cualquier evento o incidente de ciberseguridad.   

Dicho esto, resulta importante, por ejemplo, que las áreas de auditoria interna de las organizaciones, actuando como tercera línea de defensa y como evangelizadores de las mejores prácticas de aseguramiento y control, cuenten con laboratorios tecnológicos donde continuamente se investiguen las nuevas amenazas de seguridad y se permita una evaluación del impacto real de la explotación de vulnerabilidades en diferentes dispositivos de forma controlada y en ambientes separados de producción. Lo anterior, a través de personal capacitado y con experiencia en pruebas de intrusión que se salgan un poco del esquema de evaluaciones de seguridad a partir de listas de chequeo y cumplimiento de normativas y estándares. Así mismo, se requiere adquirir herramientas tecnológicas que permitan realizar gestión de vulnerabilidades para identificar cambios en la red de forma oportuna, trazabilidad en el tratamiento de vulnerabilidades, así como una calificación más acertada del riesgo que representan los fallos de seguridad.

Una ventaja directa de abordar este tipo de análisis de riesgos desde la auditoria es que, gracias a su posición jerárquica dentro de las organizaciones, permite una comunicación directa con los comités y juntas directivas donde se toman las decisiones en cuanto a presupuestos, personas, infraestructura y cultura organizacional, requeridos para hacer frente a los actuales riesgos estratégicos. Es en este contexto, donde toma más importancia la labor que se lleva a cabo por la auditoria en los laboratorios de seguridad, ya que es posible demostrar con hechos, el impacto en la materialización de un riesgo pasando un poco de la probabilidad a cuestiones que los directivos puedan evidenciar en la práctica, generando de esta forma un grado más significativo de concienciación o sensibilización, en la importancia de destinar los recursos (humanos, tecnológicos, financieros…) apropiados para proteger la infraestructura tecnológica y la información.

Concluyo afirmando, que la toma de decisiones tiene un potencial alto de asertividad y de agregación de valor, en cuanto se tengan sistemas de gestión de información, evaluaciones continuas de riesgos y controles y por supuesto, gestión transversal de los riesgos que permitan entender y ejecutar acciones que logren el cumplimiento de los objetivos estratégicos, mediante la acción oportuna contra efectos adversos del entorno.

Evasión de controles administrativos en entornos corporativos sobre Office 365 – Cambiando mi foto de perfil.

Uno de los objetivos para este 2019 es verme y sentirme mejor. Es por esto que como primera medida, he comenzado a eliminar todas esas mal logradas fotos del 2018. Sin embargo, cuando intenté cambiar mi foto de perfil en mi cuenta corporativa de Office 365, me he encontrado con el infame mensaje “El administrador ha deshabilitado el cambio de la foto de su cuenta.”

En este punto hay dos opciones, la vía corta y procedimental con una baja probabilidad de efectividad o el camino largo y de mayor conocimiento, ya saben cuál fue mi elección :p.

Con un poco de investigación logré dar con la dirección donde se hace el cambio de foto:

https://outlook.office365.com/ecp/PersonalSettings/EditAccount.aspx?chgPhoto=1&exsvurl=1&realm=tuempresa.com.co

*La variable realm corresponde al dominio de la empresa.

No obstante, en este sitio a primera vista solo se ve nuestra foto y un par de botones de Guardar y Cancelar y pareciera que no es posible hacerlo.

Ok, al grano. Si miran en el código fuente (F12) de esta página, verán una gran cantidad de Disabled=”true” y Style=”display: none;” que como ya habrán deducido es la razón por la cual no vemos los controles para hacer los uploads. (WTF???)

Ahora bien, para modificar el código fuente de la página y poder ver los controles lo podemos hacer o bien modificando a mano cada uno de los tags o hacerlo a través de la consola de Chrome usando el código:

$("*").show();

Esta porción de código nos permite aplicar la función show() a los elementos especificados, como div’s, buttons, etc, en este caso lo hice para todos los elementos usando el comodín “*”.

Ahora, para habilitar el botón file usamos la siguiente porción de código:

document.getElementById('ResultPanePlaceHolder_Photo_contentContainer_ctl01_profilePhotoFilename_uploader_iframe').contentWindow.document.getElementById('uploadFile').disabled = false;

Se preguntarán porque no simplemente usar un document.getElementById("uploadFile").disabled = false;? La razón es que esta página tiene un iframe, lo cual hace que la búsqueda
(getElementById) del elemento (uploadFile) deba hacerse dentro de ese frame específico, de lo contrario solo encontraran frustración y desesperación … ya pasé por ahí.

Listo, con el upload habilitado solo es cuestión de escoger de nuestro equipo una mejor versión para nuestra foto de perfil.

Esta operación actualizará también nuestra foto de Lync o Skype Empresarial (si hacen uso de esta herramienta).

Con esto en mente, ¿fallo? ¿feature? más los slides publicados por Ashar Javed en https://slides.com/mscasharjaved/a-tour-of-office-365-azure-sharepoint-through-the-eyes-of-a-bug-hunter#/, considero que aún falta mucho por explorar y mejorar en esta plataforma.

Saludos y hasta la próxima!


Publico este post con el permiso de Microsoft una vez surtidas las revisiones por parte de los especialistas de la plataforma. “…we will not be fixing this issue in the current version, and we will be closing this case. At this time, you are free to blog about, discuss, and/or present your findings about the current version publicly.”

Start

Hola a todos!

Tengo este blog hace un par de años, lo construí con el objetivo de compartir información, experiencias y temas relacionados con Ciberseguridad, a lo cual me dedico, sin embargo, no había tenido no le había sacado el tiempo necesario para organizar las ideas y materializarlas en publicaciones que espero en algún momento, le aporten algo a todas esas personas curiosas y estudiosas de estos temas.

Por lo tanto, es para mi un placer contarles que comenzaré a publicar resultados de algunos trabajos en ciberseguridad que he realizado a lo largo de estos últimos años y los que en el camino considere importante compartir.

Un saludo a todos y espero devolver algo de lo que he aprendido en este camino.

Entrenamiento Linux básico II

Cuestionario de entrenamiento en el uso del sistema operativo Linux

You must specify a text.
You must specify an email address.

Entrenamiento Linux básico

Cuestionario de entrenamiento en el uso del sistema operativo Linux

You must specify a text.
You must specify an email address.