Cauchemars de RAR bizarres

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Cauchemars de RAR bizarres

Message par ѠOOT » 22 févr. 2014 20:32

Bonjour,

Je prends quelques minutes pour vous raconter l'anecdote de la semaine et comme à l'habitude je vais aller à l'essentiel en vous passant certains détails. Le problème rencontré concernait un code hostile stocké arbitrairement dans un fichier au format RAR. J'ai donc re-créé un exemple inoffensif nommé mak.rar ( d4dbd148371d6012b2e83944f39187fda98eb931 ) afin que nous puissions étudier et manipuler sans danger.

unrar t mak.rar
"Enter password (will not be echoed) for mak.rar:"

L'option "t" permet de tester une archive. L'archive est protégée par un mot de passe.
N'étant pas en mesure de lister le contenu cela indique qu'elle est également cryptée.
Pour les utilisateurs Windows qui utilisent Winrar, le message est plus explicite:
"Entrer le mot de passe pour le fichier crypté:"

Le problème ? Personne ne connait le mot de passe.
Casser un mot de passe demande des ressources (temps, calculs, etc...)

Et le plus ahurissant, c'est que nous ne l'aurions jamais trouvé.
Sans certains éléments, nous n'aurions jamais compris comment reconstruire ce puzzle.
Il est temps de révéler le subterfuge: la structure du RAR n'est autre qu'un camouflage !

"L'entité" génère un faux entête de fichier RAR.
Les drapeaux suivants sont activés:
→ LOCKED
→ HEADERS_ENCRYPTED

D'où le message, archive verrouillée et cryptée.
Ensuite le "mystérieux contenu" est ajouté.
Puis les CRC sont recalculés.

L'exemple inoffensif mak.rar que j'ai fabriqué est extrêmement simple afin que ça soit à la portée du quidam moyen mais le fichier que nous avons observé était OMG... sophistiqué ^^

→ "lirar.py" est un bout de python rédigé à l'arrache qui permet de lire le contenu de l'exemple "mak.rar" ; J'utilise "seek" pour me positionner à l'offset 14h car le block MARKER + le block ARCHIVE du format de fichier RAR font 20 bytes.

Code : Tout sélectionner

#!/usr/bin/env python
import base64,zlib
rar=open('mak.rar','rb')
rar.seek(20)
print base64.b32decode(zlib.decompress(rar.read()))
rar.close()
python lirar.py > mak.mp3

Ou pour écouter directement...
./lirar.py | mplayer -

La morale de l'histoire c'est qu'avant de bourinner en force brute, on a le droit de se concerter entre "amis" et d'utiliser le cluster de neurones disponibles.


‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ


Malekal_morte
Site Admin
Site Admin
Messages : 95459
Inscription : 10 sept. 2005 13:57
Contact :

Re: Cauchemars de RAR bizarres

Message par Malekal_morte » 24 févr. 2014 09:19

Si je comprends bien, c'est un "faux" RAR qui se comporte comme tel en affichant un message "blalba verrouille" qui peux permettre de stocker du code malicieux et être executé comme tu le fais avec ton script python ?
Première règle élémentaire de sécurité : on réfléchit puis on clic et pas l'inverse - Les fichiers/programmes c'est comme les bonbons, quand ça vient d'un inconnu, on n'accepte pas

Sécuriser son ordinateur (version courte)

Tutoriels Logiciels - Tutoriel Windows - Windows 10

Stop publicités - popups intempestives
supprimer-trojan.com : guide de suppression de malwares

Partagez malekal.com : n'hésitez pas à partager sur Facebook et GooglePlus les articles qui vous plaisent.

ѠOOT
Geek à longue barbe
Geek à longue barbe
Messages : 1043
Inscription : 28 déc. 2011 19:39

Re: Cauchemars de RAR bizarres

Message par ѠOOT » 25 févr. 2014 01:03

Bonjour,

Tu peux voir ainsi la méthode utilisée, sous sa forme la plus simple.
‮Vous aimez la sécurité informatique ? Dopez vos neurones, achetez MISCMAG !
...nuf rof tsuJ


Répondre

Revenir vers « Tech, Tips & Tricks »