Jak mohli hackeři napadnout Povodí Vltavy? Průzkum dle OSINT

Začátkem letošního dubna hackeři napadli, kromě jiných, i státní podnik Povodí Vltavy. Útok byl označen jako rozsáhlý a podnik musel odstavit (resp. hackeři odstavili 😊) část systémů a pracovat na nápravě.

Když se stane větší útok, jsem vždy zvědavý, jak k němu došlo. Myslím, že z informací o provedení útoku by mohla společnost (zejména IT správci) benefitovat – poučili by se z chyb jiných a zlepšili by zabezpečení svých sítí. Stejně tak by to ukončilo nejrůznější spekulace.

Avšak pravidla jsou, jaká jsou, a vyšetřovatelé o útocích neprozrazují informace. Věnoval jsem průzkumu tedy trochu svého času a zkusil jsem vypátrat, jestli Povodí Vltavy nemělo ve svých veřejně dostupných systémech nějakou zranitelnost. Závěry jsem pak prezentoval na svém LinkedIn profilu a na firemní FB. Vám se to líbilo a chtěli jste, abych postup více rozebral. Abyste si takový rychlý průzkum mohli příště udělat sami doma. Rád tak učiním.

Ještě mi dovolte napsat, že OSINT (zjišťování informací z veřejných zdrojů) není moje silná stránka. Stále se mám co učit. Budu tedy rád, pokud do komentářů doplníte své tipy či postupy.

Stejně tak, i když se mi podařilo najít kritickou zranitelnost v systémech Povodí Vltavy, skrze kterou by se dal útok provést, nemusel to být skutečný vektor útoku. Útočníci mohli provést útok jinak.

OSINT: Kde domov můj? Aneb jak najít veřejné IP adresy Povodí Vltavy

V prvním kroku chci zjistit, jaké veřejné služby (služby dostupné z internetu) společnost provozuje.  Začnu tím, že si dohledám webové stránky firmy, čímž zjistím, jakou doménu firma používá. V tomto případě hodím rychlý dotaz „povodí vltavy“ do google.com a dostanu webové stránky na adrese www.pvl.cz .

Webové stránky firem bývají většinou provozovány na cizím webhostingu. Tzn. že server dané společnosti nepatří a pokud by jej někdo prolomil, dané firmě by vnitřní síť nezastavil. To znamená, že musíme hledat dál.

Nyní bychom se mohli zeptat služby DNS, kdo se stará doméně pvl.cz o e-maily. Dříve si totiž firmy spravovaly mail servery samy a měly je umístěné ve vnitřní síti (resp. DMZ). Zde ovšem zjistíme (digwebinterface.com), že maily má pvl.cz nejspíše v Office 365. 😒

Naštěstí jsou tu šikovné nástroje, které dokážou vyhledat různé DNS záznamy v rámci domény. 😊 Používají k tomu často více zdrojů (DNS cache, web crawling, různé leaky, nebo Certificate Transparency). Zvláště „Certificate Transparency“ je velice milý zdroj. Jakýkoliv certifikát, který si někdo nechá vystavit od veřejné CA, se zde objeví. Tyto certifikáty obsahují DNS jména serverů (zjednodušeně řečeno), pro které byly vydány. Je to tedy skvělý zdroj informací. Doporučuji si cvičně zkusit vyhledat i informace pro vaši doménu na Google Transparency Report. Více pak v článku „Certificate Transparency: The Gift That Keeps Giving“.

My k tomu použijeme nástroj DNSdumpster.com. Pokud v něm zkusíme vyhledat informace o doméně pvl.cz, dostaneme následující výsledek:

Poddomény pvl.cz a jejich propojení.
Obrázek 1: Poddomény pvl.cz a jejich propojení.

Získali jsme jména poddomén, jejich propojení, přiřazené IP adresy, reverzní DNS záznamy a občas i nějaké hlavičky služeb. Nyní nejspíše přemýšlíte, co s tím?

OSINT: Jaké služby Povodí Vltavy nabízí „světu“?

Díky dnsdumpster.com máme seznam IP adres, které by mohly patřit Povodí Vltavy. Teď potřebujeme zjistit, které IP adresy jsou zajímavé a které ne.

Na to bychom si mohli pustit NMAP a udělat si vlastní sken. To však má dva háčky. Zaprvé to nemusí být legální (nejsem však právník 😊). Druhým (dosti limitujícím) problémem je, že většina služeb nebude aktuálně dostupná. Kvůli kompromitaci je přeci museli vypnout, pamatujete? 😉

Obrátíme se tedy na služby, které udělají tuto práci za nás, a to na Shodan.io a Binaryedge.io. Obě nonstop skenují internet a sbírají informace o dostupných službách. Mají možnost jak placených, tak i bezplatných účtů. Pokud je ještě neznáte, doporučuji vyzkoušet.

