Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
psc — Criptografia E2E para sessões tty multi-hop ou portshells + encaminhamento de portas TCP/UDP | Kitploit
Ferramentas/GitHubGitHub/stealth/psc
Ferramentas de Criptografia/DescriptografiaAnálise ForenseSegurança de RedeTestes de PenetraçãoRed Teaming
GitHubstealth/psc

psc

Criptografia E2E para sessões tty multi-hop ou portshells + encaminhamento de portas TCP/UDP

Ver Repositório
1332514há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

PortShellCrypter -- PSC

Este projeto – assim como seu projeto irmão crash – pertence ao meu conjunto de ferramentas anti-censura que permite configurar shells criptografadas totalmente funcionais e encaminhamento TCP/UDP em ambientes censores hostis. Também é útil para perícia forense para despejar dados de dispositivos via UART ou adb quando nenhum outro meio estiver disponível.

asciicast Consulta DNS e sessão SSH encaminhadas por uma conexão UART para um Pi

PSC permite criptografar de ponta a ponta sessões de shell, com um ou múltiplos saltos, sendo agnóstico em relação ao transporte subjacente, desde que seja confiável e possa enviar/receber dados codificados em Base64 sem modificar/filtrar. Junto com o pty de ponta a ponta que você recebe (por exemplo, dentro de um port-shell), você pode encaminhar conexões TCP e UDP, semelhante ao parâmetro -L do OpenSSH. Isso funciona de forma transparente e sem a necessidade de um endereço IP atribuído localmente no ponto de partida. Isso permite que peritos forenses e testadores de penetração criem conexões de rede, por exemplo, via:

  • Sessões UART para um dispositivo
  • Sessões adb shell, se o adbd OEM não suportar encaminhamento TCP
  • Sessões telnet
  • Conexões discadas via modem sem ppp
  • Outros tipos de logins de console
  • Sessões mistas SSH/telnet/modem
  • ...

Imagine que você teria uma sessão ppp invisível dentro da sua sessão de shell, sem que o peer remoto realmente suporte ppp.

Funciona em Linux, Android, OSX, Windows, FreeBSD, NetBSD e (possivelmente) OpenBSD.

PSC também inclui suporte a proxy SOCKS4 e SOCKS5 para ter sessões reais de navegação web via port-shells ou conexões discadas remotamente.

Construção

Edite o Makefile para refletir suas chaves pré-compartilhadas, conforme definido no topo do Makefile.

Depois basta digitar make no Linux e OSX.

No BSD você precisa instalar o GNU make e invocar gmake em seu lugar.

No Windows você precisa instalar cygwin e selecionar os pacotes apropriados gcc, gcc-g++, make e git.

No Linux, o PSC usará terminais pseudo Unix98, em outros sistemas usará POSIX pty, mas isso deve ser transparente para você. Uma vez adicionei suporte a pty 4.4BSD e SunOS na idade da pedra por uma razão específica, então pode ou não compilar até com Solaris.

orgulhosamente patrocinado por:

Uso

Simples e direto. Na sua máquina local, execute pscl, e passe quaisquer portas TCP ou UDP que você deseja encaminhar do site remoto para um endereço específico. Por exemplo:

linux:~ > ./pscl -T 1234:[192.168.0.254]:22 -U 1234:[8.8.8.8]:53

PortShellCrypter [pscl] v0.60 (C) 2006-2020 stealth -- github.com/stealth/psc

pscl: set up local TCP port 1234 to proxy to 192.168.0.254:22 @ remote.
pscl: set up local UDP port 1234 to proxy to 8.8.8.8:53 @ remote.

pscl: Waiting for [pscr] session to appear ...
linux:~ >

[ UART / SSH / ... login to remote side ... ]

No site remoto (o último salto) com a sessão de shell, não importa se está em um port-shell, SSH, login de console etc, você executa pscr:

linux:~ > ./pscr

PortShellCrypter [pscr] v0.60 (C) 2006-2020 stealth -- github.com/stealth/psc


