2026. aug. 13-i előadásunk — 30 percben végigvesszük ezt a rekonstrukciót: mely védelmi kontrollok működtek, miért nem lett a riasztásokból reagálás, és hol lehetett volna megszakítani a támadási láncot.
Felvétel megtekintése → Diasor megtekintése →Fenyegetési szereplő: ByteToBreach · Célpont: Magyar Államkincstár
A kincstári incidens anatómiája — és miért nem hagyta el a hálózatot 229,1 TB
A Magyar Államkincstárba az mvh erdők közötti (inter-forest) bizalmi kapcsolaton át történt behatolás időrendi rekonstrukciója — az általa közzétett 24 támadói képernyőképből és azok beágyazott időbélyegeiből felépítve, majd összevetve azzal, amit fizikailag 229 terabájt mozgatása jelent.
Vezetői összefoglaló
2026. július 25. és 31. között egyetlen operátor tört be a Magyar Államkincstárba a Vidékfejlesztési Hivatallal (MVH) fennálló kétirányú, erdők közötti bizalmi kapcsolaton keresztül, tartományi rendszergazdai szintet szerezve négy Active Directory erdőben, és teljes kontrollt a virtualizációs környezet felett — 116 virtuális gép és 229,1 TB adattár.
A védelmi eszközök jórészt jelen voltak és jórészt működtek. A DMZ kimenő szűrése elvágta az operátor reverse shelljeit, a Symantec pedig blokkolta a beaconjeit és a hitelesítő adatokhoz való hozzáférését — egészen addig, míg kézzel le nem állította a Symantecet. Nem a kontrollok mondtak csődöt, hanem a reagálás: a riasztásaik öt és fél napon át egy üres szobába érkeztek.
Tömeges adat nem hagyta el a hálózatot. 229,1 TB mozgatása a behatolás időablakában fizikailag kivitelezhetetlen volt — tartós ~7,5 Gbps kellett volna hozzá —, és nem is ez volt a terv. A nyilvános szivárogtatás egy ~70 MB-os bizonyítékcsomag volt, azzal a kifejezett megjegyzéssel, hogy váltságdíjat nem kérnek. A tartós kár hitelesítőadat-jellegű, nem volumetrikus: 9 047 jelszó már nyílt szövegben van, és több ezer további egy héten belül feltörik GPU-val.
Az első lépés egy képesség, nem egy termék: 24×7 észlelési és reagálási funkció a már meglévő kontrollok mögé, majd a mögöttük lévő jelszó- és identitásarchitektúra-rések bezárása. A lépésről lépésre javítás A lánc megszakítása szakaszban található.
Támadási lánc
Minden lépésen ott van egy sárga Yellow Cube sáv a rövid válasszal arra, hogy „mi állítja ezt meg?”. A teljes kifejtés — megelőzés, észlelés, megszakítás és keményítés — a jelentés végén, A lánc megszakítása szakaszban található. A lépésszámok a támadási láncot követik; ahol több művelet július 26-án ugyanabba a néhány órába esik, a sorrend a támadó párhuzamos munkameneteinek munkafolyamatát tükrözi, nem szigorú óra szerinti rendet. Minden kártya meg van jelölve az elsődleges MITRE ATT&CK technikájával.
-
júl. 25.22:14–22:22 CEST
WebLogic RCE — az első láb
A CVE-2017-10271 deszerializációs hiba az ESB vhost ellen Python reverse shellt dob. Nem éles kiszolgáló — de bejárat a Vidékfejlesztési Hivatal (MVH) hálózatába.
CVE-2017-10271reverse shell → 91.229.23.961_FOOTHOLD.pngYellow CubeAlapból tiltó kimenő szabály a DMZ-ben (Stormshield) elvágja a reverse shellt; a WithSecure sebezhetőség-kezelés és a Group-IB ASM külső támadásifelület-felmérés egy kilenc éve nyitott, internet felé kitett WebLogic CVE-t hoz felszínre — még más előtt. Hogyan ↓
-
júl. 25→26.éjszaka folyamán
MS17-010 a belépési alhálózaton
EternalBlue egy régi Win2003 gép ellen a 10.254.5.x-en, Sliver C2 SOCKS5 pivottal. „Haszontalan gép, de perzisztenciát ad” — a védett hálózatok más szegmenseken vannak.
MS17-010Sliver C22_PERSISTENCE.pngYellow CubeA Cynet az egyik kevés modern EDR, amely ma is fedi a Windows Server 2003-at — SOC-mögöttes észlelés azon a gépen, amit mások elhagytak; a Stormshield szegmentálja, a Stellar Cyber látja a beacont. Hogyan ↓
-
júl. 26.14:28 CEST
Elfelejtett JDWP debug port
Egy nyitva hagyott Java Debug Wire Protocol port egy WebLogic gépen egy második, tisztább RCE-t ad az oracle felhasználóként.
JDWP RCEmunkamenet @ 2026-07-26 14:28:20 +02003_FORGOTTEN_JDWP.pngYellow CubePortszűkítés (Stormshield) és külső támadásifelület-felmérés (Group-IB ASM) bezárja azt a debug portot, amely senkit sem hitelesít. Hogyan ↓
-
júl. 26.napközben
Nekiütközve a szegmentációnak
A kimenő forgalom pingekre és alap parancsokra korlátozva (valószínűleg SELinux + egress-szűrés); a WebLogic-sebezhetőségek jelen vannak, de korlátozottak. A szomszédos alhálózatok már falakba ütköznek.
nincs kimenő forgalom az ICMP-n kívül4_POKING_WEBLOGIC.pngYellow CubeA tiltások már működtek — csak senki nem olvasta őket. A Stellar Cyber központosítja a tiltási eseményeket, a Yellow Cube 24×7 SOC pedig embert állít mögéjük. Hogyan ↓
-
júl. 26.11:46 CEST
Oracle Identity Self-Service
Hozzáférés a Magyar Államkincstár identitásportáljához — több ezer kormányzati fiók, módosíthatóan, visszafejthető jelszavakkal. A tartományközi kapcsolat mértéke kezd kirajzolódni.
OIM 10.254.21.121:140005_BIG_IDENTITY_MESS.pngYellow CubeSzegmentált portál (Stormshield), széfbe zárt admin identitások (Imprivata), csali fiókok (Cynet) — a visszafejthető jelszó megállapítását pedig egy stratégiai tervezési audit alakítja javítássá. Hogyan ↓
-
júl. 26.19:55 CEST
Az exchmentes admin és az erdők közötti bizalom
A shell-előzmények felfednek egy teljes AD-jogú szolgáltatásfiókot (exchmentes / Papi******_44_) és egy kétirányú, erdők közötti bizalmi kapcsolatot: MVH ↔ allamkincstar.gov.hu. Teljes admin — de csak ha elérhető a tűzfallal védett 10.10.x szegmens.
bejelentkezés innen: 185.195.232.103bizalom: FOREST_TRANSITIVE7_HISTORY_TREASURES.pngYellow CubeSzéfben tárolt, automatikusan rotált szolgáltatásjelszó (Imprivata) soha nem kerül shell history-ba; a Varonis azonnal jelez, amint erdőhatáron át hitelesít. Hogyan ↓
-
júl. 27.00:28–02:21 CEST
BloodHound és DCSync az erdőkön át
NTDS-titkok kinyerve, tartományi bizalmak feltérképezve: MVH.LOCAL ↔ ALLAMKINCSTAR.GOV.HU ↔ MAK gyermek-erdő, plusz a NYUFIG / ONYF nyugdíj-erdők. A Tier-0-ig vezető elérhető útvonal feltérképezve.
BloodHound-gyűjtés 2026-07-27T00:28Zbejelentkezés 185.195.232.1639_CROSSING_FRONTIERS.png · 10_FSP.pngYellow CubeA nem tartományvezérlőről futó DCSync az AD egyik legtisztább jelzése — Varonis vagy Cynet minden erdő DC-jén, a Cymulate pedig igazolja, hogy a riasztás elsül. Hogyan ↓
-
júl. 27.14:33 CEST
OIM-adatbázis + a tárolókörnyezet feltérképezése
Az Oracle Identity Manager sémája DBeaverben böngészve; vállalati fájlmegosztások felderítve (Terinfo 15,9 TB, Adat 15,9 TB, ATF 5 TB, shadowcopy). Mindenhol kis tárolók — a kincstári adatokat lassan letöltik, a VM-eket titkosítják.
DBeaver-lekérdezés 2026-07-27 14:33:158_ORACLE_OIM_VAULT.png · 11_SCOUTING_STORAGES.pngYellow CubeA Varonis pontosan ezért készült: legkisebb jogosultság 36 TB megosztáson, és riasztás abban a pillanatban, amint valaki végigpásztázza őket. Hogyan ↓
-
júl. 27.18:24–22:05 CEST
Szembeszállás a Symanteccel (SEP)
SCCM titkos-házirend kinyerése; a Symantec blokkolja a kimenő beaconöket és a named-pipe LSASS-hozzáférést. Megkerülés: RDP a SEP-gépre, az smc.exe / SepMasterService leállítása, majd LSASS-dump — „lsass works :)”.
loot/2026-07-27_18-24-42_policiesnmap 22:05 CEST12_CONFRONTING_SYMANTEC.pngYellow CubeA Symantec működött — amíg le nem állították. A tamper- és ügynökkiesés-riasztás (Cynet, WithSecure) a 24×7 SOC-kal az éjszaka leghangosabb eseményévé teszi ezt. Hogyan ↓
-
júl. 28.13:41–15:25 CEST
vCenter és a 229,1 TB-os datastore-ok
A vCenter hitelesítő adatai végre megvannak (administrator@vsphere.local); 116 VM, 3 host, Primera/IBM datastore-ok összesen 229,1 TB (du -sh /vmfs). A terv: a VM-ek helyben titkosítása ESXi-ből. A dia így zárul: „To be continued”.
FreeRDP 10.17.0.200du -sh /vmfs → 229.1T13_VCENTER_TAKEOVER.pngYellow CubeZárja el a menedzsment-hálózatot (Stormshield), tegye széfbe a vSphere SSO adminisztrátort (Imprivata), és küldje az ESXi syslogot oda, ahol valaki figyeli (Stellar Cyber). Hogyan ↓
-
júl. 30.19:36 CEST
Bizonyíték-csomag a Google Drive-ra
16 elem feltöltve egy „MAGYAR” Drive-mappába a „Loic Matrier” fiókkal: a képernyőképek közül 13, a CREDS.txt, a RECON.txt és egy videó — összesen nagyjából 70 MB. Nem tömeges adat.
Drive-tevékenység 2026. júl. 30. 19:36google-drive-uploader.pngYellow CubeEz a feltöltés a támadó saját gépéről ment, nem kincstári hostról — így semmilyen hálózaton belüli kontroll nem éri el. Itt a Group-IB Digital Risk Protection válaszol: figyeli az alvilági piactereket, és jelez abban a pillanatban, amint az ellopott hitelesítő adatok eladásra kerülnek — a 9 047 már nyílt szövegben lévő, és az a több ezer gyenge hash, amit egy kis GPU-rig napok alatt feltör. Hogyan ↓
-
júl. 31.11:27 CEST
Szivárogtatás a spear[.]cx-en
A „The Magyar Conquest” topik élesben, a képernyőkép-készlettel és tartalék tükrökkel (pCloud, sync.com, MediaFire). Kifejezett megjegyzés: „az adat nem eladó… nem kérünk váltságdíjat.”
spear[.]cx DLS · szerkesztve +46 percDLS.pngYellow CubeA Group-IB Digital Risk Protection hetekről órákra rövidíti a felderítést, és leszedi a tükörpéldányokat. Hogyan ↓
Valóban elhagyhatta a hálózatot 229,1 TB? ↑ tartalom
A teljes 229,1 TB mozgatásához kellene
| Tartós sebesség, 0–24 | Ennyi idő alatt |
|---|---|
| ≈ 7,5 Gbps | 68 órás ablak |
| ≈ 3,9 Gbps | 5,5 napos behatolás |
| ≈ 707 Mbps | 30 nap |
229,1 TB mozgatási ideje tartós sebességen
| Vonali sebesség | Időtartam |
|---|---|
| 100 Mbps | ≈ 212 nap |
| 1 Gbps | ≈ 21 nap |
| 10 Gbps (ideális) | ≈ 2,1 nap |
És a környezet ezt is lehetetlenné tette
- A kimenő forgalom szűrve volt. A támadó saját jegyzete: „nincs kimenő forgalom a pingeken és alap parancsokon kívül.” A Symantec ráadásul blokkolta a kimenő beaconöket.
- Minden Tor / Proton VPN / Mullvad-on át ment. Az anonimizáló csatornák néhány tíz Mbps-re fogják a valós átvitelt — nem a több Gbps-re, amit egy teljes dump igényel.
- A célpontok fogyasztói felhők voltak. Google Drive, pCloud, sync.com, MediaFire. Már a Google Drive is ~750 GB/nap/fiók feltöltési korláttal jár → 229 TB ≈ 305 fiók-nap, és egyik sem képes 229 TB tárolására.
229,1 TB soha nem volt exfiltrációs célpont. Ez annak a virtualizációs környezetnek a mérete, amelyet a támadó helyben, ESXi-ből történő titkosításra készített elő — egy kettős zsarolás (double-extortion) pusztító fele. A képernyőképek egyértelműen kimondják: „a VM-eket közvetlenül ESXi-ből titkosítjuk… miközben az államkincstári adatokat lassan letöltjük.”
Az exfiltráció szándékosan szelektív volt — OIM / kincstári adatbázisok, hitelesítő anyagok és egy összeválogatott bizonyíték-készlet — nem a teljes 229 TB lemásolása, amit sem az időkeret, sem a hálózati sáv nem enged. A nyilvános szivárgás egy ~70 MB-os bizonyíték-csomag volt, kifejezetten „nem eladó, nincs váltságdíj”. Nem volt ideje mindent elvinni — és saját terve szerint sosem ezt akarta.
A támadó azonosítása és eszközkészlete (videobizonyíték) ↑ tartalom
A 24 képernyőkép mellett a támadó egy képernyőfelvételt is hátrahagyott. A videóból kinyert 125 kulcskockát képkockánként átnéztük olyan nyomok után kutatva, amelyek nem az áldozatot, hanem magát az operátort jellemzik — asztali környezet, eszközverziók, saját hosztnevek, C2-infrastruktúra és óra-artefaktumok.
Megerősítve a támadó saját asztalán
- Saját hosztnév szivárgott ki: több terminálprompt is kali@stephlabs-t mutat (zsh, ismétlődő „corrupt history file /home/kali/.zsh_history” hibával). A támadó VM neve second_kali, Oracle VM VirtualBoxban fut egy Linux Mint/Cinnamon asztalon (Terminator, VS Code, Firefox kitűzve; genmon tálca-widget).
- C2-keretrendszer: egy élő sliver > konzol mTLS-implantokat listáz, amelyek a támadó által kontrollált infrastruktúra felé kommunikálnak, root/oracle jogosultsággal futva Linux/amd64 gépeken az áldozat Hyper-V/vSphere-környezetében.
- Payload-elnevezés: a kihelyezett implant a támadó saját /root/magyar.exe könyvtárából származik — a „magyar” szó tudatos utalás az áldozat nemzetiségére, nem áldozat-oldali artefaktum.
- Képernyőn látott eszközök: NetExec, Evil-WinRM (v3.5 → v3.9), FreeRDP/xfreerdp, Nmap 7.94SVN, TigerVNC, Burp Suite Community Edition egy dedikált „PortSwigger - Chromium” profillal, vSphere Client.
- Szokások: két Terminator keresősáv előre kitöltve sshd és encrypted szavakkal — kézi log-/kulcsszókeresésre utal a rögzített kimenetben.
- OPSEC: a 125 kulcskocka semelyikén nem jelent meg VPN/Tor-kliens, jelszókezelő, személyes háttérkép, könyvjelzősáv vagy nem angol nyelvű megjegyzés — a hosztnév- és C2-szivárgástól eltekintve fegyelmezett, csak-eszköz asztal.
A videóból kinyert indikátorok
| Típus | Érték |
|---|---|
| Operátor hosztnév | kali@stephlabs |
| Támadó VM | second_kali (VirtualBox) |
| C2-keretrendszer | Sliver (mTLS) |
| C2 listener IP-k | 84.206.46.11 · 84.205.244.140 · 85.209.80.29 |
| Payload | /root/magyar.exe |
| Újrahasznált hitelesítő adat | exchmentes / Papi******_44_ |
Hova mutatnak valójában a Sliver-jelzések?
| Listener IP | Helyszín | Hálózat |
|---|---|---|
| 84.206.46.11 | Budapest, HU | AS31581 NISZ (Magyarország nemzeti e-kormányzati szolgáltatója) — az MVH nevére regisztrált blokk, ugyanaz az erdő, amelynek az allamkincstar.gov.hu-ba mutató bizalmi kapcsolata a Tier-0-hoz vezető utat adta (06-os esemény) |
| 84.205.244.140 | Athén, GR | AS35506 Information Society S.A. — Görögország SYZEFXIS közigazgatási hálózata (proxy18.syzefxis-hosting.gr) |
| 85.209.80.29 | Tbiliszi, GE | AS209332 — a Grúz Igazságszolgáltatási Legfelsőbb Tanács, Rendes Bíróságok Osztálya |
A másik két cím egymással kapcsolatban nem álló hálózatban van — nincs közös ASN, prefix, regisztráns vagy upstream szomszéd egyik pár között sem (mindhárom ASN BGP-szomszédlistáját közvetlenül ellenőriztük, nulla átfedéssel), és nyilvános forrás sem köti össze a három címet. Mindhárom külföldi kormányzati / igazságszolgáltatási / közigazgatási hálózatra mutat, nem bulletproof vagy támadó-tulajdonú VPS-térbe — ez összhangban áll azzal, hogy a jelzések visszaélésszerűen használt harmadik fél infrastruktúráján futnak redirectorként, nem dedikált C2-gépeken. Az MVH-egybeesés az egyetlen nyom, amit érdemes közvetlenül továbbvizsgálni — önmagában a WHOIS nem mondja meg, hogy ez a listener a már kompromittált MVH/NISZ-környezeten belül ül-e, vagy csak véletlen szomszéd ugyanabban a nemzeti IP-kiosztásban. Minden itt leírt csak azt mutatja meg, hova ér ki a forgalom — nem azt, ki áll mögötte.
Független megerősítés: a ByteToBreach egy második áldozatától (a grúz bírósági rendszertől, teen.court.ge / hcoj.gov.ge) származó, külön kiszivárgott operátori képernyőképek ugyanezt a mintát mutatják ugyanabban a címtartományban — a 85.209.82.28-at kezdeti lábként használta ki, a 85.209.83.139-et pedig kizárólag SSRF-pivotként, hogy elérjen egyébként kívülről elérhetetlen belső szegmenseket. Mindkettő ugyanahhoz az AS209332-höz és ugyanahhoz a regisztránshoz tartozik, mint a fenti grúz listener IP. Ugyanez a szivárgás mutatja az operátor tényleges, bérelt VPS-ét is — 194.102.105.193, AlexHost SRL, Moldova — egy hétköznapi kereskedelmi hosztot, ami szerkezetileg semmiben nem hasonlít a három kormányzati hálózati listener IP-re. Ez nem igazolja, hogy a 85.209.80.29 maga kompromittálva lett, de megmutatja az operátor bevett szokását: a forgalmat szívesebben vezeti át már feltört, áldozati kormányzati hálózatokon belüli gépeken, mint a saját infrastruktúráján.
Az órák helyes értelmezése
A videóban látható terminál-előzmények szerint az Nmap-futások időbélyege 2026-07-29 01:12–02:37 CEST, egy támadó által kontrollált linuxos pivotgépről (root@NLDW2-AW3) — ez valódi, időrendben előrehaladó műveleti előzmény. Ugyanezeken a képkockákon azonban a felvevő gép asztali órája a teljes 9 perces klip alatt stabilan 17:29 → 17:38 között áll. Ez nem élő ellentmondás: azt jelenti, hogy a videó egy később rögzített végigjátszás, amely a régi terminál-előzményeket lejátssza — nem a művelet valós idejű felvétele. A CEST-időbélyegek azt mutatják, mikor történt a behatolás; a 17:29–17:38 csak azt, mikor készült a végigjátszás felvétele, ismeretlen dátumon és időzónában.
Ez finomítja, nem ellentmondja a lenti BloodHound/PDT-megállapításnak: legalább három különálló óra van jelen a bizonyítékokban — a kompromittált környezet (CEST), a támadó pivotgépe a művelet idején (CEST), és az elemző/felvevő asztal (ismeretlen zóna) —, és ezeket nem szabad egymással közvetlenül összevetni, mintha egy óra lenne.
Lokalizációs nyomok, amelyek az áldozathoz, nem a támadóhoz tartoznak
A magyar dátum-/hónap-/hétnapformátumok, a Hyper-V/vSphere objektumnevek (teszt, Gép5, achiv_gepek, virusirto1-3), és egy vSphere bejelentkezési banner, amely azt írja: „Hol a tavasz?”, mind a kompromittált magyar rendszerek sajátjai — a kincstár saját IT-csapata által beállított egyedi üzenet, nem támadói vagy gyártói tartalom. Semelyik nem tekinthető támadói attribúciónak.
Külső attribúció — a KELA Cyber megnevezi az operátort
A fentiek mind a támadó saját kiszivárgott anyagaiból származnak: egy gépet és egy módszert profiloznak, nem egy embert. Az egyetlen megalapozott nyilvános kísérlet arra, hogy nevet adjanak a ByteToBreach-nek, a KELA Cyber Intelligence Centertől származik, amely 2025 novemberében profilozta a szereplőt, és 2026. július 17-én frissítette az értékelést.
A KELA értékelése szerint a ByteToBreach-et valószínűleg Zakaria Mahdjoub, egy algériai, oráni lakos üzemelteti — ezt technikai bizonyítékokkal támasztja alá, köztük infostealerrel fertőzött eszközökről visszanyert adatokkal, böngésző-sütikkel és kapcsolódó digitális nyomokkal.
A „valószínűleg” a KELA saját megfogalmazása, és szándékosan így adjuk vissza. Ez fenyegetés-felderítési értékelés, nem jogi megállapítás: vádemelésről, eljárásról vagy ítéletről nincs tudomásunk, és ebben a jelentésben vizsgált bizonyítékok közül semmi nem támasztja alá önállóan az azonosítást. Azért szerepel itt, mert ez a legjobban alátámasztott elérhető nyilvános attribúció, és mert az érvelése a maga keretein belül értékelhető.
Hogyan épült fel az azonosítás
A gondolatmenetet érdemes teljes egészében elolvasni, mert tankönyvi eset arról, ahogyan egy operátort nem a jelenlegi eszközhasználata, hanem a saját múltja buktat le:
- Egy újrahasznosított Session ID kötötte össze a két személyiséget. A ByteToBreach ProtonMail-, Tuta- és Gmail-címeken, Telegramon (@ByteToBreach, korábban CvHNWwEG és inesslopez), Signalon és Sessionön kommunikált. A Session ID volt a fordulópont: a KELA ezzel kötötte a ByteToBreach személyiséget egy másik, korábbi, 2025 júniusában aktív DarkForums-fiókhoz — amely szingapúri cégek adatbázisait szivárogtatta, majd elhallgatott, miután egy másik felhasználó 500 euró átverésével vádolta meg.
- Ez a második felhasználónév algériai infostealer-naplókban bukkant fel. A KELA adattavában keresve két infostealerrel fertőzött gépen jelent meg, mindkettő Algériában, ProtonMail-, Instagram- és TransferWise-belépésként. Az egyiket 2022 szeptemberében fertőzte meg a Raccoon, a másikat 2024 februárjában a StealC — évekkel azelőtt, hogy a ByteToBreach személyiség létezett volna.
- Két konkrét azonosító zárta be a kört. Egyik fertőzött gépen sem volt hekkerfórum-aktivitás, tehát a kapcsolat nem viselkedési hasonlóságon nyugszik, hanem két nyomon: a korábbi inesslopez Telegram-felhasználónév megjelenik az ellopott böngészőadatokban, és egy ugyanott szereplő telefonszám közvetlenül a ma is működő @ByteToBreach Telegram-fiókhoz kötődik.
- Miért állja meg a helyét az érvelés. Három, egymástól független forrástípus fut össze: egy kriptográfiai üzenetküldő-azonosító, amely két fórumidentitást kapcsol össze; kereskedelmi kártevő naplói egy adott ország magángépeiről, ugyanazokkal a belépési adatokkal több, egymással össze nem függő szolgáltatáson; és két közvetlen azonosító, amely ezeket a naplókat a ma is aktív fiókhoz kötik. Egyenként mindegyik gyenge; együtt nem. A döntő pont pedig időrendi: az infostealer-fertőzések akár három évvel megelőzik a bűnözői személyiséget. Az operátort hétköznapi felhasználóként kompromittálták, jóval azelőtt, hogy bármi oka lett volna az attribúcióra gondolni — és épp ez a történelmi maradvány leplezte le.
Mit igazol a KELA profilja erről a behatolásról
- A hangoztatott motiváció egyezik. A KELA rögzíti, hogy a ByteToBreach rendszeresen azt állította, előbb megkeresi az áldozatokat, hogy „nem a kormányok, hanem ártatlan emberek az áldozatok”, és hogy a szervezeteknek vállalniuk kell a felelősséget a klienseik adataiért. Ez ugyanaz a beállítódás, mint ennek a szivárogtatásnak a kifejezett megjegyzése, hogy az adat nem eladó és váltságdíjat nem kérnek — szokatlan és következetes ujjlenyomat mindkettőben.
- Az eszközhasználat egyezik. A KELA leírása: ismert sebezhetőségek kihasználása vállalati és felhős infrastruktúrán, opportunista brute force és félrekonfigurálás, valamint megszerzett jelszavak újrahasznosítása — majd munkavállalói adatok, adatbázisok és mentések kiszivattyúzása eladásra vagy bizonyítékként való közzétételre. A fenti idővonal 01–08. lépése pontosan ez a leírás, végrehajtva. Repertoárjának egy eleme itt hiányzik: a kezdeti belépéshez nem volt szüksége adathalászatra vagy infostealer-naplókra, mert azt egy javítatlan, internet felé nyitott hoszt megadta neki — az újrahasznosított jelszavakat pedig a környezeten belül találta.
- Az áldozati profil egyezik. Légitársaságok, bankok, egyetemek, egészségügy és állami szervek Ukrajnában, Kazahsztánban, Cipruson, Lengyelországban, Chilében, Üzbegisztánban és az Egyesült Államokban, több, az érintett szervezetek által utóbb elismert incidenssel. Egy nemzeti kincstár pontosan illik a mintába.
- A hash-törést kiszervezi, 100 dollár per hash áron. Apró részlet, valódi súllyal: a KELA rögzíti, hogy a szereplő fizetett hash-törési szolgáltatást keresett. Olvassa ezt az alábbi jelszóhigiéniai szakasz mellé, ahol a tartomány 11 %-a perceken belül elesett egy saját szólistával, CPU-n. Ebben a környezetben senkinek nem kellett volna fizetnie.
- A 2026 júliusi román eset rímel erre. Két héttel a kincstári szivárogtatás előtt ugyanez a szereplő Románia földhivatalánál (ANCPI) állított behatolást, és olyan Active Directory-adatokat publikált, amelyek Windows XP-t, Windows 7-et és Windows Server 2003-at mutatnak éles üzemben, 69 csoportházirend-objektumot — köztük „DISABLE WINDOWS FIREWALL” és „MIGRARE - ADD ADMINS” nevűeket — és kockázatos AD-jogosultsági viszonyokat. A legacy Windows és az engedékeny címtár nem ennek az operátornak a véletlene; ez a célpontválasztási kritériuma.
Forrás: KELA Cyber Intelligence Center, „ByteToBreach: A Deep Dive into a Persistent Data Leak Operator”, KELA Cyber — Threat Actor Spotlight. Megjelent 2025 novemberében, frissítve 2026. július 17-én. www.kelacyber.com/blog/bytetobreach-a-deep-dive-into-a-persistent-data-leak-operator/ — letöltve 2026. augusztus 3-án. A KELA jelzi, hogy a teljes szereplőprofil további, csak az előfizetői számára elérhető részleteket tartalmaz; az itt idézett minden adat a nyilvános bejegyzésből származik.
Jelszóhigiénia — mit fed fel valójában a credential dump ↑ tartalom
A kiszivárgott CREDS.txt (4,6 MB, 65 885 sor) nem egy lista, hanem három: egy kézzel összeválogatott infrastruktúra-credential blokk, egy nyílt szöveges Oracle Identity Manager vault-export 9 032 fiókkal, és egy teljes NTDS.DIT dump 16 200 principallal, 40 467 Kerberos-kulccsal. Mivel ezek közül 9 047 jelszó nyílt szövegként áll rendelkezésre, a szervezet valódi jelszóhigiéniája nem becsülhető, hanem közvetlenül mérhető — és ebből a mérésből számszerűsíthető, hogy a csak hash-ként meglévő maradékból mennyit szerezne meg egy egyedül dolgozó támadó egy kisméretű GPU-rigen.
1 · Mennyit tudunk már, és mennyi esik el ezután
A 10 073 tartományi felhasználói és szolgáltatásfiók az NTDS dumpban
Miből áll össze a már megfejtett 1 104 fiók
10 073 fiókból 1 104 (11,0 %) néhány perc CPU-idő alatt esett el, mindössze 197 különböző jelszóból — GPU és publikus szólista nélkül. Ez az alsó korlát, nem a felső; a felső korlátot a 4. szakasz állapítja meg.
Nyers credential-leltár
| Nyílt szöveges jelszó a dumpban | 9 047 | 9 032 vault + 15 infrastruktúra |
| NTLM hash sorok (NTDS.DIT) | 16 202 | 16 200 egyedi principal |
| — felhasználói és szolgáltatásfiók | 10 073 | de csak 8 777 különböző hash |
| — számítógépfiók | 6 129 | gépi generálású, nincs veszélyben |
| Kerberos-kulcs sorok | 40 467 | aes256 / aes128 / des-cbc-md5 |
| Üres jelszavú fiók | 13 | NT hash 31d6cfe0… |
| Még LM hasht is tároló fiók | 45 | másodperc alatti visszafejtés |
Egy fontos részlet: 4 664 vault-felhasználónév az NTDS dumpban is szerepel, de ezek közül már csak 503 hash egyezik a vaultban tárolt jelszóval. A rotáció tehát működik — az átfedő fiókok kb. 89 %-a jelszót váltott a vault-pillanatkép és az NTDS dump között. Csak éppen semmit sem hozott, mert a generátor sablonja nem változott (lásd 4. szakasz): egy friss vault-export az első napon ugyanezt a populációt kompromittálja újra.
A számok mögötti szokások ↑ tartalom
2 · Hogyan oszlik meg a 9 032 vault-jelszó
| Kategória | Db | Arány |
|---|---|---|
| Gépi generálású, 8 karakter Xx#xxxxx | 5 076 | 56,2 % |
| Gépi generálású, 10 karakter Xx#xxxxxxx | 2 641 | 29,2 % |
| Egyetlen közös szolgáltatásjelszó MvhX*******m123 | 819 | 9,1 % |
| Felhasználó által választott, olvasható | 468 | 5,2 % |
| Felhasználó által választott, ad hoc random | 26 | 0,3 % |
| Üres mező | 2 | — |
A vault mindössze 5,5 %-át választotta valóban ember. Ebben a 494 jelszóban lakik az összes rossz szokás — és ez az a farokrész, amely elsőként törik meg.
3 · A 468 ember által választott jelszó profilja
| Tulajdonság | Db |
|---|---|
| Szó + számok (+ jel) alak | 205 |
| Számjegyre végződik | 326 |
| Négyjegyű évszámot tartalmaz | 157 |
| Egyáltalán nincs benne speciális karakter | 193 |
| Pontosan 8 karakter (a szabályzat minimuma) | 47 |
| Mind a négy karakterosztályt használja | 298 |
| Magyar ékezetet tartalmaz | 33 |
Medián hossz 11, átlag 11,9, legrövidebb 8, leghosszabb 22. A komplexitási szabályzat teljesül, miközben szinte semmilyen entrópiát nem ad: ezek 44 %-a egyetlen kiszámítható sablonba omlik össze.
A rossz szokások, a károkozás mértéke szerint
- Helpdesk-reset sablonok, amelyeket soha nem cserélnek le. A Magyar Államkincstár tartományában a legelterjedtebb jelszó az A1B2c3d4, 389 fiókon. Utána: ABcd1234_ (107), A1B2c3d4_ (79), 111111 (61), abcd1234 (59), Start12345678 (32), ABcd_1234 (32), 123456 (20). Nagyságrendileg 1 300 fiók osztozik legalább egy másik fiókkal ugyanazon a jelszón.
- Egyetlen jelszó 819 vault-soron. Az MvhX*******m123 az Oracle OIM rendszeradminisztrátori jelszava — magának a fióknak a neve, rövid számsorral a végén, itt részlegesen maszkolva. 819-szer szerepel a vaultban, újra a kézi blokkban, és újra az {AES} WebLogic blobokban. Bármelyik visszafejtése OIM-adminisztrátori jogot ad — az OIM-admin pedig mind a 9 032 vault-jelszót, nyílt szövegben.
- Privilegizált fiókok reset-alapértelmezéseken. A 77 _ADMIN / _SMADMIN fiókból kilenc gyenge: három különböző SMADMIN osztozik az ABcd_1234-en; a KUL39104_ADMIN szó szerint a saját felhasználói jelszavát használja; a KUL40582_ADMIN jelszava K@l…@i2, míg a párja, a felhasználói fiók K@l…@i1. A tierszeparáció identitásként létezik, titokként nem.
- A jelszó megegyezik a felhasználónévvel. XELOPERATOR:xeloperator és weblogic:weblogic.
- A szervezet saját nevéből képzett infrastruktúra-titkok. Mvh****n@ (vCenter SSO-adminisztrátor), Mvh****0gic, Mvh1**, MvhX*******m123. Mind a 22 {AES} WebLogic blob mindössze három különböző értékre fejt vissza, így egyetlen ellopott SerializedSystemIni.dat nyitotta a teljes middleware-környezetet.
- Név plusz születési dátum mint személyes standard. A 468 emberi jelszóból 225 egy név vagy becenév, utána születési dátum vagy évszám — Dani1993…, Vargak-1981…, B…Dita1966…. Nyilvános adat nyilvános adathoz fűzve.
- Tematikus szótárak, amelyeket minden szólista tartalmaz. 77 kedvenc, állat és mesefigura (Nyuszi1?, Micimacko&06, Pumukli.30), 27 magyar helynév (Tatabánya2800!, Kaposvar1983*/), 21 hónap- vagy évszaknév (Szeptember2021, November01), 16 a munkáltató nevével, és 7 magával a „jelszó" szóval (Jelszó123, Jelszo002002, Titok2017.).
- Még tárolt legacy gyengeségek. 45 fiók továbbra is tárol LM hasht — másodperc alatti visszafejtés, függetlenül attól, mi a jelszó. 13 fióknak valóban üres a jelszava. És az AES mellett des-cbc-md5 Kerberos-kulcsok is jelen vannak, tehát ezeken a principalokon a DES etype-ok még engedélyezettek.
Reprezentatív minták a 468 olvasható jelszóból
A felhasználóneveket szándékosan elhagytuk. Ezek visszatérő alakzatok, nem kivételek — az alábbi csoportok mindegyike olyan sablon, amelyet egy szólista és egy szabálykészlet gépiesen újraelőállít. A darabszámok (×n) azt jelzik, hány tartományi fiók használja pontosan ugyanazt a jelszót.
A személyes adatokat a közzétételhez minimalizáltuk: a családnevek kezdőbetűre rövidítve, a születési dátumok évre csonkítva (… jelöli). Felhasználónevet sehol nem közlünk. A csonkítás nélküli halmaz a bizonyítékfájlban marad, azt nem publikáljuk.
Reset- és alapértelmezett sablonok — a tartomány legtöbbször újrahasznosított jelszavai
A1B2c3d4×389ABcd1234_×107A1B2c3d4_×79111111×61abcd1234×59Start12345678×32ABcd_1234×32ABcd1234×23Start12345678.×21123456×20ABcd1234?×14Abcd1234×9abcd12345×7Mvh12345×7Alma01×6A1B2c3d4?×6QWer_1234×5Abcd-123×5asdfgh×5Jelszo.01×4qwertz×3Alma,123×3
Maga a „jelszó" vagy „titok" szó
Jelszó123Jelszo002002IdmJelszo11.HMVHjelszo2Danijelszo11@Titok2017.Password-1Ezazenjelszavam_013
Kedvencek, állatok, mesefigurák — 468-ból 77
Nyuszi1?Macsek66!Malacka98*Micimacko&06Mikkamakka06Pumukli.30Felixnyuszi.12Bodzakutya12345Norcamacska1999Oposszum234pingviN1967Galagonya33Kokorcsin.01LunaLovegood95Magneto95.Spongya12345Csiga?4321Medve?54Pele4Mokus_AgroMokus0808.Ricsikutya1997…Accipiter1992Saxicola_rubicola_2
Ételek és italok
+3MákosTészta!Spagetti78Krumplieshus16MogyiSzotyi0224Barackospite2Gofri618Gofri618Mákos202210Rebarbara@02Coca1ColaCumpi11!!!Almafa2012
Helynevek — 468-ból 27
Tatabánya2800!város + postakódKaposvar1983*/Szeged2023Miskolc732100Gödöllőpostakód + városIsaszeg2020!Kulsovat_1349.Podmaniczkyutca1975utcanévNorvegiaBergen2003Manchester1998Rovinj1991!Damaszkusz.288452Oktogon21!Bekesmegye1987megyeSzlovenia18
Hónapok, évszakok, dátumok — 468-ból 21
Szeptember2021November01Oktober,77December2021!Januar-2020Január02Februarban02*2022Augusztus.1991Szeptember…Tavasztündér:)9ÉTavasz_8Szerda0323/
Márkák, csapatok, popkultúra
Chelseafootballclub95BrigiSlipknot10RockyBalboa-0017Tourdefrance1Showderklub2020!Jobaratok911tv-sorozatLucifer96Windows.8888Opelastra1.600Hondacb6502Sencor.1977Datalogic.2020Tiger_1981Anthology13Cappy2005.
A munkáltató saját neve és rendszerei — 468-ból 16
Államkincstár69Agrártámogatások2022Idmrendszer7600Dr§Kincstarnok01Mák@munka02MÁK + „munka"Mvhpgy01!HmvH_MvH202209MvhX*******m123Menedzsment88Kincsem2022Mak.hu112345Idm1
Név plusz születési dátum — a legnagyobb csoport, 468-ból 225
Dani1993…Vargak-1981…B…Dita1966…Csutkasor1975…Ferenc.L…95…Marcell2017…Ági1990…Évike_1995Bettike1982B…katka2005R…Rebeka18Kriszta2019.Andi.1977Zsombor…LucaKata2018…Viktoria1983…
Kifejezések és érzelmek — köztük a törést túlélő néhány jelszó többsége
Ezazenjelszavam_013„ez az én jelszavam"Nemtudom2+00Gondoltam1TDolgozz02_liciDOLGOZIK21?1SZEretleksasad123Változás2023Bizalom_1985Optimizmus1998T@rtsKiAdrik@7!!Nándimese1F***off1986@Bobi-Kacsa-Bruni12
A jelszó megegyezik a felhasználónévvel, vagy az plusz egy
xeloperatorweblogicK@l…@i1felhasználói fiókK@l…@i2ugyanaz _ADMIN fiókjaVargak-1981…a felhasználónevét ismétli
A csoportok együtt egyetlen mondatot adnak ki: egy magyar szótár, egy utónévlista, egy helynévtár, a tizenkét hónap és egy évszám négy jegye ennek a halmaznak a túlnyomó többségét újraelőállítaná — pontosan ezt teszi a 4. szakasz egymásodperces szólista-és-szabály sora. Azok a jelszavak állnak ellen, amelyek egyszerűen hosszúak: Chelseafootballclub95, Podmaniczkyutca1975, Agrártámogatások2022, Ezazenjelszavam_013 — egyik sem ötletes, mindegyik legalább 19 karakteres.
Mit szerez meg valójában egy magányos támadó egy kis GPU-rigen ↑ tartalom
Itt nem egy adatközponttal felszerelt APT-csoportról van szó. A bizonyítékok egyetlen operátorra utalnak, egy VirtualBoxban futó Kali VM-mel — a becsületes kérdés tehát az, hogy ő mit szerez meg. A válasz kényelmetlen, egyetlen szerkezeti ok miatt: az NTLM nem sózott és nem iterált. Minden jelszójelöltet egyszer kell hashelni, és az eredmény egyszerre hasonlítható mind a 16 200 hashhez — tízezer fiók törése pontosan annyiba kerül, mint egyetlené. Egy RTX 4090 kb. 252 GH/s-t tart NTLM-en; négy darab, vagyis egy otthon is megvehető és üzemeltethető rig, kb. 1 TH/s-t. Az alábbi számok mind 1 TH/s-sel készültek.
4 · A 9 030 vault-jelszó visszafejtési ideje ≈1 TH/s NTLM mellett (4 × RTX 4090)
A vault 98,6 %-a négy perc alatt elesik; 99,8 %-a nyolc napon belül. 9 030 jelszóból mindössze 18 maradna állva — olyanok, mint az Ezazenjelszavam_013, Chelseafootballclub95, Agrártámogatások2022, Bobi-Kacsa-Bruni12, Podmaniczkyutca1975. A hosszú és váratlan minden esetben legyőzi a rövidet és komplexet. És közülük is több elesik egy kombinátoros vagy hibrid támadásban, tehát a 18 az optimista olvasat.
A két maszkos sor a legfontosabb megállapítás. A „véletlen" 8 és 10 karakteres vault-jelszavak nem véletlenek: fix sablont követnek — két betű, egy számjegy, majd öt vagy hét kisbetű. Ez a sablon a látszólagos 8 karakteres keresési teret 6,6 × 10¹⁵-ről 3,2 × 10¹¹-re zsugorítja, azaz 20 000-szeres könnyítést ad. Aki bármilyen más úton visszafejt néhányat, azonnal meglátja a mintát, és a többit ingyen maszkolja le. A generátort láthatóan azért választották így, hogy a jelszó telefonon felolvasható legyen; ez négy nagyságrend entrópiába került.
5 · Kivetítés a teljes tartományra — 10 073 felhasználói és szolgáltatásfiók
| Támadási lépés | Eltelt idő | Fiók | Alap |
|---|---|---|---|
| Már nyílt szövegben, hash-egyezéssel igazolva | 0 | 503 | mért |
| Saját 1,3 M-os lista, csak CPU-val | percek | 1 104 (11,0 %) | mért |
| Teljes nyomtatható ASCII-kulcstér ≤ 8 karakterig | 1,8 óra | ≈ 5 700 (57 %) | vault-hosszprofil; csak ASCII-modell |
| Két generátormaszk + szólista és 52 e szabály | < 5 perc | ≈ 8 600 (85 %) | becsült |
| A fentiek együtt, plusz teljes nyomtatható ASCII-kulcstér ≤ 9 karakterig | ≈ 8 nap | ≈ 9 060 (90 %) | becsült |
| Maradék — célzott vagy hibrid munkát igényel | hónapok + | ≈ 1 010 (10 %) | becsült |
A két „mért" sor közvetlen eredmény. A többi a vault mért hossz- és sablonprofilját vetíti ki az NTDS-populációra — ez védhető, mert mindkét populáció ugyanabból a jelszószabályzatból és ugyanabból a generátorból származik, és szándékosan konzervatívabb a vault saját 99,8 %-ánál, hiszen az NTDS-halmaz olyan fiókokat is tartalmaz, amelyeket a vault soha nem kezelt. A fő állítás mindkét olvasatban áll: nagyságrendileg tíz tartományi fiókból kilenc egy munkahéten belül, egy használt autó áránál kevesebbe kerülő hardveren. A 6 129 számítógépfiók a kivétel — gépi generálású, 120 karakteres titkok; ez a környezet egyetlen valóban rendben lévő jelszóhigiéniai területe, épp azért, mert ezeket soha nem ember választotta.
Ennek a környezetnek a jelszóhigiéniája nem a felhasználónál bukott meg, hanem a szabályzat szintjén. A felhasználók pontosan úgy viselkedtek, ahogyan a szabályok terelték őket. Minimum 8 karakter, négy karakterosztály, kényszerített rotáció — ez mérhetően a Szó + születési év + ! alakot termeli: 468 emberi jelszóból 205 egyetlen sablonban, 326 számjegyre végződik, 157-ben évszám, medián hossz 11. Minden komplexitási pipa ki volt téve. Egyetlen óra ellenállást sem vásároltak vele.
A rotáció működött, és mégsem változtatott semmin. Az átfedő fiókok 89 %-a jelszót cserélt a két pillanatkép között, a környezet mégis teljesen kitett maradt — mert az új jelszavak mögötti generátorsablon azonos volt a régivel. Egy kiszámítható sablonon belül cserélni a titkot nem rotáció, hanem újrahúzás ugyanabból a 3,2 × 10¹¹-es készletből.
A katasztrófát nem a gyengeség, hanem a koncentráció okozta. Három jelszó őrizte a teljes middleware-réteget. Egyetlen jelszó — az MvhX*******m123 — őrizte azt az identitáskezelőt, amely a másik 9 032-t nyílt szövegben tartotta. Egyetlen reset-sablon, az A1B2c3d4, 389 tartományi fiókon ült. Az operátornak nem kellett jónak lennie a jelszótörésben: pontosan egy titokra volt szüksége egy nagyon rövid listáról, és az architektúra mindegyikhez több utat is felkínált.
Tanulságok
- Az a vault, amely nyílt szöveget ad vissza, egyetlen totális hibapont. Egyetlen OIM-export 9 032 identitást kompromittált, nulla törési munkával. A visszafejthető tárolás csak ritka, izolált kivétel lehet, és minden onnan származó exportot teljes környezeti breachként kell kezelni.
- A hossz legyőzi a komplexitást, és nem is szorosan. Sózatlan NTLM ellen a modell szerinti sebességgel minden legfeljebb 8 karakteres, nyomtatható ASCII-jelszó két órán belül, minden legfeljebb 9 karakteres pedig körülbelül nyolc napon belül elesik. A Unicode-jelszavakhoz külön jelölthalmaz kell, de a célzott maszkok és nyelvspecifikus szólisták a rövid, kiszámítható választásokat továbbra is kiteszik. Váltás 14 karakteres minimumra, a kényszerített komplexitási szabályok elhagyása, és minden új jelszó ellenőrzése egy breach-korpusszal. Az itt megmaradt néhány jelszó kizárólag a hosszának és kiszámíthatatlanságának köszönhetően maradt meg.
- Jelszógenerátornak soha ne legyen látható sablonja. Az Xx#xxxxx minta négy nagyságrend entrópiát dobott el azért, hogy a jelszó felolvasható legyen. Generáljunk a teljes karakterkészletből, nagyobb hosszon, és a felolvashatóság terhét vigye egy jelszókezelő az entrópia-büdzsé helyett.
- Szüntessük meg a reset-sablont. Kerüljön egyéni tiltólistára az A1B2c3d4*, ABcd*1234*, Start12345678*, abcd1234*, QWer_1234, Jelszo*, Mvh*, Kincstar* és a teljes szervezetnév-család. Minden helpdesk-reset legyen egyszer használatos, véletlen, és következő bejelentkezéskor kötelezően cserélendő.
- A tierszeparációnak a titkok szeparációjának kell lennie. Egy külön _ADMIN identitás semmit nem ér, ha a jelszava szó szerint a felhasználó jelszava, vagy az plusz egy. A privilegizált fiókok helye egy kiadás–rotáció rendszer, amelyben az értéket ember nem választja meg, és nem is látja.
- A rotáció ütemterv, nem védelmi intézkedés. A naptár szerinti lejáratot váltsa fel esemény-alapú rotáció — kompromittálódásnál, szerepkörváltásnál, breach-korpusz-találatnál —, a megtakarított energiát pedig phishing-ellenálló MFA-ra kell fordítani, mert az bontja meg valóban azt a credential-replay láncot, amelyet ebben a behatolásban láttunk.
- Vonjuk ki a legacy kriptográfiát, ami mindezt olcsóvá teszi. NoLMHash beállítása és a 45 tárolt LM hash törlése, a des-cbc-md5 Kerberos etype-ok letiltása, a 13 üres jelszavú fiók azonnali kezelése, és az NTLM teljes kivezetésének megtervezése — épp a sózatlan, nem iterált felépítése az oka, hogy egyetlen asztali GPU-rig tízezer fiókot támadhat egyetlen fiók áráért.
- Tekintsük az egész készletet elveszettnek. A teljes NTDS.DIT és a teljes vault birtokában ebben a környezetben egyetlen credential sem menthető. Mind a 16 200 principal jelszócserét igényel, a számítógépfiókokkal együtt, minden kompromittált tartományban kétszeres krbtgt-rotációval.
A krbtgt kulcs és a Golden Ticket — miért él túl ez a betörés minden jelszócserét ↑ tartalom
A 07. lépésbeli DCSync nem csupán a felhasználói jelszóhasheket másolta ki. Egy tartomány teljes NTDS.DIT-replikációja átadhatja az adott tartomány krbtgt fiókjának kulcsát is — azt a titkot, amellyel a tartomány Kerberos Key Distribution Centerei aláírják a jegyeket —, és ez a kulcs a Golden Ticket fő hozzávalója. Tehát igen: minden olyan tartományban, amelynek krbtgt kulcsa bekerült a replikált adatokba, az operátornak megvolt minden a jegyhamisításhoz.
Mit ad a támadó kezébe a krbtgt kulcs
- Saját kezűleg gyártott Ticket-Granting Ticket a kompromittált tartományban. Az adott tartomány krbtgt kulcsával az operátor tetszőleges, az adott tartományban elfogadott identitást, SID-et és csoporttagságot hordozó TGT-t hamisíthat jelszótörés nélkül. A tartomány- vagy erdőhatáron átnyúló hozzáférés továbbra is a trust konfigurációjától és a SID filtering beállításától függ. ATT&CK T1558.001.
- Perzisztencia, amit a kézenfekvő javítás nem érint. A kompromittált felhasználói jelszavak visszaállítása — még minden Domain Admin jelszaváé is — semmit sem tesz egy Golden Tickettel, mert azt a krbtgt írja alá, nem a megszemélyesített fiók. Az ellopott kulcs érvénytelenítéséhez az adott tartomány krbtgt jelszavát kétszer kell rotálni, a két reset között legalább a konfigurált maximális Kerberos-jegyélettartamot kivárva — ez az alapértelmezett szabályzat mellett 10 óra.
- Kompromittált tartományonként egy kulcs — nem erdőnként. Az Active Directory minden tartományban külön krbtgt fiókot tart fenn. Ezért a bizonyítékok alapján pontosan meg kell állapítani, mely tartományok címtáradatai replikálódtak: minden megszerzett krbtgt kulcs a saját tartományában teszi lehetővé a jegyhamisítást, a trust konfigurációja pedig meghatározza, meddig ér tovább ez a hozzáférés.
Pontosan ezért szól a jelszóhigiéniai szakasz hitelesítőadat-tanulsága úgy, hogy „az egész készletet tekintse elveszettnek”. Ha az NTDS-dump és a krbtgt kulcsok egyszer kint vannak, semmilyen szelektív felhasználóijelszó-visszaállítás nem állítja helyre a címtárba vetett bizalmat — minden kompromittált tartományban kétszeres krbtgt-rotáció kell, a két reset között előírt jegyélettartamnyi várakozással. Bármely tartomány, amelynek ellopott kulcsa érvényes marad, továbbra is visszautat biztosít.
Elkapható? — a Yellow Cube válasza
A Golden Ticket használata szándékosan csendes: egy szolgáltatásnak bemutatott hamisított TGT közönséges Kerberosnak tűnik, így a jelek közvetettek — szokatlan élettartamú jegyek, RC4-titkosítás ott, ahol az estate AES-re állt át, vagy előzetes hitelesítés nélküli szolgáltatásjegy-kérés. A viselkedésalapú identitásészlelés felszínre hozza ezeket: Varonis, Cynet, Stellar Cyber. Egy elhelyezett honeytoken-fiók egyértelművé teszi — egy olyan identitás bármely használata, amelynek soha nem szabadna hitelesítenie, konstrukcióból rosszindulatú: Cynet. A Cymulate pedig bizonyítja, hogy az észlelés elsül, mielőtt szükség lenne rá.
De az észlelés itt a második vonal. Az igazi kontroll az elszigetelés és a rotáció — a 07. lépésben megnevezett vészhelyzeti kétszeres krbtgt-rotáció, minden kompromittált tartományban, a két reset között előírt várakozással végrehajtva, a Yellow Cube 24×7 SOC és egy Group-IB IR retainer szállításában — mert amíg ez nincs kész, a címtárat továbbra is elfoglaltként kell kezelni.
A lánc megszakítása — mi állította volna meg az egyes lépéseket ↑ tartalom
A fenti tizenkét lépés mindegyikén ott van a sárga Yellow Cube sáv a rövid válasszal. Ez a szakasz a hosszú válasz: lépésenként, mi akadályozta volna meg, mi tette volna láthatóvá menet közben, mi szakította volna meg végrehajtás közben, és mely konfigurációs gyengeségeket jelezte volna a posture-kezelésünk jóval azelőtt, hogy bármi elkezdődött volna.
Hogyan olvassa — módszertan
- A termék-hozzárendelések a Yellow Cube saját Security Stack Matrixából származnak — 27 kontrollréteg 9 szekcióban, mindegyiken NIS2-jelöléssel, publikált gyártó–réteg lefedettségi térképpel. Az alábbiakban semmi sem azért került be, hogy kitöltsön egy sort.
- Az állítások képességre szólnak, nem rétegcímkére. Minden alábbi sor megnevezi a konkrét képességet, amely a munkát végzi, és a terméket, amely szállítja — mert ezen a szinten dől el, hogy egy kontroll tart-e vagy nem. A privilegizált munkamenet rögzítése és a jelszó széfbe zárása két különböző feladat; a végponti és a felhős posture-kezelés két különböző hatókör. Ez a pontosság teszi a leképezést használhatóvá, nem dekoratívvá.
- A portfólió tizenhat gyártója közül tizenkettő helyet kap itt; négy nem. Ebben a láncban nincs DDoS, nincs e-mail-vektor és nincs mobileszköz, ezért az ezeket a területeket lefedő gyártók kimaradnak. Csak azokat a kontrollokat megnevezni, amelyek valóban változtattak volna a kimeneten — ez a gyakorlat lényege.
- Végfelhasználói biztonságtudatossági képzés sem szerepel. Ebben a behatolásban nincs adathalászat, nincs makró és nincs felhasználói hiba: nem javított middleware, nyitva hagyott debug port, nyílt szöveges jelszavak és lapos erdőbizalom van. Az egyetlen jogos képzési érv itt a védőkre mutat, nem a munkatársakra — lásd a 04. lépést.
- A konfigurációs gyengeséget elsőrangú kontrollként kezeljük. Amit ez az operátor használt, jórészt nem hiányzó termék volt, hanem egy beállítás. Védelem nélkül hagyott LSASS, még engedélyezett SMBv1, hallgatózó debug transport, túl engedékeny címtárjogok, nyílt szöveget visszaadó identitástár. A Cynet ESPM-je és a WithSecure Elements posture-kezelése pontosan ezeket hozza felszínre, folyamatosan — megállapításként egy dashboardon, nem felfedezésként valaki más képernyőképein. Minden alábbi Keményítés sor olyan dolog, amit időben jelzünk.
- Szolgáltatási határ. A Yellow Cube a 24×7 SOC/MDR-t, az incidenskezelési retainereket, a HackLabot és a képzéseket, valamint a stratégiai tervezési auditokat szállítja. A gyakorlati bevezetést, hardeninget és üzemeltetést a helyi MSSP-partner végzi. Ahol az alábbi javítás architekturális, ott a felelős ennek megfelelően van megnevezve.
01 · WebLogic RCE megvetett lábbal CVE-2017-10271 · kilenc éve javítatlan
Egy internet felé nyitott ESB vhost 2017-es deszerializációs hibával, kihasználva egy Python reverse shell ledobására, közvetlen IP-címre.
02 · MS17-010 a belépő alhálózaton Windows Server 2003 · Sliver + SOCKS5
EternalBlue egy olyan legacy gép ellen, amelyet a támadó maga nevezett használhatatlannak, és kizárólag perzisztenciáért tartott meg, tetején SOCKS5 pivottal.
03 · Elfeledett JDWP debug port tiszta RCE oracle-ként
Egy Java Debug Wire Protocol port éles WebLogic gépen hallgatózva — második, az exploitnál is tisztább bejárat.
04 · A szegmentációs falnál a védelem, ami működött
Kimenő forgalom ICMP-re szorítva, SELinux az útban, a szomszédos alhálózatok elzárva. A támadó maga írta le: „nincs kimenő, csak pingek és alapvető parancsok." Ez a teljes lánc legerősebb megállapítása — a kontrollok elvégezték a munkájukat. Csak nem olvasta senki a kimenetüket.
05 · Oracle Identity Self-Service több ezer fiók · visszafejthető jelszavak
Az identitásportál a 14000-es porton: több ezer állami fiók, módosíthatóan, olyan jelszótárolással, amelyből nyílt szövegben visszaolvasható.
06 · Szolgáltatásfiók és erdőbizalom jelszó a shell historyban
Egy teljes AD-jogosultságú szolgáltatásfiók egy shell history fájlban, és egy kétirányú FOREST_TRANSITIVE bizalmi kapcsolat az MVH-tól az allamkincstar.gov.hu felé.
07 · BloodHound és DCSync erdőkön át NTDS.DIT kiürítve
Bizalmi kapcsolatok gráfba szedve, az NTDS-titkok négy erdőn át kireplikálva, a Tier-0-ig vezető elérhető útvonal feltérképezve.
08 · OIM-adatbázis és tárolók felderítése 36 TB megosztás bejárva
Az identitáskezelő sémája adatbázis-kliensben böngészve, a vállalati fájlvagyon bejárva: 15,9 TB, 15,9 TB, 5 TB, plusz árnyékkötetek.
09 · Szembeszállás a Symanteckel ügynök kézzel leállítva, majd LSASS kiürítve
Az egész behatolás fordulópontja — és az a lépés, ahol az üzleti érv a legerősebb, épp azért, mert a meglévő termék működött. A Symantec blokkolta a kimenő beaconokat, és blokkolta a named pipe-on át az LSASS elérését. Egészen addig működött, amíg valaki le nem állította: RDP a biztonsági eszközt futtató gépre, két szolgáltatás leállítása, LSASS dump. A támadó saját jegyzete így szól: „lsass works :)".
10 · vCenter és a 229,1 TB terv: helyben titkosítás ESXi-ről
A vSphere SSO adminisztrátori jelszó megkerült, 116 VM és 229,1 TB datastore felmérve, és kimondott terv a környezet helyben történő titkosítására.
11 · Bizonyítékcsomag a Google Drive-ra 70 MB · a támadó saját gépéről
Tizenhárom képernyőkép, a credential dump, a recon kimenet és egy videó — összesen kb. 70 MB — feltöltve egy személyes felhőfiókba, „Loic Matrier” néven. A bizonyítékok egyértelműen a támadó saját virtuális gépére mutatnak, nem kincstári végpontra — az adat már kint volt, mire böngészőbe került, így nincs olyan hálózaton belüli feltöltés, amit tűzfal, proxy vagy végponti ügynök elkaphatna. Ezt kimondani a lépés lényege: egy jelentés, amely ide védelmi terméket tenne, rossz dolgot adna el önnek.
12 · Nyilvános közzététel szivárogtató bejegyzés + felhős tükrök
A bejegyzés élesben, a képernyőkép-csomaggal és három fogyasztói felhőszolgáltatáson tükrözve, azzal a kifejezett megjegyzéssel, hogy váltságdíjat nem kérnek.
Lefedettség egy pillantásra
| Lépés | Legyőzött kontrollrétegek | NIS2 | A portfólió válasza |
|---|---|---|---|
| 01 WebLogic RCE | Sebezhetőség-kezelés · Posture · NGFW · EDR · MDR | kötelező | Lefedve — észlelés, elszigetelés, és a patch-rés időben jelezve |
| 02 EternalBlue | Posture · Szegmentáció · EDR · NDR · Deception | implicit | Lefedve — EDR-rel a Server 2003-on is |
| 03 JDWP | NGFW · Posture · NDR | kötelező | Lefedve — a posture jelzi a félrekonfigurálást |
| 04 Figyelmen kívül hagyott tiltások | SIEM · MDR · BAS · Cyber range | kötelező | Lefedve — a lánc legjobb lehetősége |
| 05 Visszafejthető identitás-vault | MFA · PAM · ITDR · Deception | kötelező | Lefedve — posture-megállapítás és audit-felelősség |
| 06 Jelszó a historyban + bizalom | PAM · MFA · ITDR · Posture | kötelező | Lefedve — a bizalmi kitettség feltérképezve és figyelve |
| 07 DCSync erdőkön át | ITDR · SIEM · BAS · Deception | kötelező | Lefedve — magas megbízhatóságú észlelés, jogok időben jelezve |
| 08 36 TB megosztás bejárva | Adatkezelés · Posture · UEBA | felette | Lefedve — a Varonis birtokolja az adatréteget |
| 09 Biztonsági ügynök leállítva | Posture · PAM · EDR · XDR · MDR · BAS | kötelező | Lefedve — tamper-riasztás és 24×7 válasz |
| 10 vCenter és 229,1 TB | Szegmentáció · PAM · SIEM · Backup | kötelező | A hozzáférési útvonalon lefedve — lásd a mentési megjegyzést |
| 11 Feltöltés személyes felhőbe | Hitelesítőadat-kitettség figyelése · DRP · IR | implicit | A célpont peremén kívül — kitettségfigyelés, hitelesítőadat-rotáció és a tükrök leszedésének koordinálása |
| 12 Nyilvános közzététel | Digital risk protection · IR | kötelező | Lefedve — tudomásszerzési idő és tükrök leszedése |
Négy NIS2 szempontból kötelező réteg dőlt el teljesen ebben a behatolásban: a privilegizált hozzáférés-kezelés, az identitásalapú fenyegetésészlelés, a menedzselt észlelés és reagálás, valamint a mentés. Egy közigazgatási, alapvető szolgáltatást nyújtó szervezetnél ez a négy nem opcionális érettség — ez a padló.
Az öt pont, ahol ez a lánc valóban megszakad
Tizenkét egyenlő súlyú javaslat nem javaslat. Sorrendben aszerint, hogy melyik mennyit vesz ki a behatolásból:
- A kontrollok elsültek, és senki nem olvasta el őket. A 04. és a 09. lépés ugyanaz a hiba kétszer: a kimenő szűrés blokkolta a támadót, a Symantec blokkolta a beaconjait és az LSASS-elérését, és mindkettő üres szobába riasztott. Egy 24×7 SOC/MDR képesség itt a legnagyobb hatású elérhető változtatás — a már megvásárolt kontrollokat valódi reagálássá alakítja, és ez az egyetlen javaslat, amely ezt a behatolást öt és fél napból órákra rövidítette volna.
- Statikus privilegizált jelszavak, mindenhol. Szolgáltatásfiók jelszava shell historyban (06), adminisztrátori jelszó újrahasznosítva a middleware rétegen (09, 10), és 9 032 jelszó úgy tárolva, hogy visszaolvasható (05). Az első kettőre a privilegizált hozzáférés-kezelés a válasz; a harmadik léptékéhez lásd a jelszóhigiéniai szakaszt.
- Az erdőkön átnyúló DCSync láthatatlan volt. A 07. lépés a teljes lánc legtisztább észlelési lehetősége, és észrevétlen maradt — legvalószínűbben azért, mert nem volt műszerezés a bizalmi háló minden erdőjének tartományvezérlőin. Identitásalapú fenyegetésészlelés teljes DC-lefedettséggel, validálva, nem feltételezve.
- Lapos belső hálózat, kitett menedzsment-réteggel. A 02. és a 10. lépés. A szegmentáció nem akadályozta volna meg a megvetett lábat, de bezárta volna egy olyan alhálózatba, amelyet a támadó maga nevezett használhatatlannak — ahelyett, hogy elérje a 116 éles VM-et tartó hipervizort.
- 36 TB fájlmegosztás mindenféle adatkezelés nélkül. A 08. lépés. Senki nem tudta, mi van azokban a megosztásokban, ki olvashatja őket, és hogy valaki épp most járta végig mindet. Ez feltárható, javítható állapot — és ez dönti el, mennyire súlyos egy incidens, ha valaki már bent van.
A konfigurációs és tervezési megállapítások — és aki lezárja őket
Amit ez az operátor kihasznált, jórészt beállítás volt, nem hiányzó termék. Ez jó hír: a beállítások megtalálhatók. Minden alábbi pont olyan, amit a posture-kezelés folyamatosan felszínre hoz, vagy amit egy stratégiai tervezési audit behatárol és bizonyít — majd az MSSP-partnere lezár.
| Lépés | Konfigurációs vagy tervezési megállapítás | Felszínre hozza → lezárja |
|---|---|---|
| 01 | Kilenc év fel nem telepített middleware-javítás egy internet felé nyitott hoszton | Cynet ESPM / WithSecure → partneri patch-ciklus |
| 02 | Életciklus végi Server 2003 routolható szegmensen, engedélyezett SMBv1-tel | Posture-leltár → életciklus-terv (közben a Cynet fedi) |
| 03 | Éles környezetben hallgatózó JDWP debug transport | Cynet ESPM / Group-IB ASM → release-kapu |
| 05 | Visszafejthető, nyílt szövegben visszanyerhető jelszótárolás az identitáskezelőben | Posture + stratégiai tervezési audit → platformváltozás |
| 06 | Kétirányú erdőbizalom szelektív hitelesítés és SID-szűrés nélkül | Varonis → AD-tervezési változtatás a partnerrel |
| 07 | Replikációs jogok nem tartományvezérlő principaloknál | Varonis posture → jogosultság-tisztítás |
| 08 | Az Oracle saját auditja nem rögzíti a sémahozzáférést | Posture + audit → natív audit bekapcsolása |
| 09 | Védelem nélküli LSASS — kikapcsolt Credential Guard, beállítatlan RunAsPPL | Cynet ESPM / WithSecure → GPO-változtatás |
| 09 | Túl engedékeny kliensházirend és legacy szolgáltatásfiók a menedzsmentkiszolgálón | Posture-megállapítás → SCCM-újratervezés a partnerrel |
| 10 | Módosíthatatlan, offline, tesztelt VM-mentés | A saját mentési gyártója → lásd az alábbi megjegyzést |
| 11 | 16 202 hitelesítő adat kitéve — ma nyílt szöveg, a gyenge hash-ek egy héten belül | Group-IB DRP piactér-figyelés → rotálás, mintha nyilvánosak lennének |
| 12 | A közzététel nem megelőzhető — a bejelentési készenlét igen | Begyakorolt NIS2-bejelentési folyamat |
A mentésről — a 10. lépés utolsó mentsvára, és hogy hol a helye
A 10. lépés 229,1 TB virtuális gép helyben történő titkosításának terve volt. A helyben titkosítás ellen pontosan egy kontroll válaszol, és az a módosíthatatlan, offline, tesztelt mentés. Ennek a jelentésben az utolsó mentsvár helye jár — az, ami eldönti, hogy egy incidens rossz hét vagy létkérdés.
És 229,1 TB visszaállítása messze nem triviális. Ugyanaz a fizika, amely a nagy tételű exfiltrációt kivihetetlenné tette a jelentés korábbi részében, a helyreállításnál visszafelé vág:
| Tartott visszaállítási sebesség | 229,1 TB visszaállítási ideje |
|---|---|
| 500 MB/s (jellemző dedup appliance, egy szál) | ≈ 5,3 nap |
| 1,5 GB/s (jól hangolt, párhuzamos szálak) | ≈ 42 óra |
| 10 Gbps (ideális, vonali sebesség) | ≈ 2,1 nap |
És mindegyik szám azt feltételezi, hogy a mentések léteznek, módosíthatatlanok, nem titkosították őket az általuk védett környezettel együtt, és hogy egy ilyen léptékű visszaállítást valóban begyakoroltak — nem csak beállítottak. Egy mentési feladat, amelyből még soha nem állítottak vissza, nem kontroll, hanem hit.
A Yellow Cube nem kínál mentési megoldást, és ez pozicionálási döntés, nem hiányosság. A mentés és az üzletmenet-folytonosság kiforrott, kiválóan kiszolgált piac, ahol egy szakosodott kiberdefenzív disztribútor kevés olyat tud hozzáadni, amit a meglévő szereplők ne tudnának jobban. A portfólió alapelve: területenként egy specialista gyártó, és csak olyan területen, ahol valódi értéket lehet hozzátenni. Ez az a terület, ahová a saját meglévő gyártóját érdemes hoznia — a javaslat itt az, hogy a kontroll legyen tesztelt, nem az, hogy tőlünk vásárolja.
Ez a behatolás nem azért járt sikerrel, mert nem volt védelem. A kimenő szűrés tartott. A SELinux tartott. A Symantec blokkolta a beaconokat és blokkolta az LSASS-t. A támadó a saját képernyőképein írta le a saját frusztrációját. Mindegyik kontroll azt tette, amiért megvásárolták — aztán öt és fél napig egy olyan szobába jelentett, ahol nem volt senki.
Az első lépés tehát nem termék, hanem szemléletváltás. Állítson 24×7 észlelési és reagálási képességet a már meglévő kontrollok mögé, majd zárja be a mögötte lévő jelszó- és identitásarchitektúra-réseket. Cymulate, hogy folyamatosan bizonyítsa: a detekciók elsülnek — ne feltételezze; CYBER RANGES és a Yellow Cube HackLab, hogy pontosan azt a hibát gyakorolják be, amit ez a jelentés dokumentál — a kontroll elsült, senki nem reagált; és egy stratégiai tervezési audit a 27 rétegű Security Stack Matrix mentén, hogy a maradék réseket ön találja meg előbb, mint más.
A bevezetést és a hardeninget a helyi MSSP-partnere szállítja. Amit a Yellow Cube hoz: a portfólió, a mögötte álló 24×7 SOC, az incidenskezelési retainer arra az éjszakára, amikor számít, és az enablement, amitől mindhárom működik.
Yellow Cube Cyberdefense
Digitális forenzika és incidenskezelés · offenzív biztonság · XDR-valídáció
Készítette: Akos Bodis · akos.bodis@yellowcube.eu · +36 20 932 1240