Do těchto služeb zadáme IP adresy zjištěné v předchozím kroku. Kromě daných IP adres se dívám i na vedlejší IP adresy. Větší firmy totiž často mívají přidělený větší rozsah adres (subnet). Stejně tak můžeme zkusit vyhledávat i textové řetězce (např. „pvl.cz“).

Aktuálně máme seznam služeb běžících ve vnitřní síti a zároveň dostupných z internetu.

OSINT: Která ze služeb zradila?

Nalezených služeb jsme získali hromadu. Teď musíme zjistit, které jsou zajímavé a které ne. Vzhledem k tomu, že útočníci kompromitoval nejspíše celou vnitřní síť, hledáme službu, jejíž prolomení by mohlo mít tak velký následek.

Na adrese „90.182.205.244“ jsem například narazil na službu „MS4W — MapServer 4 Windows“, u které je uvedeno asi 50 různých zranitelností. 😊

Nicméně mým favoritem se stal Microsoft Exchange server na adrese „90.182.205.245 (gatemail.pvl.cz)“. V Microsoft Exchange byla totiž tento rok nalezena kritická zranitelnost, která umožňuje jednoduše převzít kontrolu nad celý serverem. Jedná se o zranitelnost pod označením CVE-2020-0688, existují na ní exploity a je aktivně zneužívána „Multiple nation-state groups are hacking Microsoft Exchange servers“. Co víc si přát. 😊

Nyní bychom však potřebovali zjistit, jestli i Povodí Vltavy provozovalo zranitelnou verzi MS Exchange. Jenomže jak na to?

Práci nám usnadní sám Microsoft. V HTML kódu webového rozhraní (OWA) totiž uvádí verzi a patch level Exchange serveru. Skutečný server je nejspíše asi nedostupný, a tak si budeme muset vystačit s informacemi posledního skenu od binaryedge.io.

binaryedge-owa-cache
Obrázek 2: Sken binaryedge

Na „výstřižku“ z cache vidíme, že MS Exchange byl ve verzi 15.0.1293. Nakoukneme do „Exchange Server build numbers and release dates“ a zjistíme, že se jedná o „Exchange Server 2013 CU16“. Ten byl vydaný 21.3.2017 a podporu měl cca do 27.10.2017 (viz „Exchange 2013 Servicing Model“). Takže už víme, že se jedná o zranitelnou verzi MS Exchange.

Cache byla pořízena 12.3.2020 v 3:12 našeho času (viz výstřižek). Útok byl prý proveden 7.4.2020 (nejspíše však proběhl během noci z 6.4. na 7.4.). Je zde mezera necelé 4 týdny, během které mohli správci provést aktualizaci MS Exchange a my bychom si toho nevšimli. Jelikož však MS Exchange neaktualizovali přes dva roky, je pravděpodobné, že jej neaktualizovali ani během té mezery.

Pre-exploitace a post-exploitace

Pokud jste si poctivě přečetli informace o zranitelnosti v Exchange, tak víte, že k jejímu zneužití ještě něco potřebujeme. Tou chybějící ingrediencí jsou přihlašovací údaje alespoň jednoho doménového uživatele s poštovní schránkou. Jenomže kde by je útočníci mohli vzít?

Jedna z možností je již zmiňovaný spear phishing. Další možností je nahlédnout do archivu uniklých přihlašovacích údajů z různých internetových služeb. U firmy o velikosti Povodí Vltavy je slušná pravděpodobnost, že se něco najde. Udělal jsem si rychlý sken a našel jsem vyšší desítky uniklých přihlašovacích údajů. Jedná se sice o starší úniky hesel a někteří lidé již v Povodí možná ani nedělají, nicméně útočníkům stačí jenom jeden validní uživatel.

Ukázka uniklých přihlašovacích údajů povalujících se na internetu.
Obrázek 3: Ukázka uniklých přihlašovacích údajů povalujících se na internetu.

Ovládnutí MS Exchange ještě nutně neznamená úplnou moc nad doménou (celou sítí). Avšak, je zde několik používaných „privilege escalation“ technik, které umožňují z Exchange serveru získat kontrolu nad celou doménou (viz Exchange-AD-Privesc).

Tohle je tedy cesta, jakou mohli útočníci úspěšně kompromitovat firemní síť Povodí Vltavy. Jestli však šli touto, nebo jinou cestou, ví jen útočníci a vyšetřovatelé. 😊

Kde čerpat informace k IT bezpečnosti?

Jsem si vědom, že udržovat se v obraze o tom, co se v IT bezpečnosti děje, není jednoduché. Rád bych s vámi proto sdílel, jak to dělám já.

