image

Onderzoeker ontdekt onpatchbaar PDF "lek"

dinsdag 30 maart 2010, 08:25 door Redactie, 54 reacties

De Belgische beveiligingsexpert Didier Stevens heeft een groot probleem met PDF-bestanden gevonden dat niet is te patchen, maar aanvallers wel kwetsbare systemen laat overnemen. De proof-of-concept exploit opent een ingebed uitvoerbaar bestand. In het geval van Adobe Reader verschijnt er wel eerst een waarschuwing, maar die is deels door te aanvaller te manipuleren. "Met een geschikte tekst ben ik er zeker van dat gebruikers om de tuin geleid kunnen worden", zo laat hij aan Security.nl weten.

In het geval van Foxit Reader krijgen gebruikers helemaal niets te zien en wordt het ingebedde bestand gewoon uitgevoerd op het systeem. "In dit geval is Foxit Reader waarschijnlijk slechter af dan Adobe Reader, omdat er helemaal geen waarschuwing verschijnt."

Stevens is nog niet van plan om zijn proof-of-concept te publiceren, maar hij heeft een PDF-bestand online gezet dat cmd.exe start. Inmiddels is het Security Team van Adobe ingelicht. "Ik ben benieuwd wat Adobe gaat doen. Beschouwen ze de waarschuwing afdoende als bescherming? Zo nee, met welke oplossing komen ze dan aandraven. Er valt namelijk geen code bug te fixen", aldus Stevens.

Update 16:00
Stevens laat weten dat Riotz er inmiddels in geslaagd is om de exploit ook voor Foxit Reader te laten werken.

Reacties (54)
30-03-2010, 08:49 door Anoniem
lol

"Stevens is nog niet van plan om zijn proof-of-concept te publiceren"

en dan de pdf er bij geven

Greetingz,
Jacco
30-03-2010, 08:53 door [Account Verwijderd]
Dit lijkt me gewoon een feature? Net als Word-macro's?
30-03-2010, 09:00 door [Account Verwijderd]
[Verwijderd]
30-03-2010, 09:19 door Anoniem
jah, geen lek, gewoon by design, desondanks een security risk door alle domme users. PDF kan je gewoon openen in notepad en dan zowel tekst als executable aanpassen...
30-03-2010, 09:20 door Anoniem
@donenzone:
Daarom staat "lek" ook tussen aanhalingstekens. Het is niet echt een lek, maar wel een enorme zwakheid van PDF-bestanden.
30-03-2010, 09:23 door Anoniem
"Stevens is nog niet van plan om zijn proof-of-concept te publiceren."

Open het PDFje met notepad (ja met notepad.exe), verander:

8 0 obj
<<
/Type /Action
/S /Launch
/Win
<<
/F (cmd.exe)
>>
>>
endobj

in wat je wil.

Hij is al vrijgegeven ;)
30-03-2010, 09:34 door Anoniem
Is de exploit code ook nog beschikbaar?
30-03-2010, 09:57 door Anoniem
"In het geval van Foxit Reader krijgen gebruikers helemaal niets te zien en wordt het ingebedde bestand gewoon uitgevoerd op het systeem. "In dit geval is Foxit Reader waarschijnlijk slechter af dan Adobe Reader, omdat er helemaal geen waarschuwing verschijnt.""
En met javascript uit?
30-03-2010, 10:00 door Anoniem
Het enige echte onpatchbare lek zit tussen de stoel en het keyboard.
30-03-2010, 10:08 door Anoniem
Blijkbaar is dit niet zo nieuw? http://www.java2s.com/Code/Java/PDF-RTF/Pdfactionopenapplicationnotepadexe.htm Alleen ipv ergens op klikken meteen de actie draaien?
30-03-2010, 10:24 door Anoniem
Gebruik hier pdf Xchange viewer, er gebeurt niets bij de testfile
30-03-2010, 10:35 door Anoniem
hij heeft wel een punt, bij Foxit en Xchange PDF viewer krijg ik direct een prompt voor mn kiezen.
Waarom zou je een applicatie willen launchen vanuit een pdf bestand?
30-03-2010, 10:39 door Anoniem
Bij Sumatra PDF start niks op, die is dus veiliger
30-03-2010, 11:00 door Skizmo
...opent een ingebed uitvoerbaar bestand
jezus nog an toe zeg... wordt met de dag erger.
30-03-2010, 11:14 door Anoniem
source:

