búsqueda de vulnerabilidades mediante análisis de código fuente estático
Luego de terminar el año a full, regresar de unas pequeñas vacaciones me pongo al día con el blog ya que lo he tenido un poco descuidado. Como parte de las actividades en los proyectos de Ethical Hacking se tienen requerimientos para buscar vulnerabilidades en el código fuente de manera estática, es decir sin que la aplicación evaluada este ejecutándose, para realizar ello nos podemos ayudar en ciertas herramientas que pueden AYUDAR en realizar esto, y resalto AYUDAR por que ninguna herramienta va hacer el trabajo al 100% , siempre va ser necesario realizar un análisis posterior de los casos.
En este caso, vamos a aprender a instalar , configurar y usar Sonarqube es una herramienta que me a ayudado mucho en estas labores, este procedimiento se puede aplicar en Ubuntu 18.04.1 u otro derivado.
1.- Instalar java
sudo apt install openjdk-8-jdk openjdk-8-jre
2.- Crear directorio
mkdir sonarqube
2. -Descargar Sonarqube
Para ello es necesario ingresar a la pagina : https://www.sonarqube.org/downloads/
También es necesario descargar el escaner de : https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
Al descomprimir los archivos tendremos lo siguiente :
3.- Luego descargaremos un proyecto opensource como DVWA para analizarlo
Para esto descargaremos un viejo conocido como DVWA
4.- Ahora vamos a configurar el escaner
– Crear una carpeta «main» en la ruta sonar-scanner-3.2.0.1227-linux/bin
cd sonar-scanner-3.2.0.1227-linux/bin
mkdir main
– luego dentro de la carpeta «main» vamos a mover y descomprimir la carpeta de la aplicacion a analizar
mv DVWA-master.zip sonar-scanner-3.2.0.1227-linux/bin/main/
cd sonar-scanner-3.2.0.1227-linux/bin/main/
unzip DVWA-master.zip
– Ahora crear un archivo «sonar-project.properties» indicando la aplicación a evaluar de la siguiente forma
cd sonar-scanner-3.2.0.1227-linux/bin
vim sonar-project.properties
5.- Finalmente iniciamos el panel de sonar y luego escaner para iniciar el análisis
– Iniciar sonar
cd sonarqube/sonarqube-6.7.5/bin/linux-x86-64
./sonar.sh start
Sonar iniciara en el puerto 9000 del localhost de la siguiente forma
– Ahora iniciar el escaner
cd sonarqube/sonar-scanner-3.2.0.1227-linux/bin
./sonar-scanner
Como vemos el análisis del de las paginas se realizo correctamente.
6.- Análisis de resultados
Luego de que el escáner termine el análisis en el panel de sonar aparecerá un nuevo proyecto de la siguiente forma
Como vemos ahora tenemos un proyecto analizado, al ingresar veremos que tenemos catalogadas los bugs, vulnerabilidades, entre otros resultados.
Al ingresar a las vulnerabilidades, tendremos un listado de las mismas.
El siguiente paso es analizar cada una de las vulnerabilidades reportadas en el código para identificar la importancia de las mismas, su importancia en el modelo de negocio y por su puesto como poder corregirlas.
Espero que les sirva.
Saludos
Juan Oliva
Mikrotik Winbox server vulnerability
Hace unos meses recibía llamadas de algunos clientes preocupados debido a que sus empresas proveedoras de servicios de internet y de Voz los llamaban advirtiéndoles que sus equipos Mikrotik fueron comprometidos y que era necesario que revisen sus redes internas ante algún comportamiento «raro».
Así fue como comenzó todo, luego googleando un poco se encontraban muchas notificas referentes a que millones de estos routers fueron comprometidos para ser usados en campanas de «cryptojacking» es decir usaban los equipo para minar crytomendas, sin embargo como siempre todo fue la punta del iceberg.
Buscando el vector del ataque se reportaba que descubrió que servicio Winbox cuenta con una vulnerabilidad que permite a eludir la autenticación y leer archivos al modificar una solicitud para cambiar un byte relacionado con una ID de sesión, lo cual suena a mas de los mismo, fallas en el control de recepción de variables en determinados servicios, el cual fue catalogado como CVE-2018-14847
Valga las verdades el fabricante reporto la vulnerabilidad a fines de marzo de 2018 sin embargo siempre existe un tiempo en que los atacantes elaboran los programas para sacarle provecho a este tipo de vulnerabilidad y por supuesto nadie actualiza 😀 es por ello recién a mediados de agosto se desato el caos en las implementaciones que usaban esto equipos con la aparición de los exploits.
Para los que me conocen saben que Mikrotik no es de mis equipos preferidos, esto es debido a que lo venden como «Firewall de perímetro» es decir proteger a una red empresarial, cuando el equipo no es mas que un router, sabiendo que hoy para proteger una empresa necesita mas que abrir o cerrar puertos o un proxy básico en su mínima expresión como es el que maneja el RouterOS, sin embargo es evidente que el factor costo es importante comparado con equipos UTM, sumado al desconocimiento de los clientes ante integradores oportunistas.
Entonces sin mas, les comparto el procedimiento y el vídeo para hacer el P.O.C. de esta vulnerabilidad sobre Kali Linux
Espero les sirva!!
Saludos
Juan Oliva
SWIFT SWIFTNet Hacking en Redes Bancarias
Luego de ver la noticia del hackeo del banco de chile, lean la publicación de la nota de Cesar Farro que lo detalla desde su perspectiva externa, me animé a escribir algo referente a ello, ya que es casi un año que vengo involucrado en realizar análisis de seguridad y vulnerabilidades a redes SWIFT justamente.
Como detrás de este tipos de servicios existen NDA vigentes, voy a ser bastante pragmático al respecto, emitiendo lineamientos que desde mi punto de vista personal, y que tendrían que ser de sentido común para este tipo de redes y al final conclusiones al respecto.
Al grano, normalmente siempre se tiene la perspectiva por fuera y no necesariamente por dentro, ya que como se entenderá son arquitecturas muy cerradas y no en lo tecnológico necesariamente ( si no pregunten el al banco de Chile 😀 ) digo esto por que al final terminamos hablando de los mismos componentes de siempre, como sistema operativos Windows, Unix, estaciones de trabajo, aplicaciones web, bases de datos, es decir nada que en una red empresarial deja de tener, empecemos desmenuzando la idea.
1.- QUE ES SWIFT ?
De pronto lo que uno mas conoce es el famoso código SWIFT para realizar transferencias internacionales, detrás de ello esta la “Society for Woldwide Interbank Financial” la cual provee hardware/software que articula mediante programas y regulaciones en general toda esta actividad a la cual están afectas las entidades bancarias.
Dentro de los lineamientos se establecen arquitecturas de uso que pueden tener las entidad bancarias que se detallan a continuación :
Arquitectura A1 Full Stack
La interfaz de mensajería como la de comunicación están dentro del entorno del usuario. Este tipo de arquitectura también incluye soluciones alojadas donde el usuario tiene las licencias para la interfaz de mensajería y la interfaz de comunicación.
Arquitectura A2 Partial Stack
La interfaz de mensajería está dentro del entorno del usuario, pero un proveedor de servicios (para ejemplo, una agencia de servicios, SWIFT Alliance Remote Gateway o un centro de grupo) es licencia y administra la interfaz de comunicación. Arquitectura A3 – Connector
La aplicación de software (por ejemplo, Alliance Lite2 AutoClient, soluciones de transferencia de archivos) es utilizado en el entorno del usuario para facilitar la comunicación de aplicación a aplicación con una interfaz en un proveedor de servicios. Arquitectura B – No local user footprint
No se utiliza ningún componente de infraestructura específico de SWIFT dentro del entorno del usuario.
Fuente : https://www.accesspay.com/wp-content/uploads/2017/09/SWIFT_Customer_Security_Controls_Framework.pdf
2.- LOS CONTROLES
Dentro de las regulaciones a nivel de gestión de SWIFT solicita y obliga a cumplir los 27 controles ( obligatorios y recomendados) los mismos que están indicados en el “SWIFT Customer Security Controls Framework” al cual se puede acceder públicamente y además los empleados cursos como por ejemplo el “Customer security programme” entre otros.
Un detalle que se puede identificar en este contexto, es que las entidades tienen que cumplir todos los controles y no solo los obligatorios ya que el común es pensar con eso ya están aprobando, cuando es todo lo contrario.
Sobre el cumplimiento de los controles, desde mi punto de vista, si bien es cierto en general la especificación de los controles es buena, sin embargo también muchos de los controles son muy ambiguos y poco precisos.
Basado en ello, un auditor/empleado que solo conoce la parte de gestión, puede interpretar de manera muy ligera los mismos, por ejemplo hacer cumplir un control determinado con solo con un procedimiento general, por el contrario alguien que maneja de parte de ingeniería/técnica la va interpretar de manera mas puntual, por ejemplo con una captura de pantalla del sistema o componente técnico, donde se muestra que se hace efectivo el control.
Para finalizar este punto indicar que la red SWIFT de la entidad va ser tan antigua como la misma lo permita en funcion a lo de siempre, no actualizar su arquitectura.
3- Evaluaciones de Cyberseguridad
Dentro de los controles de SWIFT se exige que es necesario hacer una evaluación de Ciberseguridad / Ethical Hacking a todos los componentes que involucran la arquitectura SWIFT. Por otro lado también a nivel de regulador bancario en el caso del Perú por ejemplo es la SBC que también lo exige, entonces tienen por lo menos dos servicios que tienen que ejecutar en diferentes ámbitos.
En ese sentido, es clave definir bien los activos a evaluar, sistemas involucrados, las actividades contempladas y horarios de ejecución, es decir es necesario definir bien el alcance, de lo contrario como en otros ámbitos, este punto solo será un puro formalismo a cumplir en el informe como desarrollar un escaneo o un análisis de vulnerabilidades automatizado que pasa a los informes.
4.- CONCLUSIONES Y RECOMENDACIONES
– Contar con la zona segura exclusiva/aislada de todo y textualmente de TODO sin ningún tipo de enlace hacia la red empresarial y hacia internet, esto es fundamental pero es muy difícil sobre todo por temas en primera instancia de flexibilidad, recordar el viejo dicho “mientras mas mas seguro menos flexible” y por otro lado de presupuesto, ya que estamos hablando para comenzar de tener toda la parte de switching, firewall, controladores de dominio y demás dispositivos de la arquitectura, exclusivos para la red SWIFT totalmente separado y con una función única.
– PC de operador de uso exclusivo, es decir solo para uso de SWIFT, evitar uso de servidores de salto, maquinas virtuales, citrix, escritorios remotos y demás elementos, como sabemos la mayor brecha de seguridad la producen los usuarios finales e inevitablemente se tiene que usar Windows (ojo aquí con las actualizaciones de seguridad), es recomendable primero que las PC de operador que acceden a los aplicativos SWIFT sean de uso exclusivo para ello y estén dentro de la zona segura , evidentemente siguiendo estándares de aseguramiento muy rígidos (Que normalmente no lo aplican no solo a nivel del sistema operativo, si no a nivel físico, ejemplo, contraseña de bios, desactivar USB, no tener software innecesario, no tener salida a internet entre otras.
– Uso de doble factor de autenticación, uso de tokens RSA para no solo autenticar hacia las aplicaciones, si no también a nivel de sistema operativo de los PC operador, reduce la brecha de riesgo.
– Servidores de producción SWIFT , Desde mi punto de vista usar servidores Windows para los servidores de producción y respaldo que exige SWIFT, es un error, cuando es sabido que Solaris/Unix ofrecen una menor brecha de seguridad en cuanto a vulnerabilidades reportadas.
– Software de Mensajería SWIFT y arquitectura general SWIFT va ser tan actualizada o no, como la entidad bancaria lo decida, SWIFT provee actualizaciones bastante constantes por ejemplo para el software de mensajería, mediante boletines y es labor de los responsables estar capacitados para realizar ello.
Finalmente basado en lo que he visto la mayor brecha de seguridad esta en no tener una red segura, usuarios operadores con estaciones Windows multiproposito y el y uso Windows en los servidores de mensajería.
Espero les sirva.
Saludos
Juan Oliva
Instalación de OWASP Juice Shop en Kali Linux
OWASP Juice Shop es una aplicación de Internet intencionalmente insegura para entrenamientos de seguridad escrita enteramente en JavaScript que abarca todo el Top Ten de OWASP y otros defectos graves de seguridad.
Juice Shop está escrito en Node.js, Express y AngularJS. es una aplicación escrita completamente en JavaScript la cual contiene una gran cantidad de desafíos de hacking de diversa dificultad donde el usuario debe explotar las vulnerabilidades subyacentes. Lo cual es perfecto para probar, practicar, validar ,etc.etc vulnerabilidades con este tipo de arquitecturas que a la fecha se encuentran bastante viene muy bien.
Instalación en Kali Linux
Si bien es cierto existen al menos dos formas de instalar, vamos a realizarla de la siguiente usando el contenedor en docker de la siguiente forma :
#apt-get install -y apt-transport-https ca-certificates dirmngr
#apt-key adv –keyserver hkp://p80.pool.sks-keyservers.net:80 \
–recv-keys 58118E89F3A912897C070ADBF76221572C52609D
#echo ‘deb https://apt.dockerproject.org/repo debian-stretch main’ > \
/etc/apt/sources.list.d/docker.list
#apt-get update
#apt-get install docker-engine
#service docker start
#docker run -d -p 3000:3000 bkimminich/juice-shop
Una vez instalado podremos acceder a Juice Shop
Existe un completo manual de explotación en el siguiente enlace :
https://bkimminich.gitbooks.io/pwning-owasp-juice-shop/content/
Espero les sirva.
Juan Oliva
Instalar Virtualbox Guest Additions en Kali Linux 2017.3
Este post es para mi para no olvidarme, espero le sirva a alguno 😀
Buscar la imagen adecuada
apt-cache search linux-image
instalar la imagen
apt-get install linux-image-4.14.0-kali3-amd64
Dependencia
apt-get install libelf-dev
Reiniciar
reboot
Instalar los hearders nuevos
apt-get install -y linux-headers-$(uname -r)
Luego montar el disco de Guest Additions
Una vez montado instalar
cp /media/cdrom0/VBoxLinuxAdditions.run /root
cd /root/
chmod a+x VBoxLinuxAdditions.run
./VBoxLinuxAdditions.run
Alta disponibilidad con Issabel PBX
En escenarios donde la continuidad del negocio es un factor clave, contar con alta disponibilidad para servicios que se consideran críticos dentro de una organización es clave. En este caso concreto, el presente documento presenta la receta para implementar alta disponibilidad para la plataforma de comunicaciones Issabel PBX.
El software que hemos usado para tener alta disponibilidad se llama Pacemaker así como corosync, los cuales reemplazan al muy conocido heartbeat, el cual se encuentra descontinuado para Centos 7 que es el sistema operativo base de Issabel.
Si bien es cierto la plataforma Issabel, es sumamente estable como para confiar toda la carga a un solo recurso, no es ajena a fallas de otro tipo como factores, eléctricos, climáticos, de hardware, etc. Es por ello en caso de que uno de las plataformas fallase por los factores ya mencionados, dejaría sin comunicaciones a la organización, por lo tanto, es crítico tener el servicio en alta redundancia de forma que si un servidor falla, otro asume el servicio de manera transparente.
Espero les sirva el documento :
Descargar : Paper Alta disponibilidad con Issabel PBX
Asegurando Issabel PBX – «La receta»
Existen ciertas cosas en la vida que valoro mucho y es el esfuerzo y la capacidad para poder trabajar en Equipo, ya que es muy difícil de conseguir, puesto que nuestra naturaleza humana nos lleva siempre a defender nuestros intereses personales, que muchas veces no son del bien común del equipo o en este caso de la comunidad que persigue un objetivo.
En eso puedo resumir de lo que pude apreciar luego de asistir al #BeFree17 en la ciudad de México, un equipo de diferentes países y continentes inclusive, trabajando como una comunidad para un objetivo común, difundiendo conocimiento y tratando de sacar adelante un proyecto.
Por otro lado también considero que el conocimiento debe ser libre, como parte de la constante creación de nuevas cosas e ideas, con todas estas cosas rondando en mi cabeza, es me puse a trabajar en este paper cuya base fue la presentación que realice el miércoles pasado.
Lo titulé : Asegurando Issabel PBX – «La Receta» El objetivo del documento es guiar de una manera muy sencilla, con una serie de ingredientes bastante prácticos, en la mejora de algunos aspectos relacionados con la seguridad de la plataforma de comunicaciones Issabel PBX, tanto para servidores implementados en la nube, así como en instalaciones locales.
Como saben Issabel es una plataforma de comunicaciones Software Libre y código abierto basada en Asterisk (Digium the Asterisk Company) integra funcionalidades de PBX, correo electrónico, tareas de colaboración, así como vídeo llamadas.
Todas las instrucciones del presente material fueron realizadas con la versión que
corresponde al archivo ISO issabel4-USB-DVD-x86_64-20170621.iso.
El documento lo pueden descargar desde aquí :
Paper_Asegurando_Issabel_PBX-La_Receta
Espero les sirva
Juan Oliva
BeFree – Evento de Comunicaciones Open Source en Latinoamerica
Como algunos saben, durante varios años vengo trabajando en temas de VoIP que es mi segunda pasión profesional luego del #Hacking y la seguridad , En este tiempo he estado involucrado en varias iniciativas como Elastix y FreePBX inclusive, siendo instructor en su momento del primero en su momento.
Si bien es cierto todo en la vida cambia y aveces bastante rápido, siempre he proclamado y seguido la linea del uso del código abierto para soluciones de VoIP – Telefonía IP, ya que esta provee un punto de inflexión para el crecimiento profesional de los individuos que la utilizamos, personalmente he podido modificar, crear, programar nuevas funcionalidades, modificar código para brindar seguridad a mi gusto, lo cual potencia en y un 1000% de una solución de comunicaciones unificadas.
Es así, que he tenido el honor de ser invitado como speaker/conferencista al BeFree – Evento de Comunicaciones Open Source en Latinoamerica, a desarrollarse este 21 de Junio en la ciudad de México, BeFree es un evento que busca fortalecer la comunidad de Comunicaciones Unificadas Open Source y difundir innovación en tecnologías emergentes, en el marco de estas ideas, se difundirá el ecosistema de Issabel (PBX IP basada en Software Libre y de Código Abierto) que busca en pocas palabras, apunta a ser la propuesta a muy largo plazo ante la desaparición de Elastix, la cual por supuesto ha concitado la atención de la prensa en México, como se muestra a continuación.
BeFree, estará compuesto de exposiciones, conferencias, talleres y un hacktaton, este ultimo es un espacio muy interesante desarrolladores, en donde podrán participar de un maratón de creación software o “Addons” para resolver alguna problemática en concreto.
Por otro lado también estarán presentes personalidades del mundo VoIP/Asterisk como Nicolas Gudiño – Creador de Asternic Call Center , David Duffett – Director, Comunidad Mundial de Asterisk en DIGIUM , Alfio Muñoz – Experimentado Instructor de Asterisk , Saul Ibarra – Senior Software Developer en Atlassian “Jitsi”
Finalmente, brindaré una charla denominada » @IssabelIP una relación segura» en donde mostrare pasos muy prácticos para fortalecer la plataforma y minimizar riesgos de seguridad en una plataforma IP PBX basada en Asterisk.
Es así que si estas en México, no puedes de dejar de asistir el BeFree y si eres lector de este blog, por favor acércate que sera un inmenso gusto poder platicar de los temas que nos interesan.
Nos vemos en el BeFree!!