Establishing Persistence
Mantenere l'accesso continuativo a un sistema compromesso, anche dopo reboot o disconnessione della sessione iniziale. ---
🎯 Establishing Persistence on Linux
Obiettivo
Mantenere l'accesso continuativo a un sistema compromesso, anche dopo reboot o disconnessione della sessione iniziale.
🧪 Metodo 1: Creazione di un Utente con Privilegi Elevati
#### 🧾 Comandi principali:
useradd -m nome_utente -s /bin/bash # Crea un nuovo utente con shell bash
passwd nome_utente # Imposta la password per il nuovo utente
usermod -aG root nome_utente # Aggiunge l'utente al gruppo root
usermod -u 15 nome_utente # Modifica l'UID per mimetizzarsi#### 🔍 Verifica:
groups nome_utente # Verifica i gruppi dell'utente📌 Aggiungere l'utente al gruppo root equivale a concedere privilegi amministrativi, quindi è un'operazione estremamente sensibile e deve essere occultata.
🧪 Metodo 2: Persistenza tramite Chiavi SSH (Stealthy)
#### 📦 Modulo Metasploit:
post/linux/manage/sshkey_persistence
#### ✅ Configurazione consigliata:
set SESSION <id_sessione>
set CREATESSHKEY true
set CREATESSH_FOLDER true
set USER nome_utente
run- Crea una coppia di chiavi SSH e le inserisce in
~/.ssh/authorized_keys
- La chiave privata viene salvata nel loot di Metasploit.
#### 🛠️ Accesso successivo:
1. Copia la chiave privata in un file locale: id_rsa_backdoor
2. Imposta i permessi corretti:
chmod 600 id_rsa_backdoor3. Connettiti al target:
ssh -i id_rsa_backdoor nome_utente@<target_ip>✅ Alta stealthiness: difficilmente rilevabile dagli admin se mimetizzato bene.
🧪 Metodo 3: Persistenza via Cron Jobs
#### 📦 Modulo Metasploit:
post/linux/manage/cron_persistence
- Inserisce comandi malevoli o payload in cronjob persistenti.
- Può essere rilevato facilmente esaminando:
crontab -l
cat /etc/crontab
ls /etc/cron.⚠️ Rischio elevato di detection in ambienti monitorati.
🧪 Metodo 4: Persistenza via Systemd Services
#### 📦 Modulo Metasploit:
post/linux/manage/service_persistence
- Crea un servizio di sistema che esegue un payload ad ogni avvio.
- Meno rilevabile dei cron jobs, ma comunque monitorabile via:
systemctl list-units --type=service🧩 Può essere combinato con tecniche di masquerading (es. nomi simili a servizi di sistema legittimi).
🧪 Metodo 5: Persistenza tramite APT Package Manager
#### 📦 Modulo Metasploit:
exploit/linux/local/apt_package_manager_persistence
- Installa un payload che si attiva ogni volta che viene utilizzato il package manager (
apt).
💡 Efficace in ambienti dove il package manager è utilizzato regolarmente.
🛡️ Difese & Contromisure
- Audit su
/etc/passwd,/etc/shadowe/etc/group
- Monitoraggio di file come
authorized_keys,crontab,/etc/systemd/system/.service
- Impiego di strumenti EDR e HIDS (es. OSSEC, Wazuh)
- Logging & Alerting sugli accessi SSH (e.g.
auth.log)
✅ Checklist Operativa
| Tecnica | Stealth | Rilevabilità | Note |
| User creation + root group | Media | Alta | Rapida ma rumorosa |
| SSH Key Persistence | Alta | Bassa | Metodo preferito |
| Cron Job | Bassa | Alta | Facile da rilevare |
| Systemd Service | Media | Media | Buon compromesso |
| APT Package Hook | Alta | Bassa | Raro, ma efficace |
📚 Riferimenti Utili
man useradd,man usermod
- Offensive Security Metasploit Unleashed
Questa guida è pensata per consolidare le competenze richieste in ambito eJPT, ma è pienamente applicabile anche in scenari reali di post-exploitation durante penetration test controllati.