The Korgo.Q (aka Padobot.H) variant was found on June 21st, 2004. It is very similar to the previous Korgo variants, discovered on June 17th. Korgo.Q worm spreads throughout the Internet using a vulnerability in Microsoft Windows LSASS. A description of the vulnerability can be found in Microsoft Security Bulletin MS04-011: https://www.microsoft.com/technet/security/bulletin/MS04-011.mspx
Once detected, the F-Secure security product will automatically disinfect the suspect file by either deleting it or renaming it.
For general instructions on disinfecting a local network infection, please see Eliminating A Local Network Outbreak.
The worm's file is a PE executable 9343 bytes long packed with PE-Patch and UPX file compressor. The unpacked file's size is about 19.5 kilobytes in size.
When the worm's file is run, it first deletes the FTPUPD.EXE file. Then the worm creates a mutex with the "uterm15" name. This is done to avoid loading multiple copies of the worm into memory.
Next, the worm deletes Registry key values and terminates processes with any of the following names:
- Windows Security Manager
- Disk Defragmenter
- System Restore Service
- Bot Loader
- Windows Update Service
- avserve2.exeUpdate Service
- MS Config v13
The key values are deleted from the following Registry key:
After that the worm installs itself to system and creates a startup key for its file in the Registry. The worm's file is copied to Windows System folder with a randomly generated name. The following Registry key is then created:
- [HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] "Windows Update" = "%WinSysDir%\<random>.exe"
where WinSysDir represents Windows System directory name and <random> represents random characters. The name of the worm's file can be for example 'mcmxjka.exe'.
Additionally the worm creates the following Registry key value:
- [HKLM\Software\Microsoft\Wireless] "ID" = "<random_letters>"
where '<random_letters>' is a string of random characters, for example 'kvynscajbrooxvac'.
The worm tries to start its spreading routine as a remote thread of Windows Explorer. If this fails, the worm starts the spreading thread directly.
The worm periodically connects to several websites (sometimes, depending on an internal flag, with a specially constructed URL) and reads a file from there. If the file's data does not contain 'zer0' string, the worm waits and re-connects again later. Connection intervals are random. If the file contains 'zer0' string, the worm downloads an executable file from that website to Windows System folder and runs it. It should be noted that the worm performs a secure authentication before the file is downloaded.
Here's the list of websites that the worm tries to connect to:
Additionally the worm can listen on a random TCP port.
The worm spreads to remote computers using LSASS vulnerability. It contacts remote computers on TCP port 445, exploits the vulnerability and copies its file to a remote system. As a result a remote system is restarted and after restart the worm becomes active and continues its spreading cycle.