%PDF-1.1

1 0 obj
<<
/Type /Catalog
/Outlines 2 0 R
/Pages 3 0 R
/OpenAction 8 0 R
>>
endobj

2 0 obj
<<
/Type /Outlines
/Count 0
>>
endobj

3 0 obj
<<
/Type /Pages
/Kids [4 0 R]
/Count 1
>>
endobj

4 0 obj
<<
/Type /Page
/Parent 3 0 R
/MediaBox [0 0 612 792]
/Contents 5 0 R
/Resources
<< /ProcSet 6 0 R
/Font << /F1 7 0 R >>
>>
>>
endobj

5 0 obj
<< /Length 46 >>
stream
BT
/F1 24 Tf
100 700 Td
(Hello World)Tj
ET
endstream
endobj

6 0 obj
[/PDF /Text]
endobj

7 0 obj
<<
/Type /Font
/Subtype /Type1
/Name /F1
/BaseFont /Helvetica
/Encoding /MacRomanEncoding
>>
endobj

8 0 obj
<<
/Type /Action
/S /Launch
/Win
<<
/F (cmd.exe)
>>
>>
endobj

xref
0 9
0000000000 65535 f
0000000012 00000 n
0000000109 00000 n
0000000165 00000 n
0000000234 00000 n
0000000401 00000 n
0000000505 00000 n
0000000662 00000 n
trailer
<<
/Size 9
/Root 1 0 R
>>
startxref
751
%%EOF
30-03-2010, 11:30 door Bitwiper
Drama. Dit gaat een hele berg malware opleveren, vooral bij Foxit gebruikers (CMD.exe start bij mij zonder vragen).

Adobe Reader 8.1.7 (engelstalig) geeft een warning met: "[ ] Do not show this message again", maar als ik dat aanvink en Adobe reader sluit en weer start, is die vraag er weer. Kennelijk is dat een HKLM setting - omdat ik als non-admin werk wijzigt deze instelling dus niet.

Sumatra PDF v1.01 geeft geen warning maar start ook geen executable (lijkt dus vooralsnog safe).

Didier, heb je Foxit op de hoogte gesteld?
30-03-2010, 11:42 door Anoniem
Ik heb net FoxIT verwijderd. Ingebed bestand uitvoeren zonder waarschuwing!?!
30-03-2010, 11:46 door Spiff has left the building
En wat doet PDF-XChange Viewer?
Doet die het beter dan Foxit Reader?
Is dat misschien door iemand al uitgeprobeerd?
30-03-2010, 11:47 door SirDice
Stevens is nog niet van plan om zijn proof-of-concept te publiceren, maar hij heeft een PDF-bestand online gezet dat cmd.exe start.
Aangezien PDF een clear text formaat gebruikt is het eenvoudig om te zien hoe het werkt:


8 0 obj
<<
/Type /Action
/S /Launch
/Win
<<
/F (cmd.exe)
>>
>>
endobj

http://www.pdfill.com/pdf_action.html
30-03-2010, 12:13 door Rene V
Door Bitwiper: Drama. Dit gaat een hele berg malware opleveren, vooral bij Foxit gebruikers (CMD.exe start bij mij zonder vragen).


Bij mij vraagt Comodo of het uitgevoerd mag worden. ^^ Maar Foxit idd niet.
30-03-2010, 12:16 door Spiff has left the building
Ik vroeg om 11.46 uur, "En wat doet PDF-XChange Viewer?"

Ah, ik zie nu op Didier Stevens' blog dat twee personen hebben uitgeprobeerd wat PDF-XChange Viewer doet:
comments 1 en 10, door Christoph Schmees en door poc:
PDF-XChange Viewer geeft een waarschuwing, en bij doorgaan treed slechts een fout op, verder gebeurt er niets.
Zie:
http://blog.didierstevens.com/2010/03/29/escape-from-pdf/
30-03-2010, 12:34 door Didier Stevens
Door Bitwiper: Didier, heb je Foxit op de hoogte gesteld?

