Questo articolo consente di comprendere e identificare le indicazioni di un server Windows® compromesso. Questo è un documento di altissimo livello, che puoi utilizzare come risorsa per rintracciare un potenziale problema piuttosto che risolvere un server compromesso.
Tipi di compromissione
Questo articolo riguarda due tipi di compromissione:a livello di applicazione e di sistema oa livello di root. Questi sono piuttosto gravi e spesso richiedono un solido piano di ripristino di emergenza per mitigare.
Compromesso a livello di applicazione
Una compromissione a livello di applicazione si verifica quando viene compromesso un servizio o un utente di basso livello. I tipici compromessi in questo gruppo includono i seguenti problemi:
- Deturpazione del sito
- Tagging FTP
- Manipolazione di file FTP
- Iniezione SQL
Questo tipo di compromissione potrebbe alterare i dati sul server. Tuttavia, non ottengono mai l'accesso amministrativo o a livello di root sul server. In questi casi, potresti essere in grado di identificare e proteggere la vulnerabilità. La protezione della vulnerabilità a livello di applicazione potrebbe comportare la rimozione dell'accesso in scrittura da un utente Web anonimo, la rimozione di virus da un server o la protezione di un'applicazione tramite le patch disponibili. Per riparare eventuali file alterati, è necessario eseguire il ripristino dal backup.
Compromissione amministrativa, di sistema oa livello di root
Questo tipo di compromissione si verifica quando un utente malintenzionato ottiene l'accesso amministrativo al sistema e può includere i seguenti problemi:
- Servizio compromesso eseguito come
System
,LocalService
oAdministrative
utente - Account utente compromesso con diritti amministrativi
- Accesso tramite un utente non amministrativo a una posizione riservata agli utenti amministrativi (come directory di sistema e così via)
- Virus trovato nella directory di sistema o amministrativa
- Attività di rete in uscita visibilmente dannosa
- Iniezione SQL (include l'esecuzione dei comandi)
Importante: Quando un utente malintenzionato ottiene questo livello di accesso, non puoi determinare le modifiche che si sono verificate nel corso della compromissione.
Strumenti di Windows che puoi utilizzare per cercare un compromesso
- Elenco attività: Strumento a riga di comando che fornisce dettagli su processi e servizi nel sistema
- Gestione attività: Strumento grafico che fornisce dettagli su processi, statistiche sulle risorse e attività di rete nel sistema
- Gestore delle risorse: Strumento grafico simile a Taskmanager ma fornendo maggiori dettagli sull'utilizzo delle risorse
Esplora un server compromesso
Per esplorare una possibile situazione di compromissione, esegui le seguenti attività, descritte in questa sezione:
- Identifica il compromesso
- Esaminare i processi
- Rivedi i servizi
- Rivedi gli utenti
Identifica il compromesso
Un utilizzo imprevisto della larghezza di banda elevato è spesso un sintomo comune. Poiché gli aggressori di solito compromettono i sistemi che intendono eseguire un servizio di rete su di essi, potrebbe esserci un servizio in esecuzione sul sistema, quindi l'ascolto di una porta dispari potrebbe indicare un server compromesso.
-
Per esaminare le connessioni di rete per TCP, eseguire il comando seguente:
NetStat -naop 'TCP'
-
Per esaminare le connessioni di rete per UDP, esegui il comando seguente:
NetStat** -naop 'UDP'
-
Per contare connessioni specifiche, esegui uno dei seguenti comandi:
NetStat** -naop 'TCP' find /c ":<port>"
Nota: Il TCP interno di Sysinternal view offre strumenti grafici alternativi per questa recensione.
Esamina i processi
Identifica qualsiasi processo sospetto. È probabile che un server compromesso abbia uno o più processi dannosi in esecuzione. A volte puoi identificarli perché contengono errori di battitura, errori grammaticali o una descrizione sospetta.
-
Per elencare i processi in esecuzione sul sistema, eseguire il comando seguente:
Tasklist /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"
-
Per elencare i processi definiti come servizio, eseguire il comando seguente:
Tasklist /svc
-
Per elencare un'istantanea del processo attualmente in esecuzione con lo stesso output dell'elenco dei processi di taskmanager, eseguire il comando seguente:
Get-Process
-
Per elencare i processi e l'utente con cui sono in esecuzione, esegui uno dei seguenti comandi:
gwmi win32_process select Name, @{l="User name";e={$_.getowner().user}}
Esamina i servizi
Cerca errori di battitura, errori grammaticali o descrizioni sospette. Se un servizio sembra discutibile, esamina le proprietà e le dipendenze. Inoltre, determina se il file è eseguibile. Utilizza la GUI dei servizi per visualizzare i servizi in esecuzione.
-
Per elencare i servizi in esecuzione, esegui il comando seguente:
get-service | where-object {$_.Status -eq "Running"}
Esamina gli utenti
Per sapere se un server è compromesso e identificare rapidamente una configurazione errata, rivedi gli account utente di base.
-
Per identificare account utente sconosciuti o con nomi insoliti elencando gli utenti configurati, eseguire il comando seguente:
net user
-
Per identificare gli utenti sconosciuti nel gruppo Administrators locale elencando gli amministratori configurati, eseguire il comando seguente:
net localgroup Administrators
-
Per vedere se un account ospite è abilitato e nel gruppo Amministratori, esegui il comando seguente:
net user guest
Strumenti disponibili da Microsoft Sysinternals
Per ulteriori informazioni, consulta le seguenti fonti:
- Documentazione a Sysinternals
- Link in tempo reale a strumenti interni di sistema
- Sophos AntiRootkit
Utilizza la scheda Feedback per inserire commenti o porre domande. Puoi anche avviare una conversazione con noi.