Každý den sleduji několik zahraničních webů. Abych je nemusel navštěvovat ručně, používám Feedly.com (něco jako RSS čtečka). Založil jsem si seznam sledovaných webů a skrze web nebo mobilní aplikaci mám na jednom místě vše, co se na webech daný den objevilo. Šetří mi to čas a udržuje ve věcech pořádek. Většinou sjedu články ráno cestou do práce. Pokud by vás zajímalo, co sleduji, udělal jsem vám export svého feedu Feedly – Security“ (můžete si jej importovat pod svůj účet na (https://feedly.com/i/cortex).

Stejně tak se doporučuji přihlásit k odběru „upozornění“ u americké „Cybersecurity and Infrastructure Security Agency“ (dole na jejich webu). Zdarma získáte poměrně dobrý „threat intelligence“.

Když už tu zmiňují externí zdroje, tak i naše firma si zřídila Youtube kanál PATRON-IT Academy. Zveřejňujeme video návody s řešením nejčastějších dotazů našich uživatelů ohledně Office 365. Cílem je naučit uživatele něco nového (co jim pomůže), jejich zaměstnavatelům ušetří peníze a nám čas na „repetitivních“ úkonech. Naposledy jsme publikovali „Jak si nastavit 2FA pro Office 365“, což ocení hlavně správci středních a větších firem při nasazování více-faktorového ověřování. Místo obíhání všech kolegů ve firmě jim mohou poslat toto video, se kterým si dvoufaktor zvládne většina lidí nastavit sama.

No a v neposlední řadě doporučuji sledovat můj blog, 😉 kategorie „bezpečnost“ a „ransomware“. Rychlovky sdílím na LinkedIN (budu rád, když si mě přidáte). Demonstrace útoků a záznamy přednášek naleznete na YouTube Martin Haller.

Závěr

Možná vás ještě napadne, proč si myslím, že to byl útok skrze veřejně dostupnou službu? Proč to nebyl útok třeba skrze spear phishing (e-mailem)? Jistotu samozřejmě nemám a provádím jen „kvalifikovaný tip“. Útoky skrze e-mail vídám méně často. Když už se s nimi setkám, nemívají takový dopad (zasáhnou jen data a systémy, které jsou dostupné „napálenému“ uživateli).

Opět jako vždy budu rád za vaši zpětnou vazbu, postřehy a tipy, jak zlepšit OSINT. 😊 Děkuji vám.

Společně #zalepšíIT

Martin

Líbí se vám témata, o kterých píši?

Abyste nemuseli kontrolovat, jestli už vyšel nový článek, rád vám ho ihned po zveřejnění pošlu do e-mailu. Každý kontakt, který mi poskytnete, si nechám vždy jen pro sebe.

Diskuze k článku

Tomáš Koukal

29. 04. 2020 v 08:35

Děkuji Vám Martine za další z kvalitních článků. Zase jsem si rozšířil obzory a rád zkouknu Váš Feedly seznam webů.

Odpovědět

Odpovědět

Martin Haller

29. 04. 2020 v 08:39

Děkuji za pochvalu :). Avšak jak píšu, v OSINT jsem spíše začátečník a budu rád za jakékoliv tipy od zkušenějších.

Odpovědět

Odpovědět

Tomáš Koukal

29. 04. 2020 v 15:17

Dobré odpoledne přeji, tak náhodně na mne vyběhl na LinkedIn odkaz na https://gbhackers.com/10-best-hacker-friendly-search-engines-of-2019/
a jako velmi zajímavý nástroj po rychlém shlédnutí se jeví https://osintframework.com/

Odpovědět

Odpovědět

Martin Haller

29. 04. 2020 v 15:37

Bezva, díky za linky. Hlavně ten OSINT framework je fajn jako takový „rejstřík“. Něco jako https://attack.mitre.org/ pro hacking/pentesting.

Odpovědět

Odpovědět

lgrundel

29. 04. 2020 v 09:10

Nejsem v tom uplně kovanej, ale myslím, že takovou paseku obyčejný mail faktura.zip neudělá 🙂

Odpovědět

Odpovědět

Martin Haller

29. 04. 2020 v 10:06

To ne 😀. I když některé závažné útoky začínají e-mailem, tak je to většinou jen tzv. „initial foothold“ (vstupní bod / bakdoor), přes který pak přijdou „lidští operátoři“ 🙁.

Nicméně ta chyba v Exchange umožňuje skrze speciální HTTP dotaz na ECP spustit na serveru libovolný kód pod uživatelem system (tzn. získat i remote shell).

Odpovědět

Odpovědět

Matesovic

30. 04. 2020 v 07:24

Dobré ráno Martine, díky za hezký článek po jehož přečtení se cítím zase o něco vzdělanější 🙂

Odpovědět

Odpovědět

Martin Haller

30. 04. 2020 v 09:04

Děkuji, jsem rád, že se líbí :).

Odpovědět

Odpovědět

Navarre

01. 05. 2020 v 13:12

Jednalo se o Spear phishing…

Odpovědět

Odpovědět

Martin Haller

01. 05. 2020 v 13:51

Nevíte co bylo payloadem? Pokus o vylákání přihlašovacích údajů, nebo malware (backdoor)? Případně jak byl proveden lateral movement / privilege escalation?

Odpovědět

Odpovědět

Luděk

09. 05. 2020 v 21:11

Dobrý den, děkuji za cenné informace, které sdílíte. Chtěl bych se zeptat, jestli nevíte, zda je možné získat seznam ip adres proxy serverů, které Microsoft používá pro Outlook for Android?
Spustil jsem na našem firewallu GeoIP filtr. S ohledem na místní specifika není nutné, aby náš on premise Exchange server byl na portu 443 trvale dostupný z jiných zemí, než ČR. To jsem si myslel, než se ozval první uživatel, že mu přestala chodit pošta do Outlook v Android telefonu, ačkoli je doma 🙁 . Důvod je popsán tady: https://practical365.com/exchange-server/outlook-for-ios-and-android/
Musel jsem povolit přístup na server z US a Irska, aby mu pošta z ČR do ČR začala znovu chodit. Microsoft sice nějaké seznamy ip adres zveřejňuje, ale asi se mi nepodařilo najít ten správný, zdá se, že jsou určeny pro opačný směr z LAN do Microsoft. Máte o této věci nějaké informace? Myslím, že drtivá většina uživatelů, stejně jako donedávna já, vůbec netuší, že jejich komunikace s jejich vlastním on premise serverem prochází servery třetí strany a Microsoft, i když to přímo netají, se tím moc nechlubí.
Také mě zajímá, jestli podobná situace je i poštovního klienta GMail pro Android v konfiguraci s on premise Exchange serverem?

Odpovědět

Odpovědět

Martin Haller

10. 05. 2020 v 09:06

Dobrý den, Luďku,

děkuji za pochvalu. Zajímavý postřeh s tím Outlookem pro mobilní zařízení – sám jsem to nevěděl. Těch znalostí v našem oboru je více než pro jednu hlavu :). Office 365, tedy Microsoft 365 se velice rychle mění, co platilo jeden půl rok už většinou ten druhý neplatí :).

Zkuste kouknout na https://docs.microsoft.com/en-us/office365/enterprise/additional-office365-ip-addresses-and-urls je tam seznam dodatečný adres (URL i IP), které se používají i v případě kdy se cloud připojuje na on-premise (zejména řádek 10) a pak taky https://docs.microsoft.com/en-us/office365/enterprise/urls-and-ip-address-ranges (nicméně nevím co je relevantní a co ne). V nejhorším případě budete odkázán na firewallové logy – nachytat seznamy IP address a pak je zkusit párovat oproti těm seznámům, nebo dohledávat na google :-/.

Odpovědět

Odpovědět

Jan Uher

11. 05. 2020 v 16:16

Dobrý den, rád bych se zeptal na aktualizace Exchange serveru zmíněné v článku. Měl jsem za to, že CU jsou jen balíčky předchozích záplat a funkcí, ale že když ho nemám, tak to nemusí nic znamenat, jelikož kritické záplaty chodí skrze Windows Update. Jak to tedy, prosím, je? Děkuji

Odpovědět

Odpovědět

Martin Haller

12. 05. 2020 v 10:02

Dobrý den, Honzo,

je to trochu komplikovanější a snad při vysvětlování neudělám chybu.
* Exchange 2010 a starší se aktualizoval skrze Service Pack (SP) a Rollup Update (RU). Myslím, že RU chodili skrze Windows Update (WU), ale SP bylo nutné instalovat zvlášť. Abyste byl up-to-date, potřeboval jste poslední SP+RU.
* Exchange 2013 se aktualizuje skrze Cummulative Updaty (CU) + běžně updaty z Windows Update. Ty CU se však musí instalovat ručně. V podstatě se jedná o plnohodnotnou instalačku celého Exchange, takže to není žádný malý update :).K těmto CU se pak srze WU stahují běžné aktualizace. Každý CU je podporován cca 6 měsíců (viz článek).

Doporučuji si o tom však přečíst více (https://docs.microsoft.com/en-us/exchange/new-features/updates?view=exchserver-2019). Odpověď píši narychlo a mohu se v něčem mýlit.

Odpovědět

Odpovědět

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Hack The Box OSCP MCSE CHFI ECSA CCNP CCNA