8.1 CVE-2017-0144

Exploit Privilege Escalation RCE Injection SQL Buffer Overflow RCI XSS Patch Used by Malware Used by Ransomware CISA Kev Catalog Used by Malware
  

Le serveur SMBv1 dans Microsoft Windows Vista SP2 ; Windows Server 2008 SP2 et R2 SP1 ; Windows 7 SP1 ; Windows 8.1 ; Windows Server 2012 Gold et R2 ; Windows RT 8.1 ; et Windows 10 Gold, 1511, et 1607 ; et Windows Server 2016 permet aux attaquants distants d'exécuter du code arbitraire par le biais de paquets fabriqués, alias "Vulnérabilité d'exécution de code à distance de Windows SMB". Cette vulnérabilité est différente de celles décrites dans CVE-2017-0143, CVE-2017-0145, CVE-2017-0146 et CVE-2017-0148.
https://nvd.nist.gov/vuln/detail/CVE-2017-0144

Catégories

CWE-20 : Validation incorrecte des entrées
Le produit reçoit des entrées ou des données, mais il ne valide pas ou valide incorrectement que l'entrée possède les propriétés requises pour traiter les données de manière sûre et correcte. Lorsque la validation personnalisée des entrées est requise, par exemple lors de l'application de règles commerciales, une analyse manuelle est nécessaire pour s'assurer que la validation est correctement mise en œuvre. Les techniques de fuzzing peuvent être utiles pour détecter les erreurs de validation des entrées. Lorsque des entrées inattendues sont fournies au logiciel, ce dernier ne doit pas planter ou devenir instable, et il doit générer des messages d'erreur contrôlés par l'application. Si des exceptions ou des messages d'erreur générés par l'interpréteur se produisent, cela indique que l'entrée n'a pas été détectée et traitée dans la logique de l'application elle-même. Envisagez d'utiliser des techniques de sécurité fondées sur la théorie des langages (LangSec) qui caractérisent les entrées à l'aide d'un langage formel et construisent des "reconnaissances" pour ce langage. Cela exige effectivement que l'analyse syntaxique soit une couche distincte qui impose une frontière entre l'entrée brute et les représentations de données internes, au lieu de permettre au code de l'analyse syntaxique d'être dispersé dans le programme, où il pourrait être sujet à des erreurs ou des incohérences qui créent des faiblesses. [REF-1109] [REF-1110] [REF-1111] Utilisez un cadre de validation des entrées comme Struts ou l'API de validation OWASP ESAPI. Notez que l'utilisation d'un framework ne résout pas automatiquement tous les problèmes de validation des entrées ; soyez attentif aux faiblesses qui pourraient résulter d'une mauvaise utilisation du framework lui-même (CWE-1173). Comprenez toutes les zones potentielles où des entrées non fiables peuvent pénétrer dans votre logiciel : paramètres ou arguments, cookies, tout ce qui est lu sur le réseau, variables d'environnement, recherches DNS inversées, résultats de requêtes, en-têtes de requêtes, composants URL, courrier électronique, fichiers, noms de fichiers, bases de données et tout système externe fournissant des données à l'application. N'oubliez pas que ces entrées peuvent être obtenues indirectement par des appels d'API. Lorsque votre application combine des données provenant de plusieurs sources, effectuez la validation après avoir combiné les sources. Les éléments de données individuels peuvent passer l'étape de validation mais violer les restrictions prévues après avoir été combinés. Veillez tout particulièrement à valider toutes les entrées lorsque vous invoquez un code qui franchit les frontières linguistiques, par exemple d'un langage interprété à un code natif. Cela pourrait créer une interaction inattendue entre les frontières du langage. Assurez-vous que vous ne violez aucune des attentes du langage avec lequel vous vous interfacez. Par exemple, même si Java n'est pas sensible aux débordements de tampon, le fait de fournir un argument de grande taille dans un appel au code natif peut déclencher un débordement. Convertissez directement votre type d'entrée dans le type de données attendu, par exemple en utilisant une fonction de conversion qui transforme une chaîne de caractères en un nombre. Après la conversion vers le type de données attendu, assurez-vous que les valeurs de l'entrée se situent dans la plage attendue des valeurs autorisées et que les cohérences multi-champs sont maintenues. Lorsque vous échangez des données entre des composants, assurez-vous que les deux composants utilisent le même codage de caractères. Assurez-vous que le codage approprié est appliqué à chaque interface. Définissez explicitement le codage que vous utilisez lorsque le protocole vous le permet. Chaîne : la validation incorrecte des entrées (CWE-20) entraîne un débordement d'entier (CWE-190) dans le système d'exploitation mobile, comme exploité dans la nature par CISA KEV. Chaîne : la validation incorrecte des entrées (CWE-20) entraîne un dépassement d'entier (CWE-190) dans les systèmes d'exploitation mobiles, comme exploité dans la nature par CISA KEV. Chaîne : une barre oblique inverse suivie d'une nouvelle ligne peut contourner une étape de validation (CWE-20), conduisant à une injection d'eval (CWE-95), comme exploité dans la nature par CISA KEV. Chaîne : la validation insuffisante des entrées (CWE-20) dans le navigateur permet une corruption du tas (CWE-787), comme exploité dans la nature par CISA KEV. Chaîne : validation incorrecte des entrées (CWE-20) dans le paramètre du nom d'utilisateur, conduisant à l'injection de commandes du système d'exploitation (CWE-78), comme exploité dans la nature par CISA KEV. Chaîne : le produit de sécurité présente une validation d'entrée incorrecte (CWE-20) conduisant à une traversée de répertoire (CWE-22), comme exploité dans la nature par CISA KEV. Validation incorrecte des entrées des requêtes HTTP dans le téléphone IP, comme exploité dans la nature par CISA KEV. Chaîne : la validation incorrecte des entrées (CWE-20) dans le produit pare-feu conduit à XSS (CWE-79), comme exploité dans la nature par CISA KEV. Chaîne : le serveur proxy de mise en cache présente une validation d'entrée incorrecte (CWE-20) des en-têtes, permettant la contrebande de réponses HTTP (CWE-444) à l'aide d'une injection Eval " LF line ending" dans un programme Perl utilisant un ID qui ne devrait contenir que des tirets et des chiffres. Injection SQL par le biais d'un ID qui était censé être numérique. Le manque de validation des entrées dans un programme de tableur entraîne des débordements de tampon, des débordements d'entier, des erreurs d'index de tableau et une corruption de la mémoire. permettant à un attaquant de contourner un avertissement de sécurité par le biais d'un en-tête supplémentaire ; un paquet vide déclenche un redémarrage ; une liste de dénombrement incomplète permet une injection SQL ; un octet NUL dans le nom du thème aggrave l'impact de la traversée de répertoire ; le noyau ne valide pas un pointeur entrant avant de le déréférencer ; un produit antivirus a une validation d'entrée insuffisante des fonctions SSDT accrochées permettant l'exécution de code un produit anti-virus permet une attaque de type DoS via un champ de longueur nulle le pilote ne valide pas les entrées de l'espace utilisateur vers le noyau le noyau ne valide pas les paramètres envoyés depuis l'espace utilisateur, permettant l'exécution de code l'absence de validation des champs de longueur de chaîne permet une consommation de mémoire ou une surlecture de tampon l'absence de validation du champ de longueur entraîne une boucle infinie l'absence de validation de l'entrée d'une IOCTL permet l'exécution de code l'attachement de longueur zéro provoque un crash l'entrée de longueur zéro provoque un crash de pointeur non initialisé via une structure de trame malformée boucle infinie d'une longue requête SMTP le routeur se plante avec un paquet malformé le paquet avec un numéro de version invalide entraîne un déréférencement de pointeur NULL le crash via de multiples caractères ".caractères "" dans l'extension de fichier

