Összefoglaló
Az Outlaw Hacking Group friss támadási kampányában a 2005 óta ismert Shellbot nevű Linux-alapú rendszerek ellen készült malware-t alkalmazza. A káros kód tartalmaz egy Monero kriptobányász modult, egy Perl alapú backdoort, valamint IRC alapú bot és SSH szkenner szolgáltatást is.
Az Outlaw hacker csapat 2018-ban tűnt fel, ekkor elsősorban autóipari és pénzügyi szervezetek ellen kíséreltek meg támadásokat. Az Outlaw által létrehozott botnet ekkoriban főképp brute-force és SSH támadásokat indított, amelyek során az ún. Shellshock (CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187) és a Drupalgeddon2 (CVE-2018-7600) sérülékenységeket használták ki, hogy távoli hozzáférést szerezzenek a megcélzott rendszerekhez. Az első verzió egy DDoS szkriptet is tartalmazott, amely „szolgáltatás” a darkweben volt bérelhető.
A mostani Shellbot támadás elemzése folyamán több egyezés is felmerült egy másik – 2012-ben felbukkant -, vélhetően román illetőségű hackercsoport módszereivel.
Leírás
A támadás első lépése a kiszemelt szerver felhasználói fiókjai elleni brute-force támadás. A kérések különböző IP címekről érkeznek, átlagosan 30 másodperc időkülönbséggel. Ezzel elkerülhetőek bizonyos védelmi intézkedések, amelyek a hasonló támadások kiküszöbölésére általánosan használatosak. Az érintett eszköz sikeres kompromittálását követően, a támadó egy komplex hacker készletet telepít az eszközre, amely tartalmaz IRC alapú bot-ot, SSH szkennert, egy BF eszközt és egy XMRIG kriptobányász kódot is.
A rejtett „.rsync” könyvtár szolgál a letöltött káros tartalom elhelyezésére, alaphelyzetben ide 3 alkönyvtár és 3 fájl (init, init2, initall) kerül, ez utóbbiak célja a káros kód fő komponenseinek telepítése. Az elsőként lefutó initall process megtisztítja az áldozat számítógépét a hasonló fertőzésektől ─ amelyek akadályozhatnák a saját lefutását ─, majd meghívja az init2 file-t. Az init2 szkript felel az init0 és az „a” könyvtárban lévő fájlok futtatásáért. A szkript beállítja a különböző modulok és szkriptek periodikus lefutását is. A vizsgált mintában ez a következők szerint történt:
- „/a/upd” – 23 naponként
- „/b/sync” – minden vasárnap 08:05 (helyi idő szerint)
- „/b/sync” – minden újraindításnál
- „/c/aptitude” – 3 naponként
Az „a” könyvtár tartalmazza a kriptobányász modult (kswapd0). A könyvtárból először az ’a’ file fut le, feladata a CPU információk összegyűjtése, a bányász modul működésének optimalizálása érdekében. Ezután lefut az ’upd’ szkript, amelynek egyetlen feladata, hogy ellenőrizze a kriptobányász modul futását. Amennyiben az nem fut, akkor meghívja a ’run’ szkriptet, amely elindítja a ’kswapd0’ programot. A kriptobányász modul alapja az ismert XMRIG kriptobányász alkalmazás.
A ’kswapd0’ két funkcióval rendelkezik, egyrész telepíti a kriptobányász programot, másrészt létrehoz egy SSH backdoort.
A backdoor telepítéséhez szükséges komponenseket a „b” könyvtár tartalmazza (’a’, ’run’, ’stop’). A kiinduló folyamat az ’a’ fájl lefutása, amely ellenőrzi az aktuális munkakönyvtárat, majd meghívja a ’stop’ szkriptet, amely leállítja az összes függőben lévő folyamat végrehajtását. Végezetül elindítja a ’run’ szkriptet, amely a C2 szerver felé történő kommunikációért felel. A Shellbot IRC protokoll segítségével kommunikál a C2 szerverrel. Érdekesség, hogy a kommunikációra a 443-as portot veszi igénybe, amelyet alapvetően a HTTPS protokoll használ. A szkript tartalmazza az IRC csatorna megnevezését és az adminisztrátorok által használt nickneveket is.
Ekkor az ’init2’ meghívja a ’c’ könyvtárban található ’start’ szkriptet, amely átnevezi és lefuttatja a ’run’ fájlt. Az átnevezés biztosítja, hogy ennek működése észrevétlen maradhasson a futó folyamatok között. Futása során lekérdezi a CPU architektúrát (32/64 bit) és a processzormagok számát, majd meghívja a ’go’ szkriptet. Ez készíti elő a ’tsm’ komponens elindítását, az architektúra alapján beállítja a futó szálak számát. A ’tsm’ egyfajta hálózati szkenner, illetve brute-force típusú jelszótörő. Ez a tool vélhetően egy a darkweben beszerzett komponens, erre utal az is, hogy saját súgóval is rendelkezik.
A ’tsm’ az alábbi paraméterekkel kerül végrehajtásra:
timeout 3h ./tsm -t $threads -f 1 -s 12 -S 10 -p 0 -d 1 p ip
Az egyes paraméterek jelentése:
- timeout – a szkript futásának ideje
- t – a futó szálak száma
- f – IP osztály szkennelés
- s – 2 kérés közti időrés
- S – a második időrés hossza
- p – a kapcsolati port meghatározása
- d – funkciója ismeretlen
- p ip – beolvassa az ’ip port’ fájlt
Letöltés után elindul a ’Game Over’ néven ismert 2. lépést, ebben a szakaszban hajtódik végre az SSH brute-force. Az ’ip port’ file jelenleg közel 100 000 különböző IP-t tartalmaz. Az egyes országok érintettségét az alábbi ábra szemlélteti:
A leírás készítésének időpontjában a legfertőzöttebb ország az Amerikai Egyesült Államok, ahol közel 35 000 Shellbot-tal fertőzött egyedi IP volt megtalálható.
Az eredeti C2 IRC szerver nem elérhető, azonban az ’ip port’ file továbbra is elérhető, így egy új IRC szerver telepítésével a bot hálózat újra működésbe hozható.
Megoldás
Javaslatok
- Megoldásként javasolt a hálózatok jelszóházirendjének szigorítása.
- Az operációs rendszeren és a telepített alkalmazásokon mindig telepíteni kell a legújabb frissítéseket.
- Az alkalmazott vírusvédelmi eszközhöz mindig telepíteni kell a legújabb frissítéseket.
- Legyen elővigyázatos a gyanús csatolmányt tartalmazó e-mailekkel szemben, azokat lehetőség szerint ne nyissa meg. Az ismeretlen fájlokat és gyanús e-mail csatolmányokat ellenőrizheti a Virustotal oldalra feltöltve.
- Blokkolja az összes URL- és IP-alapú IoC-t a tűzfalon, az IDS-en, a web-átjáróknál, az útválasztóknál.
Hivatkozások
Egyéb referencia: securityaffairs.co
Egyéb referencia: securityaffairs.co
Egyéb referencia: yoroi.company
Egyéb referencia: techcrunch.com
Indikátorok
HASH:
ac2513b3d37de1e89547d12d4e05a899848847571a3b11b18db0075149e85dcc – ./.rsync/c/lib/32/tsm
b92e77fdc4aa3181ed62b2d0e58298f51f2993321580c8d2e3368ef8d6944364 – ./.rsync/c/slow
f95c1c076b2d78834cc62edd2f4c4f2f6bfa21d07d07853274805859e20261ba – ./.rsync/c/watchdog
99fa6e718f5f54b1c8bf14e7b73aa0cda6fe9793a958bd4e0a12916755c1ca93 – ./.rsync/c/tsm64
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 – ./.rsync/c/v
d6c230344520dfc21770300bf8364031e10758d223e8281e2b447c3bf1c43d2b – ./.rsync/c/tsm32
5a1797ae845e8c80c771ece9174b93ad5d5a74e593fe3b508ba105830db5fd92 – ./.rsync/c/run
0bf8868d117a7c45276b6f966c09830b010c550cd16a2b0d753924fca707c842 – ./.rsync/c/tsm
9dbbc9b5d7793425968e42e995226c5f9fe32e502a0a694320a5e838d57c8836 – ./.rsync/c/start
f942240260f0281a3c0e909ac10da7f67f87fb8e2a195e2955510424e35a8c8b – ./.rsync/c/stop
e62be7212627d9375e7b7afd459644d3f8b4c71a370678eb7fa497b9850a02d5 – ./.rsync/c/go
1cc9c6a2c0f2f41900c345b0216023ed51d4e782ed61ed5e39eb423fb2f1ddd8 – ./.rsync/c/golan
b2469af4217d99b16a4b708aa29af0a60edeec3242078f42fa03b8eaf285d657 – ./.rsync/b/run
dc43fdfbb5f7e8ecc80353dcd85889c0c08483c99acbce35b3ed8f399c936920 – ./.rsync/b/a
1c42bfcfb910013ebe02adeb6127884de54ea225161d0a7347c05c2c4e6fbf49 – ./.rsync/b/stop
fd9007df08c1bd2cf47fb97443c4d7360e204f4d8fe48c5d603373b2b2975708 – ./.rsync/a/kswapd0
18b77e655b323fa07dad9d7b64631dbaa428da7d347b9b9497276f4d466079fe – ./.rsync/a/run
9d4fef06b12d18385f1c45dd4e37f031c6590b080ea5446ff7a5bac491daea50 – ./.rsync/a/a
1c7b4c7ab716159b6dc9fc5abc6ae28ab9dfa0d64e3d860824692291a7038a4e – ./.rsync/a/stop
e38ff53f3978c84078b016006389eb3b286443d61cbabb7d5a4f003c8ae67421 – ./.rsync/a/init0
befdf0be5b811621a72eddafad1886321102be1ec3417030888371c5554d9d1a – ./.rsync/initall
16d93464ebd8f370011bf040cb4aec7699f4be604452eb5efcd77e5d5e67ae1b – ./.rsync/init
C2:
debian-package[.]center
45.9.148[.]125
45.9.148[.]129
45.9.148[.]99