A standalone malicious program which uses computer or network resources to make complete copies of itself. May include code or other malware to damage both the system and the network.
Note: %VolumeSerialNumber% is volume serial number that the operating system assigns when a hard disk is formatted.
Stealth
For its stealth routine, it injects malicious code into the one of the following normal process:
svchost.exe
%program%
Note: %program% is usually "C:\Program Files\Internet Explorer\IEXPLORE.EXE -nohome" which was taken under the registry key "HKEY_CLASSES_ROOT\http\shell\open\command, (Default)".
It also removes the hooked addresses corresponding to various NT Functions implemented in Ntoskrnl.exe, then restores them to their original values.
The malware will attempt to make the changes by exploiting the GDI Local Elevation of Privilege Vulnerability (CVE-2006-5758), which in unpatched machines allows a remote attacker to gain direct access to the kernel. If this method fails, it drops and executes a special driver that restores the pointers:
NtProtectVirtualMemory
NtOpenThread
NtTerminateThread
NtCreatePort
NtConnectPort
NtCreateKey
NtAdjustPrivilegesToken
NtCreateFile
NtWriteVirtualMemory
NtOpenProcess
NtCreateProcess
NtCreateProcessEx
NtCreateSection
NtCreateThread
NtDeleteKey
NtDeleteValueKey
NtDuplicateObject
NtEnumerateKey
NtEnumerateValueKey
NtLoadDriver
NtLoadKey
NtLoadKey2
NtNotifyChangeKey
NtOpenFile
NtOpenKey
NtOpenSection
NtQueryKey
NtQueryMultipleValueKey
NtQueryValueKey
NtReplaceKey
NtRestoreKey
NtResumeThread
NtSaveKey
NtSetContextThread
NtSetInformationFile
NtSetInformationKey
NtSetSystemInformation
NtSetValueKey
NtSuspendThread
NtSystemDebugControl
NtTerminateProcess
The malware creates and executes a kernel service driver as either of the following:
%systemdir%\Drivers\%servicename%.sys
%service_path_and_filename%
Both these files are detected as Rootkit:W32/Agent.UG.
It will query all services under the following registry entries, to obtain the %service_path_and_filename% and %servicename% of services that have:
Service Type = SERVICE_KERNEL_DRIVER and Start= SERVICE_DEMAND_START: