Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Nazywam się HDRoot! Część 2

Tagi:

Jakiś czas temu, podczas śledzenia aktywności grupy Winnti, natknęliśmy się na podejrzaną próbkę 64-bitową. Stanowiła ona samodzielne narzędzie o nazwie HDD Rootkit, którego celem było umieszczenie bootkita w komputerze. Po zainstalowaniu, bootkit infekuje system operacyjny backdoorem na wczesnym etapie rozruchu. Zasady działania bootkita, który otrzymał nazwę HDRoot, zostały opisane w pierwszej części naszego artykułu. Podczas naszego dochodzenia wykryliśmy kilka backdoorów, które wykorzystywane były przez bootkita HDRoot do infekowania systemów operacyjnych. Backdoory te zostały opisane w tej części artykułu.

Backdoory

Ponieważ backdoor zainstalowany przy użyciu HDRoota może być losowy, nie jesteśmy w stanie określić każdego wykrytego szkodliwego oprogramowania, które jest uruchamiane przez bootkita HDRoot. Udało nam się jedynie wykryć dwa rodzaje szkodliwego oprogramowania, które zostały zidentyfikowane podczas śledzenia HDRoota. Pierwszy z nich został wyizolowany ręcznie z dysków twardych ofiar, na komputerach których został wykryty HDRoot i które skontaktowały się z nami w celu uzyskania pomocy w walce z infekcją. Kolejny został znaleziony w niezależnym dropperze, który zawierał zarówno HDRoota jak i zainstalowanego backdoora.       

Backdoor pierwszego typu

MD5

Rozmiar

Konsolidator

Data kompilacji

C0118C58B6CD012467B3E35F7D7006ED

113’152

10.00

2012-12-19 17:14:21

Właściwość

Wartość

FileVersion

6.1.7601.17514 (win7sp1_rtm.101119-1850)

FileDescription

ProfSvc

InternalName

ProfSvc

OriginalFilename

ProfSvc.dll

LegalCopyright

© Microsoft Corporation. All rights reserved.

ProductName

Microsoft® Windows® Operating System

CompanyName

Microsoft Corporation

 

Jest to rodzina szkodliwego oprogramowania znana jako Derusbi po stronie serwera, którą zaobserwowaliśmy w kilku incydentach związanych z ugrupowaniem Winnti. Zwykle jest to biblioteka DLL o wewnętrznej nazwie OfficeUt32.dll i wyeksportowanych funkcjach, takich jak:

DllRegisterServer
DllUnregisterServer
ServiceMain
SvchostPushServiceGlobals
WUServiceMain
__crt_debugger_hook

Lista funkcji może się nieznacznie różnić w zależności od wersji. Główna biblioteka DLL zawiera w swoim kodzie inne komponenty szkodliwego oprogramowania, zwykle w postaci przekształconej przy użyciu działania logicznego XOR:

hdroot_16_auto.jpg

Struktura utrzymywania dodatkowych modułów

Próbki Derusbi zainstalowane przy użyciu bootkita HDRoot zawierały moduł Powłoki zdalnej oraz sterownik sieciowy. 

Procedura instalacji jest implementowana w wyeksportowanej funkcji “DllRegisterServer“. Po wywołaniu, funkcja ta wykonuje następujące działania:

  • Kopiuje się do folderu “%System32%\wbem\“ z nazwą składającą się z “ntfs” oraz trzech losowych liter, jak również rozszerzeniem “.mof”, np. “ntfsqwe.mof“, a we właściwościach daty pliku ustawia rok na 2005.   
  • Umieszcza ciąg z własną ścieżką dostępu do wartości “ServiceDll” w rejestrze, który łączy się z usługą systemową “iphlpsvc” lub “wuauserv” w zależności od wersji systemu Windows i zapisuje oryginalną wartość “ServiceDll” w postaci zaszyfrowanej w parametrze “Security” tego samego klucza rejestru. Wykonuje szkodliwe oprogramowanie wraz z uruchomieniem systemu.   
  • Gdy zostanie uruchomiona usługa szkodliwego oprogramowania, uruchamia oryginalną usługę systemową, która została podmieniona, aktywując bibliotekę dołączaną dynamicznie związaną z usługą określoną w parametrze “Security” podczas instalacji szkodliwego oprogramowania.