pscl: Seen STARTTLS sequence, enabling crypto.
linux:~ >

Assim que você executa pscr, ambas as extremidades estabelecem um handshake criptográfico e sobrepõem um protocolo adicional sobre sua sessão existente, que é transparente para você. Você pode então conectar-se a 127.0.0.1:1234 na sua máquina local para alcançar 192.168.0.254:22 via TCP ou o resolvedor 8.8.8.8 via UDP. Isso também funciona com endereços [IPv6], se o site remoto tiver conectividade IPv6. Na verdade, você pode até usá-lo para traduzir software IPv4 para IPv6, já que você sempre se conecta a 127.0.0.1 no lado local.

Você pode passar múltiplos parâmetros -T e -U. Se você perder o controle se sua sessão já está criptografada de ponta a ponta, pode enviar um SIGUSR1 para o processo local pscl, e ele informará.

PSC também é útil se você quiser usar tor a partir de um shell SSH remoto, onde você pode encaminhar a porta socks5 e a porta DNS para o endereço 127.0.0.1 do host remoto. Como o SSH não encaminha pacotes UDP, você normalmente usaria dois conectores socat ou similar para resolver via nó tor. PSC tem a vantagem de manter os limites dos datagramas UDP, enquanto socat sobre SSH -L pode quebrar os limites dos datagramas e criar requisições DNS malformadas.

A sessão será criptografada com aes_256_ctr de uma PSK que você escolhe no Makefile. Esse esquema criptográfico é maleável, mas adicionar dados AAD ou OAD aumenta o tamanho do pacote, onde cada byte conta, pois em sessões interativas e devido à codificação Base64, cada caractere digitado já causa muito mais dados a serem enviados.

Sessões UART podem ser usadas via screen, mas por exemplo não via minicom, pois minicom cria janelas invisíveis com linhas de status e age como um filtro que destrói o protocolo do PSC. PSC tenta detectar filtragem e pode conviver com certa quantidade de adulteração de dados, mas em algumas situações não é possível recuperar. Algo semelhante com tmux. Você deve evitar empilhar manipuladores pty com PSC que adulteram/processam demais os dados de entrada.

A variável de ambiente SHELL precisa estar definida tanto para pscl quanto para pscr para que o PSC saiba qual shell executar no pty. SHELL está definida na maioria dos ambientes por padrão, mas caso não esteja, o PSC precisa ser executado como SHELL=/bin/bash pscl etc.

Suporte a SOCKS4 e SOCKS5

pscl também suporta encaminhamento de conexões TCP via SOCKS4 (-4 porta) e SOCKS5 (-5 porta). Isso configura porta como porta SOCKS para conexões TCP, então por exemplo você pode navegar em redes remotas a partir de uma sessão port-shell sem a necessidade de abrir qualquer outra conexão durante um teste de penetração. Se você passar -N para pscl, ele ativa a resolução de nomes DNS no lado remoto, então você também pode usar chrome com ele. Mas esteja avisado: Há um problema de privacidade com navegadores que tentam resolver uma sequência de nomes DNS na inicialização que não está sob seu controle. Além disso, se o seu lado remoto tiver uma configuração DNS quebrada, seu shell de digitação pode travar por vários segundos se pacotes de resposta DNS estiverem faltando. Não existem boas funções de resolvedor assíncronas que sejam incorporáveis e portáveis, então tive que usar getaddrinfo() em uma única thread ao preço de possíveis bloqueios por vários segundos se existirem problemas de DNS. É por isso que a resolução de nomes deve ser ativada explicitamente. pscr tenta minimizar esse problema potencial com caches de consulta DNS, então na maioria das situações deve funcionar sem dor. Se você passar -X endereço-IP (deve ser o primeiro argumento), você pode vincular seu proxy local a um endereço diferente de 127.0.0.1, assim você pode compartilhar o proxy na sua rede local.

Comandos de bounce (salto)

Baixar ferramenta