Intrusione da remoto
Dopo aver preso nota dei servizi (con relativa versione), delle condivisioni e del sistema operativo, il cracker, deciso l'obiettivo (singola applicazione o server intero), tenta l'intrusione mediante:
- Attacchi di tipo forza bruta alle password dei servizi di accesso remoto, se presenti (ssh, telnet, VNC, eccetera) o dei programmi Web.
- Attacchi ai servizi e programmi Web rincorrendo exploit provocati in genere da input non validato e buffer overflow. I programmi Web sono generalmente il punto più debole della catena.
- Attacchi a dispositivi di rete o modem fisicamente connessi al server.
- Ingegneria sociale (social engineering).
In più si aggiungono gli attacchi di tipo DoS da remoto (qualcuno ricorderà sicuramente il tool smurf
), che non sono in genere finalizzati ad ottenere il controllo del server, ma al fine di renderlo inutilizzabile.
Ottenimento dell'accesso locale
Una volta eseguito l'exploit su un dato servizio, il cracker guadagna la possibilità di eseguire comandi sul server come utente di tale servizio, se non addirittura da subito una shell di comando.
Se così non fosse, l'aggressore tenterà di ottenere un accesso di shell eseguendo una sessione interattiva xterm
e dirottandone l'output ad un server X remoto in controllo del cracker, eseguendo un telnet (o netcat) inverso, originato appunto dal server attaccato, verso un servizio netcat attivo sulla macchina cracker oppure ricorrendo ad altri metodi.
Il cracker ha la possibilità di rubare o modificare dati nei filesystem esportati o "esportabili" tramite crack di password deboli (Nfs, Ssh+Fuse, Ftp).
Ottenimento dell'accesso root
Ottenuto l'accesso locale quale utente con cui gira il servizio bucato, posto che l'aggressore sia interessato ad ottenere accesso ad un altro servizio o al server intero come root, egli tenterà inoltre:
- Crack delle password (tramite attacco di forza bruta) degli utenti con cui vengono impersonificati i servizi e/o della password di root.
- Buffer overflow locale.
- Exploit su programmi locali e/o kernel (quest'ultimo molto raro).
- Particolari attacchi a file temporanei, link simbolici e librerie condivise usati da taluni programmi (SUID root) che non ne validano preventivamente l'integrità.
- Configurazione non corretta del sistema (permessi "permissivi" a file e directory): se ne parlerà diffusamente.
A questo si aggiungano gli attacchi di tipo DoS locali, per esaurimento di spazio su disco, memoria, risorse CPU e di rete.
Una volta ottenuto l'accesso come root il cracker provvederà:
- Al furto e/o modifica dei dati e delle password contenuti nel sistema.
- All'inserimento di trojan o, più spesso, di versioni alterate dei servizi, specie di login ed Ssh.
- All'installazione di sniffer di rete (quelli per reti Ethernet intercetteranno facilmente il traffico di tutti i sistemi dello stesso segmento di rete, ma possono andare anche oltre).
- Alla eventuale modifica dello stesso kernel.