Szkodliwe oprogramowanie przechowuje swoje dane konfiguracyjne w zaszyfrowanej postaci w wartości “Security” klucza rejestru HKLM\SOFTWARE\Microsoft\Rpc. Zawiera unikatowy identyfikator komputera oraz sygnaturę w celu dopasowywania przychodzących pakietów z serwera kontroli (C&C).

Szkodliwe oprogramowanie może połączyć się z serwerem kontroli bezpośrednio, jeśli został określony w bloku ustawień w jego ciele lub działać w trybie nasłuchiwania, jeśli nie określono żadnego serwera kontroli. Znalezione przez nas próbki związane z bootkitem HDRoot działały w trybie nasłuchiwania.  

Backdoor pierwszego typu: sterownik

MD5

Rozmiar

Konsolidator

Data kompilacji

C8DAF9821EBC4F1923D6DDB5477A8BBD

37’264

9.00

2012-12-19 17:08:53

Właściwość

Wartość

FileVersion

6.1.7601.17514 (win7sp1_rtm.101119-1850)

FileDescription

Partition Management Driver

InternalName

partmgr.sys

OriginalFilename

partmgr.sys

LegalCopyright

© Microsoft Corporation. All rights reserved.

ProductName

Microsoft® Windows® Operating System

CompanyName

Microsoft Corporation

 

(Sterownik został podpisany 19 grudnia 2012 r. o godz. 17:11:14 przy użyciu skradzionego certyfikatu południowokoreańskiej firmy z branży gier online XL Games. Certyfikat ten został odwołany 21 czerwca 2013 r. Jego numer seryjny to: 7b:d5:58:18:c5:97:1b:63:dc:45:cf:57:cb:eb:95:0b).

Główna biblioteka DLL szkodliwego oprogramowania odszyfrowuje, wrzuca i uruchamia rootkita jako plik “%System32%\Drivers\Lst_Update.sys”. Sterownik na samym początku procesu usuwa wszystkie wartości rejestru utworzone podczas swojego uruchomienia jak również rzeczywisty plik sterownika. Rootkit ukrywa szkodliwą aktywność sieciową przed popularnymi narzędziami do monitorowania sieci poprzez przechwytywanie procedury usługi IRP_MJ_DIRECTORY_CONTROL obiektów systemowych “\Device\Tcp” lub “\Driver\nsiproxy” . Ukrywa również plik “\windows\system32\wiarpc.dll” przed aplikacjami w trybie użytkownika poprzez przechwytywanie procedury usługi IRP_MJ_DIRECTORY_CONTROL sterownika systemu plików “\FileSystem\Ntfs”.    

Jeśli szkodliwe oprogramowanie działa w trybie nasłuchiwania, rootkit bierze również udział w procedurach komunikacji. Nadsłuchuje wszystkie przychodzące pakiety sieciowe i przeszukuje je pod kątem specjalnie utworzonej sygnatury. Jeśli zostanie znaleziona, przekierowuje te pakiety do nasłuchującego gniazda otwieranego przez główny moduł szkodliwego oprogramowania. Główny moduł tworzy gniazdo sieciowe na losowym porcie na wszystkich interfejsach sieciowych. Jeśli rootkit wyśle pakiet sieciowy, który odpowiada predefiniowanej sygnaturze, główny moduł szkodliwego oprogramowania przetworzy go. Taki pakiet sieciowy zawiera kod polecenia oraz ID modułu, który musi wykonać to polecenie. Znane wersje szkodliwego oprogramowania rozpoznają pięć modułów z różnymi poleceniami:     

ID modułu

Obsługiwane polecenia

0x80

Zarządzanie usługami: lista usług, tworzenie, uruchamianie, zatrzymywanie oraz usuwanie usług
Zarządzanie uruchomionymi procesami: zamykanie, uzyskiwanie nazwy pliku modułu oraz tokenów procesów
Zarządzanie rejestrem

0x81

Uruchamianie dowolnych plików lub poleceń powłoki na zainfekowanym systemie

0x82

