martes, 14 de febrero de 2017

Subgraph OS

Subgraph es un sistema operativo interesante, que yo personalmente denominaría distribución de Linux, lo cual no le quita merito! El sistema es desarrollado por la compañía de seguridad canadiense open source Subgraph. A simple vista no se diferencia mucho de cualquier linux con gnome3 ya que esta basado en debian testing. En esas fechas van por la versión debian 9 testing, pero... bajo el capo lleva un buen pack de modificaciones :)

  • Oz sandbox - contenedor de aplicaciones
  • Metaproxy - redireccionamiento del trafico de los contenedores
  • Firewall - escrito en GO con iptables personalizado para Subgraph
  • Hardened Kernel - núcleo securizado con GRSEC / PAX & RAP y Cifrado completo

 aquí podemos explorar las características del sistema  

Subgraph trae el navegador Tor a bordo y Firefox personalizado para navegación anónima. El navegador inicializa en su propio contenedor para minimizar los daños en caso de posible infección.

Oz container es la capa de abstracción que han desarrollado para aislar las aplicaciones basándose en namespaces y xpra. Namespaces crea subprocesos o procesos hijo de los procesos principales del sistema y encierra la aplicación, mientras que xpra conecta con el servidor gráfico para proveer la interfaz de la aplicación aislada al usuario. De esa manera nos aseguramos que los keyloggers no podrán captar nuestro teclado y en caso de infección se quedaran encerrados en el contenedor sin posibilidad de acceder al teclado ya que el servidor X11 provee otra capa de separación.


código fuente de Oz container



Metaproxy es otra de las características interesantes que componen Subgraph OS. Esta capa ayuda a las aplicaciones a conectarse a través de la red de Tor de manera totalmente transparente para el usuario, ya que no todo software esta preparado para esto y en una distribución corriente necesitaría configuración de proxy a través de netfilter y iptables. De este modo nos aseguramos que absolutamente todas las conexiones que soportan SOCKS5 o HTTP del sistema pasan por la red de Tor, lo cual supone una gran variedad. Metaproxy también se encarga de las aplicaciones que no soporten SOCKS5 y HTTP como por ejemplo wget. Todas las aplicaciones instaladas por paquetes con dpkg o compiladas sobre el sistema también pasan por Metaproxy.


Subgraph Application Firewall es un firewall customizado para el OS basado en iptables y escrito en GO. Por las pruebas que realice avisa mediante alertas por cada conexión de cualquier aplicación lanzada.


Para asegurarse que el software malicioso no podrá escapar con facilidad de los contenedores se ha aplicado una capa de control sobre el kernel de Grsecurity con características como PaX que ayuda a defender el sistema contra vulnerabilidades de buffer overflow tanto en las aplicaciones como en el kernel. La capa de grsecurity provee defensa contra zero-days y disminuye las debilidades de host compartido o los contenedores. Técnicamente Grsecurity es similar a SELinux pero soporta auto aprendizaje de las reglas de control lo cual lo hace ideal para usuarios nuevos a diferencia de SELinux. El impacto sobre el rendimiento del sistema es nulo.

Tabla de reglas de Grsecurity



Instalador modificado para forzar el usuario utilizar cifrado del disco completo con dm-crypt y LUKS lo cual dificulta ataques del tipo EvilMaid. El sistema recibe constantes actualizaciones por lo tanto NO es susceptible a la vulnerabilidad en cryptsetup CVE-2016-4484

 
Otras Características

USB Lockout - entre la multitud de código personalizado, Subgraph OS recibe una herramienta muy interesante, sobretodo para la gente que acude a conferencias y LAN Parties como yo, que permite bloquear el montaje de dispositivos USB en el sistema :)


