
Strumento proxy multi-hop per penetration tester che consente il routing del traffico attraverso più nodi, tunneling SOCKS5/SSH, port forwarding, shell remota e comunicazione crittografata tra nodi.

Stowaway è uno strumento proxy multi-livello sviluppato in Go, progettato specificamente per i penetration tester.
Gli utenti possono utilizzare questo programma per instradare il traffico esterno attraverso più nodi proxy verso la rete interna, bypassando le restrizioni di accesso alla rete, costruendo una rete di nodi ad albero e gestendola facilmente.
Grazie a tutti per le stelle, e benvenuti a segnalare problemi e bug dopo l'uso 😘
Si prega di leggere attentamente le istruzioni e le note alla fine del documento prima di utilizzarlo.
Questo progetto è destinato esclusivamente alla ricerca sulla sicurezza informatica e a scopi didattici. È severamente vietato utilizzarlo per scopi illegali. Assicurati di avere l'autorizzazione esplicita del sistema di destinazione prima di eseguire qualsiasi test con questo strumento e di rispettare rigorosamente le leggi e i regolamenti pertinenti del tuo paese/regione. Qualsiasi conseguenza diretta o indiretta derivante dall'uso di questo strumento (incluse ma non limitate a: perdita di dati, danni al sistema, responsabilità legali) è a carico dell'utente. L'autore del progetto non si assume alcuna responsabilità per abusi o responsabilità legali derivanti da tali abusi. L'utilizzo di questo strumento implica che hai letto, compreso e accettato tutti i termini di questa dichiarazione di esclusione di responsabilità.
make per compilare direttamente il programma completo per più piattaforme, oppure consulta il Makefile per compilare un programma specificoStowaway include due ruoli:
admin: il controller principale usato dal penetration testeragent: il nodo controllato distribuito dal penetration testerI comandi seguenti avviano rapidamente l'istanza più semplice di Stowaway:
./stowaway_admin -l 9999./stowaway_agent -c <IP_di_stowaway_admin>:9999Parametri:
-l Indirizzo di ascolto in modalità passiva [ip]:<porta>
-s Chiave di crittografia della comunicazione tra nodi (admin && agent devono corrispondere)
-c Indirizzo del nodo di destinazione in modalità attiva
--socks5-proxy Indirizzo del server proxy SOCKS5
--socks5-proxyu Nome utente del server proxy SOCKS5 (opzionale)
--socks5-proxyp Password del server proxy SOCKS5 (opzionale)
--http-proxy Indirizzo del server proxy HTTP
--down Protocollo downstream, default: traffico TCP grezzo, opzioni: HTTP/WS
--tls-enable Abilita TLS per la comunicazione tra nodi. Se abilitato, la crittografia AES viene disattivata
--domain Specifica il dominio TLS SNI/WebSocket, se vuoto, default: indirizzo del nodo di destinazione
--heartbeat Abilita i pacchetti heartbeat
Parametri:
-l Indirizzo di ascolto in modalità passiva [ip]:<porta>
-s Chiave di crittografia della comunicazione tra nodi
-c Indirizzo del nodo di destinazione in modalità attiva
--socks5-proxy Indirizzo del server proxy SOCKS5
--socks5-proxyu Nome utente del server proxy SOCKS5 (opzionale)
--socks5-proxyp Password del server proxy SOCKS5 (opzionale)
--http-proxy Indirizzo del server proxy HTTP
--reconnect Intervallo di riconnessione in secondi
--rehost Indirizzo IP da riutilizzare per il riutilizzo delle porte
--report Porta da riutilizzare per il riutilizzo delle porte
--up Protocollo upstream, default: traffico TCP grezzo, opzioni: HTTP/WS
--down Protocollo downstream, default: traffico TCP grezzo, opzioni: HTTP/WS
--cs Codifica della shell della piattaforma in esecuzione, default: utf-8, opzione: gbk
--tls-enable Abilita TLS per la comunicazione tra nodi. Se abilitato, la crittografia AES viene disattivata
--domain Specifica il dominio TLS SNI/WebSocket, se vuoto, default: indirizzo del nodo di destinazione
Questo parametro ha lo stesso uso per admin && agent, applicabile solo in modalità passiva
Se non si specifica un indirizzo IP, l'ascolto avviene su 0.0.0.0
admin: ./stowaway_admin -l 9999 oppure ./stowaway_admin -l 127.0.0.1:9999
agent: ./stowaway_agent -l 9999 oppure ./stowaway_agent -l 127.0.0.1:9999
Questo parametro ha lo stesso uso per admin && agent, applicabile sia in modalità attiva che passiva
Opzionale: se omesso, la comunicazione non sarà crittografata; altrimenti verrà crittografata con la chiave fornita dall'utente
admin: ./stowaway_admin -l 9999 -s 123
agent: ./stowaway_agent -l 9999 -s 123
Questo parametro ha lo stesso uso per admin && agent, applicabile solo in modalità attiva
Rappresenta l'indirizzo del nodo a cui connettersi
admin: ./stowaway_admin -c 127.0.0.1:9999
agent: ./stowaway_agent -c 127.0.0.1:9999
Questi quattro parametri hanno lo stesso uso per admin && agent, applicabili solo in modalità attiva
--socks5-proxy specifica l'indirizzo del server proxy SOCKS5; --socks5-proxyu e --socks5-proxyp sono opzionali
--http-proxy specifica l'indirizzo del server proxy HTTP, utilizzato come il SOCKS5
Senza nome utente/password:
admin: ./stowaway_admin -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx
agent: ./stowaway_agent -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx
Con nome utente/password:
admin: ./stowaway_admin -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx --socks5-proxyu xxx --socks5-proxyp xxx
agent: ./stowaway_agent -c 127.0.0.1:9999 --socks5-proxy xxx.xxx.xxx.xxx --socks5-proxyu xxx --socks5-proxyp xxx
Questi due parametri hanno lo stesso uso per admin && agent, applicabili sia in modalità attiva che passiva
Nota: admin non ha il parametro --up
Opzionali: se omessi, il traffico upstream/downstream sarà TCP grezzo
Per utilizzare traffico HTTP/WS upstream/downstream, impostare questi parametri su http o ws
admin: ./stowaway_admin -c 127.0.0.1:9999 --down ws
agent: ./stowaway_agent -c 127.0.0.1:9999 --up ws oppure ./stowaway_agent -c 127.0.0.1:9999 --up ws --down ws
Inoltre, due punti da notare:
admin: ./stowaway_admin -c 127.0.0.1:9999 --down ws
agent: ./stowaway_agent -l 9999 --up ws
In questo caso, l'agent deve impostare --up su ws, altrimenti si verificherà un errore di rete.
Lo stesso vale tra agent.
Supponiamo che agent-1 stia ascoltando sulla porta 127.0.0.1:10000 in attesa di connessioni figlio, con --down ws
Allora anche agent-2 deve impostare --up su ws, altrimenti errore di rete.
./stowaway_agent -c 127.0.0.1:10000 --up wsSe devi utilizzare reverse proxy come nginx, usa il protocollo WS con TLS.
Questo parametro si applica solo all'agent, e solo in modalità attiva
Opzionale: se non impostato, il nodo non tenterà di riconnettersi dopo che la connessione di rete si interrompe. Se impostato, il nodo tenterà di riconnettersi al nodo padre ogni x (secondi specificati) secondi.
admin: ./stowaway_admin -l 9999
agent: ./stowaway_agent -c 127.0.0.1:9999 --reconnect 10
Nell'esempio sopra, se la connessione tra agent e admin si interrompe, l'agent tenterà di riconnettersi a admin ogni 10 secondi.
Lo stesso vale tra agent.
Inoltre, --reconnect può essere usato insieme a --socks5-proxy/--socks5-proxyu/--socks5-proxyp/--http-proxy: l'agent tenterà di riconnettersi attraverso il proxy specificato all'avvio.
Questi due parametri sono speciali, usati solo sul lato agent. Vedere la sezione sul riutilizzo delle porte di seguito per i dettagli.
Questo parametro si applica solo all'agent, sia in modalità attiva che passiva
Serve principalmente per risolvere il problema della codifica nel comando 'shell'. Quando l'agent viene eseguito su una piattaforma con codifica console gbk (ad esempio Windows tipicamente) e l'admin su una piattaforma con codifica utf-8, è necessario impostare questo parametro su 'gbk'.
./stowaway_agent -c 127.0.0.1:9999 -s 123 --cs gbkQuesto parametro ha lo stesso uso per admin && agent, applicabile sia in modalità attiva che passiva
Impostando questa opzione, il traffico tra nodi viene crittografato con TLS
Esempio:
./stowaway_admin -l 10000 --tls-enable -s 123./stowaway_agent -c localhost:10000 --tls-enable -s 123Nota: quando questo parametro è abilitato, la crittografia AES viene disattivata per impostazione predefinita; il parametro -s sarà utilizzato solo per l'autenticazione reciproca tra nodi e la funzione di riutilizzo delle porte.
Inoltre, quando questo parametro è abilitato, assicurarsi che tutti i nodi della rete (incluso admin) lo abbiano abilitato.
Questo parametro ha lo stesso uso per admin && agent, applicabile solo in modalità attiva
Impostando questa opzione, è possibile specificare l'opzione SNI per la negoziazione TLS o l'Host di destinazione per WebSocket
Esempio:
./stowaway_admin -l 10000 --tls-enable -s 123./stowaway_agent -c xxx.xxx.xxx.xxx:10000 --tls-enable -s 123 --domain xxx.comQuesto parametro si applica solo all'admin, sia in modalità attiva che passiva
Impostando questa opzione, admin invierà continuamente pacchetti heartbeat al primo nodo, mantenendo la connessione persistente anche quando c'è un reverse proxy in mezzo.
Supponiamo che ci sia un reverse proxy come nginx tra admin e agent, che fa da proxy dalla porta 8080 alla porta 8000. Esempio:
./stowaway_admin -l 8000 --tls-enable -s 123 --down ws --heartbeat./stowaway_agent -c xxx.xxx.xxx.xxx:8080 --tls-enable -s 123 --domain xxx.com --up wsAttualmente Stowaway offre il riutilizzo delle porte basato sulle funzionalità SO_REUSEPORT e SO_REUSEADDR, e il riutilizzo basato su IPTABLES.
Modalità SO_REUSEPORT e SO_REUSEADDR
Supponiamo che l'agent utilizzi il riutilizzo per la porta 80.
In questo caso, l'agent deve impostare i parametri --rehost, --report e -s.
--rehost: indirizzo IP da riutilizzare, non può essere 0.0.0.0, di solito è l'indirizzo esterno della scheda di rete.--report: porta da riutilizzare.-s: chiave di comunicazione.Supporto principalmente per ambienti Windows e Mac; Linux funziona ma con più limitazioni.
./stowaway_admin -c 192.168.0.105:80 -s 123./stowaway_agent --report 80 --rehost 192.168.0.105 -s 123Modalità IPTABLES
Supponiamo che l'agent utilizzi il riutilizzo per la porta 22.
In questo caso, l'agent deve impostare i parametri -l, --report e -s.
Gli esempi sopra mostrano solo connessioni tra admin e agent; le connessioni tra agent e agent sono identiche.
Se l'agent viene terminato con ctrl-c o kill, il programma pulirà automaticamente le regole iptables. Tuttavia, se viene ucciso con kill -9, non viene eseguita la pulizia automatica.
Per evitare che l'agent esca in modo anomalo senza pulire le regole iptables, causando l'inaccessibilità del servizio riutilizzato,
quando è necessario chiudere, esegui: python reuse.py --stop --rhost xxx.xxx.xxx.xxx --rport xxx
Questo disattiverà le regole di forward, consentendo l'accesso normale al servizio originale.
Se si utilizza la modalità IPTABLES per il riutilizzo delle porte, l'ascolto sarà forzato su 0.0.0.0, non è possibile specificare un IP con il parametro -l.
Dagli esempi precedenti, abbiamo visto solo admin e un agent.
La rete multilivello è il cuore.
In Stowaway, per creare una rete multilivello è necessario utilizzare i comandi listen, connect, sshtunnel nell'admin.
Facciamo un semplice esempio:
./stowaway_admin -l 9999 -s 123A questo punto agent-1 è già connesso a admin.
./stowaway_agent -c 127.0.0.1:9999 -s 123Ora l'utente vuole connettere anche agent-2, come segue:
./stowaway_agent -l 10000 -s 123Allora l'utente può, tramite admin, digitare use 0 -> connect <IP di agent-2>:10000 per aggiungerlo alla rete come figlio di agent-1.
Supponiamo ora che l'utente voglia connettere un altro nodo agent-3, ma agent-1 non può raggiungere agent-3.
Allora l'utente può, tramite admin, digitare use 0 -> listen -> selezionare 1.Normal Passive -> inserire 10001 e così far sì che agent-1 sia in ascolto sulla porta 10001 in attesa di connessioni figlio.
Dopo che l'admin ha completato l'operazione, agent-3 viene avviato come segue:
./stowaway_agent -c 127.0.0.1:10001 -s 123In questo modo, agent-3 viene aggiunto come un altro figlio di agent-1.
Per una descrizione dettagliata di listen e sshtunnel, vedere la sezione dei comandi di seguito.
Stowaway supporta attualmente diverse modalità di riconnessione, riassunte di seguito:
Innanzitutto, quando un nodo padre cade, solo un tipo di nodo terminerà attivamente: quelli che erano stati avviati in modalità attiva e senza riconnessione.
Se è stata impostata la riconnessione, il nodo tenterà di riconnettersi all'intervallo specificato.
Inoltre, tutti i nodi avviati in modalità passiva non termineranno attivamente, ma rimarranno in ascolto sulla porta specificata in base ai parametri di avvio. A questo punto l'utente può ancora utilizzare i comandi connect o sshtunnel per riconnettere questi nodi alla rete.
Se a causa di fluttuazioni di rete o caduta di un nodo intermedio, un ramo si disconnette, quando si tenta di riconnettersi attivamente, è necessario connettersi al nodo testa della catena mancante. Ad esempio: admin, poi node1, node1 si divide in due rami: node1->node2->node3->node4 e node1->node5->node6. Se node2 cade, node3 e node4 non cadranno, ma rimarranno attivi. A questo punto l'utente ha due opzioni per riconnettere node3 e node4: una è, se node1 può raggiungere direttamente node3, l'utente può in qualsiasi momento riconnettere node3 alla rete da node1 usando il comando connect o sshtunnel (nota: anche se node1 può raggiungere anche node4, non connettere direttamente node4, ma connettere il nodo testa della catena mancante (node3->node4), cioè node3). In questo modo, node3 e node4 verranno riconnessi alla rete. L'altra opzione è, se node1 non può raggiungere direttamente node3 (cioè deve passare attraverso node2), allora prima riavvia node2 e connettilo alla rete, poi su node2 usa connect o sshtunnel per connettere node3, aggiungendo così node3 e node4 alla rete.
Quando un nodo cade, tutti i servizi socks, backward e forward associati a quel nodo e ai suoi figli verranno forzatamente interrotti.
Nella console admin, l'utente può usare il tasto TAB per completare i comandi e i tasti freccia per la cronologia/spostamento del cursore.
La console admin ha due livelli. Il primo è il pannello principale, con i seguenti comandi:
help: mostra le informazioni di aiuto del pannello principale(admin) >> help
help Show help information
detail Display connected nodes' detail
topo Display nodes' topology
use <id> Select the target node you want to use
exit Exit Stowaway
detail: mostra i dettagli dei nodi online(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000 Hostname: ph4ntoms-MBP.lan User: ph4ntom
Memo:
topo: mostra le relazioni padre-figlio dei nodi online(admin) >> topo
Node[0]'s children ->
Node[1]
Node[1]'s children ->
use: usa un agente specifico(admin) >> use 0
(node 0) >>
exit: esce da Stowaway(admin) >> exit
[*] Do you really want to exit stowaway?(y/n): y
[*] BYE!
Quando l'utente seleziona un agente con il comando use, entra nel pannello del nodo (secondo livello), con i seguenti comandi:
help: mostra le informazioni di aiuto del pannello del nodo(node 0) >> help
help Show help information
status Show node status,including socks/forward/backward
listen Start port listening on current node
addmemo <string> Add memo for current node
delmemo Delete memo of current node
ssh <ip:port> Start SSH through current node
shell Start an interactive shell on current node
socks <lport> [username] [pass] Start a socks5 server
stopsocks Shut down socks services
connect <ip:port> Connect to a new node
sshtunnel <ip:sshport> <agent port> Use sshtunnel to add the node into our topology
upload <local filename> <remote filename> Upload file to current node
download <remote filename> <local filename> Download file from current node
forward <lport> <ip:port> Forward local port to specific remote ip:port
stopforward Shut down forward services
backward <rport> <lport> Backward remote port(agent) to local port(admin)
stopbackward Shut down backward services
shutdown Terminate current node
back Back to parent panel
exit Exit Stowaway
status: mostra lo stato di socks/forward/backward del nodo corrente(node 0) >> status
Socks status:
ListenAddr: 0.0.0.0:10000 Username: Password:
-------------------------------------------------------------------------------------------
Forward status:
[1] Listening Addr: [::]:20000 , Remote Addr: 192.168.1.1:22 , Active Connections: 0
[2] Listening Addr: [::]:30000 , Remote Addr: 192.168.1.1:22 , Active Connections: 0
-------------------------------------------------------------------------------------------
Backward status:
[1] Remote Port: 40000 , Local Port: 50000 , Active Connections: 0
listen: comanda all'agente di ascoltare su una porta e attendere la connessione di un nodo figlio(node 0) >> listen
[*] MENTION! If you choose IPTables Reuse or SOReuse, you MUST CONFIRM that the node was initially started in the corresponding way!
[*] When you choose IPTables Reuse or SOReuse, the node will use the initial config(when node started) to reuse port!
[*] Please choose the mode(1.Normal passive / 2.IPTables Reuse / 3.SOReuse): 1
[*] Please input the [ip:]<port> : 10001
[*] Waiting for response......
[*] Node is listening on 10001
Nota: listen è un comando speciale. Ha tre modalità:
Normal passive: l'agente ascolta sulla porta di destinazione in modo normale e attende la connessione di un nodo figlio.IPTables Reuse: l'agente riutilizza una porta con il metodo IPTables Reuse e attende la connessione di un nodo figlio.SOReuse: l'agente riutilizza una porta con il metodo SOReuse e attende la connessione di un nodo figlio.La prima modalità è la più comune. Se il nodo padre ascolta in questo modo, il nodo figlio necessita solo di -c <ip del padre>:<porta> per unirsi alla rete.
La seconda e terza modalità sono speciali. Se l'utente sceglie la seconda o la terza, deve assicurarsi che il nodo corrente sia stato avviato a sua volta con il riutilizzo delle porte, altrimenti queste modalità non funzioneranno.
Nella seconda e terza modalità, l'utente non deve inserire alcuna informazione; il nodo utilizzerà automaticamente i parametri con cui è stato avviato per riutilizzare la porta e prepararsi ad accettare connessioni figlio.
Inoltre, listen accetta una sola connessione figlio alla volta. Se sono necessarie più connessioni figlio, eseguire il comando listen più volte.
addmemo: aggiunge un memo al nodo corrente(node 0) >> addmemo test
[*] Memo added!
(node 0) >> exit
(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000 Hostname: ph4ntoms-MBP.lan User: ph4ntom
Memo: test
delmemo: elimina il memo del nodo corrente(node 0) >> delmemo
[*] Memo deleted!
(node 0) >> exit
(admin) >> detail
Node[0] -> IP: 127.0.0.1:10000 Hostname: ph4ntoms-MBP.lan User: ph4ntom
Memo:
ssh: comanda al nodo di connettersi in SSH a un host di destinazione(node 0) >> ssh 127.0.0.1:22
[*] Please choose the auth method(1.username&&password / 2.certificate): 1
[*] Please enter the username: ph4ntom
[*] Please enter the password: *****
[*] Waiting for response.....
[*] Connect to target host via ssh successfully!
# ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:03:56]
$ whoami
ph4ntom
# ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:04:16]
$
In questa modalità, il tasto TAB è disabilitato.
shell: ottiene una shell sul nodo corrente(node 0) >> shell
[*] Waiting for response.....
[*] Shell is started successfully!
bash: no job control in this shell
The default interactive shell is now zsh.
To update your account to use zsh, please run `chsh -s /bin/zsh`.
For more details, please visit https://support.apple.com/kb/HT208050.
bash-3.2$ whoami
ph4ntom
bash-3.2$
In questa modalità, il tasto TAB è disabilitato.
socks: avvia un servizio SOCKS5 sul nodo corrente(node 0) >> socks 7777
[*] Trying to listen on 0.0.0.0:7777......
[*] Waiting for response......
[*] Socks start successfully!
(node 0) >>
Nota: la porta 7777 qui non viene aperta sull'agent, ma sull'admin.
Per impostare nome utente e password, modificare il comando in socks 7777 <tuo_nome_utente> <tua_password>.
Per specificare un'interfaccia di ascolto, modificare il comando in socks xxx.xxx.xxx.xxx:7777.
stopsocks: ferma il servizio SOCKS5 sul nodo corrente(node 0) >> stopsocks
Socks Info ---> ListenAddr: 0.0.0.0:7777 Username: <null> Password: <null>
[*] Do you really want to shut down socks?(yes/no): yes
[*] Closing......
[*] Socks service has been closed successfully!
(node 0) >>
connect: comanda al nodo corrente di connettersi a un altro nodo figlioagent-1: ./stowaway_agent -l 10002
(node 0) >> connect 127.0.0.1:10002
[*] Waiting for response......
[*] New node online! Node id is 1
(node 0) >>
sshtunnel: comanda al nodo corrente di connettersi a un altro nodo figlio tramite tunnel SSHagent-2: ./stowaway_agent -l 10003
(node 0) >> sshtunnel 127.0.0.1:22 10003
[*] Please choose the auth method(1.username&&password / 2.certificate): 1
[*] Please enter the username: ph4ntom
[*] Please enter the password: ******
[*] Waiting for response.....
[*] New node online! Node id is 2
(node 0) >>
In ambienti di rete fortemente limitati, è possibile utilizzare il tunnel SSH per mascherare il traffico di Stowaway come traffico SSH, bypassando così le limitazioni del firewall.
upload: carica un file sul nodo corrente(node 0) >> upload test.7z test.xxx
[*] File transmitting, please wait...
136.07 KiB / 136.07 KiB [-----------------------------------------------------------------------------------] 100.00% ? p/s 0s
download: scarica un file dal nodo corrente(node 0) >> download test.xxx test.xxxx
[*] File transmitting, please wait...
136.07 KiB / 136.07 KiB [-----------------------------------------------------------------------------------] 100.00% ? p/s 0s
forward: esegue il forward di una porta locale (admin) su una porta remota(node 0) >> forward 9000 127.0.0.1:22
[*] Trying to listen on 0.0.0.0:9000......
[*] Waiting for response......
[*] Forward start successfully!
(node 0) >>
$ ssh 127.0.0.1 -p 9000
Password:
# ph4ntom @ ph4ntoms-MBP in ~ 👑 [17:19:51]
$
stopforward: ferma il servizio di forward sul nodo corrente(node 0) >> stopforward
[0] All
[1] Listening Addr : [::]:9000 , Remote Addr : 127.0.0.1:22 , Active Connections : 1
[*] Do you really want to shut down forward?(yes/no): yes
[*] Please choose one to close: 1
[*] Closing......
[*] Forward service has been closed successfully!
backward: esegue il backward di una porta remota (agent) sulla porta locale (admin)(node 0) >> backward 9001 22
[*] Trying to ask node to listen on 0.0.0.0:9001......
[*] Waiting for response......
[*] Backward start successfully!
(node 0) >>
$ ssh 127.0.0.1 -p 9001
Password:
# ph4ntom @ ph4ntoms-MBP in ~ 🌈 [17:22:14]
$
stopbackward: ferma il servizio di backward sul nodo corrente(node 0) >> stopbackward
[0] All
[1] Remote Port : 9001 , Local Port : 22 , Active Connections : 1
[*] Do you really want to shut down backward?(yes/no): yes
[*] Please choose one to close: 1
[*] Closing......
[*] Backward service has been closed successfully!
shutdown: comanda al nodo corrente di andare offline(node 1) >> shutdown
(node 1) >>
[*] Node 1 is offline!
back: torna al pannello principale(node 1) >> back
(admin) >>
exit: esce da Stowaway(node 1) >> exit
[*] Do you really want to exit stowaway?(y/n): y
[*] BYE!
ansicon.exe -i. Altrimenti, l'admin potrebbe avere problemi di visualizzazione dei caratteri.UDP ASSOCIATE basato sullo standard RFC1928. Quando si utilizza il proxy SOCKS5 UDP, assicurati che il programma utilizzato (ad esempio scanner) costruisca i pacchetti secondo lo standard RFC1928 e gestisca autonomamente la perdita di pacchetti.
Stowaway è ora parte del Progetto 404 StarLink
Un ringraziamento ai seguenti contributori e progetti per l'aiuto durante lo sviluppo di Stowaway:
-l: la porta che non può essere normalmente raggiunta, cioè quella che vuoi che l'agent ascolti e accetti le connessioni.--report: porta da riutilizzare.-s: chiave di comunicazione.Supporto solo per ambienti Linux; l'agent modificherà automaticamente le regole IPTABLES, necessita di privilegi root.
agent: ./stowaway_agent --report 22 -l 10000 -s 123
Dopo che l'agent è stato avviato, usa reuse.py nella directory script.
Imposta prima il valore di SECRET (il valore della chiave di comunicazione usata all'avvio dei nodi).
Poi esegui: python reuse.py --start --rhost xxx.xxx.xxx.xxx --rport xxx
--rhost: indirizzo dell'agent--rport: porta riutilizzata, in questo esempio 22A questo punto admin può connettersi: ./stowaway_admin -c 192.168.0.105:22 -s 123