image

Hacker publiceert exploit voor Windows DLL-lek

dinsdag 24 augustus 2010, 11:50 door Redactie, 9 reacties

Beveiligingsonderzoeker H.D. Moore heeft zoals beloofd informatie over het omvangrijke Windows DLL-lek vrijgegeven, waaronder een exploit in hackertool Metasploit. "Het lek wordt veroorzaakt als er een kwetsbaar bestandstype in een door de aanvaller gecontroleerde directory wordt geopend", aldus Moore. Het kan dan gaan om een USB-stick, uitgepakt archief of een gedeelde netwerkschijf. In de meeste gevallen moet een gebruiker de betreffende directory en het bestand openen om de exploit te laten werken. Het bestand dat de gebruiker opent kan onschuldig zijn. Het probleem is dat de applicatie die voor het openen van het bestand gebruikt wordt, ook een DLL-bestand in de huidige directory opent.

In de praktijk zou dit lek te misbruiken zijn door een slachtoffer een link naar een gedeelde netwerkschijf te sturen waarvan ze denken dat het veilig is. Vorige week werd het probleem al door Apple in iTunes gepatcht. Moore wijst naar het onderzoek van Taeho Kwon en Zhendong Su van de Universiteit van Californië, dat in januari verscheen. "Ze identificeerden precies dezelfde problemen als waar ik tegen aanliep bij het onderzoeken van het Windows LNK-lek, en hoewel ze gedeelde netwerkschijven niet als aanvalsvector noemden, bespraken ze wel archief bestanden en carpet bombing." De twee onderzoekers ontwikkelden een tool voor het testen van kwetsbare applicaties. Deze tool is nog niet publiek beschikbaar.

Tool
Daarom ontwikkelde Moore een "quick and dirty" audit-kit die de Process Monitor tool en Ruby interpreter gebruikt. De kit start de 'file handler' voor alle geregistreerde bestandstypen en monitort of er wel of niet een DLL bestand in de lokale directory werd aangeroepen. Vervolgens wordt er een script voor verdere tests gegenereerd. Het klikken op deze 'test cases' zal de Windows rekenmachine starten als de applicatie kwetsbaar is.

In sommige gevallen vereisen applicaties een gesigneerde DLL. Deze applicaties valideren alleen dat de handtekening door een vertrouwde partij is uitgegeven. "Een 200 dollar kostende signing key is het enige dat je nodig hebt om deze te misbruiken", aldus Moore. Inmiddels is er aan hackertool Metasploit een exploit toegevoegd voor het genereren van DLL payloads waarmee hackers systemen kunnen overnemen.

Oud
De Luxemburgers onderzoeker Thierry Zoller merkt op dat een variant van deze kwetsbaarheid al tien jaar geleden door Georgi Guninski werd gerapporteerd. "Het is dus geen nieuw probleem en bescherming is aan programmeertalen toegevoegd, alsmede aan Windows zelf." Het grootste verschil tussen het oude en nieuwe probleem, is dat de nieuwste aanval voornamelijk voor applicaties geldt waarvan het gekaapte DLL-bestand niet in de system directory aanwezig is, zo laat Moore in deze analyse weten.

Reacties (9)
24-08-2010, 12:02 door [Account Verwijderd]
[Verwijderd]
24-08-2010, 14:51 door SirDice
Door Peter V:
De Luxemburgers onderzoeker Thierry Zoller merkt op dat een variant van deze kwetsbaarheid al tien jaar geleden door Georgi Guninski werd gerapporteerd.
Met dank aan Microsoft die 10 jaar lang op zijn Gemeente-vlees heeft gezeten...
Helaas, je zit er naast.

"We're not talking about a vulnerability in a Microsoft product," said Christopher Budd, a senior communications manager with the company's MSRC, or Microsoft Security Response Center. "This is an attack vector that tricks an application into loading an untrusted library."

Because application developers, not Windows, are to blame, Microsoft can't patch the operating system without crippling an unknown number of programs that run on the platform. Instead, Microsoft and third-party developers must sniff out which of their programs are vulnerable, then patch each separately.

