Ny aggressiv variant af Codered i omløb
Denne nye variant kan karakteriseres, som en høj risiko trussel for de
administratorer som endnu ikke har opdateret deres IIS. Den nye variant er
dels på grund af den ondsindede kode og dels på grund af ormens tekniske
evne i stand til at sprede sig hurtigt og effektivt. Koden er, i modsætning
til Codered, totalt immun i forhold til sprogversioner af Windows 2000.
IIS.Coderedv3.worm er en variant af Codered og udnytter det samme ISAPI
Indexing Service buffer overflow i en komponent (Idq.dll) under Microsoft
Internet Information Server 4.0 og 5.0 som forgængeren. Sårbarheden
tillader, at ormen automatisk inficerer et sårbart system og samtidig
placerer en bagdør på serveren således at en hacker efterfølgende kan
overtage kontrollen med den kompromitterede IIS server. I modsætning til den
oprindelig variant, som indledte et Denial of service angreb mod en IP
adresse som tilhørte det hvide hus, tillader denne nye variant at en hacker
efterfølgende kan overtage styring ved hjælp af den installerede bagdør.
Ormen kan KUN inficere Windows 2000 servere, som kører en IIS der ikke er
opdateret mod .IDA-sårbarheden. På grund af et programmeringsstunt, hvor
ormen overskriver EIP med en jmp der kun er gyldig under Windows 2000, er
Windows NT altså ikke modtagelige overfor angreb. Præcist denne sårbarhed
blev udnyttet af den oprindelige Codered orm. Et patch/opdatering er blevet
frigivet af Microsoft og kan hentes på følgende adresse:
http://www.microsoft.com/technet/security/bulletin/MS01-033.asp.
Når en webserver kompromitteres af IIS.coderedv3.worm vil ormen først kalde
en rutine som finder adressen af kernel32.dll i proces området af IIS server
service. Dernæst finder den adressen på GetProcAddress for herigennem at få
adgang til følgende API adresser:
LoadLibraryA
CreateThread
...
...
GetSystemTime
Rutinen kalder WS2_32.DLL således, at den kan kalde andre funktioner
herunder socket og closesocket. I USER32.DLL henter den ExitWindowsEx, som
ormen bruger til at genstarte serveren således, at bagdøren aktiveres.
Umiddelbart forinden har hovedprogrammet undersøgt hvilken sprogversion af
windows der er installeret på serveren. Ormen installerer automatisk 300
vilkårlige threads som anvendes af det kompromitterede system til at søge
efter andre sårbare servere. Hvis IIS.Coderedv3.worm finder at en server,
som kører med kinesisk sprogversion vil den forøge dette antal til 600. Til
sammenligning oprettede de tidligere udgaver af Codered blot 100 threads.
Det gør denne nye orm langt mere aggresiv og forklarer den stigningen i
probes fra "Codered".
Ormen kopier cmd.exe fra Windows systemmappen ned i følgende mapper:
c:\inetpub\scripts\root.exe
d:\inetpub\scripts\root.exe
c:\progra~1\common~1\system\MSADC\root.exe
d:\progra~1\common~1\system\MSADC\root.exe
Disse mapper er "default execution-enabled" og gør det muligt for en hacker,
at overtage systemet ved at kalde scripts/root.exe via en simpel HTTP GET
request.
Ormen dropper samtidig en read-only fil (explorer.exe) til roden af drevet
hvor IIS er installeret f.eks.:
C:\EXPLORER.EXE eller D:\EXPLORER.EXE (dette for at sikre at koden bliver
kørt ved genstart af systemet). På den måde kan ormen kalde ExitWindowsEx og
automatisk lukke serveren. Ved genstart af systemet vil ormen blive
aktiveret i systemet. Det kan kun lade sig gøre fordi ormen har lavet en
ændring i registreringsdatabasen under winlogon, hvor den har deaktiveret
SFC (system file checker):
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
SFCDisable=0xFFFFFF9D
Det betyder, at systemet ikke undersøger om filen explorer.exe er den
gyldige system fil. I modsætning til IIS.Codered.worm, som ikke droppede
eller lavede ændringer på serveren vil et opdateret antivirus program være i
stand til at finde ormekoden på et kompromitteret system.
Ormen sover i 24 timer inden den begynder at søge efter andre systemer som
kan inficeres.
IIS.Coderedv3.worm kan oprettes i NIDS (Network Intrusion Detection
systemet) ved at oprette følgende mønster):
/default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXX%u9090%u6858%ucbd3
%u7801%u9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u00
c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a
HTTP/1.0
Snort kan sættes op med følgende rule:
alert tcp any any -> any 80 (msg: "CodeRedII probe"; flags: A+;
content: "|46309a02 0000e80a 00000043 6f646552 65644949 008b1c24
ff55d866 0bc00f95|"; depth:624;)
Bemærk, at den nye variant anvender X i stedet for N i dens overflow af
Idq.dll. Den efterfølgende maskinkode, er også personlig for den nye Codered
variant.
Yderligere oplysninger om omfang af Codered3 kan findes her:
http://www.securityfocus.com/data/staff/crii-attempts.pdf
Venligst
Peter Kruse