Tutorial di hacking su Linux: Ubuntu Comandi e strumenti
⚡ Riepilogo intelligente
L'hacking di Linux è la pratica di individuare e sfruttare le vulnerabilità dei sistemi Linux. Questa pagina illustra le vulnerabilità prese di mira dagli aggressori, gli strumenti di analisi utilizzati e i controlli che proteggono un server.
Linux è il sistema operativo per server più diffuso, soprattutto per i server web. È open source, il che significa che chiunque può leggerne il codice sorgente. Questa trasparenza ha però un doppio risvolto: chi si occupa della manutenzione lo utilizza per individuare e correggere rapidamente i bug, mentre gli hacker studiano lo stesso codice alla ricerca di vulnerabilità da sfruttare. L'hacking di Linux è la pratica di sfruttare queste vulnerabilità per ottenere accesso non autorizzato a un sistema.
Le sezioni seguenti trattano cos'è Linux, le vulnerabilità di sicurezza che lo riguardano, uno sguardo pratico all'hacking con Ubuntue le contromisure che è possibile mettere in atto.
Nota veloce su Linux
Linux è un sistema operativo open source. Molte distribuzioni sono basate su di esso, tra cui Red Hat Enterprise Linux, Fedora, Debian e UbuntuPoiché il codice sorgente è pubblicato, ricercatori, fornitori e malintenzionati possono tutti esaminarlo. I malintenzionati sfruttano questo accesso per cercare vulnerabilità, mentre la stessa visibilità consente ai manutentori di rilasciare correzioni più rapidamente rispetto a quanto spesso accade con le piattaforme proprietarie. Linux funziona come sistema operativo per server, computer desktop, tablet e dispositivi mobili.
I programmi Linux possono essere gestiti tramite un'interfaccia grafica o dalla riga di comando. Il lavoro da riga di comando è più veloce e preciso rispetto al clic su un'interfaccia grafica, motivo per cui i tester di sicurezza che lavorano su distribuzioni come Kali Linux Trascorrono quasi tutto il loro tempo al terminale. Conoscere i comandi di base è quindi un prerequisito pratico.
Fare riferimento a questo Tutorial Linux per i fondamenti e per il Kali Linux lezione per la distribuzione incentrata sulla sicurezza costruita su di esse.
Vulnerabilità di sicurezza comuni di Linux e vettori di attacco
Gli attacchi a Linux raramente si basano su exploit esotici. La telemetria pubblicata nel corso del 2025 e del 2026 mostra che la maggior parte delle compromissioni tracTorniamo a un piccolo insieme di debolezze ricorrenti, e conoscerle ci dice dove concentrare prima gli sforzi difensivi.
- Credenziali SSH deboli o riutilizzate — I tentativi di attacco brute-force e di credential stuffing contro le connessioni SSH esposte a Internet rappresentano la grande maggioranza delle attività ostili osservate sugli endpoint Linux.
- Errori del kernel e dei pacchetti non corretti — Il team del kernel Linux è diventato un'autorità di numerazione CVE nel 2024 e ha segnalato un aumento delle CVE del kernel da circa 290 nel 2023 a oltre 3,500 l'anno successivo, quindi gli arretrati delle patch si accumulano rapidamente.
- Configurazione errata — account predefiniti, demoni non necessari, file scrivibili da tutti e regole sudo permissive concedono privilegi che non richiedevano alcun exploit per essere ottenuti.
- Applicazioni web vulnerabili — difetti come SQL Injection Il cross-site scripting consente a un aggressore di raggiungere il server attraverso l'applicazione anziché tramite il sistema operativo. Le web shell sono l'artefatto dannoso più comune riscontrato sui server Linux compromessi.
- Bug di escalation dei privilegi — vulnerabilità locali che trasformano un account con privilegi limitati in un account root. Alcune di queste sono rimaste inosservate nel kernel per oltre un decennio prima di essere divulgate.
- Rischio legato alla catena di approvvigionamento e alla dipendenza — i pacchetti di terze parti, le librerie di linguaggio e le immagini container includono codice che nessuno del team operativo ha esaminato.
Nessuno di questi metodi richiede che un aggressore riesca a compromettere Linux stesso. Le analisi di 2025 intrusioni hanno rilevato che circa quattro su cinque non prevedevano l'utilizzo di alcun malware, basandosi invece su configurazioni errate e credenziali rubate.
Strumenti di hacking su Linux
I tester di sicurezza e gli amministratori di sistema utilizzano gli stessi scanner: i primi per individuare le vulnerabilità prima che lo faccia un attaccante, i secondi per verificare che le correzioni siano efficaci. Gli strumenti elencati di seguito sono quelli più frequentemente utilizzati per l'analisi di un host Linux.
| Chiavetta | Tipo | Licenza | Utilizzo tipico su Linux |
| Nessus | Scanner delle vulnerabilità | Commerciale | Esegue la scansione delle impostazioni di configurazione, delle patch mancanti e dei servizi di rete in ambienti eterogenei. |
| Nmap | Scanner di rete e porte | Open source | Identifica gli host in esecuzione su un server, i servizi che espongono e le porte aperte. |
| Lynis | Verifica e protezione dell'host | Open source | Esegue un audit di un sistema in esecuzione rispetto ai parametri di riferimento di sicurezza e segnala le specifiche azioni correttive intraprese. |
| OpenVAS | Scanner delle vulnerabilità | Open source | Scansione delle vulnerabilità di rete, gestita da Greenbone come parte della sua Community Edition. |
L'elenco non è esaustivo; fornisce un'idea degli strumenti disponibili per l'audit. Ubuntu e altri sistemi Linux. Le guide più vecchie raccomandano ancora SARA, Security Auditor's Research Assistant, ma la sua versione finale risale al 2009 e il sito del progetto è offline, quindi Lynis e OpenVAS sono le alternative mantenute.
Attività di hacking: hackerare a Ubuntu Sistema Linux che utilizza PHP
In questo scenario pratico, vedremo come raggiungere un host Linux tramite un'applicazione web, utilizzando PHP come esempio. Non verrà presa di mira alcuna vittima reale. Se volete provare, installate LAMPP, la versione per Linux di XAMPP, sul vostro computer.
PHP Il programma include due funzioni che possono essere utilizzate per eseguire comandi del sistema operativo: exec() e shell_exec(). La funzione exec() restituisce l'ultima riga dell'output del comando, mentre shell_exec() restituisce l'intero risultato del comando come stringa.
A scopo dimostrativo, si supponga che un utente malintenzionato riesca a caricare il seguente file su un server web.
<?php $cmd = isset($_GET['cmd']) ? $_GET['cmd'] : 'ls -l'; echo "executing shell command:-> $cmd</br>"; $output = shell_exec($cmd); echo "<pre>$output</pre>"; ?>
QUI,
Lo script sopra riportato preleva il comando dalla variabile GET denominata cmd. Il comando viene eseguito tramite shell_exec() e il risultato viene visualizzato nel browser.
Il codice sopra riportato può essere sfruttato utilizzando il seguente URL
http://localhost/cp/konsole.php?cmd=ls%20-l
QUI,
- “…konsole.php?cmd=ls%20-l” assegna il valore ls –l alla variabile cmd.
Il comando sul Ubuntu il server viene quindi eseguito come
shell_exec('ls -l') ;
L'esecuzione del codice sopra riportato su un server web produce un risultato simile al seguente.
L'output visualizza semplicemente i file presenti nella directory corrente e i relativi permessi.
Ora supponiamo che l'attaccante invii invece il seguente comando.
rm -rf /
QUI,
- Il comando “rm” elimina i file.
- L'opzione "rf" fa sì che il comando rm venga eseguito in modalità ricorsiva, eliminando tutte le cartelle e i file.
- Il simbolo "/" indica al comando di iniziare l'eliminazione dalla directory principale.
L'attacco URL sarebbe simile a questo
http://localhost/cp/konsole.php?cmd=rm%20-rf%20/
Un solo parametro non convalidato è quindi sufficiente a concedere a un utente malintenzionato tutti i privilegi dell'account del server web. Le due sezioni seguenti servono a impedire che ciò accada e a individuare il problema qualora la prevenzione fallisca.
Come prevenire gli attacchi hacker a Linux
Gli attacchi hacker a Linux sfruttano le vulnerabilità del sistema operativo e del software che vi gira sopra. Un'organizzazione può adottare i seguenti controlli, applicati congiuntamente, per chiudere la maggior parte delle falle descritte in precedenza.
- Gestione delle patch — Le patch correggono i bug che gli aggressori sfruttano per compromettere un sistema. Una politica ben definita garantisce che gli aggiornamenti rilevanti vengano applicati tempestivamente, anziché quando qualcuno se ne ricorda.
- Configurazione corretta del sistema operativo — Disabilita gli account utente inattivi e i daemon non necessari. Modifica le impostazioni predefinite, inclusi i nomi utente predefiniti, le password condivise delle applicazioni e i numeri di porta predefiniti.
- Indurimento SSH — Disabilita l'autenticazione tramite login e password di root, consenti l'accesso solo a utenti o gruppi specifici e limita i tentativi di autenticazione. Questo chiude il punto di ingresso più frequentemente attaccato su Linux.
- Minimo privilegio — Assegna agli account e ai servizi solo i diritti necessari e limita l'uso di sudo a comandi specifici anziché concedere un accesso amministrativo illimitato.
- Controllo obbligatorio degli accessi — mantieni SELinux (famiglia Red Hat) o AppArmor (Debian e Ubuntu) in modalità di applicazione delle regole in modo che un servizio compromesso non possa raggiungere il resto del sistema.
- Convalida dell'input — La dimostrazione di cui sopra funziona solo perché i dati della richiesta raggiungono una funzione della shell. Non passare mai l'input dell'utente a exec() o shell_exec().
- Firewall e segmentazione — esporre solo le porte di cui un servizio ha effettivamente bisogno, utilizzando un firewall e la segmentazione della rete per limitare ciò che un host compromesso può raggiungere.
- Sistemi antintrusione — tali strumenti possono essere utilizzati per rilevare accessi non autorizzati al sistema e alcuni possono anche bloccare il tentativo.
- Backup testati — I backup offline ripristinabili trasformano un comando distruttivo come quello sopra in un'interruzione temporanea anziché in una perdita permanente.
Come individuare un sistema Linux compromesso
La prevenzione alla fine fallisce, quindi la seconda domanda è quanto velocemente ci si accorgerebbe del problema. Il rilevamento su Linux dipende dalla raccolta delle prove corrette prima che si verifichi un incidente, non dopo.
- Registrazione dell'audit — il framework di audit del kernel, auditd, registra l'utilizzo dei privilegi, l'accesso ai file e le chiamate di sistema in un formato che un processo compromesso non può riscrivere silenziosamente. Inoltra questi log dall'host a un raccoglitore centrale.
- Registri di autenticazione — una serie di errori seguiti da un singolo successo in /var/log/auth.log o /var/log/secure è la classica firma di un attacco a forza bruta.
- Processi e connessioni inattesi — Un servizio di ascolto o una connessione in uscita di cui nessuno sa spiegare la provenienza merita di essere indagata immediatamente.
- Monitoraggio dell'integrità dei file — strumenti che eseguono l'hashing dei file binari di sistema e dei file di configurazione segnalano le modifiche ai file che non dovrebbero mai essere modificati.
- Attività pianificate ed elementi di avvio — la persistenza viene solitamente gestita tramite processi cron, unità systemd o script di profilo shell.
- Account nuovi o modificati — cerca utenti sconosciuti, eventuali secondi account con UID 0 e chiavi SSH non aggiunte da nessuno.
- Directory dei server web — poiché le web shell sono i file dannosi più comuni riscontrati sui server Linux, i file script inattesi nella directory principale di un server web meritano particolare attenzione.
- Audit programmati — Utilizza uno strumento di controllo dell'host come Lynis a intervalli regolari e considera ogni report come un elenco di attività da svolgere, anziché come un'attività una tantum.
Se trovi prove di una compromissione, isola l'host, conserva i log e un'immagine del disco prima di modificare qualsiasi cosa e ricostruisci da supporti noti per essere funzionanti piuttosto che tentare di ripulire un sistema in esecuzione. La gestione delle prove in questo ambito è trattata in forensics digitale.
Confini legali ed etici dell'hacking su Linux
Ogni tecnica descritta in questa pagina è legale da praticare su sistemi di proprietà dell'utente o per i quali si dispone di un'autorizzazione scritta per i test, ed è illegale quasi ovunque altrove. L'esercizio sopra riportato viene eseguito deliberatamente su un'installazione locale proprio per questo motivo.
- Autorizzazione scritta — Un ambito di applicazione firmato, una finestra di test concordata e un referente designato sono gli elementi che distinguono un penetration test da un reato. L'approvazione verbale non è sufficiente.
- Rimanere entro i limiti previsti — host, intervalli di indirizzi e tecniche non elencati non sono consentiti, anche se raggiungibili.
- Gestire i dati con attenzione — le prove raccolte durante un test contengono ancora dati personali reali e devono essere conservate in modo sicuro e distrutte successivamente.
- Segnalare in modo responsabile — comunica i risultati al proprietario e concedi il tempo necessario per la risoluzione del problema prima di pubblicare qualsiasi contenuto.
L'esposizione legale è reale: l'accesso non autorizzato a un sistema informatico è un reato penale ai sensi di leggi come il Computer Fraud and Abuse Act statunitense e il Computer Misuse Act britannico. Se vuoi costruire una carriera su queste competenze, segui un percorso riconosciuto: un certificazione di sicurezza Inoltre, avrete a disposizione un laboratorio di vostra proprietà, anziché un server di terzi.


