image

Waarschuwing voor actief misbruikt Windows shell lek

maandag 30 mei 2005, 12:28 door Redactie, 9 reacties

Nick Fitzgerald meldt op de Full Disclosure maillijst dat MS05-016 exploits "in the wild" voorkomen. Nick wijst er op dat momenteel slechts enkele virusscanners deze exploit detecteren.

Er wordt spam verzonden met als bijlage een zipfile met daarin schijnbaar een .txt file. In werkelijkheid staat achter "txt" een vierde "letter" die, als je goed kijkt, als spatie wordt getoond; gebruikt wordt in dit geval ASCII code 255 (hexadecimaal 0xFF). In verkenner is deze "spatie" onzichtbaar; alleen aan het feit dat geen kladblok icoontje getoond wordt kun je zien dat het niet om een gewone "kladblok" txt file gaat.

Als je dubbelklikt op deze file zal de shell zoeken naar een programma dat voor die extensie geregistreerd staat, en dat is er natuurlijk niet. Daarna zal de shell de inhoud van de file inspecteren, en daar OLE code in aantreffen. Gebruikelijk in OLE files is om een CLSID van bijv. MS Word te bevatten, maar de huidige exploits verwijzen naar de CLSID van MSHTA.EXE (een CLSID is een lang uniek nummer in het register dat eenduidig een applicatie identificeert).

Dit heeft tot gevolg dat de shell er van uit gaat dat deze file een "MicroSoft HTml Application" bevat, en start MSHTA.EXE op ter verwerking ervan (op dezelfde wijze als je op een .hta file dubbel-clicked). HTA files bevatten een mix aan HTML en Visual Basic Script en zijn qua mogelijkheden identiek aan "echte" programma's zoals .exe en .com bestanden, en dus net zo gevaarlijk als een vreemde je deze toezendt. Een van de eerdere patches die Microsoft in dit verband heeft uitgebacht is het waarschuwen als een webpage een .hta file i.p.v. een html file probeert te openen in je browser. Door de omweg via CLSID verschijnt deze waarschuwing kennelijk niet.

Het betreft hier geen correcte MSHTA file, maar Microsoft heeft in al haar wijsheid, naast MSIE, ook MSHTA "tolerant" gemaakt: deze leest net zolang junk uit bestanden totdat er iets herkenbaars voorbijkomt. Daardoor zal MSHTA de OLE informatie aan het begin van de file negeren, en de uitvoerbare code verderop starten.

Hoewel Microsoft in haar security bulletin onderkent dat dit een "Remote Code Execution" vulnerability betreft, is deze slechts als "Important" geklassificeerd (ik zie geen structureel verschil met MS05-002 die wel als Critical wordt aangemerkt). Hoewel de exploit naar verluid op 2-nov-2004 is aangemeld (en bevestigd door Microsoft) is voor NT4 Server (met support tot 31-dec-2004) geen patch uitgebracht. Omdat de patch niet als "Critical" bestempeld is, zijn er ook geen patches voor Win9X en ME (die zo goed als zeker wel kwetsbaar zijn). Voor XP zonder SP's is er ook geen patch.

In haar bulletin noemt Microsoft wel een workaround, nl. het disablen van MSHTA (en beschrijft hoe dat kan). Mijn persoonlijke ervaring is dat het uitschakelen van HTA support geen consequenties heeft onder W9x en NT4, van ME weet ik het niet zeker (en XP gebruikt het meen ik voor eenvoudig gebruikersbeheer). Als alternatief voor de methode die Microsoft noemt kun je onder W9x en NT4 gewoon alle instanties van "mshta.exe" opzoeken en hernoemen in bijv. "mshta.exe.niet". Bij ME heeft dat geen zin omdat WFP (Windows File Protection) het bestand dan herstelt.

N.B. voor zover ik weet zijn alleen exploits gebaseerd op MSHTA bekend, maar andere exploits (in bijv. Word) kunnen niet worden uitgesloten. Het algemene advies is natuurlijk om nooit bijlagen te openen waar je niet zelf om gevraagd hebt, ook als deze door een bekende lijken te zijn verzonden.

