CDP u aktivnom pregledaču omogućava preuzimanje sesija na Windowsu

Kompanija SpecterOps opisala je postkompromitacionu tehniku CDP-Enable-BOF koja u već pokrenutom procesu Google Chromea ili Microsoft Edgea na Windowsu aktivira Chrome DevTools Protocol (CDP). Tehnika može omogućiti pristup kolačićima, sačuvanim podacima i autentifikovanim sesijama, ali zahteva da operater već ima izvršavanje koda na hostu i dovoljan pristup za manipulaciju ciljnim procesom.
Reč nije o ranjivosti Chromea ili Edgea koja se može daljinski iskoristiti. Ograničenje na prethodno kompromitovan uređaj sužava scenario, ali posledice ostaju značajne: operater može da radi iz konteksta pregledača u kojem je korisnik već prijavljen.
Aktiviranje CDP-a iz postojećeg procesa
Google je od Chromea 136 promenio ponašanje opcija --remote-debugging-port i --remote-debugging-pipe. Kada ciljaju podrazumevani direktorijum podataka, Chrome ih ignoriše osim ako se ne navede nestandardni --user-data-dir. Google navodi da taj odvojeni direktorijum koristi drugi ključ za šifrovanje podataka.
CDP-Enable-BOF pristupa problemu drugačije. x64 Beacon Object File pronalazi aktivni proces Chromea ili Edgea i njegov prozor, locira chrome.dll ili msedge.dll, a zatim preko maskiranih bajt-potpisâ razrešava interne Chromium simbole. Posle alokacije memorije za dva mala pomoćna dela koda i blok konteksta, privremeno postavlja udaljenu proceduru prozora i završni poziv izvršava na niti korisničkog interfejsa pregledača.
Na taj način poziva internu Chromium funkciju StartRemoteDebuggingServer na traženom portu. SpecterOps navodi da izvršavanje na UI niti doprinosi pouzdanosti u okruženju osetljivom na CFG, TLS i CET. Alat zahteva aktivan pregledač i ograničen je na x64 sisteme.
Šta izlaže pristup DevTools protokolu
Kada CDP krajnja tačka postane dostupna, CDP-Toolkit može preko metode Storage.getCookies preuzeti stanje kolačića bez čitanja baze kolačića sa diska. Navedene mogućnosti obuhvataju istoriju, obeleživače, instalirana proširenja, snimke ekrana i metapodatke o sačuvanim lozinkama.
Opisani tok za sačuvane lozinke koristi Chromiumov autofill za odgovarajući origin, a zatim preko CDP-a čita vrednosti polja korisničkog imena i lozinke. Za preuzimanje pregledača moguće je napraviti pozadinski cilj za interaktivno preslikavanje ekrana ili posredovati HTTP i HTTPS zahteve kroz cilj koji nosi autentifikovano stanje korisnika.
Takav rad unutar aktivne instance zadržava kolačiće, skladište pregledača, poslovnu autentifikaciju, ponašanje WebAuthn-a, proširenja i JavaScript karakteristike konkretnog pregledača. Googleove Device Bound Session Credentials, dostupne korisnicima Windowsa od Chromea 146, vezuju osvežavanje sesije za hardverski zaštićen ključ; SpecterOps ne opisuje извлачење privatnog ključa, već rad kroz već autentifikovani kontekst.
Nadzor procesa i ograničenja verzija
Za otkrivanje SpecterOps preporučuje traženje znakova ubrizgavanja koda u chrome.exe i msedge.exe kroz Sysmon događaje 8 i 10. Microsoft dokumentuje događaj 8 kao CreateRemoteThread, a događaj 10 kao ProcessAccess; drugi može stvarati mnogo zapisa, pa zahteva filtriranje očekivanih aktivnosti.
Javno spremište navodi testirane verzije Chrome 147.0.7727.102 i Edge 147.0.3912.98, dok su njegovi potpisi specifični za verziju. Postoje skripte za izvođenje novih potpisa kada ažuriranja onemoguće razrešavanje simbola, ali nije potvrđeno da ugrađeni potpisi rade neizmenjeno na novijim izdanjima. U kontekstu bezbednosnih ažuriranja Google Chromea važno je da nadzor krajnjih tačaka obuhvati i neuobičajen pristup živim procesima pregledača, ne samo ažuriranje samog pregledača.

