Mostrando entradas con la etiqueta C#. Mostrar todas las entradas
Mostrando entradas con la etiqueta C#. Mostrar todas las entradas

sábado, mayo 28, 2022

Cervantes: Una nueva herramienta para hacer tus pentests más fáciles

Desde que la tecnología ha ido inundando nuestras vidas, la ciberseguridad se ha vuelto algo esencial para proteger nuestra privacidad y nuestros datos. Para ello la Seguridad Ofensiva o el Pentesting se ha vuelto una de las piezas principales en los últimos años y cada toma más presencia como requerimiento en muchos estándares o normativas de seguridad de cualquier organización.
Al final un Ethical Hacking no es más que un ataque “autorizado y controlado” sobre uno o varios sistemas informáticos de una empresa. Este proceso es realizado para identificar vulnerabilidades, así́ como los puntos fuertes, lo que permite completar una evaluación de riesgos, y existen prácticas para su realización, procedimentadas y faseadas, que los profesionales de esta disciplina conocen perfectamente.

Por supuesto, la organización de la información de un pentesting, el proceso de generación de informes y la colaboración dentro de un de estos proyectos, es una de la partes fundamentales y críticas para la consecución con éxito de este. Al final todo esto nos lleva a un reporte que es donde se representará nuestro trabajo, todo lo que hemos realizado durante semanas y es el lugar donde daremos toda la información descubierta, así como las recomendaciones de seguridad a nuestro cliente.


Para organizar y representar de forma clara, concisa y sencilla toda esta información nos es necesaria la ayuda de alguna herramienta, que nos ayudará a ahorrar tiempo de trabajo durante el pentest, en la redacción y elaboración del informe. Y para ello se hemos trabajado en el siguiente proyecto llamado Cervantes, que nos permitirá compartir, organizar toda la información que se vaya recolectando, y haga la vida y el trabajo del pentester más fácil.

Figura 4: Página principal de Cervantes
   
Cervantes destaca por ser una herramienta potente, extensible y de fácil mantenimiento. Esta escrita en el lenguaje de programación C# y sobre la última versión de .NET Core 6 por lo que puede funcionar sobre cualquiera de los sistemas Microsoft Windows, GNU/Linux o MacOS. Cervantes es un proyecto OpenSource por lo que cualquier usuario de la comunidad puede colaborar y ampliar las posibilidades de ésta.

Figura 5: Generación Informe Cervantes

Nos ofrece muchas características como un sistema multi-idioma donde actualmente nos podemos encontrar los idiomas español e inglés, además de permitirnos generar informes en dichos idiomas en un solo clic.

Figura 6: Dashboard de un proyecto en Cervantes

Nos permite una gestión de proyectos completa, así como una colaboración en equipo, trabajar en vulnerabilidades de forma conjunta, asignar tareas a distintos miembros del proyecto, etcétera.

Figura 7: Kanban de proyecto en Cervantes

Haciendo énfasis en la parte de seguridad nos ofrece doble factor de autenticación, donde puedes proteger tu cuenta con Latch Cloud TOTP y muchas más características incluidas y que aún están por llegar, mantente al tanto para ir descubriéndolas.

Figura 8: Configuración de 2FA con TOTP en Cervantes

Actualmente el proyecto se encuentra en desarrollo, pero tenéis disponible en GitHub una versión Alpha tanto en formato Docker como en instalación de forma local. Os dejo con el vídeo para instalarlo de forma rápida y fácil desde Docker.

Figura 9: Instalación de Cervantes desde Docker

Han sido unos meses entretenidos de ir haciendo poco a poco la herramienta, desarrollando los distintos módulos que forman parte de esta, de intentar encontrar una interfaz agradable. Todavía queda camino y mucho trabajo por delante, ya que acaba de empezar el proyecto por así decirlo. Pronto espero tener novedades y mejoras como la capacidad de poder importar reportes de otras herramientas como Nmap, Nessus, (¿FOCA?), etcétera. Generación de reportes en múltiples formatos y mucho más. Pronto habrá más noticias.

Saludos,

Autor: Ruben Mesquida Gomila

miércoles, diciembre 18, 2013

Nevele Bank: Probar Latch con operaciones granulares

Para que todo el mundo pudiera entender bien los conceptos detrás de Latch decidimos crear un sencillo banco al que llamamos Nevele (Eleven al revés) Bank. Este supuesto banco no es nada más que una aplicación web desarrollada en .NET en la que se permiten hacer falsas transferencias de capital a cuentas locales o a cuentas internacionales.

Esta webapp tiene instalado el SDK de .NET que puedes descargarte gratuitamente desde el área de Developer de Latch. En ella se ha configurado un sencillo árbol de operaciones que tiene que ver con las transferencias, y dentro de ellas, con las transferencias locales e internacionales para que puedas probar cómo funciona la granularidad de operaciones en Latch que se vio en el artículo de ayer.

Lo primero que debes hacer es irte a la web de Nevele Bank y abrirte una cuenta del sitio. Ten cuidado, es un banco fake, y algunos filtros antiphishing te pueden dar una alerta, pero no te preocupes por ello, no movemos dinero de verdad. También es necesario que tengas la app de Latch para Android o iPhone instalado en tu smartphone y te hayas sacado una cuenta gratuita del servicio Latch desde la propia app del terminal móvil.

Una vez que tengas tu cuenta de Latch y tu cuenta de Nevele Bank, el siguiente paso del proceso es establecer el Latch entre ambas, haciendo el mismo proceso de pareado que se describe en el ejemplo con 0xWord, hasta que la identidad de Nevele aparezca en la app de Latch en tu smartphone. Si entras en las opciones de la identidad de Nevele dentro de tu app de Latch en el smartphone, podrás vez cómo hay un nodo de Transfers dentro de las cosas que se pueden configurar para que estén ON u OFF.

