BrakemanPro BETA – Scanner de vulnerabilidades para Ruby On Rails
Sep13

BrakemanPro BETA – Scanner de vulnerabilidades para Ruby On Rails

Quizás algunos de ustedes ya conocían o habían escuchado sobre BrakemanScanner, BrakemanPro promete ser mucho mas que Brakeman Scanner y convertir su uso en algo mas frecuente y popular entre los desarrolladores de Ruby On Rails y analistas de seguridad. Para quienes no conocían nada sobre Brakeman Scanner, es ,según su propia web, un Scanner de vulnerabilidades específicamente diseñado para aplicaciones desarrolladas en Ruby On Rails. Realiza un análisis estático del código de la aplicación para encontrar posibles problemas de seguridad en cualquier etapa del desarrollo. BrakemanPro viene a ser una extensión de este Brakeman Scanner, que nos permite visualizar de mejor manera el resultado del análisis realizado, brindándonos una serie de beneficios en el camino de cara a entregar a nuestro equipo de desarrollo o a nuestros cliente un informe mas elaborado de lo encontrado. Brakeman Scanner solo funciona desde consola, una vez instalada como una gema (gem install brakeman) debemos, desde la raíz del proyecto a evaluar, ejecutar “brakeman”, para el reporte en consola o: brakeman -o report.html brakeman -o report.json que generaría en este mismo directorio el informe resultante del análisis, en el formato deseado. Existen otra cantidad de opciones que podemos configurar en Brakeman Scanner, como por ejemplo poner nuestro propio Css al reporte para que sea mas vistoso, limitar el largo del reporte, o evitar algunos archivos para que no sean evaluados. Todas las opciones en: brakemanscanner.org/docs/options/ Brakeman coloca niveles a las alertas arrojadas en el informe, High, medium y weak, como guía para nuestra evaluación posterior, lo que representa el nivel y probabilidad de que la falla que produce la alerta, pueda ser usada perjudicialmente (severidad). Brakeman tiene configurados unos tipos de alertas que vienen a ser los tipos de ataques que se pueden registrar como consecuencia de alguna brecha en un proyecto Ruby On Rails, estas alertas son las siguientes: Cross Site Scripting Cross Site Scripting (JSON) Cross Site Scripting (Content Tag) SQL Injection Command Injection Mass Assignment Attribute Restriction Cross-Site Request Forgery Unsafe Redirects Default Routes Format Validation Denial of Service Dynamic Render Paths Dangerous Evaluation Unsafe Deserialization File Access Basic Authentication Session Settings Information Disclosure Dangerous Send Mail Link Remote Code Execution Remote Execution in YAML.load SSL Verification Bypass Unscoped Find Esta lista sigue ampliandose o profundizandose en cada actualización. Dicha lista es tomada de la pagina oficial de Brakeman, la mas reciente versión liberada es la 3.1.0. -Ejemplo- Al examinar el código de un proyecto que no tiene Alertas en consola se vería algo así en la consola: Si lo que queremos es que arroje el reporte en html, la salida en consola sería algo como esto: Abriendo el...

Leer Más
Skipping valid payment (SVP) en Facebook
Mar04

Skipping valid payment (SVP) en Facebook

Defino a SVP como un tipo de fallo el cual te permite saltar la validación de un método de pago en el transcurso del proceso ya sea antes o después de la validación, y este también lo puedes llamar bug de salto. Explicación lógica: En una tienda, vamos a comprar un producto el cual tiene como método de pago tarjetas Visa (cc) al comprar el producto pide los siguientes datos: nombre completo, código postal, país, numero de tarjeta y el cvv. Al ingresar los datos de nuestra tarjeta en el formulario de pago el producto va a hacer comprobado pero en este caso —  nuestra tarjeta no tiene dinero. Por lo tanto en el proceso de pago, al tener dinero se envía una respuesta TRUE, donde me comunica de que el pago fue satisfactorio y si no hay dinero manda una respuesta FALSE. Pero el punto principal es generar un proceso con respuesta TRUE con nuestra tarjeta sin dinero, haciendo una compra exitosa sin tener saldo en nuestra cuenta generando una equivocación de comprobación en el resultado del método de pago. Ejemplo: Si encuentras un Cross-site request forgery (CSRF) y el proceso de este te permite saltar un formulario de pago, formando una equivocación en el proceso de validación de pago esto se define como CSRF tipo SVP. Corriendo en Facebook El 23 de diciembre del 2014, hice una publicación en mi pagina personal de facebook sobre el lanzamiento de la nueva versión de mi cms hubpi, tenia 20 USD en una de mis cuenta de paypal y quería hacer una promoción de la publicación del lanzamiento para que muchas personas vieran y usaran el cms. En esas fechas, paypal hizo una actualización a sus sistemas de pago por lo que me causo mucha curiosidad testear y ver que podría encontrar, la primera prueba la hice en github lo cual fue un proceso efectivo donde se pudo saltar el método de pago obteniendo cuenta premium leer mas en “Skipping” payment and then premium on Github lo curioso fue que github nunca respondió al reporte enviado, pero estos repararon este pequeño error en la metodología de pago haciendo que después de un mes de una declinación de la cuenta. Después de hacer la promoción en facebook, me pidió un método de pago en este caso utilice paypal. Tu cuenta paypal tiene que estar atada a una CC para que pueda ser validada en la configuración de la api de pago de paypal configurada por facebook. Al darle click en “Agree and Pay Now” nuestra cuenta va hacer agregada y registrada en nuestro perfil de facebook como fuente de pago directa, pero...