Przekierowanie ruchu poprzez przekierowanie portów: zainfekowany komputer jest wykorzystywany jako proxy

0x84

Przeglądanie systemu plików, wysyłanie/pobieranie plików

0x240

Kontrola modułu głównego: usuwanie modułu głównego, zatrzymywanie modułu głównego, pobieranie i uruchamianie plik DLL ze zdalnego serwera (plik DLL jest zapisywany w folderze %TEMP% jako “tmp1.dat”), uruchamianie proxy

 

Backdoor pierwszego typu: zdalna biblioteka powłoki

MD5

Rozmiar

Konsolidator

Data kompilacji

1C30032DC5435070466B9DC96F466F95

13’360

10.00

2012-12-19 17:12:12

Właściwość

Wartość

ProductVersion

6.1.2600.1569

ProductName

Microsoft®Windows®Operating System

CompanyName

Microsoft Corporation

FileDescription

Microsoft update

FileVersion

6.1.2600.1569

 

Jak wspomniano wcześniej, oprócz sterownika sieciowego w wykrytych wersjach próbek Dersubi związanych z bootkitem HDRoot znajdował się tylko jeden dodatkowy moduł – Zdalna powłoka. Główny moduł szkodliwego oprogramowania deszyfruje, wrzuca i uruchamia go jako plik “%Systemroot%\Help\perfc009.dat”. Jest to biblioteka DLL o wewnętrznej nazwie Office.dll oraz jednej wyeksportowanej funkcji R32. Biblioteka jest uruchamiana poprzez wykonanie następującego wiersza poleceń: 

rundll32.exe %Systemroot%\Help\perfc009.dat R32 <losowy_numer>

gdzie <losowy_numer> jest wstępną wartością generowaną przez moduł główny.

Biblioteka zdalnej powłoki tworzy dwa nazwane potoki wykorzystywane do komunikacji z modułem głównym:

\pipe\usb<losowy_numer>i
\pipe\usb<losowy_numer>o

Wiersz polecenia od operatora przeznaczony do wykonania powinien przejść przez potok \pipe\usb<losowy_numer>o. Kiedy pojawi się to polecenie, tworzony jest nowy proces w celu wykonania go w folderze roboczym %SystemDrive%. Standardowe dane wejściowe procesu, który właśnie został utworzony, mają zostać uzyskane z potoku \pipe\usb<losowy_numer>o, podczas gdy dane wyjściowe i STDERR są przekierowywane do równoległego potoku  \pipe\usb<losowy_numer>i. To oznacza, że dane wejściowe do programu wykonującego pochodzą od operatora, a dane wyjściowe programu wracają do niego, tworząc skuteczny kanał backdoora.     

Backdoor drugiego typu: dropper

MD5

Rozmiar

Konsolidator

Data kompilacji

755351395AA920BC212DBF1D990809AB

266’240

6.00

2013-11-18 19:23:12

 

Zidentyfikowaliśmy próbkę, która okazała się instalatorem backdoora jednym kliknięciem przy użyciu HDRoota. Jest to plik wykonywalny Win32 skompilowany 18 listopada 2013 r. zgodnie z jego sygnaturą danych w nagłówku. Plik wykonywalny zawiera zasoby “102” oraz “103” niestandardowego typu “MHM”. Są to plik wykonywalny instalatora HDRoota oraz zainstalowany backdoor.    

Rolę zainstalowanego backdoora pełni plik wykonywalny utrzymywany jako zasób “102” i wrzucany jako plik %windir%\bootmgr.exe. (Wybiegając nieco naprzód, należy zaznaczyć, że pod względem formalnym nie jest to backdoor, ale downloader). Narzędzie “HDD Rootkit”, które stanowi zasób “103”, jest wrzucane jako %windir%\hall32.exe. Następnie, dropper uruchamia następujący wiersz poleceń:   

%windir%\hall32.exe inst %windir%\bootmgr.exe c:

który instruuje instalatora HDRoota o nazwie hall32.exe, aby zainstalował bootkita HDRoot na dysku twardym, na którym zlokalizowany jest dysk C:, aby następnie downloader bootmgr.exe został uruchomiony wraz ze startem systemu.   