Figura 1: Nevele Bank tiene un nodo Transfers para configurar

Y por supuesto, si entras dentro de Transfers hay dos tipos de transferencias que pueden ser controladas desde la app, como son Locales e Internacionales. Este sencillo árbol de operaciones es el que ha sido establecido por el dueño de la identidad - Nevele Bank - en el momento de darse de alta con Latch, pero podría cambiar y modificar estas operaciones a lo largo del tiempo para dotar de más flexibilidad o control de las operaciones del sistema al usuario.

Figura 2: Opciones de configuración de la identidad Nevele Bank en Latch

En este ejemplo se puede ver cómo las transferencias Internacionales están bloqueadas y las transferencias Locales están permitidas, por lo que el comportamiento que se espera en la web es más o menos el mismo. 

Si vamos al sitio web de Nevele Bank, podremos intentar hacer una transferencia local. Para ello seleccionamos transferencias locales y rellenamos los datos de la transferencia. No te preocupes demasiado por el formato, casi cualquier cosa es admitida. Casi cualquier.

Figura 3: Haciendo una transferencia Local en Nevele Bank

En la siguiente pantalla tendremos la opción de confirmar la transferencia, y si lo hacemos se verá que el resultado ha sido satisfactorio, ya que el estado de esa operación en Latch es desbloqueado, por lo tanto no debería negarse.

Figura 4: Transferencia Local realizada

Si probamos a hacer una trasferencia internacional con el mismo proceso, podremos ver que el resultado no es el mismo. En primer lugar vamos al menú de Operaciones en la web de Nevele Bank, seleccionamos una Transferencia Internacional y rellenamos los datos.

Figura 5: Haciendo una Transferencia Internacional en Nevele Bank

Cuando demos a confirmar la operación, el resultado que deberemos obtener es que esta ha sido bloqueada por la configuración de la operación en el Latch que ha manejado el usuario.

Figura 6: Operación bloqueada en Nevele Bank por la configuración de Latch

Al mismo tiempo, el dueño del Latch recibirá una alerta en su app del terminal móvil que le avisará de que una operación que tenía bloqueada se ha intentando, pero que el sistema debe haber bloqueado.

Figura 7: Mensajes de bloqueo en la app de Latch para iPhone

El comportamiento de la aplicación web depende en todo momento de lo que quiera hacer el desarrollador. En el area de developer de Lath hay SDKs para Python, PHP, Java, .NET, Lenguaje C y Ruby. Todos ellos son Open Source y tienes documentación que explica cómo debes integrar estos controles a nivel general de cuenta ON/OFF o a nivel granular con las distintas operaciones. Puedes probar todas las características de Latch en Nevele Bank, tal y como se ve en el siguiente vídeo.


Figura 8: Demostración de todas las funciones de Latch en Nevele Bank

Si quieres probar el uso de Latch a nivel de usuario, lo puedes hacer en 0xWord, en Nevele Bank como hemos visto aquí, y en 90 sitios que ya están integrados, pero que os iré contando poco a poco. Bájate la app y dale una prueba a ver qué te parece su uso. 

Saludos Malignos!

domingo, abril 14, 2013

Extraer lista de URLs de ficheros .DS_Store

Quería añadir a la FOCA la posibilidad de extraer las URLs directamente de los ficheros .DS_Store que encuentre - que ya sabéis que los busca automáticamente en cada carpeta -, así que pedí a unos compañeros que me portaran el script en Perl de File Disclosure Browser a lenguaje C# para incluirlo en una futura versión.

Por el camino, haciendo pruebas nuestro compañero Ricardo se hizo un pequeño port a Java, que mientras que incluyamos la versión C# en FOCA os dejamos para que lo podáis utilizar. No está muy depurado aún, porque no se le ha hecho mucho testing ahora, pero funciona aceptablemente bien. Lo tenéis subido a SourceForge en iDStore, y tenéis el código C# y Java.

Figura 1: Buscando algún .DS_Store en Google

Para probarlo, puedes ir a buscar algún fichero .DS_Store usando un dork en Google. Para evitar falsos positivos puedes filtrarlo por Bud1 que funciona como magic number de este tipo de ficheros. Este es el aspecto del fichero que he elegido.

Figura 2: El fichero .DS_Store elegido indexado por Google

Después basta con lanzar con Java el programa DS_Store, tal y como se puede ver en la siguiente captura, y obtener los resultados en el fichero salida.txt. Tardará unos segundos, ya que está verificando los códigos de respuesta HTTP de todas las URLs generadas, aunque he detectado algún falso positivo en ellos.

Figura 3: Ejecución del programa DS_Store en Java

Para que Google indexe este .DS_Store, es necesario que o haya un enlace directo a él, o haya un listado de directorios, así que para comprar la información que se extrae de un fichero .DS_Store con el programa, he hecho estas capturas. En esta primera se ven los archivos que hay mediante el Directory Listing.

Figura 4: El contenido del directorio

Esta segunda es la salida del programa, en la que se puede ver claramente que aparecen muchos más ficheros que no se subieron al servidor web, y que se quedaron en el Finder del equipo Mac OS X que subió estos ficheros.

Figura 5: Las URLs extraídas con DS_Store

La funcionalidad la incluiremos en FOCA, pero por ahora podéis tirar con el script en Perl, con este programa escrito en Java y C# o seguir tirando con strings a mano para analizar los ficheros .DS_Store.

Saludos Malignos!

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares