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
  

Il server SMBv1 in Microsoft Windows Vista SP2; Windows Server 2008 SP2 e R2 SP1; Windows 7 SP1; Windows 8.1; Windows Server 2012 Gold e R2; Windows RT 8.1; e Windows 10 Gold, 1511 e 1607; e Windows Server 2016 consente agli aggressori remoti di eseguire codice arbitrario tramite pacchetti predisposti, alias "Vulnerabilità di esecuzione di codice remoto di Windows SMB". Questa vulnerabilità è diversa da quelle descritte in CVE-2017-0143, CVE-2017-0145, CVE-2017-0146 e CVE-2017-0148.
https://nvd.nist.gov/vuln/detail/CVE-2017-0144

Categorie

CWE-20 : Convalida dell'input improprio
Il prodotto riceve input o dati, ma non convalida o convalida in modo errato che l'input abbia le proprietà necessarie per elaborare i dati in modo sicuro e corretto. Quando è richiesta una convalida personalizzata dell'input, come nel caso dell'applicazione di regole aziendali, è necessaria un'analisi manuale per garantire che la convalida sia implementata correttamente. Le tecniche di fuzzing possono essere utili per rilevare gli errori di convalida degli input. Quando al software vengono forniti input inattesi, il software non deve bloccarsi o diventare altrimenti instabile e deve generare messaggi di errore controllati dall'applicazione. Se si verificano eccezioni o messaggi di errore generati dall'interprete, ciò indica che l'input non è stato rilevato e gestito all'interno della logica dell'applicazione stessa. Considerare l'utilizzo di tecniche di sicurezza linguistico-teoriche (LangSec) che caratterizzano gli input utilizzando un linguaggio formale e costruiscono "riconoscitori" per tale linguaggio. Ciò richiede che il parsing sia un livello distinto che imponga un confine tra l'input grezzo e le rappresentazioni interne dei dati, invece di permettere che il codice del parser sia disperso nel programma, dove potrebbe essere soggetto a errori o incoerenze che creano punti deboli. [REF-1109] [REF-1110] [REF-1111] Utilizzare un framework per la validazione dell'input, come Struts o l'API di validazione OWASP ESAPI. Si noti che l'uso di un framework non risolve automaticamente tutti i problemi di convalida dell'input; occorre tenere presente le debolezze che potrebbero derivare da un uso improprio del framework stesso (CWE-1173). Comprendete tutte le potenziali aree in cui input non attendibili possono entrare nel vostro software: parametri o argomenti, cookie, qualsiasi cosa letta dalla rete, variabili d'ambiente, ricerche DNS inverse, risultati di query, intestazioni di richieste, componenti di URL, e-mail, file, nomi di file, database e qualsiasi sistema esterno che fornisca dati all'applicazione. Ricordate che tali input possono essere ottenuti indirettamente tramite chiamate API. Quando l'applicazione combina dati provenienti da più fonti, eseguire la convalida dopo che le fonti sono state combinate. I singoli elementi dei dati possono superare la fase di convalida ma violare le restrizioni previste dopo la combinazione. Fare particolare attenzione a convalidare tutti gli input quando si invoca codice che attraversa i confini linguistici, ad esempio da un linguaggio interpretato a un codice nativo. Questo potrebbe creare un'interazione inaspettata tra i confini del linguaggio. Assicuratevi di non violare le aspettative del linguaggio con cui vi state interfacciando. Ad esempio, anche se Java potrebbe non essere soggetto a buffer overflow, fornire un argomento di grandi dimensioni in una chiamata al codice nativo potrebbe innescare un overflow. Convertire direttamente il tipo di input nel tipo di dati previsto, ad esempio utilizzando una funzione di conversione che traduce una stringa in un numero. Dopo la conversione nel tipo di dati previsto, assicurarsi che i valori dell'input rientrino nell'intervallo previsto di valori consentiti e che vengano mantenute le coerenze tra più campi. Quando si scambiano dati tra componenti, assicurarsi che entrambi i componenti utilizzino la stessa codifica dei caratteri. Assicurarsi che la codifica corretta sia applicata a ogni interfaccia. Impostare esplicitamente la codifica in uso ogni volta che il protocollo lo consente. Catena: la convalida impropria dell'input (CWE-20) porta all'overflow del numero intero (CWE-190) nei sistemi operativi mobili, come sfruttato in natura da CISA KEV. Catena: la convalida impropria dell'input (CWE-20) porta a un overflow di numeri interi (CWE-190) nei sistemi operativi mobili, come sfruttato in natura per CISA KEV. Catena: il backslash seguito da una newline può aggirare un passaggio di convalida (CWE-20), portando all'iniezione di eval (CWE-95), come sfruttato in natura per CISA KEV. Catena: la convalida insufficiente dell'input (CWE-20) nel browser consente la corruzione dell'heap (CWE-787), come sfruttato in natura per CISA KEV. Catena: convalida impropria dell'input (CWE-20) nel parametro del nome utente, che porta all'iniezione di comandi del sistema operativo (CWE-78), come sfruttato in natura per CISA KEV. Catena: il prodotto di sicurezza presenta una convalida di input non corretta (CWE-20) che porta all'attraversamento di directory (CWE-22), come sfruttato in natura per CISA KEV. Convalida impropria dell'input delle richieste HTTP nel telefono IP, come sfruttato in natura per CISA KEV. Catena: la convalida impropria dell'input (CWE-20) nel prodotto firewall porta a XSS (CWE-79), come sfruttato in natura per CISA KEV. Catena: il server proxy di caching presenta una convalida impropria dell'input (CWE-20) delle intestazioni, consentendo il contrabbando di risposte HTTP (CWE-444) tramite un'iniezione di valori ´LF line ending´ nel programma Perl utilizzando un ID che dovrebbe contenere solo trattini e numeri. Iniezione SQL attraverso un ID che doveva essere numerico. La mancanza di convalida dell'input nel programma di foglio elettronico porta a buffer overflow, integer overflow, errori di indice di array e corruzione della memoria. la convalida insufficiente abilita il driver XSS nel prodotto di sicurezza consente l'esecuzione di codice a causa della convalida insufficiente loop infinito da un pacchetto DNS con un'etichetta che punta a se stesso loop infinito da un pacchetto DNS con un'etichetta che punta a se stesso parametro mancante porta all'arresto anomalo richiesta HTTP con numero di versione del protocollo mancante porta all'arresto anomalo richiesta con parametri mancanti porta all'esposizione di informazioni arresto del sistema con valore di offset non coerente con la dimensione del pacchetto campo non coerente con la dimensione del pacchetto porta alla lettura eccessiva del buffer il prodotto utilizza una denylist per identificare il contenuto potenzialmente pericoloso, consente all'aggressore di bypassare un avviso di sicurezza tramite un'intestazione aggiuntiva il pacchetto vuoto innesca il riavvio di una denylist incompleta consente l'iniezione di SQL Il byte NUL nel nome del tema peggiora l'impatto dell'attraversamento delle directory Il kernel non convalida un puntatore in entrata prima di dereferenziarlo Il prodotto antivirus ha una convalida di input insufficiente delle funzioni SSDT agganciate il prodotto anti-virus consente DoS tramite campi di lunghezza zero il driver non convalida l'input dall'area utente al kernel il kernel non convalida i parametri inviati dall'area utente, consente l'esecuzione di codice la mancata convalida dei campi di lunghezza delle stringhe consente il consumo di memoria o la lettura eccessiva del buffer la mancata convalida del campo di lunghezza porta a un ciclo infinito la mancata convalida dell'input a una IOCTL consente l'esecuzione di codice l'allegato di lunghezza zero causa un crash l'input di lunghezza zero causa il blocco del puntatore non inizializzato tramite una struttura di frame malformata ciclo infinito da una richiesta SMTP lunga il router si blocca con un pacchetto malformato il pacchetto con numero di versione non valido porta alla dereferenziazione del puntatore NULL il crash tramite caratteri multipli ".caratteri "" nell'estensione del file

Riferimenti


 

CPE

cpe avviare fine
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:*:*:*:*:*:*


RIMEDIO


Microsoft

Prodotto Articolo Scaricare
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 descrizione data
42315 Microsoft Windows 7/8.1/2008 R2/2012 R2/2016 R2 - Esecuzione codice remoto SMB "EternalBlue" (MS17-010) 2017-07-11 00:00:00
42031 Microsoft Windows 7/2008 R2 - Esecuzione codice remoto SMB "EternalBlue" (MS17-010) 2017-05-17 00:00:00
42030 Microsoft Windows 8/8.1/2012 R2 (x64) - Esecuzione codice remoto SMB "EternalBlue" (MS17-010) 2017-05-17 00:00:00
41987 Microsoft Windows Server 2008 R2 (x64) - Esecuzione codice remoto SMB 'SrvOs2FeaToNt' (MS17-010) 2017-05-10 00:00:00
41891 Microsoft Windows - Scanner esecuzione codice remoto SMB (MS17-010) (Metasploit) 2017-04-17 00:00:00
47456 DOUBLEPULSAR - Esecuzione e neutralizzazione del carico utile (Metasploit) 2019-10-02 00:00:00

Altro (github, ...)

Url
Nessuna impresa nota


CAPEC


Common Attack Pattern Enumerations and Classifications