W ciele droppera zostały wyszczególnione inne pliki, które sprawdza w systemie plików lub które szkodliwe oprogramowanie wykorzystuje w procedurach pośrednich: 

%windir%\system32\midimapbits.dll
%windir%\system32\mpeg4c32.dll
%windir%\bootmgr.dat

Downloader

MD5

Rozmiar

Konsolidator

Data kompilacji

11E461ED6250B50AFB70FBEE93320131

69’632

6.00

2013-11-18 19:22:30

Podobnie jak dropper, downloader bootmgr.exe również został skompilowany 18 listopada 2013 r. Zgodnie z zawartą w jego ciele listą, program ten pobiera pliki z adresów URL i uruchamia je:   

http://www.gbutterfly.com/bbs/data/boot1.gif
http://www.btdot.com/bbs/data/boot1.gif
http://boot.ncook.net/bbs/data/boot1.gif
http://www.funzone.co.kr/bbs/data/boot1.gif
http://www.srsr.co.kr/bbs2/data/boot1.gif

Jeśli coś jest dostępne za pośrednictwem tych adresów URL, zostaje wrzucone na dysk z jedną z następujących nazw plików oraz uruchomione:

%windir%\v3update000.exe
%windir%\v3update001.exe
%windir%\v3update002.exe

Downloader sprawdza rozmiar wrzuconego pliku i uruchamia go tylko wtedy, gdy jest większy niż 20896 bajtów.

Okazało się, że jest to podwójny downloader: w swoim ciele utrzymuje inną próbkę z funkcjonalnością pobierania. Szkodnik wrzuca ją pod nazwą pliku %windir%\svchost.exe, a następnie uruchamia z parametrem “install”. Z jakiegoś powodu natychmiast po uruchomieniu drugiego downloadera szkodliwe oprogramowanie zatrzymuje działanie usługi Internet Connection Sharing przy użyciu wiersza poleceń: 

cmd.exe /c net stop sharedaccess

W ciele downloadera wyszczególnione są inne pliki, które sprawdza w systemie plików:

%windir%\system32\midimapbits.dll
%windir%\system32\mpeg4c32.dll
%windir%\winurl.dat

Drugi downloader

MD5

Rozmiar

Konsolidator

Data kompilacji

ACC4D57A98256DFAA5E2B7792948AAAE

22’016

6.00

2013-11-18 19:06:32

Szkodnik ten potrafi rozpoznać dwa parametry: “install” i “remove”. W gałęzi instalacji tworzy automatycznie uruchamianą usługę “Winlogon” z opisem “Provides automatic configuration for the 802.11 adapters” oraz dostosowaną do uruchomienia własnego pliku wykonywalnego. Parametr “remove” oczywiście prowadzi do usunięcia tej usługi. 

Podczas działania usługa odszyfrowuje zawartą w swoim ciele listę adresów URL i próbuje pobrać zawartość według adresów stworzonych poprzez dołączenie “default.gif” do adresów URL z listy. Poniżej prezentujemy pełną odszyfrowaną listę adresów URL:     

http://www.netmarble.net/
http://www.nexon.com/
http://www.tistory.com/start/
http://m.ahnlab.com/
http://www.joinsmsn.com/
http://fcst.co.kr/board/data/media/
http://www.hangame.com/
http://www.msn.com/
http://adw.naver.com/
http://www1.designrg.com/
http://www.topani.com/
http://www.nate.com/
http://www.v3lite.com/
http://www1.webschool.or.kr/
http://snsdate.gndot.com/
http://www.srsr.co.kr/bbs2/data/
http://funzone.co.kr/bbs/data/
http://www.moreuc.com/
http://www1.ncook.net/

Jak można zauważyć, lista ta zawiera strony legalnych i zaufanych podmiotów, które prawdopodobnie nie zawierają komponentów szkodliwego oprogramowania. Ponieważ wszystkie strony są generalnie nieszkodliwe, niektóre z nich zostały prawdopodobnie zhakowane, w przeciwnym razie szkodliwe oprogramowanie nie działałoby. 

