¿Cómo funciona el exploit CVE-2017-7494 “SambaCry”?

5

Según informes de medios , un atacante puede

  • sube una biblioteca a un recurso compartido de Samba y luego
  • abra una canalización con nombre cuyo nombre sea igual a la ruta local a la biblioteca cargada

para ejecutar de forma remota el código contenido en la biblioteca.

¿Cómo funciona? ¿Es este un "clásico" desbordamiento de búfer? ¿O es Samba engañado para ejecutar algún código de carga de biblioteca legítimo? Si es así, ¿cómo? ¿Hay algo que nosotros, como desarrolladores, podamos aprender de esto? He comprobado los recursos en línea habituales, pero principalmente contienen información sobre cómo protegerse si usted es un usuario de Samba.

Tratando de encontrar la respuesta, he mirado el parche :

--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -475,6 +475,11 @@ bool is_known_pipename(const char *pipename, struct ndr_syntax_id *syntax)
 {
    NTSTATUS status;

+   if (strchr(pipename, '/')) {
+       DEBUG(1, ("Refusing open on pipe %s\n", pipename));
+       return false;
+   }
+
    if (lp_disable_spoolss() && strequal(pipename, "spoolss")) {
        DEBUG(10, ("refusing spoolss access\n"));
        return false;
-- 

Pero, aparentemente, el parche solo agrega validación adicional y no muestra la "parte jugosa" donde se carga la biblioteca maliciosa.

    
pregunta Heinzi 26.05.2017 - 13:04
fuente

1 respuesta

6

Sería más fácil si pudieras analizar la fuente del exploit. Puede encontrarlo aquí: enlace

Por lo que puedo ver, parece que Samba simplemente carga el SO y lo ejecuta sin necesidad de ningún desbordamiento de búfer. No tengo idea de por qué tal cosa está allí, pero probablemente tenga algo que ver con RPC sobre 445 / TCP.

Editar:

Sí. Así que lo profundicé y está realmente relacionado con IPC / RPC. Parece que pudiste abrir cualquier archivo .so bajo condiciones específicas sobre tuberías con nombre. Por supuesto, solo se deben permitir los módulos permitidos y no los que se carguen, así que creo que se solucionan principalmente desde donde se pueden cargar los módulos.

    
respondido por el Fis 26.05.2017 - 13:27
fuente

Lea otras preguntas en las etiquetas