Nee, want eigenlijk weten ze dit al sinds een jaar: http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-0836
30-03-2010, 12:38 door Bitwiper
Door Didier Stevens:
Door Bitwiper: Didier, heb je Foxit op de hoogte gesteld?
Nee, want eigenlijk weten ze dit al sinds een jaar: http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-0836
Okay, dank voor jouw reactie!
30-03-2010, 12:47 door Didier Stevens
Door SirDice:
Aangezien PDF een clear text formaat gebruikt is het eenvoudig om te zien hoe het werkt:

FYI: het neemt mij 5 verschillende stappen om via /Launch cmd.exe een willekeurige, ingebakken .EXE uit te voeren.
30-03-2010, 13:30 door SirDice
Door Didier Stevens:
Door SirDice: Aangezien PDF een clear text formaat gebruikt is het eenvoudig om te zien hoe het werkt:

FYI: het neemt mij 5 verschillende stappen om via /Launch cmd.exe een willekeurige, ingebakken .EXE uit te voeren.
Waarom cmd.exe starten om een andere exe te starten? Als je cmd.exe kunt uitvoeren kun je ook een willekeurige andere exe uitvoeren.
30-03-2010, 13:41 door Anoniem
SirDice, ik denk dat didier dat wel begrijpt :)
30-03-2010, 13:49 door Anoniem
Met Adobe is niets aan de hand. Keurig een notificatie.
Fox-it heb ik imiddels verwijderd
30-03-2010, 14:30 door Spiff has left the building
Door Anoniem, vandaag, 30-3-2010, 10.35 uur:
hij heeft wel een punt, bij Foxit en Xchange PDF viewer krijg ik direct een prompt voor mn kiezen.
Met PDF X-Change Viewer?
Dat is een andere ervaring dan in comments 1 en 10 op de blog van Didier Stevens
en een andere ervaring dan die van Anoniem 10.24 uur.

Ik ben erg benieuwd wat Anoniem 10.35 anders doet dan die andere drie PDF X-Change Viewer testers.
30-03-2010, 15:04 door Bitwiper
Door SirDice:
Door Didier Stevens:
Door SirDice: Aangezien PDF een clear text formaat gebruikt is het eenvoudig om te zien hoe het werkt:

FYI: het neemt mij 5 verschillende stappen om via /Launch cmd.exe een willekeurige, ingebakken .EXE uit te voeren.
Waarom cmd.exe starten om een andere exe te starten? Als je cmd.exe kunt uitvoeren kun je ook een willekeurige andere exe uitvoeren.
Dat hangt er vanaf: dat is correct als je parameters kunt gebruiken achter cmd.exe.

Een snelle test wees uit dat dit niet zonder meer werkt (maar dat was een snelle test, en dus zeker geen bewijs, misschien dat het wel lukt door dubbele aanhalingstekens te gebruiken evt. gecombineerd met backslashes etc).
30-03-2010, 15:14 door [Account Verwijderd]
[Verwijderd]
30-03-2010, 15:23 door Didier Stevens
Door SirDice:
Waarom cmd.exe starten om een andere exe te starten? Als je cmd.exe kunt uitvoeren kun je ook een willekeurige andere exe uitvoeren.

De moderne computer misdadiger heeft totaal geen behoefte meer aan het uitvoeren van een willekeurig bestand dat al op je computer aanwezig is. Malware die "format.exe c:" doet is verouderd. Wat ze willen, is hun eigen bestand uitvoeren, dat nog niet op jouw computer staat. En dat is wat ik doe met mijn PoC PDF, die ik niet gepubliceerd heb, en waar /Launch cmd.exe het begin van is.
30-03-2010, 15:49 door Anoniem
Vorige week wilde ik PDF X-Change Viewer eens uitproberen, maar die liet zich alleen via een downloadmanager installeren. Dus dan vertrouw ik het al niet. Jammer maar helaas. Ik wil gewoon een normale setup-bestand downloaden, die dan eerst door mijn AV gecontroleerd wordt. Of is mjn reactie hier wat overdreven?

