E-mail: anwenqq2690502116@gmail.com
Mając na celu Internet Rzeczy, nowy wariant "Gaffyta" Pojawia się trojan
Ostatnio, Laboratorium bezpieczeństwa Huorong odkryło incydent związany z włamaniem wirusa, który po zbadaniu i analizie potwierdzono, że jest to nowy wariant wirusa trojana Gafgyt.
Gafgyt to program botnetowy IoT oparty na protokole IRC, który infekuje głównie systemy Linux Urządzenia IoT do przeprowadzania rozproszonych ataków typu „odmowa usługi”. (DDoS). Jest to największa poza rodziną Mirai aktywna rodzina botnetów IoT.
Po wycieku kodu źródłowego i przesłaniu go do GitHub w 2015, różne warianty i exploity pojawiały się jeden po drugim, stwarzając większe zagrożenie dla bezpieczeństwa użytkowników. Obecnie, Produkty zabezpieczające Huorong mogą przechwytywać i zabijać wyżej wymienione wirusy. Użytkownicy korporacyjni proszeni są o aktualizację bazy danych wirusów na czas w celu obrony.
1. Analiza próbki
Wirus najpierw zmienia nazwę swojego procesu na "/usr/sbin/dropbear" Lub "sshd" ukryć się:
zmiana nazwy procesu
Pomiędzy nimi, odnaleziono zaszyfrowany ciąg, a algorytmem deszyfrowania jest bajt XOR 0xDEDEFFBA. Kiedy jest używany, tylko te używane są odszyfrowywane indywidualnie, lecz tylko 4 faktycznie się odwołują:
Zaszyfrowany ciąg znaków i algorytm deszyfrowania
Pierwsze odniesienie ma na celu jedynie wyświetlenie odpowiedniego ciągu na ekranie, a dwa środkowe odniesienia to operacje na procesie nadzorującym, mające na celu uniknięcie utraty kontroli w wyniku ponownego uruchomienia urządzenia:
odszyfruj i zacytuj
Pozostałe operacje wykonywane są w pętli, łącznie z inicjowaniem połączenia C2 (94.156.161.21:671), wysyłanie typu urządzenia platformy, odebranie polecenia powrotu i wykonanie odpowiedniej operacji modułu. I w porównaniu z kodem źródłowym ujawnionym przez Gafgy, format i przetwarzanie polecenia nie uległy większym zmianom, a format polecenia pozostaje niezmieniony "!*Komenda [Parametr]"
kod operacji pętli
W funkcji ProcessCmd, Łącznie 14 wykonywane są polecenia i uruchamiane są odpowiednie ataki DDoS, w tym: "HTTP", "Rozszerzenie CUDP", "UDP", "STD", "JSC", "TCP", "SYN" , "POTWIERDŹ", "CXMAS", "BOŻE NARODZENIE", "CVSE", "WSZYSTKO", "CNC", "czarnuch"
zrzut ekranu polecenia - Bezpieczeństwo Internetu Rzeczy
Pomiędzy nimi, CUDP, UDP, JSC, i moduły TCP mogą wysyłać losowe ciągi znaków do określonego adresu IP i portu, i może rekonstruować pakiety TCP i UDP za pomocą samodzielnie zbudowanych nagłówków IP, aby ukryć źródłowy adres IP.
struktura wiadomości
Przypuszcza się, że przedrostek C jest skrótem słowa zwyczaj. Biorąc za przykłady CUDP i UDP, w oryginalnej wersji Gafgyt, parametry w wydanym poleceniu obejmują: ip, Port, czas, sfałszowane, rozmiar pakietu, pollinterval i inne wartości pól oraz bity flag Do konstruowania pakietów UDP. W tej próbce, Jednakże, zaobserwowane wyniki wskazują, że jest to zastosowanie tych parametrów przy różnym stopniu ograniczenia, co może zwiększyć elastyczność określonych typów ataków DDOS.
Porównanie CUDP i UDP
Funkcje innych modułów obejmują dodawanie dużej liczby ciągów User-Agent, które służą do uruchamiania poleceń HTTP w przypadku ataków CC:
Atak CC
Uwzględnione w przypadku ataków na serwery Source Engine firmy Valve: ("Silnik źródłowy" zapytania są częścią codziennej komunikacji między klientami i serwery gier przy użyciu protokołu oprogramowania Valve)
Ataki na branżę gier
W tym polecenia CNC, które mogą przełączać adres IP połączenia:
przełącz IP połączenia
Obejmuje ataki SYN i ACK:
Ataki SYN i ACK
W tym ataki powodziowe UDP STD:
Atak STD
Łącznie z atakiem świątecznym: (to jest, Atak na choinkę, ustawiając wszystkie bity flagi protokołu TCP na 1, zużywając w ten sposób więcej zasobów przetwarzania odpowiedzi systemu docelowego)
Świąteczny atak
Moduł NIGGA jest odpowiednikiem komendy KILLATTK w wersji oryginalnej, który powstrzymuje ataki DoSS, zabijając wszystkie procesy potomne z wyjątkiem procesu głównego
Moduł NIGGA
Analiza porównawcza
Funkcja ProcessCmd przechowująca główną logikę w kodzie źródłowym zawiera PING, GETLOKALIP, SKANER, E-MAIL, GRATY, UDP, TCP, TRZYMAĆ, KILLATTK, i moduły LOLNOGTFO. W wariancie przechwyconego tym razem exploita współistnieją jedynie uproszczone wersje modułów UDP i TCP. .
Oraz w operacji uzyskiwania lokalnego adresu IP, wersja oryginalna uzyskuje lokalny adres IP poprzez /proc/net/route i zwraca go poprzez moduł GETLOCALIP. W tym wariancie obserwuje się tę samą operację get, ale nie ma modułu GETLOCALIP i nie obserwuje się żadnych odniesień.
Uzyskaj lokalny adres IP
Warto zauważyć, że nie ma oryginalnej wersji modułu SCANNER używanego do blastowania SSH (Port 22) w tego typu próbce, i nie ma innych wariantów, które osadzają wiele "aplikacje/urządzenie" luki w zabezpieczeniach rozprzestrzeniające się poprzez Payload. Można zauważyć, że atakujący dzieli moduł propagacyjny na niezależne programy, i po pomyślnym zalogowaniu się do hosta ofiary, pobierze próbkę komunikacji do następnego etapu, wykonując kod powłoki, to jest, próbkę do analizy.
Wykonaj przykładowy kod powłoki
Na przykładzie próbek uzyskanych z tego samego źródła, osoba atakująca usunęła informacje debugowania z większości próbek, z wyjątkiem kilku, Jak na przykład: x86.