Shellbot káros kód leírás

Felfedezés dátuma

2020.11.02.

Súlyosság

Közepes

Ö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 Pearl 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:

1. ábra Az egyes országok érintettsége egyedi IP címek alapján

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.

Támadás típusa

Trójai
backdoor

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