¿Es posible explotar esta instancia de Zookeeper?

11

Estaba realizando una prueba de seguridad para un cliente cuando encontré un Zookeeper Instalación en xx.xxxx: 2181. Probar NetCat reveló que soy capaz de todos los siguientes comandos:

volcado : enumera las sesiones pendientes y los nodos efímeros. Esto solo funciona en el líder.

envi : imprime detalles sobre el entorno de servicio

kill : apaga el servidor. Esto debe ser emitido desde la máquina en la que se está ejecutando el servidor ZooKeeper. (No he probado este)

requisitos : enumerar solicitudes pendientes

ruok : comprueba si el servidor se está ejecutando en un estado de no error. El servidor responderá con imok si se está ejecutando. De lo contrario, no responderá en absoluto.

srst : restablece las estadísticas devueltas por el comando stat.

stat : muestra estadísticas sobre el rendimiento y los clientes conectados.

No estoy familiarizado con Zookeeper, así que discúlpeme si esto parece una pregunta estúpida, pero ¿se supone que Zookeeper es accesible sin autenticación? ¿Y también cuáles son las implicaciones de tener esta aplicación expuesta?

Cualquier ayuda es realmente apreciada, Gracias

    
pregunta Mico 27.07.2016 - 06:51
fuente

2 respuestas

7

En primer lugar, tampoco estoy familiarizado con Zookeeper, pero puedo darte algunos consejos generales desde una perspectiva de seguridad.

Los Comandos de Zookeeper que usted enumera suenan como funciones administrativas, eso significa que probablemente solo debe ser accesible después de la autenticación o, por ejemplo, solo debe ser accesible dentro de una red privada o solo desde ciertas direcciones IP.

Si está probando un entorno de prueba controlado, sugiero contactar al administrador y planear un momento para probar el comando kill , esto verificará si realmente funcionará de esa manera. Si lo hace, puedo imaginar algo así como ubicar todos los servidores de Zookeeper en un clúster y kill todos ellos, lo que provocó el cierre del servicio. Los profesionales de seguridad probablemente llamarán a eso un riesgo de disponibilidad. Los piratas informáticos éticos y los niños de los guiones probablemente lo considerarán una desfiguración.

Una vez más, no tengo ningún conocimiento de Zookeeper, pero puedo imaginar los siguientes riesgos teóricos.

  1. dump muestra las sesiones, dependiendo de la información exacta de la sesión que se expone, es posible que pueda confundir el sistema al tratar de falsificar dicha sesión. Posiblemente afecte la integridad.
  2. envi dependiendo de la información demostró que podría usar eso para obtener una mejor vista de su objetivo y posiblemente ampliar el alcance si esa información encuentra otros sistemas relacionados.
  3. kill como se notó antes, el riesgo de disponibilidad y probablemente el mayor riesgo de esta lista de comandos.
  4. reqs de la divulgación de información y, según la información, la posibilidad de confundir los procesos falsificando cosas.
  5. ruok simple revelación de información, no puedo imaginar ningún riesgo a menos que se conozcan algunas vulnerabilidades específicas de Zookeeper que solo funcionarán cuando se ejecute en un estado sin errores. Nuevamente, el estado de error / estado de no error es un 50% de probabilidad de que funcione una vulnerabilidad "específica del estado". Saber el estado real aumenta eso teóricamente al 100% cuando las versiones y todo coinciden.
  6. srst dependiendo de las estadísticas que se reinicie exactamente, es posible que pueda limpiar las trazas después de un intento de piratería. Borrando tus huellas.
  7. Divulgación de información stat . Proporcionar información innecesaria sobre el sistema y, posiblemente, la infraestructura, y se puede utilizar para ampliar el alcance.

Mi consejo general sería. Evita que este sistema acepte ese tipo de comandos de nadie. Posiblemente agregue una capa de autenticación como restricciones de VPN y / o IP o habilite las funciones de autenticación dentro de Zookeeper (si existen). Esto asegurará que la información no se divulgue innecesariamente y mitigue el posible riesgo de disponibilidad causado por el comando kill .

Si bien kill en sí mismo no es una vulnerabilidad, es un riesgo. Usando el sistema de puntuación CVSS , si kill realmente funciona y dependiendo de sus antecedentes de ataque exactos y los factores que estimaría CVSS del riesgo de disponibilidad en algo como 7.1 (alto), (AV: N / AC: M / Au: N / C: N / I: N / A: C) .

Además, es posible que desee revisar esto:

respondido por el Bob Ortiz 01.08.2016 - 11:55
fuente
3

ZooKeeper es una herramienta de gestión de clústeres. Primero vería si puede conectarlo a un nodo cliente como parece que ya ha penetrado la red interna (la mayoría de las herramientas de clúster están protegidas a nivel de red). Si puede conectar un nodo cliente, puede literalmente getData . En resumen, sí, esto puede ser una vulnerabilidad.

Para conectar un nodo cliente, active su propio servidor e instale las dependencias ZooKeeper cliente y siga la guía de instalación . Verá una lista de comandos que puede usar una vez (si) su nodo se conecta.

Si los nodos de sus clientes no se conectan directamente, no se preocupe, hay esperanza ... Vea si puede conéctese al maestro mismo y cambie algunas configuraciones en particular el comando skipACL . También tenga en cuenta que en cualquier momento puede probar algunos ataques de desbordamiento de búfer (no solo en el maestro sino también en los nodos del cliente).

Puede enviar trabajo / comandos al maestro en algunos idiomas (Java / C), por lo que sugeriría probar todo esto en su propia instancia primero, ya que quien esté administrando el clúster verá un mayor uso.

Además, la mayoría de los clusters de datos grandes utilizan algún tipo de NFS o FS distribuido como Lustre. Lustre también es intrínsecamente inseguro (protegido a nivel de firewall / red), así que siéntase libre de intentar explotar eso también.

Algunos otros softwares que pueden estar ejecutándose en el mismo nodo que tu maestro Zookeeper son: Spark, Hadoop, Mesos, Ganglia, Pig, Hue, Hive, y muchos otros programas analíticos de big data, así que escribo algunas vulnerabilidades de descubrimiento para esos también ...

Los comandos que enumeró están documentados como "Las palabras de las cuatro letras" y están no es intrínsecamente peligroso (aunque esa información podría llevar a otros ataques) sin embargo, pueden ser indicativos de las vulnerabilidades de configuración que se enumeran anteriormente.

    
respondido por el Matthew Peters 01.08.2016 - 14:11
fuente

Lea otras preguntas en las etiquetas