Sobre las aplicaciones que vienen pre-instaladas en el sistema y su entorno, básicamente viene con gnome3 y gnome3-classic (yo personalmente me inclino más por el classic) y trae a bordo Icedove, LibreOffice, Firefox (personalizado para preservar la privacidad), Tor Browser, Vlc Player, CoyIM, BleachBit, RicochetIM, Hexchat, OnionShare, Brasero y poca cosa más. Las aplicaciones que realmente llaman mi atención son CoyIM, BleachBit, OnionShare y RicochetIM.

CoyIM es un cliente bastante reciente de la compañía ToughtWorks que esta implementado con el protocolo XMPP, el protocolo más seguro de comunicación que es orientado a la preservación de la privacidad de sus usuarios. La aplicación puede registrarse sobre los servidores de dukgo o jabber.


RicochetIM es cliente de mensajería instantánea P2P con cifrado de extremo a extremo que utiliza la red de Tor y provee un identificador único por el cual puedes identificar al otro participante del chat. La lista de contactos es conocida solo y únicamente al punto de origen y no pasa por ningún tipo de servidor central. No obstante la aplicación esta en fase experimental todavía y tanto como CoyIM le falta mucho por auditar.


BleachBit es un programa para linux que permite mantener el sistema limpio y en condiciones óptimas de rendimiento mediante la limpieza de cache, logs, cookies y otros archivos como miniaturas de multimedia. También limpia la particion de intercambio SWAP y elimina los accesos directos desvinculados. Limpia los archivos temporales y la papelera y lo mas importante, sobrescribe el espacio libre en el disco para deshacerse de los archivos borrados y de esa manera hacer imposible la recuperación de dichos archivos que desde el punto de vista orientado hacia la privacidad es una opción muy importante. Lo curioso es que existe para Windows y Mac también y lo mejor de todo es que limpia los logs a diferencia de todas las herramientas que se supone que aceleran tu ordenador pero nunca limpian las miles de lineas de logs que el usuario promedio no visita para nada. Aunque desde el punto de vista de los analistas forenses debe de ser una obstrucción.


OnionShare creo que es una de las más útiles e interesantes, porque permite compartir archivos a través de Tor P2P, es decir sin intermediarios, mediante un servidor onion propio que se levanta en la misma máquina del cliente A y permite compartir archivos con otro cliente B por la red de Tor que accede al servidor hosteado por el cliente A. Soporta Drag n Drop y tiene una interfaz amigable.


 Subgraph OS todavía esta en su fase Alpha pero por las pruebas y el software incluido el sistema promete mucho. En cuanto a los desarrolladores, por su github parece que han trabajado duro para traer todas las características que incluye el OS. Aunque algunas aplicaciones ya existían, el hecho de juntarlas, hacerlas funcionar de manera fluida (sin errores ni esfuerzos por parte del usuario) y compatibilizarlas con Tor ha sido una tarea definitivamente laboriosa y un tanto complicada. Para más información esta disponible el github y el canal irc de los desarrolladores que adjuntare a continuación.

/connect irc.oftc.net
/join #subgraph
https://subgraph.com/index.en.html

  ozzebra iz zwatching you
b3 careful

sábado, 4 de febrero de 2017

SNMP v2c Community String

SNMP (Simple Network Management Protocol) es un protocolo bien conocido entre los administradores de sistemas y como no, siendo uno de los pilares vitales en los grandes servidores que contienen multitud de máquinas conectadas con cientos de metros de cableado y sistemas de protección contra las amenazas en constante evolución. Así es la servidumbre digital :]









Para poder realizar la monitorización correctamente se necesita algún tipo de software o en este caso uno de los más conocidos y consolidados - Nagios
Pero como cualquier herramienta, Nagios tampoco es perfecto. Todo código tiene un largo proceso de desarrollo y parcheo en su camino hacia la “perfección” y en este caso dicha evolución se puede observar en las distintas versiones del protocolo SNMP v1/v2c/v3.