Références


 

CPE

cpe start end
Configuration 1
   cpe:2.3:a:microsoft:server_message_block:1.0:*:*:*:*:*:*:*
  Running on/with
  cpe:2.3:o:microsoft:windows_10:*:*:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_10:1511:*:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_10:1607:*:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_7:-:sp1:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_8.1:*:*:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_rt_8.1:-:*:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_server_2008:-:sp2:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_server_2008:r2:sp1:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_server_2012:-:gold:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_server_2012:r2:*:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_server_2016:-:*:*:*:*:*:*:*
  cpe:2.3:o:microsoft:windows_vista:-:sp2:*:*:*:*:*:*


REMEDIATION


Microsoft

Produit Article Download
Windows 10 Version 1511 for 32-bit Systems 4013198 Security Update
Windows 10 Version 1511 for x64-based Systems 4013198 Security Update
Windows 10 Version 1607 for 32-bit Systems 4013429 Security Update
Windows 10 Version 1607 for x64-based Systems 4013429 Security Update
Windows 10 for 32-bit Systems 4012606 Security Update
Windows 10 for x64-based Systems 4012606 Security Update
Windows 7 for 32-bit Systems Service Pack 1 4012215 Monthly Rollup
Windows 7 for 32-bit Systems Service Pack 1 4012212 Security Only
Windows 7 for x64-based Systems Service Pack 1 4012215 Monthly Rollup
Windows 7 for x64-based Systems Service Pack 1 4012212 Security Only
Windows 8.1 for 32-bit systems 4012216 Monthly Rollup
Windows 8.1 for 32-bit systems 4012213 Security Only
Windows 8.1 for x64-based systems 4012216 Monthly Rollup
Windows 8.1 for x64-based systems 4012213 Security Only
Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1 4012215 Monthly Rollup
Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1 4012212 Security Only
Windows Server 2008 R2 for x64-based Systems Service Pack 1 4012215 Monthly Rollup
Windows Server 2008 R2 for x64-based Systems Service Pack 1 4012212 Security Only
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation) 4012215 Monthly Rollup
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation) 4012212 Security Only
Windows Server 2008 for 32-bit Systems Service Pack 2 4012598 Security Update
Windows Server 2008 for Itanium-Based Systems Service Pack 2 4012598 Security Update
Windows Server 2008 for x64-based Systems Service Pack 2 4012598 Security Update
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation) 4012598 Security Update
Windows Server 2012 4012217 Monthly Rollup
Windows Server 2012 4012214 Security Only
Windows Server 2012 (Server Core installation) 4012217 Monthly Rollup
Windows Server 2012 (Server Core installation) 4012214 Security Only
Windows Server 2012 R2 4012216 Monthly Rollup
Windows Server 2012 R2 4012213 Security Only
Windows Server 2012 R2 (Server Core installation) 4012216 Monthly Rollup
Windows Server 2012 R2 (Server Core installation) 4012213 Security Only
Windows Server 2016 4013429 Security Update
Windows Server 2016 (Server Core installation) 4013429 Security Update
Windows Vista Service Pack 2 4012598 Security Update
Windows Vista x64 Edition Service Pack 2 4012598 Security Update