Zawartość jest pobierana do pliku %windir%\image.jpg. Jest to jednak tylko etap pośredni. Szkodliwe oprogramowanie powinno analizować plik tekstowy. Pierwszy wiersz tego pliku powinien zawierać tylko liczby powyżej 139; w przeciwnym razie szkodliwe oprogramowanie pominie przetwarzanie zawartości. Drugi wiersz dotyczy adresu URL, z jakiego szkodliwe oprogramowanie powinno pobrać plik wykonywalny, podczas gdy trzeci wiersz określa nazwę pobieranego pliku wykonywalnego, który jest wrzucany do systemu plików. Po pobraniu szkodliwe oprogramowanie przywraca 2 bajty “MZ” na początku wrzuconego pliku i uruchamia go.       

Podczas pobierania szkodliwe oprogramowanie próbuje usunąć określony program antywirusowy. Po znalezieniu w rejestrze wiersza poleceń uninstall szkodliwe oprogramowanie uruchamia go, a przez manipulowanie przyciskami interfejsu programu próbuje usunąć trzy produkty antywirusowe: V3 Lite i V3 365 Clinic firmy AhnLab oraz ALYac ESTsoft. Chociaż proces istnieje jedynie dla tych produktów, szkodnik zawiera również nieaktywne funkcje wyłączania Naver Vaccine i McAfee Security Center. Pochodzenie tych producentów wyraźnie sugeruje, że cele szkodliwego oprogramowania miały znajdować się w Korei Południowej.   

Ponieważ opisywane szkodliwe oprogramowanie jest już dość stare, nie udało nam się pobrać żadnego odpowiedniego materiału z adresów URL określonych zarówno w pierwszym jak i drugim downloaderze. Serwery nie zwracały w odpowiedzi nic lub zwracały strony wskazujące na brak zawartości.    

Wcześniejsze wykrycie

W rzeczywistości nie byliśmy pierwszą firmą antywirusową, która natknęła się bezpośrednio na HDRoota. Pod koniec 2013 r. AhnLab z Korei Południowej opublikował obszerny raport dotyczący ugrupowania ETSO Hacking na podstawie reakcji na incydenty, nad którymi pracował ich zespół odpowiedzialny za analizę kryminalistyczną. Szkodliwe oprogramowanie ETSO, zgodnie z klasyfikacją AhnLab, w dużej mierze odpowiada wykrywanemu przez nas szkodliwemu oprogramowaniu Winnti. Podczas analizy inżynierowie z AhnLab wykryli zainfekowane rekordy MBR, które, zgodnie z ich opisem (strony 14-15, rozdział “2.5 Maintain Network Presence”), wyglądają jak wynik działającego instalatora bootkita HDRRoot:        

hdroot_17_auto.png

Schemat działania HDRoota AhnLab

Wiemy również, że z narzędziem HDD Rootkit zaznajomione były również osoby niekoniecznie związane z firmami antywirusowymi. Jednak jeśli chodzi o wykrywanie, mimo że to zagrożenie jest dość stare, produkty antywirusowe nie radziły sobie tak dobrze z wykrywaniem go. 

Statystyki

Zgodnie z przewidywaniami, według danych z systemu KSN, infekcje HDD Rootkitem przeważają w regionie będącym tradycyjnym obszarem głównego zainteresowania grupy Winnti – w Azji Południowo Wschodniej, zwłaszcza w Korei Południowej. Jednak inne części świata również zostały zainfekowane, a zasięg i wpływ tego zagrożenia może być znaczny.      

hdroot_18n_auto.png

Ataki związane ze szkodliwym oprogramowaniem HDRoot

Warto zaznaczyć, że liczby te nie obrazują charakteru celów. To oznacza, że patrząc jedynie na dane liczbowe, nie wiemy, jakiego rodzaju firmy zostały zaatakowane. Dlatego mapa może różnić się od rzeczywistości pod względem prawdopodobnych szkód dla danego kraju.  

