Win32/Sality
is a family of polymorphic file infectors that target Windows executable files with the extensions .SCR or .EXE. They may execute a damaging payload that deletes files with certain extensions and terminates security-related processes and services.
Installation
Win32/Sality
infects files in the affected computer. Most variants use a DLL that is dropped once in each computer. The DLL file is written to disk in two forms, for example:
-
<system folder>\wmdrtc32.dll
-
<system folder>\wmdrtc32.dl_
Note: <system folder> refers to a variable location that is determined by the malware by querying the Operating System. The default installation location for the System folder for Windows 2000 and NT is C:\Winnt\System32; and for XP, Vista, and 7 is C:\Windows\System32.
The DLL file itself contains the bulk of the virus code. The file with the extension ".dl_" is its compressed copy.
Recent variants of Sality, such as Virus:Win32/Sality.AM, do not drop the DLL, but instead load it entirely in memory without writing it to disk. This variant, along with others, also drops a driver with a random file name in the folder "<system folder>\drivers". The driver is detected as Trojan:WinNT/Sality (see the Payload - Drops other components) section below.
Sality may arrive in the computer by being dropped by other malware. For example, a Sality variant detected as Virus:Win32/Sality.AU is dropped by Worm:Win32/Sality.AU.
Spreads via...
File infection
Win32/Sality
usually targets all files in drive C: that have .EXE or .SCR file extensions, beginning with the root folder. Infected files increase in size by a varying amount.
The virus also targets applications that run at each Windows start and frequently used applications, referenced by the following registry keys:
-
HKCU\Software\Microsoft\Windows\ShellNoRoam\MUICache
-
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
-
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Win32/Sality
avoids infecting particular files, in order to remain hidden in the computer:
- Files protected by System File Checker (SFC)
- Files under the %SystemRoot% folder
- Executables of several antivirus and firewall products; it ignores files with names containing any of the following substrings:
_AVPM.
A2GUARD.
AAVSHIELD.
ADVCHK.
AHNSD.
AIRDEFENSE
ALERTSVC
ALOGSERV
ALSVC.
AMON.
ANTI-TROJAN.
ANTIVIR
APVXDWIN.
ARMOR2NET.
ASHAVAST.
ASHDISP."
ASHENHCD.
ASHMAISV.
ASHPOPWZ.
ASHSERV.
ASHSIMPL.
ASHSKPCK.
ASHWEBSV.
ASWUPDSV.
ATCON.
ATUPDATER.
ATWATCH.
AVAST
AVCENTER.
AVCIMAN.
AVCONSOL.
AVENGINE.
AVESVC.
AVGAMSVR.
AVGCC.
AVGCC32.
AVGCTRL.
AVGEMC.
AVGFWSRV.
AVGNT
AVGNT.
AVGNTDD
AVGNTMGR
AVGSERV.
AVGUARD.
AVGUPSVC.
AVINITNT.
AVKSERV.
AVKSERVICE.
AVKWCTL.
AVP.
AVP32.
AVPCC.
AVPM.
AVSCHED32.
AVSERVER.
AVSYNMGR.
AVWUPD32.
AVWUPSRV.
AVXMONITOR9X.
AVXMONITORNT.
AVXQUAR.
AVZ.
BDMCON.
BDNEWS.
BDSUBMIT.
BDSWITCH.
BLACKD.
BLACKICE.
CAFIX.
CCAPP.
CCEVTMGR.
CCPROXY.
CCSETMGR.
CFIAUDIT.
CLAMTRAY.
CLAMWIN.
CLAW95.
CUREIT
DEFWATCH.
DRVIRUS.
DRWADINS.
DRWEB32W.
DRWEBSCD.
DRWEBUPW.
DWEBIO
DWEBLLIO
EKRN.
ESCANH95.
ESCANHNT.
EWIDOCTRL.
EZANTIVIRUSREGISTRATIONCHECK.
F-AGNT95.
F-PROT95.
F-SCHED.
F-STOPW.
FAMEH32.
FILEMON
FIRESVC.
FIRETRAY.
FIREWALL.
FPAVUPDM.
FRESHCLAM.
FSAV32.
FSAVGUI.
FSBWSYS.
FSDFWD.
FSGK32.
FSGK32ST.
FSGUIEXE.
FSMA32.
FSMB32.
FSPEX.
FSSM32.
GCASDTSERV.
GCASSERV.
GIANTANTISPYWAREMAIN.
GIANTANTISPYWAREUPDATER.
GUARDGUI.
GUARDNT.
HREGMON.
HRRES.
HSOCKPE.
HUPDATE.
IAMAPP.
IAMSERV.
ICLOAD95.
ICLOADNT.
ICMON.
ICSSUPPNT.
ICSUPP95.
ICSUPPNT.
IFACE.
INETUPD.
INOCIT.
INORPC.
INORT.
INOTASK.
INOUPTNG.
IOMON98.
ISAFE.
ISATRAY.
ISRV95.
ISSVC.
KAV.
KAVMM.
KAVPF.
KAVPFW.
KAVSTART.
KAVSVC.
KAVSVCUI.
KMAILMON.
KPFWSVC.
MCAGENT.
MCMNHDLR.
MCREGWIZ.
MCUPDATE.
MCVSSHLD.
MINILOG.
MYAGTSVC.
MYAGTTRY.
NAVAPSVC.
NAVAPW32.
NAVLU32.
NAVW32.
NEOWATCHLOG.
NEOWATCHTRAY.
NISSERV
NISUM.
NMAIN.
NOD32
NORMIST.
NOTSTART.
NPAVTRAY
NPFMNTOR.
NPFMSG.
NPROTECT.
NSCHED32.
NSMDTR.
NSSSERV.
NSSTRAY.
NTOS.
NTRTSCAN.
NTXCONFIG.
NUPGRADE.
NVCOD.
NVCTE.
NVCUT.
NWSERVICE.
OFCPFWSVC.
OP_MON.
OUTPOST
PAVFIRES.
PAVFNSVR.
PAVKRE.
PAVPROT.
PAVPROXY.
PAVPRSRV.
PAVSRV51.
PAVSS.
PCCGUIDE.
PCCIOMON.
PCCNTMON.
PCCPFW.
PCCTLCOM.
PCTAV.
PERSFW.
PERTSK.
PERVAC.
PNMSRV.
POP3TRAP.
POPROXY.
PREVSRV.
PSIMSVC.
QHM32.
QHONLINE.
QHONSVC.
QHPF.
QHWSCSVC.
RAVMON.
RAVTIMER.
RFWMAIN.
RTVSCAN.
RTVSCN95.
RULAUNCH.
SALITY
SAVADMINSERVICE.
SAVMAIN.
SAVPROGRESS.
SAVSCAN.
SCANNINGPROCESS.
SDHELP.
SHSTAT.
SITECLI.
SPBBCSVC.
SPHINX.
SPIDERCPL.
SPIDERML.
SPIDERNT.
SPIDERUI.
SPYBOTSD.
SPYXX.
SS3EDIT.
STOPSIGNAV.
SWAGENT.
SWDOCTOR.
SWNETSUP.
SYMLCSVC.
SYMPROXYSVC.
SYMSPORT.
SYMWSC.
SYNMGR.
TAUMON.
TBMON.
TFAK.
THAV.
THSM.
TMAS.
TMLISTEN.
TMNTSRV.
TMPFW.
TMPROXY.
TNBUTIL.
TRJSCAN.
UP2DATE.
VBA32ECM.
VBA32IFS.
VBA32LDR.
VBA32PP3.
VBSNTW.
VCHK.
VCRMON.
VETTRAY.
VIRUSKEEPER.
VPTRAY.
VRFWSVC.
VRMONNT.
VRMONSVC.
VRRW32.
VSECOMR.
VSHWIN32.
VSMON.
VSSERV.
VSSTAT.
WATCHDOG.
WEBPROXY.
WEBSCANX.
WEBTRAP.
WGFE95.
WINAW32.
WINROUTE.
WINSS.
WINSSNOTIFY.
WRCTRL.
XCOMMSVR.
ZAUINST.
ZLCLIENT.
ZONEALARM.
Spreads via removable drives and network shares
Some Sality can infect legitimate files, which are then moved to available removable drives and network shares.
One of the following legitimate files, if it exists, is copied into the the Temporary Files folder, then infected:
-
<system folder>\NOTEPAD.EXE
-
<system folder>\WINMINE.EXE
-
<system folder>\TELNET.EXE
The resulting infected file is then moved to the root of all available removable drives and network shares as any of the following:
-
\<random file name>.pif
-
\<random file name>.exe
-
\<random file name>.cmd
The Sality variant also creates an "autorun.inf" file in the root of all these drives that points to the virus copy. When a drive is accessed from a computer supporting the Autorun feature, the virus is then launched automatically.
Payload
Deletes security-related files
Sality variants usually attempt to delete files related to antivirus updates, such as those with the following file extensions:
Terminates security-related processes
Win32/Sality
commonly searches for and attempts to terminate security applications, particularly antivirus and personal firewall programs. It attempts to terminate security applications containing the same strings as the files it avoids infecting in the Spreads via... File infection section.
It may also terminate the following security-related services:
acssrv
Agnitum Client Security Service
ALG
Amon monitor
aswFsBlk
aswMon2
aswRdr
aswSP
aswTdi
aswUpdSv
AV Engine
avast! Antivirus
avast! Asynchronous Virus Monitor
avast! iAVS4 Control Service
avast! Mail Scanner
avast! Self Protection
avast! Web Scanner
AVG E-mail Scanner
Avira AntiVir Premium Guard
Avira AntiVir Premium MailGuard
Avira AntiVir Premium WebGuard
AVP
avp1
BackWeb Plug-in - 4476822
bdss
BGLiveSvc
BlackICE
CAISafe
ccEvtMgr
ccProxy
ccSetMgr
cmdAgent
cmdGuard
COMODO Firewall Pro Sandbox Driver
Eset HTTP Server
Eset Personal Firewall
Eset Service
F-Prot Antivirus Update Monitor
F-Secure Gatekeeper Handler Starter
fsbwsys
FSDFWD
FSMA
Google Online Services
InoRPC
InoRT
InoTask
ISSVC
KLIF
KPF4
LavasoftFirewall
LIVESRV
McAfeeFramework
McShield
McTaskManager
navapsvc
NOD32krn
NPFMntor
NSCService
Outpost Firewall main module
OutpostFirewall
PAVFIRES
PAVFNSVR
PavProt
PavPrSrv
PAVSRV
PcCtlCom
PersonalFirewal
PREVSRV
ProtoPort Firewall service
PSIMSVC
RapApp
SavRoam
SmcService
SNDSrvc
SPBBCSvc
SpIDer FS Monitor for Windows NT
SpIDer Guard File System Monitor
SPIDERNT
Symantec AntiVirus
Symantec AntiVirus Definition Watcher
Symantec Core LC
Symantec Password Validation
tcpsr
Tmntsrv
TmPfw
tmproxy
UmxAgent
UmxCfg
UmxLU
UmxPol
vsmon
VSSERV
WebrootDesktopFirewallDataService
WebrootFirewall
XCOMM
Blocks access to security-related domains
Some Win32/Sality variants block access to any URL containing any of these substrings:
agnmitum
bitdefender
cureit
drweb
eset.com
etrust.com
ewido
f-secure
kaspersky
mcafee
onlinescan.
pandasoftware
sality-remov
sophos
spywareguide
spywareinfo
symantec
trendmicro
upload_virus
virusinfo
virusscan
virustotal
windowsecurity
Steals sensitive information
Some Win32/Sality variants can steal cached passwords and log keystrokes entered on the affected computer.
Downloads and executes arbitrary files
Win32/Sality
variants usually attempt to download and execute other files. They may first attempt to connect to "www.microsoft.com" to check for Internet connectivity.
The files are downloaded into the Windows Temporary Files folder and decrypted using one of several hardcoded passwords, which include:
-
kukutrusted!.
-
GdiPlus.dll
The following is a list of domains to which Win32/Sality might connect to and download files from:
89.11<removed>.67.154
antes<removed>t.czechian.net
balsf<removed>kewo7i487fksd.info
bcash<removed>ddt.net
bclr-<removed>ash.net
bddr-<removed>ash.net
bjerm<removed>mass.hc.ru
bmake<removed>egood24.com
bmone<removed>-frn.net
bperf<removed>ctchoice1.com
bpowq<removed>vcfds677.info
btrn-<removed>ash.net
buynv<removed>96.info
bxxxl<removed>cash.net
energ<removed>tixjewelry.com
klkjw<removed>e9fqwieluoi.info
kukut<removed>ustnet777.info
kukut<removed>ustnet888.info
kukut<removed>ustnet987.info
lpbmx<removed>ru
mattf<removed>ll.eu.interia.pl
mikee<removed>ents.go.ro
mmimu<removed>soorie.com
ocean<removed>nfo.co.kr
pinga<removed>sh.com
railw<removed>yservices.be
sahil<removed>.sa.ohost.de
senaa<removed>to.ge
st1.d<removed>st.su.lt
yucel<removed>avdar.com
ziyag<removed>kalpilkogretim72.meb.k12.tr
Injects code into running processes
Most of the payload of Win32/Sality is executed in the context of other processes. It makes cleaning harder and allows the malware to bypass some firewalls. To avoid multiple injections in the same process, a system-wide mutex called "<process name>.exeM_<process ID>_" is created for every process in which code is injected.
Prevents Windows from booting up in Safe Mode
Win32/Sality
variants recursively delete all registry values and data under the following registry subkeys, preventing the user from starting Windows in safe mode:
-
HKCU\System\CurrentControlSet\Control\SafeBoot
-
HKLM\System\CurrentControlSet\Control\SafeBoot
Drops other components
Some variants of Win32/Sality drop a driver with a random file name in the folder "<system folder>\drivers. The driver is detected as Trojan:WinNT/Sality. Its purpose is to:
- Terminate security-related processes - Trojan:WinNT/Sality kills processes from kernel mode to bypass the self-protection of some antivirus programs
- Block access to security-related websites - Trojan:WinNT/Sality registers a callback function to the IP filter driver. From the callback, it denies access to a list of harcoded URLs. This technique works only on Windows XP, Windows 2003, and Windows 2000
- Disable SSDT hooks - Trojan:WinNT/Sality removes SSDT hooks to prevent certain security software from working properly
Modifies %SystemRoot%\system.ini
Win32/Sality
adds the following section to the configuration file "%SystemRoot%\system.ini". The section acts as an infection marker:
[MCIDRV_VER]
DEVICEMB=<random string>
Connects to a P2P network
Computers infected with the latest versions of Win32/Sality, such as Virus:Win32/Sality.AT, and Virus:Win32/Sality.AU, connect to other infected computers by joining a peer-to-peer;(P2P) network. From other computers in the P2P network, they receive URLs pointing to additional malware components.
The P2P protocol runs over UDP. All the messages exchanged on the P2P network are encrypted. The local UDP port number used to connect to the network is generated as a function of the computer name.
Lowers computer security
Win32/Sality
variants may modify the computer registry to lower Windows security. The following changes have been observed in several common variants:
- Disables User Account Control(UAC):
In subkey: HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System
Sets value: "EnableLUA"
With data: "0"
- Modifies Windows Firewall to allow Internet communication:
In subkey: HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List
Sets value: "<Win32/Sality file name>"
With data: "<Win32/Sality file name>:*:enabled:ipsec"
- Disables Windows Firewall via the registry:
In subkey: HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile
Sets value: "EnableFirewall"
With data: "0"
- Runs "netsh" to disable Windows Firewall:
netsh firewall set opmode disable
- Redirects NETSH event tracing session logging:
In subkey: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Tracing\Microsoft\NAP\Netsh
Sets value: "LogSessionName"
With data: "stdout"
- Turns off monitoring the installed antivirus software from within the Microsoft Security Center:
In subkeys:
HKLM\SOFTWARE\Microsoft\Security Center
HKLM\SOFTWARE\Microsoft\Security Center\Svc
Sets value: "AntiVirusOverride"
With data: "1"
- Turns off security alerts in Windows Security Center:
In subkeys:
HKLM\SOFTWARE\Microsoft\Security Center
HKLM\SOFTWARE\Microsoft\Security Center\Svc
Sets values:
"FirewallDisableNotify"
"UacDisableNotify"
"UpdatesDisableNotify"
With data: "1"
- Disables Windows Task Manager:
In subkey: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
Sets value: "DisableTaskMgr"
With data: "1"
- Turns "Offline Mode" off in Microsoft Internet Explorer:
In subkey: HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings
Sets value: "GlobalUserOffline"
With data: "0"
- Allows hidden files to remain hidden:
In subkey: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced
Sets value: "Hidden"
With data: "2"
- Prevents access to registry editing tools such as "regedit":
In subkey: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
Sets value: "DisableRegistryTools"
With data: "1"
Analysis by Hamish O'Dea and Horea Coroiu