EXPLOITS


Exploit-db.com

id description date
42315 Microsoft Windows 7/8.1/2008 R2/2012 R2/2016 R2 - Exécution de code à distance SMB 'EternalBlue' (MS17-010) 2017-07-11 00:00:00
42031 Microsoft Windows 7/2008 R2 - Exécution de code à distance SMB 'EternalBlue' (MS17-010) 2017-05-17 00:00:00
42030 Microsoft Windows 8/8.1/2012 R2 (x64) - Exécution de code à distance SMB "EternalBlue" (MS17-010) 2017-05-17 00:00:00
41987 Microsoft Windows Server 2008 R2 (x64) - Exécution de code à distance SMB 'SrvOs2FeaToNt' (MS17-010) 2017-05-10 00:00:00
41891 Microsoft Windows - Scanner d'exécution de code à distance SMB (MS17-010) (Metasploit) 2017-04-17 00:00:00
47456 DOUBLEPULSAR - Exécution et neutralisation de charges utiles (Metasploit) 2019-10-02 00:00:00

Autres (github, ...)

Url
Pas d'exploit connu


CAPEC


Common Attack Pattern Enumerations and Classifications

id description sévérité
10 Débordement de la mémoire tampon via les variables d'environnement
Haute
101 Injection de Server Side Include (SSI)
Haute
104 Cross Zone Scripting
Haute
108 Exécution de la ligne de commande par injection SQL
Très haute
109 Injection de mappage objet-relationnel
Haute
110 Injection SQL par la falsification des paramètres SOAP
Très haute
120 Double encodage
Moyenne
13 Subvertir les valeurs des variables d'environnement
Très haute
135 Injection de chaîne de format
Haute
136 LDAP Injection
Haute
14 Débordement de tampon induit par une injection côté client
Haute
153 Manipulation des données d'entrée
Moyenne
182 Flash Injection
Moyenne
209 XSS Using MIME Type Mismatch
Moyenne
22 Exploiter la confiance du client
Haute
23 Injection de contenu de fichier
Très haute
230 Données sérialisées avec charges utiles imbriquées
Haute
231 Charges utiles de données sérialisées surdimensionnées
Haute
24 Défaillance du filtre par débordement de la mémoire tampon
Haute
250
261 Fuzzing pour recueillir d'autres données utilisateur/sensibles adjacentes
Moyenne
267 Exploiter un autre codage
Haute
28 Fuzzing
Moyenne
3 Utilisation de séquences de caractères fantômes en tête pour contourner les filtres d'entrée
Moyenne
31 Accéder/Intercepter/Modifier les cookies HTTP
Haute
42 MIME Conversion
Haute
43 Exploitation de couches d'interprétation d'entrées multiples
Haute
45 Débordement de la mémoire tampon via les liens symboliques
Haute
46 Variables et tags de débordement
Haute
47 Débordement de la mémoire tampon via l'expansion des paramètres
Haute
473 Signature Spoof
52 Incorporation d'octets NULL
Haute
53 Postfix, Null Terminate et Backslash (barre oblique inversée)
Haute
588 DOM-Based XSS
Très haute
63 Cross-Site Scripting (XSS)
Très haute
64 Utilisation combinée des barres obliques et du codage URL pour contourner la logique de validation
Haute
664 Falsification de requête côté serveur
Haute
67 Débordement de format de chaîne dans syslog()
Très haute
7 Injection SQL aveugle
Haute
71 Utilisation de l'encodage Unicode pour contourner la logique de validation
Haute
72 Codage de l'URL
Haute
73 User-Controlled Filename
Haute
78 Utilisation de barres obliques échappées dans un codage alternatif
Haute
79 Utilisation des barres obliques dans le codage alternatif
Haute
8 Débordement de mémoire tampon dans un appel d'API
Haute
80 Utilisation de l'encodage UTF-8 pour contourner la logique de validation
Haute
81
Haute
83 Injection XPath
Haute
85 Empreinte d'AJAX
Faible
88 Injection de commande OS
Haute
9 Débordement de la mémoire tampon dans les services publics locaux en ligne de commande
Haute