Uczestniczyliśmy w łagodzeniu infekcji HDRoota w dwóch dużych firmach w Rosji i Wielkiej Brytanii, gdzie szkodnik ten został wykryty przy użyciu naszych produktów na wielu serwerach. W obu przypadkach, szkody spowodowane infekcją mogły być bardzo znaczne, zwłaszcza w Rosji, gdzie ofiarą mogło paść wielu klientów firmy. Jednak z mapy wynika, że w Rosji miał miejsce tylko jeden atak, podczas gdy w Wielkiej Brytanii zaatakowano 23 systemy.

Chociaż nie znaleźliśmy wielu rodzin szkodliwego oprogramowania zainstalowanego przy użyciu HDRoota, a znaną aktywność związaną z HDRootem przypisujemy ugrupowaniu Winnti, nadal zakładamy, że ten bootkit może być wykorzystywany w wielu atakach APT. Z poprzednich incydentów wiemy o pewnych związkach pomiędzy aktywnością grupy Winnti a innym ugrupowaniem APT. Zważywszy na to, że instalator HDRoot jest samodzielnym narzędziem, bootkit ten może wpaść w ręce innych grup cyberprzestępczych.

Szkodnika HDRoot wykrywamy przy pomocy następujących werdyktów:

Hacktool.Win32.HDRoot
Hacktool.Win64.HDRoot
Rootkit.Win32.HDRoot
Rootkit.Win64.HDRoot
Trojan.Boot.HDRoot

Backdoory i downloadery związane z bootkitem HDRoot:

Backdoor.Win64.Winnti
Trojan.Win32.Agentb.aemr
Trojan.Win32.Genome.amvgd

Oznaki infekcji

Hashe próbek

2c85404fe7d1891fd41fcee4c92ad305
4dc2fc6ad7d9ed9fcf13d914660764cd
8062cbccb2895fb9215b3423cdefa396
c7fee0e094ee43f22882fb141c089cea
d0cb0eb5588eb3b14c9b9a3fa7551c28
a28fe3387ea5352b8c26de6b56ec88f0
2b081914293f415e6c8bc9c2172f7e2a
6ac4db5dcb874da2f61550dc950d08ff
6ae7a087ef4185296c377b4eadf956a4
e171d9e3fcb2eeccdc841cca9ef53fb8
ae7f93325ca8b1965502b18059f6e46a
e07b5de475bbd11aab0719f9b5ba5654
d200f9a9d2b7a44d20c31edb4384e62f
cc7af071098d3c00fdd725457ab00b65
c0118c58b6cd012467b3e35f7d7006ed
c8daf9821ebc4f1923d6ddb5477a8bbd
755351395aa920bc212dbf1d990809ab
11e461ed6250b50afb70fbee93320131
acc4d57a98256dfaa5e2b7792948aaae
1c30032dc5435070466b9dc96f466f95
7d1309ce050f32581b60841f82fc3399
b10908408b153ce9fb34c2f0164b6a85
eb3fbfc79a37441590d9509b085aaaca
3ad35274cf09a24c4ec44d547f1673e7
f6004cfaa6dc53fd5bf32f7069f60e7a
c5d59acb616dc8bac47b0ebd0244f686
e19793ff58c04c2d439707ac65703410
4dc2fc6ad7d9ed9fcf13d914660764cd
8062cbccb2895fb9215b3423cdefa396
c7fee0e094ee43f22882fb141c089cea
d0cb0eb5588eb3b14c9b9a3fa7551c28

Pliki

%windir%\twain.dll
%windir%\system\olesvr.dll
%windir%\msvidc32.dll
%windir%\help\access.hlp
%windir%\syswow64\C_932.NLS
%windir%\syswow64\C_20949.NLS
%windir%\syswow64\irclass.dll
%windir%\syswow64\msvidc32.dll
%windir%\syswow64\kmddsp.tsp
%windir%\temp\svchost.exe
%System32%\wbem\ntfs<3 random chars>.mof
%System32%\Drivers\Lst_Update.sys
%Systemroot%\Help\perfc009.dat
%windir%\bootmgr.exe
%windir%\hall32.exe
%windir%\system32\midimapbits.dll
%windir%\system32\mpeg4c32.dll
%windir%\bootmgr.dat
%windir%\v3update000.exe
%windir%\v3update001.exe
%windir%\v3update002.exe
%windir%\svchost.exe
%windir%\winurl.dat
%windir%\image.jpg