Extrém mód rejtőzködő Linux trójai

Biztonsági szakemberek egy olyan rendkívül rejtőzködő Linux trójait fedeztek fel, amelyet vélhetően kormányzati szervek, gyógyszerészeti vállalatok ellen vetnek be világszerte, hogy segítségével érzékeny adatokat lophassanak. Az eddig ismeretlen malware valószínűleg egy darabja a Kaspersky Lab és a Symantec által augusztusban említett ún. Turla APT (Advanced Persistent Threat) műveletnek.

[ The 'Penquin' Turla ]

Hozzászólások

Forráskód elérhető GPL alatt? :)

-----
„Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben.”
rand() a lelke mindennek! :)
Szerinted…

Még szerencse, hogy nem vagyok patikus! :-)
Tudom, "Azután értem jöttek, és nem maradt senki, aki szólhatott volna."
--
Tertilla; Tisztelem a botladozó embert és nem rokonszenvezem a tökéletessel! Hagyd már abba!; DropBox

I'll shoot:

Lehet, hogy a leírás nagyon felületes, de nekem nem tűnik itt semmi különlegesnek ebben. Ha jól értem RAW socket-en figyel, a bejövő kopogtatásra visszanyit egy kapcsolatot és a kapott parancsokat végrehajtja.

Tehát nem igaz, hogy rendkívül rejtőzködő lenne, ugyanis root user/kernel mode rootkit nélkül nem tudja elrejteni magát.
Valamint az is csúsztatás, hogy elevated privilege nem kell neki, mert raw socket capability mégiscsak kell.

Aztán lehet, hogy mindez nem igaz, de a linkelt cikkből ez jön le.
---
Régóta vágyok én, az androidok mezonkincsére már!

A trey által feljebb belinkelt forráskódban elmagyarázzák:
azért nem látszik netstat-ban, mert nem bind-ol portra, hanem sniff-el (nem promiscuous módban, tehát azt hiszem nem kell neki root ha high port-okról beszélünk), és a #define-okban megadott TCP portokra érkező SYN csomagokat használja port knocking-ra, utána fork-ol shell-t és bind-olja egy inetd-vel egy TCP portra. Ez alapján egy dolog látszik belőle, egy nem (?) root UID-jű PID - amit könnyebben el lehet rejteni. Ők pl. top-ot említik, bár szerintem az gyanús lenne tty nélkül :)
Utána a shell nyilván olyan UID-t kap, mint a parent-je, és oda kell valamilyen privilege escalation.

Tud olyat is, hogy a nem egy IP-ről jövő SYN csomagokat is összeadja a teljes knocking sequence-be, amivel az IDS-eket lehet kicselezni, hogy ne ismerjék fel a nyilvánvaló knocking-ot.
Elvileg kezelhet ICMP-t és UDP-t is a bonyolításért.

Szerintem ezt nem lehet egyszerűen megírni python-ban, de nem értek nagyon hozzá.

Vicces (és ezt más is megjegyzi), hogy a kód 2000-es dátumú, tehát annyira nem friss már :)

Így visszaolvasva elnézést a borzasztó sok belekevert angol szakszóért, de így érthetőbbnek tűnik.

Igen, csak sajnos a linkelt magyarázat mellett továbbra is igaz, hogy:

1. CAP_NET_RAW capability kell. Különben nem tud listenelni raw socketen. Ez a privilege azért nem égből pottyan. Production rendszeren viszonylag kevés daemon szokott rendelkezni ilyennel (most így elsőre IDS service jut eszembe, aminél egyáltalán lehet értelme). -> Reálisan marad az, hogy root-ot kell szerezni, különben valami nagyon speciális niche-re korlátozódik az alkalmazhatósága. A rootból pedig ennél már lényegesen többet is ki lehet hozni.

2. "utána a forkolt shellt bind-olja inetd-vel egy TCP portra" -> itt meg már mutatja a netstat. Meg persze a ps is. A kernel mode rootkitek ennél sokkal jobban rejtik el magukat.
---
Régóta vágyok én, az androidok mezonkincsére már!

Szóval kell most félteni a gépem, rohanni vírusirtót telepíteni, vagy hasonló?

Turla kereső script:

while IFS=" " read -r MD5 FName; do if [[ "$MD5" = "14ecd5e6fc8e501037b54ca263896a11" || "$MD5" = "0994d9deb50352e76b0322f48ee576c6" ]] ; then echo "$FName vírusos"; fi done <<< $(find / -size 1M -type f -executable -exec md5sum {} \; 2>/dev/null)

Szerk.: csak az 1 MB-nál kisebb, futtatható állományokat nézi át.

openSUSE 13.1 x86_64.

kereső script, kicsit gyorsabb, mert csak az ELF-eket olvassa végig.

http://pastebin.com/gF0SM8pq

használat:

perl findmd5elf / 14ecd5e6fc8e501037b54ca263896a11 0994d9deb50352e76b0322f48ee576c6 &

hol tart:

kill -USR1 $!

Szerk.: 19. sort megfelelően módosítva szabályozható a fájlméret.

~~~~~~~~
deb http://deb.uucp.hu/ wheezy yazzy repack