Come funziona l'exploit CVE-2017-7494 "SambaCry"?

5

Secondo rapporti dei media , un utente malintenzionato può

  • carica una libreria su una condivisione Samba e poi
  • apre una named pipe il cui nome equivale al percorso locale della libreria caricata

per eseguire da remoto il codice contenuto nella libreria.

Come funziona? Si tratta di un overflow del buffer "classico"? Oppure Samba è ingannato nell'eseguire un codice di caricamento delle librerie legittimo? Se sì, come? C'è qualcosa che noi sviluppatori possiamo imparare da questo? Ho controllato le solite risorse online, ma contengono principalmente informazioni su come proteggersi se sei un utente di Samba.

Cercando di trovare la risposta, ho esaminato cerotto :

--- 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;
-- 

Ma, a quanto pare, la patch aggiunge solo ulteriore validazione e non mostra la "parte succosa" in cui è caricata la libreria malevola.

    
posta Heinzi 26.05.2017 - 13:04
fonte

1 risposta

6

Sarebbe più facile se puoi analizzare la fonte dell'exploit. Puoi trovarlo qui: link

Da cosa vedo, sembra che Samba carichi solo la SO e la esegua senza necessità di buffer overflow. Non ho idea del motivo per cui tale cosa è laggiù ma probabilmente ha qualcosa a che fare con RPC su 445 / TCP.

Modifica

Sì. Quindi sono andato un po 'in profondità ed è davvero correlato a IPC / RPC. Sembra che tu sia stato in grado di aprire qualsiasi file .so in condizioni specifiche su pipe con nome. Ovviamente, dovrebbero essere consentiti solo i moduli consentiti e non quelli caricati da nessuno, quindi penso che siano stati risolti principalmente da dove i moduli potrebbero essere caricati.

    
risposta data 26.05.2017 - 13:27
fonte

Leggi altre domande sui tag