Con l'accesso completo al disco di un server Web IIS, è possibile accedere al server del database?

4

Ecco una configurazione teorica:

  • Si dispone di un server Web che esegue Windows Server con IIS
  • Hai un sito web in esecuzione qui che si connette a un database
  • Questo sito Web può essere avviato automaticamente all'avvio del server
  • La connessione al database viene eseguita utilizzando l'autenticazione Windows trusted
  • Una parte dannosa ottiene il disco rigido dal tuo server web

È possibile che la parte malintenzionata abbia accesso al database?

Per quanto ne so, l'autenticazione fidata utilizza l'utente che il sito web è in esecuzione come. Pertanto, ci deve essere una sorta di accesso automatico per questo utente. È questa l'area che può essere sfruttata? C'è qualche complicazione a causa del controller di dominio?

Per favore non pubblicare risposte come "Sì, certo che è possibile" o "No, è sicuro al 100%". Vorrei spiegazioni su quanto sia sicuro e perché.

    
posta Richard 13.04.2013 - 18:50
fonte

2 risposte

3

Quando le macchine Windows fanno parte di un dominio di Active Directory, Kerberos viene utilizzato per gestire l'autenticazione. Con Kerberos, il controller di dominio è il game master: tutti si fidano e nessun altro. Il che significa che quando il sito Web si collega al database, la macchina che contiene il sito Web (chiamiamola "WWW") parla con il controller di dominio ("DC") e utilizza un valore segreto, memorizzato nelle interiora del WWW, per convincere DC che è esattamente quella macchina, sana e sana di spirito e corpo: il valore segreto è accessibile solo al processo più privilegiato del WWW.

Una volta che DC è convinto, onora la richiesta del WWW che è: "dammi un ticket che posso mostrare al database, dimostrando che sono un utente" SomeDomain \ SomeAccount "che tenta di connettersi al database con quel nome" . Quel biglietto è il risultato di un calcolo crittografico che il database server (DB) verificherà parlando alla DC ("Questo biglietto è valido adesso?"). I biglietti incorporano un timeout e sono di breve durata.

Che cosa significa per il nostro problema? Significa che un utente malintenzionato che ottiene una copia completa dell'hard disk di WWW apprende il valore segreto che WWW utilizza per autenticare la DC. Questo non gli fornisce alcun segreto che sarebbe sufficiente per connettersi direttamente al DB. Infatti, il DB si fida solo della DC. Quindi, per connettersi effettivamente a DB, l'utente malintenzionato deve porre come WWW , ovvero avviare una macchina sulla stessa rete, che utilizzerà la sua conoscenza dei contenuti del disco rigido di WWW per convincere DC che è il legittimo WWW, e ottenere un biglietto di connessione che soddisferà DB. Inoltre, per raggiungere questo obiettivo, la vera macchina WWW dovrà essere spenta o almeno scollegata dalla rete, perché se la DC vede due macchine contemporaneamente, entrambe dichiarano di essere WWW e conoscono il segreto specifico del WWW in tal senso , quindi è probabile che la DC diventi irata e cessi di parlare con entrambi.

Riepilogo: Nel tuo scenario, il furto di una copia del disco completo del server Web consentirà connessioni canaglia al database solo in caso di un attacco attivo in cui l'attaccante esegue un falso macchina al posto del vero server Web. Ciò equivale a prendere il controllo a livello di amministratore del server Web (se l'hacker commuta l' hardware o non sia effettivamente irrilevante). Per riuscire a connettersi al database, il controller di dominio deve essere ancora coinvolto.

    
risposta data 14.04.2013 - 15:37
fonte
0

Sì, c'è un modo: basta inserire il contenuto del disco rigido in una macchina del proprio controllo e avviarlo. Ora hai un processo in esecuzione che può accedere al database.

Ora manipoli la memoria di quel processo in modo che faccia ciò che vuoi. È possibile forzare l'accesso a Windows utilizzando una reimpostazione della password offline per un account di amministratore non collegato, oppure utilizzare semplicemente l'hardware di accesso diretto alla memoria (USB Stick che sfruttano bug NTFS, schede PCI-E, ...). Quindi puoi inserire il cervello vivente di quel processo e fargli eseguire query arbitrarie.

    
risposta data 13.04.2013 - 19:49
fonte

Leggi altre domande sui tag