http://www.computerworld.com/s/article/9181518/Microsoft_releases_tool_to_block_DLL_load_hijacking_attacks
24-08-2010, 16:42 door Anoniem
Linux net zo brak man, en die appel zit helemaal vol met lekken die zo nu en dan met 70+ patches komt
24-08-2010, 19:01 door Bitwiper
Door SirDice:
Door Peter V: Met dank aan Microsoft die 10 jaar lang op zijn Gemeente-vlees heeft gezeten...
Helaas, je zit er naast.
M.i. heeft Peter gelijk. De oorzaak van de bug is dat iemand bij Microsoft, niet gehinderd door enig inzicht in security en workability, ooit (win3.0 vermoed ik) heeft bedacht dat het "handig" zou zijn om de working directory in het DLL zoekpad op te nemen (de working directory is dat separate pad dat je bij snelkoppelingen kunt invullen, en dat door veel applicaties na opstarten overruled wordt met bijv. het pad waar je het laatst een bestand hebt opgeslagen). Uit beheeroogpunt wil je dit sowieso niet: een applicatie die iets anders doet (of een foutmelding geeft) als een gebruiker een andere werkdirectory instelt en een DLL niet gevonden wordt (of erger, een verouderde DLL wel).

Een bijkomstig (en m.i. secundair) probleem zijn applicatiebouwers die niet alle benodigde of gewenste DLL's bij de applicatie installeren (denk aan optionele plugins of taalmodules). Normaal gesproken zullen deze apps geen foutmelding geven als zo'n DLL niet gevonden wordt. Vervolgens kun je (in dit kader) 3 soorten applicatieprogrammeurs onderscheiden:

(1) Degenen die gewoon Windows laten zoeken naar dllnaam.DLL en zich daarbij totaal niet realiseren dat niet uitsluitend in de application directory (en eventueel in %PATH%) gezocht wordt, maar ook in de current aka working directory;

(2) Slimme programmeurs die een absoluut pad opgeven naar de optionele DLL (daar moeten ze wel een klein beetje extra code voor schrijven, nl. om de actuele applicatiedirectory te achterhalen);

(3) Mallotige applicatiebouwers (alleen bij Microsoft of ook bij anderen?) die gebruik zijn gaan maken van deze stompzinnige "feature", d.w.z. de applicatie aangepast laten reageren als een bepaalde DLL in een working directory wordt aangetroffen.

Kennelijk bestaat type 3 (naast -waarschijnlijk- bij Microsoft, ook bij andere partijen?), want Microsoft is er duidelijk als de dood voor dat applicaties ineens niet meer werken (waar ze ongetwijfeld voor gesued worden) na het uitbrengen van een patch die een securityprobleem goed oplost. Kennelijk worden ze niet (onvoldoende in elk geval) gesued voor het achterhouden van securitypatches...

De patch bestaat er namelijk uit dat je de "current directory" kunt uitsluiten bij het zoeken naar DLL's. Als je die patch draait en vervolgens, als afschrikmiddel, een registerwaarde aanpast, zullen applicaties van het type 3 niet goed meer werken (persoonlijk kan ik daar geen traan om laten).

