středa 25. dubna 2012

Tajemství Duqu: část pátá


Řidič

Ovladač je první složkou Duqu být vložen do systému. Jak jsme zjistili, je řidič a ostatní složky malware instalaci s kapátkem, že využívá 0-day zranitelnost (CVE-2011-3402). Řidič je zapsána v HKLM \ System \ CurrentControlSet \ Services \ cestě registru. Přesný název klíče registru se liší v různých verzích ovladačů Duqu.
Jakmile je načten ovladač, to dešifruje malý blok, který obsahuje jeho klíč registru a název hodnoty registru pro čtení tohoto klíče. To také obsahuje jméno řidiče objekt vytvořit.
Všechny verze ovladače je k dispozici v současné době mají stejné hodnoty registru jméno, "Filtr".
Řidič pak registruje DriverReinitializationRoutine, že fronty WorkerRoutine, kde se provádí vlastní ovladač inicializace. V WorkerRoutine řidič čte "Filtr" hodnotu z registru a dešifruje ji pevně naprogramované šifrovací klíč. Tam jsou dvě známé verze dešifrovací rutiny a dva odpovídající dešifrovací klíče. Ovladač také lokalizuje Ntoskrnl.exe nebo Ntkrnlpa.exe modul a dostane adres API funkcí pro další použití.
Dešifrovat "FILTER" hodnota z registru obsahuje seznam záznamů, které obsahují název procesu ("services.exe"), cesta k souboru DLL odpovídající PNF, který bude šlo v tomto procesu a dešifrovací klíč odst. 0xAE240682), že se používá k dešifrování souborů DLL PNF.
Po inicializaci řidič zaregistruje LoadImageNotifyRoutine, které budou následně volal systém Windows po každém modulu je načten. Běžné kontroly Pokud se název obrazu odpovídá jeden z nich je uvedeno v "Filtr" hodnotu, a pokud ano, spustí injekce: to dešifruje a kopíruje PNF DLL soubor do oblasti paměti přidělí na tomto procesu. To také staví překopírování stub EXE soubor do tohoto procesu, který se pak použije jako zavaděč pro DLL PNF.
Jakmile "KERNEL32.DLL" je vložen ve stejném procesu, to lokalizuje adresy API funkcí, které požaduje nakladače EXE a upravuje původní vstupní bod hlavního procesu modulu tak, že to projde spuštění ke kódu EXE loader.
EXE loader Modul provádí prvotní inicializaci modulu DLL PNF a poté provede export, jak je uvedeno v konfiguraci ("filtr"). Poté se obnoví kód původního vstupního bodu a vrátí do původního provedení procesního modulu. Nakladač také spolupracuje s modulem ovladače pomocí vlastního IOCTL kód pro změnu paměti ochranu původního kódu vstupního bodu.

PNF DLL soubor

Tento modul je uložen na disk jako šifrovaný blok dat. Jakmile je dešifrován, že se ukáže, že je plný DLL UPX. Známé verze DLL moduly PNF exportovat 8 nebo 6 různých funkcí pořadovými čísly.
Export probíhá 2 vývoz 6 v samostatném procesu.
Export probíhá 4 5 vývozu v samostatném procesu.
Export 5 spustí vlákno v "Services.exe" procesu, který nahraje na 302 zdroj (viz níže) a je-li poskytnuty správné informace ze strany volaný, nainstaluje kompletní novou sadu komponent Duqu.
Export 6 zastaví řidiče a kompletně odinstaluje všechny složky Duqu. Export 8 a 1 inicializaci DLL PNF modul a začít hlavní témata.
Zdá se, že pořadové číslo 1 je určena k exportu primární funkce knihovny DLL. Za prvé, načte konfigurační informace z jiného souboru PNF a Config PNF souboru. Pokud soubor neexistuje, je vytvořen ze šifrované těžko kódované kopie, která je uložena v souboru DLL PNF.
Název konfiguračního souboru je odlišná pro každou verzi Duqu. PNF Config obsahuje název a cestu k ovladači složky, do DLL PNF a PNF Config sám.
Při vytvoření Config PNF, je datum vytvoření zapsány do souboru. Soubor obsahuje také hodnotu TTL ("čas žít") Cena: samostatné vlákno začal DLL monitory PNF, pokud TTL dní uplynulo od data vytvoření, a pak spustí odinstalaci rutinu.
Některé verze DLL PNF také spustit server RPC podobný tomu, který byl nalezený v Stuxnet.
DLL PNF také API pro manipulaci s konfigurační soubor z externích modulů s využitím celosvětově dostupných akcí.
V závislosti na vlajkách v konfiguračním PNF, DLL PNF kód vypadá pro specifické procesy: seznam názvy procesů v konfiguračním PNF a "explorer.exe", "svchost.exe", a pak se vkládá kód v nich. Kód, který se vstřikuje je uložen v binárním zdrojů 302 nalezený v DLL PNF.

302 zdrojů

V závislosti na vlajce v konfiguračním souboru PNF, je to buď DLL nakladač modul nebo blok dat (ekvivalent rozbalí ". Zdata", viz níže). Obě konfigurace byly nalezeny v různých verzích Duqu. DLL PNF kontroluje příznak v konfiguračním PNF a určuje, zda přenést výkon na DLL loader nebo najít užitečného zatížení DLL a volat přímo.
DLL nakladač modul je podobný DLL PNF. Hlavním cílem nakladače je jeho dekompresi ". Zdata" část a předat výkon na hlavní užitečné zatížení, které je obsažené v dekomprimovaných dat.
. Zdata blok obsahuje hlavičku, která začíná s kouzelným číslem 0x48747193. Obsahuje posuny a velikostí DLL nakladače s nákladovém konfigurace bloku a užitečného zatížení DLL.

Konfigurační blok

Konfigurační blok obsahuje jméno dočasného souboru použít% TEMP% \ ~ DR0001.tmp, další binární data ovládající chování užitečného zatížení a informace potřebné pro připojení k C & C serverů. Existují dva seznamy C & C serverů, jeden může obsahovat názvy domén, IP adresy nebo jména sítě akcií, a druhý obsahuje IP adresy v binárním formátu a slouží k připojení systému Windows HTTP (WinHTTP) služby. Přestože konfigurace bloků Našli jsme zatím jsou podobné a jsou připraveny se připojit k jeho C & C pomocí protokolu HTTP a HTTPS, užitečné zatížení DLL je možné se připojit k síti sdílet a dokonce se stát serveru.

Užitečná

Jsme stále analyzuje náklad. Obsahuje 256 C + + kód s rozsáhlým využitím STL a vlastních složitých hierarchie tříd, pravděpodobně vlastní rámec.
Užitečné zatížení je možné se připojit k serveru C & C buď pomocí WinHTTP knihovnu nebo připojení k síti sdílet koncový bod IPC dolarů. Je možné se připojit pomocí proxy serveru konfigurace aplikace Internet Explorer. To také obsahuje kód pro působí jako HTTP server a zpracování stejné požadavky jako sloužil v C & C. Užitečné zatížení je schopen načíst externí DLL modulu poskytnutého C & C a komunikovat s ním pomocí předem definované rozhraní API. Nejvýraznější modul dosud objevených je infostealer modul. K dispozici jsou také moduly pro aktualizaci hodnoty TTL v konfiguraci DLL PNF, pro čtení sítě a disku a konfiguraci z infikovaného počítače.
To také může tvořit PNF DLL s konfiguračním bloku a užitečného zatížení DLL připraveného k distribuci na jiné stroje.

Žádné komentáře:

Okomentovat