Linux – atak złośliwej kryptokoparki Color1337

W skrócie

Badacze cyberzagrożeń z firmy TEHTRIS przeanalizowali atak mający na celu kradzież mocy obliczeniowej urządzeń z systemem Linux celem kopania kryptowaluty. Atak został przeprowadzony w styczniu 2023 r. na jeden z komputerów-pułapek (honeypot) firmy TEHTRIS we Francji. Honeypot działał pod kontrolą systemu Ubuntu w wersji 22.04. Cybergang stojący za atakiem optymalizuje wykorzystanie zasobów ofiary – jeżeli maszyna ma wystarczające możliwości, jest wykorzystywana do uruchomienia kryptokoparki o nazwie diicot. Jeżeli nie, atakujący używają jej do gromadzenia informacji o innych potencjalnych celach. Cyberprzestępcy korzystają z serwera Discorda, by przesyłać dane z zainfekowanych maszyn.

Badacze z firmy TEHTRIS nadali kampanii cyberprzestępczej nazwę Color1337, a sama liczba 1337 jest swego rodzaju sygnaturą autorów złośliwego kodu.

Złośliwe kryptokoparki są coraz popularniejsze wśród cyberprzestępców – w marcu 2023 r. zaobserwowano pięciokrotny wzrost liczby ataków tego typu w porównaniu z wcześniejszymi miesiącami. Nie jest niespodzianką, że głównym motywem działań cyberprzestępców stosujących te narzędzia jest chęć szybkiego zarabiania pieniędzy.

Aktywność związana ze złośliwą kryptokoparką: optymalizacja wykorzystania zasobów ofiary

Nie jest jasne, w jaki sposób atakujący uzyskali wstępny dostęp i pobrali złośliwy kod na maszynę. Badacze podejrzewają, że po ataku siłowym mającym na celu uzyskanie dostępu do SSH, przestępcy pobrali i wykonali skrypt powłoki o nazwie uhQCCSpB. Jest to bot mający na celu zainstalowanie kryptokoparki, która wydobywa walutę Monero i podejmuje próby infekowania kolejnych maszyn. Wg badacza z Uniwersytetu w Zurychu (więcej tutaj) bot ten, znany jako Linux.MulDrop.14 lub UNIX_PIMINE.A, istnieje od 2017 r. i powstał w celu atakowania urządzeń Raspberry Pi. Może to oznaczać, że twórcy w dalszym ciągu rozwijają i uaktualniają swoje narzędzie.

Skrypt uhQCCSpB pozwala cyberprzestępcom wysyłać oraz wykonywać polecenia na zainfekowanej maszynie i najprawdopodobniej jest on wykorzystywany do uruchomienia kolejnego skryptu – payload – który wykonuje następujące działania:

Po pierwsze, skrypt zabija wszystkie inne kryptokoparki, które działają na maszynie, zwalniając atakowane środowisko dla własnych potrzeb.
Następnie, w zależności od liczby rdzeni procesora, uruchamia jedną z dwóch funkcji:

  • „FastAndSteady” – funkcja pobierająca i uruchamiająca kryptokoparkę diicot (sha256: 0314f688409e3caf1e6d0198bfff3a129e14cb0c623150ba3e29581fba6491d1) ze strony arhivehaceru[.]com lub spod adresu IP 45.139.105[.]222.
  • „SlowAndSteady” – funkcja pobierająca pliki Update oraz History z tego samego serwera lub adresu IP. Plik History jest wykorzystywany do uruchamiania pliku Update.

Kolejnym krokiem jest próba zmiany hasła bieżącego konta. Prawdopodobnie ma to na celu uniknięcie sytuacji, w której inni atakujący przejmą kontrolę nad maszyną przy użyciu takiej samej techniki siłowej. Jednak ze względu na błędy w kodzie, operacja ta nie jest poprawnie wykonywana. Następnie do serwera kontrolowanego przez cyberprzestępców (arhivehaceru[.]com:1337/pass) wysyłany jest plik json zawierający informacje o nowych danych dostępowych, publicznym adresie IP oraz o liczbie rdzeni procesora zainfekowanej maszyny. Działanie to ma najprawdopodobniej na celu rozwijanie bazy danych urządzeń pozostających pod kontrolą atakujących.

Aby maksymalnie wykorzystać zainfekowany komputer linuksowy, przestępcy stosują jedną z dwóch strategii. Jeżeli maszyna jest odpowiednio wydajna (procesor posiada cztery lub więcej rdzeni), uruchamiana jest kryptokoparka diicot, która w pełni korzysta z mocy obliczeniowej. Jeżeli komputer jest wyposażony w słabszy procesor, atakujący realizują wspomniany wcześniej scenariusz „SlowAndSteady”.

Jak atakujący wykorzystują ofiary ze słabszymi maszynami

Jeżeli maszyna ofiary nie oferuje wystarczającej mocy obliczeniowej do wydobywania kryptowaluty, atakujący wykorzystują ją do infekowania innych komputerów.