Para poder monitorizar todas las máquinas, Nagios utiliza el protocolo SNMP que realiza la comunicación y transfiere los datos hacia el ordenador de administración. A su vez la configuración del protocolo SNMP es necesaria para que todos los nodos respondan al nodo central que se consigue mediante los ficheros de configuración. En este caso vamos a disponer de un sistema operativo Linux y más en concreto Red Hat Cloud 6 con su ultima versión del kernel 2.6.32-673.8.1.lve1.4.3.el6.x86_64 (SMP) x86_64. En linux el directorio que contiene los archivos de configuración de SNMP se encuentran en /etc/snmp/snmpd.conf

Ahora bien, teniendo toda esta información y alojamiento contratado en el mismo servidor que dispone de todo lo mencionado mas apache2 php5 y un cpanel decente uno puede llegar a preguntarse que se puede conseguir?
Pero todavía nos falta algo importante para poder comenzar a curiosear, una consola. En primer lugar disponemos de los cronjobs que limitan bastante la situación al no tener un output de todo lo que ocurre en pantalla, ssh es la mejor opción pero en este hosting en particular hay que exigir acceso por ssh a los administradores lo cual te pone bajo el Ojo de Mordor enseguida :]
A pesar de los inconvenientes aun tenemos una interesante opción que nos permite trabajar con una consola bajo ciertas circunstancias, es decir si apache no tiene todas las restricciones necesarias podemos aprovecharnos del escenario subiendo un emulador de terminal escrito en php

https://github.com/SEV007/php-terminal-emulator

Una vez subido el emulador en nuestro alojamiento, podemos empezar a disfrutar de todos los comandos que el administrador no ha restringido o jailrooteado. Con el comando ls comprobamos que en /etc/snmp existen archivos de configuración SNMP. Con un simple comando como cat /etc/snmp/snmpd.conf podemos ver la configuración de SNMP y dependiendo de su versión puede que la contraseña de administración de Nagios aparezca o no. SNMP v1 y v2c son los principales problemas de seguridad ya que su Community String o Contraseña se puede establecer solo en texto plano, mientras que en la v3 este problema esta solucionado.
Después de realizar todos los pasos anteriores, en uno de los hostings que contrato para mis clientes he acabado con la Community String en texto plano entre manos :]

Que es lo que se puede hacer con dicho String?
Simplemente necesitaríamos montar nuestro propio servidor con Nagios en una ordenador de casa y configurar el Community String para obtener acceso a datos vitales para un negocio como su hardware o ... mejor aun, aprovechar los exploits que nos regala metasploit que tan solo necesitan del Community String y la dirección del server para conseguir ejecución de código arbitrario o una shell inversa que nos permitirá escalar los privilegios y tomar el control sobre el servidor en el mejor caso. También seria cómodo para un atacante vigilar la capacidad de los servidores víctimas mientras esté realizando un ataque DDoS y saber como aprovechar su BotNet con el mayor rendimiento precio/calidad.

2016-03-06 Nagios XI Chained Remote Code Execution
2013-02-21 Nagios Remote Plugin Executor Arbitrary Command Execution
2012-12-09 Nagios3 history.cgi Host Command Execution
2012-11-30 Nagios XI Network Monitor Graph Explorer Component Command Injection

Conclusión:
No puedo creer que en pleno siglo XXI seguimos utilizando protocolos obsoletos, conociendo sus fallos de seguridad y disponiendo de una solución tan sencilla como la implementación de la siguiente versión del mismo protocolo! Y lo que es más increíble todavía es que 3 semanas más tarde el fallo persista sin ningún tipo de cambio. En fin, al menos el sysadmin tiene sentido del humor por lo que aparece en el archivo de configuración del SNMP como localización:
syslocation The eye of Mordor sees all









fuentes de las imágenes:
https://i.ytimg.com/vi/2p7H23Jib0A/maxresdefault.jpg

https://ititch.com/wp-content/uploads/2012/10/smtp-server.jpg