
Ferramenta de proxy multi-hop para pentesters que permite roteamento de tráfego através de múltiplos nós, tunelamento SOCKS5/SSH, encaminhamento de porta, shell remoto e comunicação criptografada entre nós.

Stowaway é uma ferramenta de proxy multinível escrita em Go, projetada especificamente para profissionais de testes de penetração.
Os usuários podem usar este programa para encaminhar tráfego externo através de múltiplos nós para a rede interna, contornar restrições de acesso à rede, construir uma rede de nós em árvore e gerenciar facilmente as funcionalidades.
Agradeço a todos pelas estrelas. Ao mesmo tempo, sejam bem-vindos para relatar problemas e bugs após o uso. 😘
Por favor, leia atentamente as instruções de uso e as observações no final antes de usar.
Este projeto é apenas para fins de pesquisa e ensino em segurança cibernética. É estritamente proibido usá-lo para qualquer finalidade ilegal. Certifique-se de obter autorização explícita do sistema alvo antes de realizar qualquer teste com esta ferramenta e cumpra rigorosamente as leis e regulamentos relevantes do seu país/região. Quaisquer consequências diretas ou indiretas (incluindo, mas não se limitando a: perda de dados, danos ao sistema, responsabilidade legal) decorrentes do uso desta ferramenta são de responsabilidade exclusiva do usuário. O autor deste projeto não se responsabiliza por qualquer uso indevido ou responsabilidade legal resultante. O uso desta ferramenta implica que você leu, compreendeu e concorda com todo o conteúdo desta isenção de responsabilidade.
make, ou consulte o Makefile para compilar programas específicos.Stowaway possui dois papéis:
admin – lado de controle usado pelo testador de penetraçãoagent – lado controlado implantado pelo testador de penetraçãoOs comandos a seguir iniciam rapidamente uma instância simples do Stowaway:
./stowaway_admin -l 9999./stowaway_agent -c <IP do admin>:9999Parâmetros:
-l Endereço de escuta no modo passivo [ip]:<porta>
-s Chave de criptografia da comunicação do nó, todos os nós (admin && agente) devem ser iguais
-c Endereço do nó alvo no modo ativo
--socks5-proxy Endereço do servidor proxy SOCKS5
--socks5-proxyu Nome de usuário do servidor proxy SOCKS5 (opcional)
--socks5-proxyp Senha do servidor proxy SOCKS5 (opcional)
--http-proxy Endereço do servidor proxy HTTP
--down Tipo de protocolo downstream, padrão é tráfego TCP puro, opções: HTTP/WS
--tls-enable Habilita TLS para comunicação entre nós; quando TLS é ativado, a criptografia AES é desativada
--domain Especifica o domínio TLS SNI/WebSocket; se vazio, padrão é o endereço do nó alvo
--heartbeat Ativa pacotes de heartbeat
Parâmetros:
-l Endereço de escuta no modo passivo [ip]:<porta>
-s Chave de criptografia da comunicação do nó
-c Endereço do nó alvo no modo ativo
--socks5-proxy Endereço do servidor proxy SOCKS5
--socks5-proxyu Nome de usuário do servidor proxy SOCKS5 (opcional)
--socks5-proxyp Senha do servidor proxy SOCKS5 (opcional)
--http-proxy Endereço do servidor proxy HTTP
--reconnect Intervalo de reconexão (em segundos)
--rehost Endereço IP reutilizado na reutilização de porta
--report Porta reutilizada na reutilização de porta
--up Tipo de protocolo upstream, padrão é tráfego TCP puro, opções: HTTP/WS
--down Tipo de protocolo downstream, padrão é tráfego TCP puro, opções: HTTP/WS
--cs Codificação do shell da plataforma de execução, padrão é utf-8, opcional: gbk
--tls-enable Habilita TLS para comunicação entre nós; quando TLS é ativado, a criptografia AES é desativada
--domain Especifica o domínio TLS SNI/WebSocket; se vazio, padrão é o endereço do nó alvo
Este parâmetro é usado da mesma forma para admin e agente, apenas no modo passivo.
Se nenhum endereço IP for especificado, escuta em 0.0.0.0 por padrão.
admin: ./stowaway_admin -l 9999 ou ./stowaway_admin -l 127.0.0.1:9999
agent: ./stowaway_agent -l 9999 ou ./stowaway_agent -l 127.0.0.1:9999
Este parâmetro é usado da mesma forma para admin e agente, disponível nos modos ativo e passivo.
Opcional. Se vazio, significa que a comunicação não é criptografada; caso contrário, a comunicação é criptografada com a chave fornecida pelo usuário.
admin: ./stowaway_admin -l 9999 -s 123
agent: ./stowaway_agent -l 9999 -s 123
Este parâmetro é usado da mesma forma para admin e agente, apenas no modo ativo.
Representa o endereço do nó ao qual se deseja conectar.
admin: ./stowaway_admin -c 127.0.0.1:9999
agent: ./stowaway_agent -c 127.0.0.1:9999
Esses quatro parâmetros são usados da mesma forma para admin e agente, apenas no modo ativo.
--socks5-proxy representa o endereço do servidor proxy SOCKS5; --socks5-proxyu e --socks5-proxyp são opcionais.
--http-proxy representa o endereço do servidor proxy HTTP, usado da mesma forma que SOCKS5.
Sem nome de usuário/senha:
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
Com nome de usuário/senha:
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
Esses dois parâmetros são usados da mesma forma para admin e agente, disponíveis nos modos ativo e passivo.
Observe que admin não tem o parâmetro --up.
Esses parâmetros são opcionais. Se vazios, o tráfego upstream/downstream será TCP puro.
Para que o tráfego upstream/downstream seja HTTP/WS, defina esses parâmetros como http ou ws.