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
swift-nio-ssh — SwiftNIO SSH é uma implementação programática do SSH usando SwiftNIO | Kitploit
Ferramentas/GitHubGitHub/apple/swift-nio-ssh
Ferramentas de Criptografia/DescriptografiaSegurança de RedeUtilitários e FrameworksAutenticaçãoFerramenta de Acesso Remoto
GitHubapple/swift-nio-ssh

swift-nio-ssh

SwiftNIO SSH é uma implementação programática do SSH usando SwiftNIO

Ver Repositório
5137921há 15 diasRevisado 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

SwiftNIO SSH

Este projeto contém suporte SSH usando SwiftNIO.

O que é SwiftNIO SSH?

SwiftNIO SSH é uma implementação programática do SSH: ou seja, é uma coleção de APIs que permitem que programadores implementem endpoints que falam SSH. Criticamente, isso significa que é mais parecido com o libssh2 do que com o openssh. O SwiftNIO SSH não entrega clientes e servidores SSH prontos para produção, mas sim fornece os blocos de construção para criar esse tipo de cliente e servidor.

Existem várias razões para fornecer uma implementação programática de SSH. Uma delas é que o SSH tem uma relação única com a interatividade do usuário. Usuários técnicos estão muito acostumados a interagir com o SSH de forma interativa, seja para executar comandos em máquinas remotas ou para executar shells interativos. Ter a capacidade de responder programaticamente a essas solicitações possibilita modos alternativos interessantes de interação. Como exemplos anteriores, podemos citar o Twisted's Manhole, que usa uma implementação programática de SSH chamada conch para fornecer um interpretador Python interativo dentro de um servidor Python em execução, ou ssh-chat, um servidor SSH que fornece uma sala de bate-papo em vez da funcionalidade normal de shell SSH. Usos inovadores também podem ser imaginados para o encaminhamento TCP.

Outra boa razão para fornecer SSH programático é que não é incomum que serviços precisem interagir com outros serviços de uma forma que envolva a execução de comandos. Embora Process resolva isso para o caso de uso local, às vezes os comandos que precisam ser invocados são remotos. Embora Process pudesse iniciar um cliente ssh como subprocesso para executar essa invocação, pode ser substancialmente mais simples invocar o SSH diretamente. Este é o caso de uso alvo do libssh2. O SwiftNIO SSH fornece o equivalente da camada de rede e criptográfica do libssh2, permitindo que usuários motivados conduzam sessões SSH diretamente de dentro de serviços Swift.

As versões mais recentes do SwiftNIO SSH suportam Swift 5.9 e superiores. A versão mínima do Swift suportada pelas versões do SwiftNIO SSH está detalhada abaixo:

SwiftNIO SSHVersão Mínima do Swift
0.0.0 ..< 0.3.05.1
0.3.0 ..< 0.4.05.2
0.4.0 ..< 0.5.05.4
0.5.0 ..< 0.6.25.5.2
0.6.2 ..< 0.9.05.6
0.9.0 ..< 0.9.25.8
0.9.2 ..< 0.10.05.9
0.10.0 ... 0.12.05.10
0.12.0 ..< 0.13.06.0
0.13.0 ..<6.1

O que o SwiftNIO SSH suporta?

SwiftNIO SSH suporta SSHv2 com o seguinte conjunto de recursos:

  • Todos os recursos de canal de sessão, incluindo solicitações de canal shell e exec
  • Encaminhamento de porta TCP direto e reverso
  • Apenas primitivas criptográficas modernas: Ed25519 e ECDSA sobre as principais curvas NIST (P256, P384, P521) para criptografia assimétrica, AES-GCM para criptografia simétrica, x25519 para troca de chaves
  • Autenticação de usuário por senha e chave pública
  • Suporta todas as plataformas suportadas pelo SwiftNIO e Swift Crypto

Como usar o SwiftNIO SSH?

SwiftNIO SSH fornece um ChannelHandler do SwiftNIO, o NIOSSHHandler. Este handler implementa a maior parte do protocolo SSH diretamente. Não se espera que os usuários gerem mensagens SSH diretamente: em vez disso, eles interagem com o NIOSSHHandler através de canais filhos e delegados.

O SSH é um protocolo multiplexado: cada conexão SSH é subdividida em múltiplos canais de comunicação bidirecionais chamados, apropriadamente, de canais. O SwiftNIO SSH reflete essa construção usando uma abstração de "canal filho". Quando um par cria um novo canal SSH, o SwiftNIO SSH criará um novo Channel do NIO que é usado para representar todo o tráfego nesse canal SSH. Dentro deste Channel filho, todos os eventos são estritamente ordenados entre si: no entanto, eventos em diferentes Channels podem ser intercalados livremente pela implementação.

Uma conexão SSH ativa, portanto, se parece com isto:

┌ ─ NIO Channel ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┐

│     ┌────────────────────────────────┐    │
      │                                │
│     │                                │    │
      │                                │
│     │                                │    │
      │         NIOSSHHandler          │───────────────────────┐
│     │                                │    │                  │
      │                                │                       │
│     │                                │    │                  │
      │                                │                       │
│     └────────────────────────────────┘    │                  │
                                                               │
└ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┘                  │
                                                               │
                                                               │
                                                               │
                                                               │
                                                               ▼
                     ┌── SSH Child Channel ─────────────────────────────────────────────────────────────┐
                     │                                                                                  │
                     │   ┌────────────────────────────────┐      ┌────────────────────────────────┐     ├───┐
                     │   │                                │      │                                │     │   │
                     │   │                                │      │                                │     │   ├───┐
                     │   │                                │      │                                │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   │          User Handler          │      │          User Handler          │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   │                                │      │                                │     │   │   │
                     │   └────────────────────────────────┘      └────────────────────────────────┘     │   │   │
                     │                                                                                  │   │   │
                     └───┬──────────────────────────────────────────────────────────────────────────────┘   │   │
                         │                                                                                  │   │
                         └───┬──────────────────────────────────────────────────────────────────────────────┘   │
                             │                                                                                  │
                             └──────────────────────────────────────────────────────────────────────────────────┘

Um canal SSH é invocado com um tipo de canal. O NIOSSH suporta três: session, directTCPIP e forwardedTCPIP. O tipo de canal mais comum é session: session é usado para representar a invocação de um programa, seja um programa específico nomeado ou um shell. Os outros dois tipos de canal estão relacionados ao encaminhamento de porta TCP e serão discutidos posteriormente.

Baixar ferramenta