
Scriviamo regolarmente su come gli hacker spesso si basino sull'uso , per evitare di essere individuati. Letteralmente , utilizzando strumenti standard di Windows, eludendo così antivirus e altre utility di rilevamento delle attività dannose. Noi, come difensori, ci troviamo ora a dover affrontare le tristi conseguenze di tali tecniche di hacking subdole: un dipendente opportunamente collocato può utilizzare lo stesso approccio per rubare dati in modo furtivo (proprietà intellettuale dell'azienda, numeri di carte di credito). E se non si sbriga, ma lavora lentamente e inosservato, diventa estremamente difficile — ma comunque possibile, se si applicano l'approccio giusto e i , — identificare tale attività.
D'altra parte, non vorrei demonizzare i dipendenti, poiché nessuno desidera lavorare in un ambiente aziendale direttamente uscito da «1984» di Orwell. Fortunatamente, esistono una serie di passi pratici e trucchi che possono complicare notevolmente la vita agli insider. Esamineremo metodi furtivi di attacco, utilizzati da hacker e dipendenti con un certo background tecnico. Discuteremo più avanti le opzioni per ridurre tali rischi: esamineremo sia le azioni tecniche che quelle organizzative.
Qual è il problema con PsExec?
Edward Snowden, giustamente o meno, è diventato sinonimo di furto di dati da insider. A proposito, non dimenticate di dare un'occhiata a su altri insider che meritano anch'essi un certo status di notorietà. Vale la pena sottolineare un aspetto importante riguardo ai metodi utilizzati da Snowden: per quanto ne sappiamo, lui non ha installato alcun software dannoso esterno!
Al contrario, Snowden ha utilizzato un po' di ingegneria sociale e ha sfruttato la sua posizione di amministratore di sistema per raccogliere password e creare credenziali. Niente di complicato: nessun , attacco o .
I dipendenti delle organizzazioni non sono sempre in una posizione unica come quella di Snowden, ma dalla concezione di "sopravvivenza tra le briciole" si possono trarre alcuni insegnamenti da tenere a mente: non compiere azioni dannose che possano essere rilevate e, in particolare, utilizzare le credenziali con grande attenzione. Ricorda questo concetto.
e il suo cugino hanno impressionato innumerevoli pentester, hacker e blogger di sicurezza informatica. E in combinazione con mimikatz, psexec consente agli attaccanti di muoversi all'interno della rete senza bisogno di conoscere la password in chiaro.
Mimikatz intercetta l'hash NTLM del processo LSASS e poi trasferisce un token o delle credenziali – la cosiddetta "pass the hash" attacco – in psexec, permettendo all'attaccante di accedere a un altro server a nome di un altro utente. E con ogni successivo spostamento su un nuovo server, l'attaccante raccoglie ulteriori credenziali, ampliando il suo campo di azione nella ricerca di contenuti accessibili.
Quando ho iniziato a lavorare con psexec, mi è sembrato semplicemente magico – grazie a , al geniale sviluppatore psexec, — ma conosco anche i suoi rumorosi componenti. Non è affatto discreto!
Il primo fatto interessante su psexec è che utilizza un protocollo di file di rete estremamente complesso SMB di Microsoft. Utilizzando SMB, psexec trasferisce piccoli file binari sul sistema di destinazione, collocandoli nella cartella C:Windows.
Successivamente, psexec crea un servizio di Windows utilizzando il file binario copiato e lo avvia con un nome estremamente "inaspettato" PSEXECSVC. Puoi realmente vedere tutto questo, proprio come me, osservando la macchina remota (vedi sotto).

Il biglietto da visita di Psexec: servizio "PSEXECSVC". Avvia il file binario che è stato collocato tramite SMB nella cartella C:Windows.
Come fase finale, il file binario copiato apre una connessione RPC al server di destinazione e poi riceve comandi di controllo (di default – tramite la shell cmd di Windows), eseguirli e reindirizzando input e output sulla macchina domestica dell'attaccante. In questo modo, l'attaccante vede la linea di comando di base – proprio come se fosse connesso direttamente.
Molti componenti e un processo molto rumoroso!
Il complesso meccanismo dei processi interni di psexec spiega il messaggio che mi ha confuso durante i miei primi test alcuni anni fa: «Starting PSEXECSVC …» e l'interruzione successiva prima che appaia la riga di comando.

Psexec di Impacket mostra effettivamente cosa succede «sotto il cofano».
Non sorprende: psexec ha svolto un'enorme quantità di lavoro «sotto il cofano». Se sei interessato a una spiegazione più dettagliata, dai un'occhiata a meraviglioso resoconto.
È chiaro che, se utilizzato come strumento di amministrazione di sistema, che era il suo scopo originale psexec non presenta problemi nel «ronzare» di tutti questi meccanismi Windows. Per un attaccante, tuttavia, psexec presenterà complicazioni, e per un insider cauto e astuto, come Snowden, psexec o un'utilità simile risulterà essere un rischio troppo grande.
Ed ecco che arriva Smbexec
SMB è un modo astuto e furtivo di trasferire file tra server, e gli hacker si sono infiltrati direttamente in SMB da sempre. Suppongo che tutti sappiano già di non dover le porte SMB 445 e 139 su Internet, giusto?
Nel 2013, a Defcon, Eric Milman () ha presentato al pubblico , affinché i penetration tester possano provare un attacco furtivo SMB. Non so tutta la storia, ma poi Impacket ha affinato ulteriormente smbexec. Infatti, per i miei test ho scaricato gli script di Impacket in Python da .
A differenza di psexec, smbexec evita di trasferire un file binario potenzialmente rilevabile sulla macchina target. Invece, l'utilità si basa completamente su 'risorse locali' eseguendo una linea di comando di Windows.
Ecco cosa fa: trasmette un comando dalla macchina dell'attaccante tramite SMB a un file di input speciale, quindi crea ed esegue una complessa linea di comando (come un servizio Windows) che sembrerà familiare ai linugisti. In sintesi: esegue il cmd nativo di Windows, reindirizza l'output in un altro file e poi lo invia via SMB di nuovo sulla macchina dell'attaccante.
Il modo migliore per capire questo è esaminare la linea di comando che sono riuscito a ottenere dal registro eventi (vedi sotto).