Als Microsoft 10 jaar geleden serieus naar Georgi Guninsky had geluisterd, hadden ze toen kunnen aankondigen dat deze "feature" m.i.v. XP niet meer zou worden ondersteund, dan zouden we nu al deze problemen niet hebben gehad. In 2008 (zie http://blogs.msdn.com/b/david_leblanc/archive/2008/02/20/dll-preloading-attacks.aspx) heeft Microsoft nog wat gestunteld door nog wel in de current directory te kijken maar pas nadat andere mappen zijn geraadpleegd, hadden ze dit probleem toen maar once and for all opgelost.

Microsoft lijkt de de laatste tijd niets anders meer te doen dan, onder druk van op straat liggende exploits, stapje bij beetje problemen op te lossen waar ze al vele jaren geleden voor gewaarschuwd zijn. Doordat applicatiebouwers op al die onverstandige functionaliteiten zijn gaan vertrouwen en bouwen zitten we nu elke maand met steeds harder gebakken peren. Als consequentie hebben we nu weer een prima wormable vulnerability op netwerkdrives en USB-sticks. Kwestie van wachten op een Conficker opvolger...

Ik voorspel dat, niet eerder dan dat zo'n worm een boel bedrijfsnetwerken heeft lamgelegd, Microsoft alsnog met een automatic update zal komen die (zonder handmatige register tweaks en een benodigde licentie) definitief zal afrekenen met het zoeken naar DLL's in de working directory. En zo blijven we bezig met patchen.

Echter, gezien het feit dat onder XP ook nog steeds niet middels een automatic update voor XP met Autorun vanaf FAT/NTFS USB media is afgerekend, verwacht ik ook voor deze DLL-working-dir-vulnerability geen automatic update voor XP.... Handmatig patchen is hier het devies!
24-08-2010, 21:55 door Bitwiper
Aanvulling op m'n bovenstaande rant (niet gericht tegen SirDice maar tegen Microsoft die dit had kunnen voorkomen en nu ook nog alles bij elkaar liegt):
Door SirDice:
"We're not talking about a vulnerability in a Microsoft product," said Christopher Budd, a senior communications manager with the company's MSRC, or Microsoft Security Response Center.
Ja, laten we Microsoft op haar woord geloven.

Volgens http://www.attackvector.org/new-dll-hijacking-exploits-many/:
Windows Live Email DLL Hijacking Exploit (dwmapi.dll)
Microsoft Power Point 2010 DLL Hijacking Exploit (pptimpconv.dll)
* Outlook Express 6 (6.00.2900.2180) (mapi32x.dll)
* Windows Address Book (wab32res.dll)

Klinkt toch behoorlijk als Microsoft.... (en, for the record, Outlook Express en WAB werden meegeleverd met XP, of je het nou wou of niet, zijn dus ook nog een OS componenten).
25-08-2010, 08:25 door SirDice
Door Bitwiper: Als Microsoft 10 jaar geleden serieus naar Georgi Guninsky had geluisterd, hadden ze toen kunnen aankondigen dat deze "feature" m.i.v. XP niet meer zou worden ondersteund, dan zouden we nu al deze problemen niet hebben gehad.
Daar ben ik het opzich wel mee eens. Alleen begrijp ik MS haar standpunt wel. Ze zijn altijd al 'bang' geweest om compatibiliteit te verliezen. Wat dat betreft heeft Apple indertijd een behoorlijk risico genomen door OS-X totaal anders te maken in vergelijking met OS 8 en 9.

Volgens http://www.attackvector.org/new-dll-hijacking-exploits-many/:
Windows Live Email DLL Hijacking Exploit (dwmapi.dll)
Microsoft Power Point 2010 DLL Hijacking Exploit (pptimpconv.dll)
* Outlook Express 6 (6.00.2900.2180) (mapi32x.dll)
* Windows Address Book (wab32res.dll)

Klinkt toch behoorlijk als Microsoft.... (en, for the record, Outlook Express en WAB werden meegeleverd met XP, of je het nou wou of niet, zijn dus ook nog een OS componenten).
Het klopt dat het Microsoft software is. Ze zijn echter geen deel van het OS ook al werden ze meegeleverd. Je kunt ze namelijk zonder problemen verwijderen en dan werkt windows nog steeds zoals het hoort. (Internet Explorer is een heel ander verhaal, die is wel degelijk onderdeel geworden/geweest van het OS).

Een probleem wat mede ontstaan is omdat de Windows tak en de andere software tak niet zo heel veel met elkaar te maken hebben.
25-08-2010, 09:03 door Bitwiper
Door SirDice:
Door Bitwiper: Klinkt toch behoorlijk als Microsoft.... (en, for the record, Outlook Express en WAB werden meegeleverd met XP, of je het nou wou of niet, zijn dus ook nog een OS componenten).
Het klopt dat het Microsoft software is. Ze zijn echter geen deel van het OS ook al werden ze meegeleverd. Je kunt ze namelijk zonder problemen verwijderen en dan werkt windows nog steeds zoals het hoort.
Een beetje een non-discussie maar Outlook Express wordt by default geinstalleerd met XP en je kunt het alleen verwijderen door in het control panel applet "Add or Remove Programs" naar "Add/Remove Windows Components" te gaan.

Microsoft heeft dat qua security schandalig slechte programma gewoon bij iedereen door de strot geduwd, je kunt het de doorsnee gebruiker niet verwijten dat ze dat ook zijn gaan gebruiken. Outlook Express heeft een flinke bijdrage geleverd aan het devualueren van e-mail als zinvol communicatiemiddel (denk alleen maar aan Nimda die je zelf in een andere thread noemde) en heeft daarbij voor heel veel admin-leed (o.a. verspilde tijd aan opruimwerkzaamheden) gezorgd.

Of je met het verwijderen van OE ook WAB automatisch verwijdert weet ik niet, een losse entry daarvoor kan ik niet vinden. Echter Windows Address Book suggereert bij mij iets dat onderdeel uitmaakt van het OS met dezelfde naam.

Het argument dat als je iets kunt verwijderen, het geen onderdeel van Windows zou zijn, houdt ook geen steek. Als je regedit en notepad verwijdert werkt Windows ook nog steeds gewoon. Sterker, het zou me niet verbazen als je meer dan 90% van de bestanden onder C:\Windows kunt weggooien (wel selectief te werk gaan natuurlijk) en dat daarna de core functionaliteit van Windows nog steeds werkt. Voor mij geldt: wat tijdens een OS install met default keuzes op je schijf belandt, maakt onderdeel uit van het OS.
25-08-2010, 10:16 door Bitwiper
In aanvulling op mijn post van gisteren (2010-08-24) om 19:01: ik heb een 4e categorie programmeurs over het hoofd gezien, namelijk die (mogelijk uit pure luiheid), zo te zien de current working directory (tijdelijk of de rest van de sessie) naar een map met extra benodigde DLL's laten wijzen.

In elk geval de programmeurs van MS Outlook 2002 en 2003 lijken zo te werk te zijn gegaan, zie de discussie in http://isc.sans.edu/diary.html?storyid=9445 te beginnen bij de bijdrage van anonymous, Tue Aug 24 2010, 19:51.

Een fix voor dit probleem is te vinden in http://www.security.nl/artikel/34260/1/Problemen_na_DLL-lek-patch_KB2264107_en_CWDIllegalInDllSearch%3DFFFFFFFF.html die ik zojuist aangemaakt heb.
25-08-2010, 11:50 door SirDice
Door Bitwiper: Microsoft heeft dat qua security schandalig slechte programma gewoon bij iedereen door de strot geduwd, je kunt het de doorsnee gebruiker niet verwijten dat ze dat ook zijn gaan gebruiken. Outlook Express heeft een flinke bijdrage geleverd aan het devualueren van e-mail als zinvol communicatiemiddel (denk alleen maar aan Nimda die je zelf in een andere thread noemde) en heeft daarbij voor heel veel admin-leed (o.a. verspilde tijd aan opruimwerkzaamheden) gezorgd.
Err.. Nimda deed 't ook prima als je Thunderbird of iets anders gebruikte, het was niet specifiek op OE gericht. In bepaalde gevallen zal Nimda echter automatisch gestart worden, dat gebeurde ook met Outlook en niet alleen met Outlook Express. Maar dat Outlook (Express ook) gewoon een rete slecht programma was/is ben ik het wel met je eens. Ik heb het, vanaf het begin af aan, nooit gebruikt. Noodgedwongen moet ik het nu op m'n werk gebruiken (Outlook dan, niet Express) en ik vind het nog steeds een verschrikkelijk ding.

Het argument dat als je iets kunt verwijderen, het geen onderdeel van Windows zou zijn, houdt ook geen steek. Als je regedit en notepad verwijdert werkt Windows ook nog steeds gewoon.
Dat klopt. Daarom zijn ze ook geen onderdeel van het OS maar tools voor het OS. Subtiel verschil. (Notepad is overigens een 'voorbeeld' applicatie en is zeker geen onderdeel van het OS of zelfs een tool er voor).

Sterker, het zou me niet verbazen als je meer dan 90% van de bestanden onder C:\Windows kunt weggooien (wel selectief te werk gaan natuurlijk) en dat daarna de core functionaliteit van Windows nog steeds werkt.
Ongetwijfeld.

Voor mij geldt: wat tijdens een OS install met default keuzes op je schijf belandt, maakt onderdeel uit van het OS.
Voor mij niet.
An operating system (OS) is software (programs and data) that runs on computers and manages the computer hardware and provides common services for efficient execution of various application software.
Niks meer en niks minder.
http://en.wikipedia.org/wiki/Operating_system
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.