Leer Más
Cómo La Tecnología Afectó Mi Productividad
Feb04

Cómo La Tecnología Afectó Mi Productividad

A primera vista, el título parece ser una vil paradoja, pues es casi una afirmación que la tecnología se hace y avanza para el bien de la humanidad; para hacer nuestra vida más fácil; para potenciar nuestras ideas y por ende, ser “más productivos”. La otra cara de la moneda es que los avances tecnológicos traen consigo varios contras, incluyendo algunos un poco extravagantes como la deshumanización o la Singularidad Tecnológica, sin embargo, en tan extenso tema, solamente compartiré esta rápida anécdota de cómo mi productividad se ha ido degradando gracias al Internet de banda ancha, el smartphone y las redes sociales. Es seguro que muchos de ustedes han pasado por lo mismo o algo parecido. Todo comenzó con una Pentium II a 333 MHz, 4GB de HDD y 128MB de RAM; con dial-up (¿recuerdan ese: “desconecta el Internet que tengo qué hacer una llamada!!!!” de tus padres?), desde Windows 98, aprendiendo en gran medida sobre optimización de recursos de cómputo, aptitud de la que muchos geeks y expertos carecen hoy en día, TCP/IP, arquitectura de computadoras, incluso algo de lenguaje ensamblador con un tutorial de Wintermute (famoso creador de virus informáticos). Las horas necesarias para descargar papers de Internet, y la mayor parte del tiempo invertida en aprender. Meses después, me compré una revista con un CD de Red Hat Linux 7.3 incluido, estaba maravillado, pues por primera vez en mi vida tenía un gestor de arranque en el MBR de mi computadora! El tiempo transcurría, meses leyendo papers de PHRACK en formato 7-bit ASCII a 80×24, consola UNIX clásica. No Internet (descargaba los papers estando en Windows), pura prueba y error durante el proceso de aprendizaje. Las madrugadas transcurrían hasta ver los primeros rayos de sol entrar por la ventana, era hora de dormir. Aprender a crear shellcodes, incluso en arquitecturas diferentes de x86, fueron mi pan de cada día por algunos meses, así como también instalar varios Sistemas Operativos en la misma computadora, sólo por diversión, para que en la siguiente instalación echara a perder el MBR y horas más tarde volviera al punto inicial, Windows recién instalado. Tiempos difíciles, pero pronto todo iba a cambiar. Después de muchos intentos fallidos, finalmente pude compilar el driver de mi winmodem en Linux. Me sentí invencible después de ver que mi ISP me había otorgado ¡una dirección IP pública! Navegaba por Internet desde un Linux ¡No lo podía creer! Eran épocas brillantes, absorción rápida de información y aprendizaje compartido en el ciberespacio. Gente creando y compartiendo códigos privados y shells remotas en algún punto geográfico en tu nadir. Ahora las madrugadas se desvanecían aprendiendo, a través de la...

Leer Más
Desarrollo de módulos auxiliares HTTP en Metasploit – Vulnerabilidad Highlight Joomla
Feb03

Desarrollo de módulos auxiliares HTTP en Metasploit – Vulnerabilidad Highlight Joomla