Door Erik van Straten

Reacties (9)
30-05-2005, 13:58 door G-Force
Een gecompliceerde maar intelligente aanvalsmethode. Degene die dit
ontworpen heeft wist waarover hij sprak.

Alleen mis ik de lijst van virusscanners die deze bedreiging kan
detecteren. Dus graag een completer verhaal is hier niet weg.
30-05-2005, 16:36 door Anoniem
Mooi stukje, Erik!
30-05-2005, 17:30 door rob
Zo zie je waar die fratsen van ms toe leiden..
30-05-2005, 18:11 door Anoniem
Heel mooi :)

Ik heb de workaround geprobeerd onder windows2000 en moet
zeggen, deze werkt prima voor mij...
Als iemand het wil proberen :

1 open je favoriete txt editor (bijvoorbeeld kladblok)...

2 tik wat je will bla bla of zoiets.

3 save als alle bestanden : "test.hta"
als je hier nu op dubbelklikt verschijnt er een venster met de
ingetikte tekst.

4 doe de workaround ,dus uitvoeren onder startmenu en het
volgende intikken : "%windir%system32mshta.exe /unregister"
zonder quotes en op enter drukken. 2 tellen wachten.

5 dubbelklik nu weer op het test.hta bestand en vervolgens komt
een selectiescherm naar voren waarmee je een programma kunt
kiezen.

6 "%windir%system32mshta.exe /register" maakt de
workaround weer ongedaan.

Bedankt Erik voor de nuttige tip...

ALG
30-05-2005, 19:38 door Bitwiper
Op maandag 30 mei 2005 13:58 schreef Peter V. onder meer:
> Alleen mis ik de lijst van virusscanners die deze
> bedreiging kan detecteren.

Die had ik je graag gegeven, maar Nick FitzGerald noemt deze
ook niet in zijn post, en ik heb deze specifieke exploit
niet in m'n bezit. Ik had/heb er zelf geen tijd voor, maar
via Nick's post kun je een exploit-generator vinden op
SecurityFocus (maar hij staat ook op frsirt.com). Je zou
zelf kunnen proberen daarmee een file te maken en die op
bijv. http://www.virustotal.com door een reeks scanners te laten
halen, en/of je eigen scanner ermee te testen.

Ik heb dit stukje geschreven omdat een gewaarschuwd mens
voor twee telt (een trojan in een txt file klinkt nogal
ongeloofwaardig) en omdat niet iedereen even goed met de
Engels taal overweg kan. Het leek me zinvol dit zo snel
mogelijk te posten (en niet te wachten tot alle
virusscanners er bescherming tegen bieden ;). Bovendien,
zodra ze dat doen is de kans groot dat deze exploit in
(licht) gewijzigde vorm zal worden verspreid (als met
detectie van de eerste Mytob alle varianten gevonden zouden
worden, zaten we nu niet met twee-letterige aanduidingen).
De beste oplossing hier is patchen, maar bij gebrek daaraan
op oudere operating systems heb ik daar workarounds voor
genoemd.

Overigens checken veel "on-access" (achtergrond) scanners
niet alle bestandstypes, dus ook al heb je een scanner die
de MS05-016 exploit in principe wel zou kunnen vinden, heb
je daar niet zoveel aan als ".txt+" bestanden niet worden
gecontroleerd. Ook degenen die een scanner op een mailserver
draaien doen er wellicht goed aan om dit te checken.

Als je verkenner zo hebt ingesteld dat deze extensies van
bestanden toont, kun je de extensie van een .txt file op
dezelfde manier veranderen, als volgt. Selecteer het in
verkenner, druk op F2 (=wijzigen), zet NumLock uit, pijltje
naar rechts om de selectie op te heffen, Alt ingedrukt
houden en op het numerieke toetsenbord 255 tikken; met Enter
sluit je af.