Foxit ga ik zo waarschijnlijk verwijderen en dan maar die Sumatra proberen. Adobe Reader wil ik gewoon niet op mijn systeem hebben. Zo'n belachelijk groot en traag (ook op snelle computer) programma voor simpele PDF's met ook nog steeds beveiligingslekken wil ik niet.

Tips voor goede en simpele PDF-readers voor Windows hoor ik graag.
30-03-2010, 16:04 door Anoniem
evince heeft nergens last van, zegt alleen `Error: PDF file is damaged - attempting to reconstruct xref table...' maar laat het bestand gewoon zien en start niets
30-03-2010, 16:43 door Anoniem
Damn, het werkt ook met JS uitgeschakeld.
30-03-2010, 16:47 door [Account Verwijderd]
[Verwijderd]
30-03-2010, 16:51 door [Account Verwijderd]
[Verwijderd]
30-03-2010, 17:17 door Anoniem
Ik heb support voor url, launch, movie en sound maar even uit m'n Foxit Reader gepatcht. Didier z'n mooie PDF opent nu zonder dat er een cmd.exe bij komt :)

Wat mij betreft hoort een PDF zulke functionaliteit niet te hebben, dus weg ermee.
30-03-2010, 17:20 door Bitwiper
Door Didier Stevens:
Door SirDice: Waarom cmd.exe starten om een andere exe te starten? Als je cmd.exe kunt uitvoeren kun je ook een willekeurige andere exe uitvoeren.
De moderne computer misdadiger heeft totaal geen behoefte meer aan het uitvoeren van een willekeurig bestand dat al op je computer aanwezig is. Malware die "format.exe c:" doet is verouderd. Wat ze willen, is hun eigen bestand uitvoeren, dat nog niet op jouw computer staat. En dat is wat ik doe met mijn PoC PDF, die ik niet gepubliceerd heb, en waar /Launch cmd.exe het begin van is.
Er is een tussenweg die veel door malware is benut. Bijv. de network-based exploit van Nimda (1 van de methoden om zichzelf te verspreiden) gebruikte tftp.exe (op elke NT4/W2K/XP PC by default geinstalleerd) om de payload (middels pull) op te halen vanaf een reeds besmette PC.

EXE files in PDF's kunnen wellicht redelijk makkelijk door AV worden gedetecteerd. Als het vanuit de PDF bijv. met een cmd.exe commandoregel met parameters of middels een ingebakken batchfile mogelijk is om, gebruikmakend van de default aanwezige ftp client of MSIE DLL's (via rundll32 of zo), een exe file te downloaden, dan heb je een beproefde aanvalsvector die mogelijk lastig valt te detecteren.
30-03-2010, 17:49 door Anoniem
Leuk voor kids om iemand anders mee te dollen.
Cmd veranderd in logoff

Pdf'je via commando pdf'je laten loopen

Minder leuk is dat je ook je virusscanner ermee kunt uitzetten.
30-03-2010, 17:51 door Anoniem
Je kan ook sites starten, deze wordt dan automagisch door de default browser geopend.

verander dit
8 0 obj
<<
/Type /Action
/S /Launch
/Win
<<
/F (cmd.exe)
>>
>>
endobj

met dit
8 0 obj
<<
/Type /Action
/S /Launch
/Win
<<
/F (www.google.com)
>>
>>
endobj
30-03-2010, 18:28 door Didier Stevens
Door Peter V: Ik raad je ten zeerste aan om ook Foxit te informeren zodat ze een versie kunnen maken die ingebedde bestanden detecteert. Want het zomaar uitvoeren, zonder waarschuwing....dat kan echt niet.

Zoals ik in een vorige commentaar schreef, eigenlijk weet Foxit Software dit al sinds verleden jaar: http://cve.mitre.org/cgi-bin/cvename.cgi?name=2009-0836
30-03-2010, 18:32 door Didier Stevens
Door Anoniem: Ik heb support voor url, launch, movie en sound maar even uit m'n Foxit Reader gepatcht. Didier z'n mooie PDF opent nu zonder dat er een cmd.exe bij komt :)

Wat mij betreft hoort een PDF zulke functionaliteit niet te hebben, dus weg ermee.

Als je mijn bpmtk en LoadDLLViaAppInit tools gebruikt, dan kan je Foxit Reader in memory patchen telkens hij gestart wordt. Dit heeft als voordeel dat je niet opnieuw moet patchen na een update naar de laatste versie.
30-03-2010, 18:50 door Anoniem
Onder Linux werkt die /Win-notatie niet, maar dit wel:

<<
/Type /Action
/S /Launch
/F (/usr/bin/xclock)
>>

Adobe vraagt om een bevestiging voor het commando wordt gestart; xpdf, kpdf en evince voeren het niet uit.
30-03-2010, 19:29 door Anoniem
Door Anoniem: lol
"Stevens is nog niet van plan om zijn proof-of-concept te publiceren"
en dan de pdf er bij geven

Nee, hij heeft de proof-of-concept niet gepublicerd. De cmd.exe die wordt uitgevoerd is niet ingebed in de pdf, maar al op je systeem aanwezig. Wat hij zegt is dat hij een manier heeft gevonden om een executable in de pdf zelf op te nemen en die uit te voeren. Dat heeft hij nog niet gepubliceerd.
30-03-2010, 19:39 door [Account Verwijderd]
[Verwijderd]
30-03-2010, 20:12 door Didier Stevens
Ter info: PDF Xchange Viewer en Nuance PDF Reader voeren beide cmd.exe uit als ik de volledige path in de PDF zet:

/F (cmd.exe) vervangen door /F (c:\\windows\\system32\\cmd.exe)

En beide tonen eerst een waarschuwing voor cmd.exe gestart wordt.
30-03-2010, 23:31 door Anoniem
SirDice

Ik wil heel graag met jouw in contact komen!

Hierbij mijn prive email adres, ik laat je graag weten waar het over gaat!

Ur_lay_d@hotmail.com
31-03-2010, 00:09 door Anoniem
Ik heb net Foxit Reader 3.2 getest in de sandbox van KIS2010, en dan wordt er niets uitgevoerd. Ook komt er geen waarschuwing, alleen de pagina wordt zichtbaar.
Buiten de sandbox heb ik hetzelfde resultaat als boven beschreven is.
31-03-2010, 02:42 door [Account Verwijderd]
[Verwijderd]
31-03-2010, 08:48 door SirDice
Door Peter V: Maar als blijkt dat ook deze PDF-reader niet veilig genoeg blijkt te zijn, dan verban ik gegarandeerd elke reader voor altijd van mijn systeem.
Er was een tijd dat PDF veilig was. Tot Adobe besloot om actieve content toe te voegen. M.i. hadden ze dat nooit moeten doen.
31-03-2010, 08:49 door SirDice
Door Didier Stevens: Wat ze willen, is hun eigen bestand uitvoeren, dat nog niet op jouw computer staat. En dat is wat ik doe met mijn PoC PDF, die ik niet gepubliceerd heb, en waar /Launch cmd.exe het begin van is.
Ah. Duidelijk.
31-03-2010, 09:45 door Didier Stevens
Door Peter V: Ik heb Sumatra PDF getest met jouw PoC-exploit Didier, maar daar wordt geen cmd.exe opgestart.

Nee, Sumatra PDF ondersteunt de /Launch opdrachten niet. Kan je trouwens gemakkelijk checken, Sumatra is open source.
31-03-2010, 10:29 door Anoniem
Ik heb m werkend met het downloaden van een file en executen daarvan, ook kan je een file binden in de pdf en die laten executen. evenals het deactiveren van A/V software en windows firewall en je files in een zelfgemaakt "rootkitje" of ntfs stream laten zetten.

Al met al een gevaarlijke "feature" , maar zoals Didier al aangaf, dit bestaat al enkele jaren, alleen het nadeel hierbij is dat het kinderlijk eenvoudig is om een volledige bot of trojan te includen in een pdf bestand wat legitiem oogt.

als je dit hebt + een goede trojan + een hexeditor kom je een een heel eind met het maken van custom malware, en iedereen kan het.


-mystic^
31-03-2010, 10:43 door Anoniem
Heb het probleem gisteren gemeld in het Foxit Reader Forum.
Vandaag reeds antwoord van een administrator:

"This issue has been confirmed, and a maintenance version will be released within this week."
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.