* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
Se você está interessado em **carreira de hacking** e hackear o impossível - **estamos contratando!** (_fluência em polonês escrita e falada é necessária_).
**SSH ou Secure Shell ou Secure Socket Shell,** é um protocolo de rede que oferece aos usuários uma **maneira segura de acessar um computador em uma rede não segura.**
* [openSSH](http://www.openssh.org) - SSH OpenBSD, incluído em distribuições BSD, Linux e Windows desde o Windows 10
* [Dropbear](https://matt.ucc.asn.au/dropbear/dropbear.html) - Implementação SSH para ambientes com baixa memória e recursos de processador, incluído no OpenWrt
* [PuTTY](https://www.chiark.greenend.org.uk/\~sgtatham/putty/) - Implementação SSH para Windows, o cliente é comumente usado, mas o uso do servidor é mais raro
* [CopSSH](https://www.itefix.net/copssh) - Implementação do OpenSSH para Windows
* [libssh](https://www.libssh.org) - Biblioteca C multiplataforma que implementa o protocolo SSHv2 com ligações em [Python](https://github.com/ParallelSSH/ssh-python), [Perl](https://github.com/garnier-quentin/perl-libssh/) e [R](https://github.com/ropensci/ssh); é usado pelo KDE para sftp e pelo GitHub para a infraestrutura git SSH
* [wolfSSH](https://www.wolfssl.com/products/wolfssh/) - Biblioteca do servidor SSHv2 escrita em ANSI C e direcionada para ambientes incorporados, RTOS e com recursos limitados
* [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) - A biblioteca Java Apache SSHD é baseada no Apache MINA
* [paramiko](https://github.com/paramiko/paramiko) - Biblioteca de protocolo Python SSHv2
[https://github.com/jtesta/ssh-audit](https://github.com/jtesta/ssh-audit) é um fork atualizado de [https://github.com/arthepsy/ssh-audit/](https://github.com/arthepsy/ssh-audit/)
Para se conectar a um servidor SSH, é necessário ter a chave pública do servidor. Essa chave é usada para autenticar o servidor e garantir que a conexão seja segura. A chave pública do servidor geralmente é armazenada no arquivo `authorized_keys` no diretório `.ssh` do usuário no servidor. Para obter a chave pública do servidor, você pode usar o comando `ssh-keyscan` e especificar o nome do host ou o endereço IP do servidor. Por exemplo:
Isso retornará a chave pública do servidor `example.com`. Certifique-se de verificar a autenticidade da chave pública antes de usá-la para se conectar ao servidor.
Em algumas versões do OpenSSH, é possível realizar um ataque de tempo para enumerar usuários. Você pode usar um módulo do Metasploit para explorar isso:
Algumas credenciais comuns do ssh podem ser encontradas [aqui](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt) e [aqui](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt) e abaixo.
Ou use `ssh-keybrute.py` (python3 nativo, leve e com algoritmos legados habilitados): [snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute).
#### Chaves SSH fracas / PRNG previsível do Debian
Alguns sistemas têm falhas conhecidas na semente aleatória usada para gerar material criptográfico. Isso pode resultar em um espaço de chave dramaticamente reduzido que pode ser quebrado por força bruta. Conjuntos pré-gerados de chaves geradas em sistemas Debian afetados por PRNG fraco estão disponíveis aqui: [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh).
Se você estiver na rede local como a vítima que vai se conectar ao servidor SSH usando nome de usuário e senha, você pode tentar **realizar um ataque MitM para roubar essas credenciais:**
* o tráfego do usuário é redirecionado para a máquina atacante
* o atacante monitora as tentativas de conexão com o servidor SSH e as redireciona para seu servidor SSH
* o servidor SSH do atacante é configurado, em primeiro lugar, para registrar todos os dados inseridos, incluindo a senha do usuário, e, em segundo lugar, enviar comandos para o servidor SSH legítimo para o qual o usuário deseja se conectar, para executá-los e, em seguida, retornar os resultados para o usuário legítimo
Para capturar realizar o MitM real, você pode usar técnicas como ARP spoofing, DNS spoofing ou outras descritas em [**Ataques de Spoofing de Rede**](../generic-methodologies-and-resources/pentesting-network/#spoofing).
Por padrão, a maioria das implementações de servidor SSH permitirá o login root, é aconselhável desativá-lo porque se as credenciais dessa conta vazarem, os invasores obterão privilégios administrativos diretamente e isso também permitirá que os invasores realizem ataques de força bruta nessa conta.
Outra configuração incorreta comum do SSH é frequentemente vista na configuração do SFTP. Na maioria das vezes, ao criar um servidor SFTP, o administrador deseja que os usuários tenham acesso SFTP para compartilhar arquivos, mas não para obter um shell remoto na máquina. Então, eles pensam que criar um usuário, atribuir a ele um shell de espaço reservado (como `/usr/bin/nologin` ou `/usr/bin/false`) e chrooting ele em uma prisão é suficiente para evitar o acesso ou abuso de shell em todo o sistema de arquivos. Mas eles estão errados, **um usuário pode solicitar a execução de um comando logo após a autenticação antes que seu comando ou shell padrão seja executado**. Então, para contornar o shell de espaço reservado que negará o acesso ao shell, basta solicitar a execução de um comando (por exemplo, `/bin/bash`) antes, apenas fazendo:
Essa configuração permitirá apenas o SFTP: desabilitando o acesso ao shell forçando o comando de início e desabilitando o acesso TTY, mas também desabilitando todos os tipos de encaminhamento de porta ou túnel.
O **sftp** tem o comando "**symlink**". Portanto, se você tem **direitos de gravação** em alguma pasta, pode criar **links simbólicos** de **outras pastas/arquivos**. Como você provavelmente está **preso** dentro de um chroot, isso **não será especialmente útil** para você, mas se você puder **acessar** o **link simbólico** criado a partir de um **serviço sem chroot** (por exemplo, se você puder acessar o link simbólico pela web), você pode **abrir os arquivos linkados pela web**.
Em ambientes de alta segurança, é uma prática comum habilitar apenas autenticação baseada em chave ou autenticação de dois fatores em vez da autenticação baseada em senha simples. Mas muitas vezes, os métodos de autenticação mais fortes são habilitados sem desabilitar os mais fracos. Um caso frequente é habilitar `publickey` na configuração do openSSH e defini-lo como o método padrão, mas não desabilitar `password`. Então, usando o modo verbose do cliente SSH, um invasor pode ver que um método mais fraco está habilitado:
Por exemplo, se um limite de falha de autenticação estiver definido e você nunca tiver a chance de chegar ao método de senha, você pode usar a opção `PreferredAuthentications` para forçar o uso desse método.
Revisar a configuração do servidor SSH é necessário para verificar se apenas os métodos esperados estão autorizados. Usar o modo verbose no cliente pode ajudar a ver a efetividade da configuração.
* Você pode encontrar guias interessantes sobre como endurecer o SSH em [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)
Se você está interessado em **carreira de hacking** e hackear o inquebrável - **estamos contratando!** (_fluência em polonês escrita e falada é necessária_).
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.