Non è questo il modo migliore per reindirizzare l'input/output? A proposito, la creazione di un servizio ha un identificativo evento 7045.
Come psexec, crea anche un servizio che svolge tutto il lavoro, ma dopo questo viene rimosso – viene utilizzata solo una volta per eseguire il comando e poi scompare! Un dipendente della sicurezza informatica che osserva la macchina della vittima non riuscirà a scoprirlo indicatori ovvi di attacco: non ci sono file eseguibili dannosi, nessun servizio persistente viene installato e non ci sono prove di utilizzo di RPC, poiché SMB è l'unico mezzo di trasmissione dei dati. Geniale!
Dal lato dell'attaccante è disponibile una "pseudo-shell" con ritardi tra l'invio del comando e la ricezione della risposta. Ma questo è più che sufficiente per l'aggressore – che sia un insider o un hacker esterno con già un piede dentro – per iniziare a cercare contenuti interessanti.

Per riportare i dati dalla macchina di destinazione alla macchina dell'aggressore, si utilizza . Sì, è la stessa Samba , ma solo rielaborata in uno script Python da Impacket. In effetti, smbclient consente di organizzare silenziosamente una trasmissione FTP sopra SMB.
Facciamo un passo indietro e riflettiamo su cosa questo potrebbe significare per l'impiegato. Nel mio scenario ipotetico, mettiamo che un blogger, un analista finanziario o un consulente di sicurezza ben pagato sia autorizzato a utilizzare un laptop personale per lavoro. A seguito di un qualche processo magico, si offende con l'azienda e "si lancia in comportamenti illeciti". A seconda del sistema operativo del laptop, utilizza o la versione Python di Impact, o la versione Windows di smbexec o smbclient in formato .exe.
Proprio come Snowden, scopre la password di un altro utente o spiandola sopra la spalla, o per fortuna si imbatte in un file di testo contenente la password. Con queste credenziali inizia a esplorare il sistema con un nuovo livello di privilegi.
Hacking DCC: non abbiamo bisogno di alcun 'sciocco' Mimikatz
Nei miei post precedenti dedicati al pentesting, ho spesso utilizzato mimikatz. È uno strumento fantastico per il recupero delle credenziali — hash NTLM e persino password in chiaro, rinvenibili all'interno di laptop e pronte per essere utilizzate.
I tempi sono cambiati. Gli strumenti di monitoraggio sono migliorati nel rilevare e bloccare mimikatz. Gli amministratori della sicurezza informatica hanno anche a disposizione molte più opzioni per ridurre i rischi associati agli attacchi di tipo "pass the hash" (PtH).
Cosa dovrebbe fare allora un dipendente astuto per raccogliere credenziali aggiuntive senza usare mimikatz?
Il pacchetto Impacket include un'utilità chiamata , che estrae credenziali dalla cache del Domain Credential Cache, o DCC in breve. Se ho capito bene, se un utente di dominio accede a un server mentre il controller di dominio non è disponibile, il DCC consente al server di autenticare l'utente. In ogni caso, secretsdump ti permette di scaricare tutti questi hash, se sono disponibili.
Gli hash DCC sono diversi dagli hash NTLM e non possono essere utilizzati per un attacco PtH..
Certo, puoi provare a romperli per ottenere la password originale. Tuttavia, Microsoft è diventata più astuta nella gestione del DCC e craccare gli hash DCC è diventato estremamente difficile. Sì, esiste un , "il più veloce cracker di password al mondo", ma richiede una GPU per funzionare in modo efficace.
Invece, proviamo a pensare come Snowden. Un dipendente può eseguire un ingegneria sociale di persona e forse scoprire qualche informazione su una persona di cui vuole hackare la password. Ad esempio, può scoprire se questo individuo ha mai avuto un account online compromesso e analizzare la sua password in chiaro per eventuali indizi.
E questo è lo scenario che ho deciso di seguire. Supponiamo che l'insider abbia scoperto che il suo superiore, Cruella, è stata hackata diverse volte su vari siti web. Dopo aver analizzato alcune di queste password, si rende conto che Cruella preferisce utilizzare il formato del nome della squadra di baseball 'Yankees' seguito dall'anno corrente - 'Yankees2015'.
Se stai cercando di riprodurre questo a casa, puoi scaricare un piccolo, 'C' , che implementa l'algoritmo di hashing DCC, e compilarlo. , per inciso, ha aggiunto il supporto per DCC, quindi può essere utilizzato anche questo. Supponiamo che l'insider non voglia cimentarsi con John the Ripper e preferisca eseguire 'gcc' su un codice C obsoleto.
Interpretando il ruolo di insider, ho lanciato diverse combinazioni e alla fine sono riuscito a scoprire che la password di Cruella è "Yankees2019" (vedi sotto). Missione compiuta!

Un po' di ingegneria sociale, un pizzico di congettura e un pizzico di Maltego – e sei già sulla buona strada per compromettere l'hash DCC.
Propongo di concludere qui. Torneremo su questo argomento in altri articoli e discuteremo ulteriori metodi di attacco lenti e furtivi, continuando a fare affidamento sul magnifico set di strumenti di Impacket.
Fonte: habr.com