id descrizione gravità
10 Buffer Overflow tramite variabili d'ambiente
Alto
101 Iniezione Server Side Include (SSI)
Alto
104 Cross Zone Scripting
Alto
108 Esecuzione della riga di comando tramite SQL Injection
Molto alto
109 Iniezione di mappatura relazionale degli oggetti
Alto
110 Iniezione SQL attraverso la manomissione dei parametri SOAP
Molto alto
120 Codifica doppia
Media
13 Sovvertire i valori delle variabili d'ambiente
Molto alto
135 Iniezione di stringhe di formato
Alto
136 Iniezione LDAP
Alto
14 Overflow del buffer indotto da iniezione lato client
Alto
153 Manipolazione dei dati di input
Media
182 Iniezione flash
Media
209 XSS Utilizzo mancata corrispondenza del tipo MIME
Media
22 Sfruttare la fiducia nel cliente
Alto
23 File Content Injection
Molto alto
230 Dati serializzati con carichi annidati
Alto
231 Carichi di dati serializzati sovradimensionati
Alto
24 Guasto del filtro per overflow del buffer
Alto
250
261 Fuzzing per raccogliere altri dati utente/sensibili adiacenti
Media
267 Sfruttare la codifica alternativa
Alto
28 Fuzzing
Media
3 Usare sequenze di caratteri "fantasma" per bypassare i filtri d'ingresso
Media
31 Accedere/intercettare/modificare i cookie HTTP
Alto
42 Conversione MIME
Alto
43 Sfruttare i livelli multipli di interpretazione dell'input
Alto
45 Overflow del buffer tramite collegamenti simbolici
Alto
46 Variabili e tag di overflow
Alto
47 Overflow del buffer tramite espansione dei parametri
Alto
473 Signature Spoof
52 Inclusione di byte NULL
Alto
53 Postfix, Null Terminate e Backslash
Alto
588 XSS basato su DOM
Molto alto
63 Cross-Site Scripting (XSS)
Molto alto
64 Usare gli slash e la codifica dell'URL combinati per aggirare la logica di convalida
Alto
664 Falsificazione delle richieste lato server
Alto
67 Overflow del formato stringa in syslog()
Molto alto
7 Iniezione SQL cieca
Alto
71 Usare la codifica Unicode per aggirare la logica di convalida
Alto
72 Codifica dell'URL
Alto
73 Nome file controllato dall'utente
Alto
78 Usare gli slash sfuggiti nella codifica alternativa
Alto
79 Usare gli slash nella codifica alternativa
Alto
8 Buffer Overflow in una chiamata API
Alto
80 Usare la codifica UTF-8 per aggirare la logica di validazione
Alto
81
Alto
83 Iniezione XPath
Alto
85 Impronta AJAX
Debole
88 Iniezione di comandi del sistema operativo
Alto
9 Buffer Overflow nelle utilità della riga di comando locali
Alto


MITRE


Tecniche

id descrizione
T1027 File o informazioni offuscate
T1036.001 Masquerading: Firma del codice non valida
T1539 Rubare il cookie di sessione web
T1553.002 Sovvertimento dei controlli di fiducia: firma del codice
T1562.003 Riduzione delle difese: riduzione della registrazione della cronologia dei comandi
T1574.006 Flusso di esecuzione del dirottamento: dirottamento del linker dinamico
T1574.007 Flusso di esecuzione dell'hijack: intercettazione del percorso tramite la variabile d'ambiente PATH
© 2022 The MITRE Corporation. Questo lavoro è riprodotto e distribuito con il permesso di The MITRE Corporation.

Mitigazioni

id descrizione
T1027 Su Windows 10, attivare le regole di riduzione della superficie di attacco (ASR) per impedire l'esecuzione di payload potenzialmente offuscati.
T1036.001 Richiedere binari firmati.
T1539 Addestrare gli utenti a identificare gli aspetti dei tentativi di phishing in cui viene chiesto di inserire le credenziali in un sito che ha un dominio errato per l'applicazione a cui si sta accedendo.
T1562.003 Assicurarsi che la variabile d'ambiente <code>HISTCONTROL</code> sia impostata su "ignoredups" anziché su "ignoreboth" o "ignorespace".
T1574.006 Quando System Integrity Protection (SIP) è abilitato in macOS, le suddette variabili d'ambiente vengono ignorate durante l'esecuzione di binari protetti. Anche le applicazioni di terze parti possono sfruttare l'Hardened Runtime di Apple, garantendo che queste variabili d'ambiente siano soggette a restrizioni imposte. Gli amministratori possono aggiungere restrizioni alle applicazioni impostando i bit setuid e/o setgid, utilizzare i diritti o avere un segmento __RESTRICT nel binario Mach-O.
T1574.007
© 2022 The MITRE Corporation. Questo lavoro è riprodotto e distribuito con il permesso di The MITRE Corporation.