Continuando con los tutoriales para la construcción de módulos auxiliares en metasploit (Click aquí para ver la primera entrega), el siguiente tutorial ilustra la construcción de un módulo para explotar una vulnerabilidad de Joomla versiones anteriores a 2.5.8 o 3.0.2. Estas versiones del CMS Joomla no validan correctamente el parámetro hightligth, el luego el valor de este parámetro se pasa a la función unserialize El peligro de utilizar la función unserialize es que permite la instancia de clases, esto quiere decir que si como parámetro enviamos el nombre de una clase, esta función internamente crea la instancia de la clase y ejecuta sus funciones de construcción y destrucción. Para mayor información sobre los peligros del método unserialize de PHP favor remitirse a los siguientes enlaces. http://www.sied.com.ar/2014/02/la-explotacion-de-los-insectos-exoticos-unserialize-el-post.html El investigador Marcin “redeemer” Probola público un script realizado en Python, el cual aprovecha la vulnerabilidad y el cual vamos a utilizar como base para la creación de nuestro módulo en Metasploit. Marcin “redeemer” Probola hace uso de una clase en Joomla que se llama JStream esta clase cuenta con las características necesarias para invocarla desde la función unserialize y cuenta con un método adicional llamado close el cual se invoca una vez se llama el método destructor de la clase JStream. El script de redeemer se utiliza para crear una conexión ftp con un servidor que pasamos por parámetro y la función close como es invocada al destruir la clase permite ampliar lo que es una petición normal http a una ftp con comando de escritura de permisos. Lo cual es aprovechado para hacer denegación de servicio (DOS) del servicio http. Vamos a empezar a crear nuestro modulo en metasploit y como siempre lo primero es la definición y los parámetros: Nombre, descripción, autor …… Y como parámetro la url del Joomla, dado que a veces es utilizado como un sub-sitio. Las dos primeras funciones son funciones auxiliares que nos van ayudar a definir los valores de las variables de la url de joomla y el protocolo. Si requieren más información de esta asignación pueden remitirse al primer tutorial de Desarrollo de Módulos Metasploit http://www.dragonjar.org/desarrollo-de-modulos-auxiliares-http-en-metasploit.xhtml Vamos a centrarnos en las funciones run_host y una función creada para el ataque do_request La función run_host es la que se llama por defecto cuando ejecutamos el comando run desde la consola de Metasploit. Como el ataque es de Denegación de servicio, el siguiente código realiza dos ciclos, uno de 1 a 15 y el otro de 0 a 9, esto con el fin de generar 150 peticiones. A su vez utilizo la función framework.threads.spawn para generar los hilos y que las peticiones sean en paralelo...

Leer Más
Samurai, Entorno de trabajo para el testing de seguridad a aplicativos Web
Dic01

Samurai, Entorno de trabajo para el testing de seguridad a aplicativos Web

ACTUALIZADO: acaba de salir la versión 3.0 de esta excelente herramienta para realizar pentest hacia aplicaciones web, todas las herramientas han sido actualizadas y algunos errores corregidos. Descarga esta nueva versión haciendo click en este enlace… si no sabes que es Samurai Web Testing Framweork, te digo que… Samurai Web Testing Framework es un entorno de trabajo basado en GNU/Linux Ubuntu, que ha sido pre-configurado para llevar a cabo test de penetración a aplicativos Web. Este LiveCD, que además puede ser instalado como sistema operativo por defecto en el disco duro, contiene un repertorio bastante amplio en cuanto a herramientas de libre uso y distribución se refiere. Estas herramientas están destinadas a realizar pen-testing sobre aplicativos Webs. Al igual que la distribución BackTrack, Samurai Web Testing Framework divide las herramientas por grupos según una metodología. Comienza por la etapa de reconocimiento, para ello hace uso de las herramientas Fierce domain Scanner y Maltego. Para el mapeo del sistema objetivo incluye la herramienta WebScarab y Ratproxy. Para el descubrimiento de vulnerabilidades incluye w3af y burp, finalmente para el proceso de explotación utiliza BeEF, AJAXShell y otras más. Como si esto fuera poco, Samurai Framework incluye una wiki preconfigurada y lista para ser usada como bitácora de recolección de la información que vamos generando a medida que avanzamos en el proceso de pen-testing. Los desarrolladores hacen anuncio oficial de la disponibilidad de esta primera distribución como versión de desarrollo y hacen la invitación a los interesados a participar de este genial proyecto, ofrecen para ello un sitio Web y una lista de correo. Para finalizar dejo algunas capturas de pantalla de lo que he probado a manera “superficial” sin entrar aún mucho en el detalle de uso y comportamiento del sistema (hasta el momento va muy bien). Quiero además hacer la salvedad que estas mismas herramientas pueden ser instaladas y configuradas en diferentes S.O, por lo tanto una vez más queda comprobado que no importa el S.O que utilicemos, todos pueden servir para las diferentes tareas de nuestro día a día, incluso para estos menesteres de la seguridad 😉 Cargando y reconociendo componentes y hardware Inicio de sesión (contraseña para root) Escritorio (Gnome) Menú Samurai (Herramientas) Herramienta WebScarab Terminal Más Información: Web oficial del Proyecto Samurai Web Testing Framework Descargar Samurai Web Testing Framework Foro de discusión sobre seguridad en aplicativos web (Comunidad DragonJAR) Articulo escrito por David Moreno (4v4t4r) para La Comunidad DragonJAR David Moreno es Information Security Researcher con 10 años de experiencia en temáticas relacionadas con la Seguridad de la Información, Informática Forense, Ethical Hacking, Criptoanálisis y Análisis de Malware. Conferencista permanente en eventos nacionales e internacionales de...

Leer Más

Siguenos!

O Puedes Subscribete

ANTES DE

SALIRTE ...

NO TE

ARREPENTIRÁS

!Gracias¡

NO OLVIDES NUESTRAS REDES SOCIALES