W tym celu uruchamiany jest plik Update (SHA256: e582428a5be24a1eb9eb80566a57bd0cb0431110d3c07b5ce9edd5544a3ef1b4), będący trojanem znanym od listopada 2022 r. i stosowanym głównie do wykorzystywania luki w mechanizmie uwierzytelniania routerów Dasan GPON (CVE-2018-10561, CVSSv3 9.8).

Plik Update realizuje następujące działania:

Na początku z serwera cyberprzestępczego pobierany jest plik o nazwie Chrome (SHA256: 14779e087a764063d260cafa5c2b93d7ed5e0d19783eeaea6abb12d17561949a), który jest znanym od 2018 r. skanerem portów dla systemu Linux, a także plik aliases (SHA256: cc0b01955db20101f93771f81a9fa6ab7c091cac8435529996020d4f3932a3e7) – znany od 2022 r. trojan dla systemu Linux.

Następnie szkodnik wysyła do uchwytu Discorda plik json zawierający poniższe atrybuty:

""title"": """",""description"": ""Infected Secure Server Shell [ SSH ] on '<IP address of the infected device>'"", ""color"": 1337

Wykorzystanie uchwytu Discorda do przechowywania wykradzionych danych nie jest nową taktyką – badacze analizowali ją już w połowie 2022 r. Zastosowanie usług wbudowanych w popularne komunikatory, takie jak wspomniany Discord czy Telegram, pozwala atakującym na znaczne zmniejszenie kosztów, które pociągałoby za sobą utrzymywanie własnej infrastruktury do przechowywania danych. Co więcej, ze względu na fakt, że aplikacje tego typu są zwykle dość popularne w firmach, często są one pomijane w zadaniach monitorowania połączeń sieciowych, co jeszcze bardziej zwiększa możliwości cyberprzestępców w zakresie niezakłóconego działania w sieci ofiary przez długi czas.

Kolejnym działaniem szkodnika jest zdekodowanie z własnego kodu serii domyślnych danych logowania i zapisanie ich w pliku o nazwie protocol:

'YWRtaW4gMTIzNAphZG1pbiAxMjM0NTYKYWRtaW4gYWRtaW4KYWRtaW4gYWRtaW4xMjMKYWRtaW4gcGFzc3dvcmQKY2VudG9zIDEyMzQ1NgpjZW50b3MgY2VudG9zCmRlZmF1bHQgMQpndWVzdCBndWVzdApwb3N0Z3JlcyBwb3N0Z3Jlcwpwb3N0Z3JlcyAxMjM0NTYKcGkgcGkKaGFkb29wIGhhZG9vcApoYWRvb3AgMTIzNDU2CnNvbmFyIHNvbmFyCnNvbmFyIHNvbmFyMTIzCmxpZ2h0aG91c2UgbGlnaHRob3VzZQpkb2xwaGluc2NoZWR1bGVyIGRvbHBoaW5zY2hlZHVsZXIKcGkgcmFzcGJlcnJ5CmRlYmlhbnVzZXIgMXFhelhTV0AKcm9vdCAxCnJvb3QgMTIzCnJvb3QgMTIzNDU2CnJvb3QgMTIzNDU2Nzg5MApyb290IEFhMTIzNDU2CnJvb3QgYWRtaW4Kcm9vdCBwYXNzd29yZApyb290IHBAc3N3MHJkCnJvb3QgUEBzc3cwcmQKcm9vdCByb290CnRlc3QgdGVzdAp1Ym50IHVibnQKdXNlciB1c2VyCnJvb3QgQWRtaW5AMTIzCnRlc3QgMTIzNDU2CnRlc3QgdGVzdApnaXQgZ2l0CmdpdCAxMjM0NTYKZ3Vlc3QgZ3Vlc3QKdWJ1bnR1IHVidW50dQp1YnVudHUgMTIzNDU2Cmd1ZXN0IDEyMzQ1Ngpyb290IHRvb3IK'

Po zdekodowaniu dane logowania mają następującą postać:

admin 1234
admin 123456
admin admin
admin admin123
admin password
centos 123456
centos centos
default 1
guest guest
postgres postgres
postgres 123456
pi pi
hadoop hadoop
hadoop 123456
sonar sonar
sonar sonar123
lighthouse lighthouse
dolphinscheduler dolphinscheduler
pi raspberry
debianuser 1qazXSW@
root 1
root 123
root 123456
root 1234567890
root Aa123456
root admin
root password
root p@ssw0rd
root P@ssw0rd
root root
test test
ubnt ubnt
user user
root Admin@123
test 123456
test test
git git
git 123456
guest guest
ubuntu ubuntu
ubuntu 123456
guest 123456
root toor

Następnie plik Update zapewnia sobie przetrwanie ponownego uruchomienia komputera poprzez dodanie pliku o nazwie .5p4rk3l5 do tabeli crontab.

W dalszej kolejności uruchamiany jest plik Chrome, który został pobrany w pierwszym etapie ataku. Badacze nie mają pewności w jaki sposób działa ten obiekt, jednak najprawdopodobniej generuje on listę adresów IP na podstawie losowych wartości zdefiniowanych w skrypcie i zapisuje ją w zaciemnionym pliku o nazwie bios.txt.

Dalsze działania szkodnika są niejasne: badacze zaobserwowali, że zainfekowana maszyna wysyła do serwera Discorda kontrolowanego przez atakujących żądania POST z następującymi atrybutami:

“title”: “”, “color”: 1337, “description”: “pi:raspberry:<targeted IP address>”

Analitycy podejrzewają, że zainfekowany komputer jest wykorzystywany do poszukiwana kolejnych ofiar – wysyła żądania pod adresu IP zapisane w pliku bios.txt, by określić, czy urządzenia korzystają z domyślnych danych logowania. W ten sposób atakujący mogą rozbudowywać bazę danych potencjalnych celów.

Co więcej, korzystanie z zainfekowanych maszyn do gromadzenia takich informacji pozwala cyberprzestępcom rozłożyć proces eksploracji na wiele urządzeń i adresów IP, co dodatkowo utrudnia namierzenie oryginalnego źródła ataku.

Cyberprzestępcy stojący za atakiem

Skrypt payload zawiera słowa w języku rumuńskim, co może wskazywać na pochodzenie cyberprzestępców. Warto także dodać, że DIICOT (nazwa nadana przez atakujących złośliwej kryptokoparce) jest akronimem rumuńskiej agencji badającej zorganizowaną przestępczość, cyberprzestępczość, przestępczość finansową oraz terroryzm. Co więcej, atakujący mówią o sobie ElPatrono1337, a sama liczba 1337 pojawia się w różnych kontekstach ataku: jako port wykorzystywany przez przestępców do pobierania danych z zainfekowanych maszyn, ale także wartość koloru przesyłaną jako parametr do uchwytów Discorda. Liczba 1337 odnosi się do systemu leetspeak obejmującego zmodyfikowane alfabety wykorzystujące wartości ASCII. Idąc dalej, leet to popularny wśród cyberprzestępców język programowania wykorzystywany do nawiązywania połączeń sieciowych. Biorąc pod uwagę te spostrzeżenia, badacze z firmy TEHTRIS zdecydowali się nadać omawianej kampanii cyberprzestępczej nazwę Color1337.

Jak TEHTRIS chroni przed tym zagrożeniem

Rozwiązanie TEHTRIS XDR Platform w pełni zabezpiecza przed omawianym zagrożeniem:

  • TEHTRIS NTA wykrywa skanowanie SSH, które jest wykorzystywane w ataku do uzyskania pierwotnego dostępu.
  • TEHTRIS EDR wykrywa skrypt powłoki oraz plik Update jako zaplanowane zadanie, a także plik aliases jako złośliwy obiekt.
  • TEHTRIS DNS Firewall blokuje połączenia z serwerami kontrolowanymi przez atakujących.
  • TEHTRIS CTI analizuje pliki uruchamiane na urządzeniu i ostrzega o podejrzanym zachowaniu.

Omawiana kampania ataków po raz kolejny pokazuje, że cyberprzestępcy chętnie wykorzystują domyślne dane logowania. Wszystkim administratorom systemów linuksowych zalecamy zadbanie o solidne hasła.

Wskaźniki włamania (IoC)

Infrastruktura:

185.225.74[.]231

arhivehaceru[.]com

45.139.105[.]222

139.99.123[.]196

https[:]//discord[.]com/api/webhooks/1036225255049531422/qyOrT3SxHaOC9yS2NQiPxlSMYmRFFIpU-rMKzmcDv9pQyP4uaZEiZXDXioUtf0DJLUB

https[:]//discord[.]com/api/webhooks/965651135102865479/PFdU4u8yZrn0XhzIKShcaxL3_IaBjsstYmFEXlThF2_1XCnwXSAjKos3ptwKYpPyGqvI

https[:]//discord[.]com/api/webhooks/1036206037373571082/9bs01KrT-TrcbSAPI_iadV1Bhn56A4X4fxzCYEw3zMq95H1mFvlKWb6-KYzvEoVfTnS

Pliki wykorzystane w ataku:

system-cleaner.pl

cleaner.pl

payload

bios.txt

diicot – SHA256 0314f688409e3caf1e6d0198bfff3a129e14cb0c623150ba3e29581fba6491d1

Update – SHA256 e582428a5be24a1eb9eb80566a57bd0cb0431110d3c07b5ce9edd5544a3ef1b4

Chrome – SHA256 14779e087a764063d260cafa5c2b93d7ed5e0d19783eeaea6abb12d17561949a

aliases – SHA256 cc0b01955db20101f93771f81a9fa6ab7c091cac8435529996020d4f3932a3e7

History – SHA256 e9bbe9aecfaea4c738d95d0329a5da9bd33c04a97779172c7df517e1a808489c

uhQCCSpB – SHA256 6d1fe6ab3cd04ca5d1ab790339ee2b6577553bc042af3b7587ece0c195267c9b

Źródło: tehtris.com/en/blog/linux-focus-on-a-cryptomining-attack-dubbed-color1337