Met een eicar "test-virus" (zie
http://www.eicar.com/anti_virus_test_file.htm) er
in kun je zo je scanner(s) testen op deze vreemde extensie
(dit is geen echt virus, maar een bestand dat alle bekende
virusscanners herkennen en rapporteren - mits ze goed
werken). Stuur dit soort dingen nooit via email naar een
derde (ook niet als grap), want als je dan door je ISP wordt
afgesloten is dat zonder meer terecht.

ALG: als een bestandsnaam niet op .txt eindigt, wil
kladblok/notepad er nog wel eens eigenwijs ".txt" achter
plakken. Ik geloof dat ie dit niet doet bij test.hta (wel
bij test.c bijvoorbeeld). Hoe dan ook, mocht kladblok een
"test.hta.txt" hebben opgeslagen, en jouw verkenner
onderdrukt extensies, dan zal deze als "test.hta" worden
getoond waardoor je op het verkeerde been kunt worden gezet
(nog zo'n MS "feature" waar malware dankbaar gebruik van
maakt). Dit als waarschuwing voor degenen die ALG's advies
(dat verder prima is) opvolgen.

Met dank aan Anoniem en ALG voor de complimenten, en de
redactie voor het plaatsen,
Erik van Straten
30-05-2005, 20:54 door Anoniem
Door Erik van Straten
Op maandag 30 mei 2005 13:58 schreef Peter V. onder meer:
> Alleen mis ik de lijst van virusscanners die deze
> bedreiging kan detecteren.

Die had ik je graag gegeven, maar Nick FitzGerald noemt deze
ook niet in zijn post, en ik heb deze specifieke exploit
niet in m'n bezit. Ik had/heb er zelf geen tijd voor, maar
via Nick's post kun je een exploit-generator vinden op
SecurityFocus (maar hij staat ook op frsirt.com). Je zou
zelf kunnen proberen daarmee een file te maken en die op
bijv. http://www.virustotal.com door een reeks scanners te
laten
halen, en/of je eigen scanner ermee te testen.

Ik heb dit stukje geschreven omdat een gewaarschuwd mens
voor twee telt (een trojan in een txt file klinkt nogal
ongeloofwaardig) en omdat niet iedereen even goed met de
Engels taal overweg kan. Het leek me zinvol dit zo snel
mogelijk te posten (en niet te wachten tot alle
virusscanners er bescherming tegen bieden ;). Bovendien,
zodra ze dat doen is de kans groot dat deze exploit in
(licht) gewijzigde vorm zal worden verspreid (als met
detectie van de eerste Mytob alle varianten gevonden zouden
worden, zaten we nu niet met twee-letterige aanduidingen).
De beste oplossing hier is patchen, maar bij gebrek daaraan
op oudere operating systems heb ik daar workarounds voor
genoemd.

Overigens checken veel "on-access" (achtergrond) scanners
niet alle bestandstypes, dus ook al heb je een scanner die
de MS05-016 exploit in principe wel zou kunnen vinden, heb
je daar niet zoveel aan als ".txt+" bestanden niet worden
gecontroleerd. Ook degenen die een scanner op een mailserver
draaien doen er wellicht goed aan om dit te checken.

Als je verkenner zo hebt ingesteld dat deze extensies van
bestanden toont, kun je de extensie van een .txt file op
dezelfde manier veranderen, als volgt. Selecteer het in
verkenner, druk op F2 (=wijzigen), zet NumLock uit, pijltje
naar rechts om de selectie op te heffen, Alt ingedrukt
houden en op het numerieke toetsenbord 255 tikken; met Enter
sluit je af.

Met een eicar "test-virus" (zie
http://www.eicar.com/anti_virus_test_file.htm) er
in kun je zo je scanner(s) testen op deze vreemde extensie
(dit is geen echt virus, maar een bestand dat alle bekende
virusscanners herkennen en rapporteren - mits ze goed
werken). Stuur dit soort dingen nooit via email naar een
derde (ook niet als grap), want als je dan door je ISP wordt
afgesloten is dat zonder meer terecht.

ALG: als een bestandsnaam niet op .txt eindigt, wil
kladblok/notepad er nog wel eens eigenwijs ".txt" achter
plakken. Ik geloof dat ie dit niet doet bij test.hta (wel
bij test.c bijvoorbeeld). Hoe dan ook, mocht kladblok een
"test.hta.txt" hebben opgeslagen, en jouw verkenner
onderdrukt extensies, dan zal deze als "test.hta" worden
getoond waardoor je op het verkeerde been kunt worden gezet
(nog zo'n MS "feature" waar malware dankbaar gebruik van
maakt). Dit als waarschuwing voor degenen die ALG's advies
(dat verder prima is) opvolgen.

Met dank aan Anoniem en ALG voor de complimenten, en de
redactie voor het plaatsen,
Erik van Straten


Je hebt gelijk, daar had ik niet aan gedacht in die zin dat bij mij
alle extensies getoond moeten worden en dit is dan ook de
default instelling die ik instel tijdens een setup. Ik ging er
gemakshalve van uit, niet aan gedacht...

Alleen bedoelde ik een voorbeeldje te tonen om te kijken of de
workaround goed was uitgevoerd.
Dat ik kladblok gebruikte als voorbeeld voor een tekst editor was
dus louter toeval en niet bedoeld om mensen in verwarring te
brengen, neem me niet kwalijk.
Zelf geef ik de voorkeur aan pfe32 als text-editor daar ik graag
assembler tik voor microcontrollers.

Iedere andere text editor is natuurlijk ook prima mits deze de
eigenwijze trekjes van kladblok /notepad niet heeft.


ALG
30-05-2005, 23:19 door Bitwiper
Hee ALG,
> neem me niet kwalijk

Tuurlijk niet, m'n opmerking was bedoeld als aanvulling,
niet als kritiek! Sorry als het anders overkwam. Het is
juist erg verstandig om na elke wijziging aan je systeem te
testen of die werkt zoals bedoeld, precies zoals je schrijft.

P.S. en off-topic: Ik heb zelf PFE onder een extra knop op
m'n keyboard zitten... (jammer dat PFE niet meer geupdate
wordt). Maar soms is notepad/kladblok ook wel handig, bijv.
omdat deze "soft" line wrappen kan. Tip: checkout PSPad en
WinMerge, beide freeware. Die laatste gebruik ik niet alleen
om te sources diffen, maar ook om ze daarna te editten;
bijv. backwards zoeken (shift-F3) mis ik in veel andere
editors. Oh ja, PSPad heeft een ingebouwde hexeditor en een
md5sum checker, ook voor externe bestanden (toch nog een
beetje on-topic ;)

Groet,
Erik
31-05-2005, 00:09 door Anoniem
Prima stuk Erik.

Ik vind het vreemd dat virus scanners het nog niet detecteren. Mijn exploit
scanners doen dat al sinds de exploit bekend is. De kans op false
positives is nihil, ik zie geen reden om het niet te doen.

Nog niets gevonden op onze mail servers overigens.

McAfee detecteerde de exploit al voordat Nick Fitzgerald zijn bericht postte.

Jeroen
31-05-2005, 09:52 door raboof
Fijn stuk!

Het onderliggende probleem blijft dat systemen verschillende
manieren gebruiken om te bepalen wat voor bestand je in
handen hebt (extensie, mimetype, magic numbers). 3 jaar
terug ofzo was er een lek waarbij een file werd aangeboden
(in een html-mail oid), met het mime-type `x-wav'. Windows
besloot daarop het af te spelen, en `startte' het bestand.
Helaas zag het programma waarmee de file opgestart werd dat
het een executable was, en werd die executable dus gedraaid
in plaats van afgespeeld.

Dit is blijkbaar hoe Nimda werkte:
http://www.k7computing.com/newsinfo/Nimda.htm

(Even herhalen wat al gezegd is: voor de meeste versies van windows is er gewoon een up date voor dit probleem op http://www.microsoft.com/technet/security/bulletin/ms05-016.mspx. Niettemin is de workaround interessant en nuttig voor mensen met andere versies.)
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.