MITRE


Techniques

id description
T1027 Fichiers ou informations obfusqués
T1036.001 Mascarade : Signature de code invalide
T1539 Voler un cookie de session Web
T1553.002 Subvertir les contrôles de confiance : la signature de code
T1562.003 Défenses contre l'impuissance : enregistrement de l'historique des commandes de l'impuissance
T1574.006 Flux d'exécution du détournement : détournement du linker dynamique
T1574.007 Flux d'exécution du détournement : Interception du chemin par la variable d'environnement PATH
© 2022 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation.

Atténuations

id description
T1027 Sous Windows 10, activez les règles de réduction de la surface d'attaque (ASR) pour empêcher l'exécution de charges utiles potentiellement obfusquées.
T1036.001 Exiger des fichiers binaires signés.
T1539 Former les utilisateurs à identifier les tentatives d'hameçonnage lorsqu'ils sont invités à entrer leurs données d'identification sur un site dont le domaine ne correspond pas à l'application à laquelle ils se connectent.
T1562.003 Assurez-vous que la variable d'environnement <code>HISTCONTROL</code> est définie sur "ignoredups" au lieu de "ignoreboth" ou "ignorepace".
T1574.006 Lorsque la protection de l'intégrité du système (SIP) est activée dans macOS, les variables d'environnement susmentionnées sont ignorées lors de l'exécution de binaires protégés. Les applications tierces peuvent également tirer parti de l'exécution renforcée d'Apple, en veillant à ce que ces variables d'environnement soient soumises à des restrictions imposées. Les administrateurs peuvent ajouter des restrictions aux applications en définissant les bits setuid et/ou setgid, en utilisant des droits, ou en ayant un segment __RESTRICT dans le binaire Mach-O.
T1574.007
© 2022 The MITRE Corporation. Cet ouvrage est reproduit et distribué avec l'autorisation de The MITRE Corporation.