mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
131 lines
6.8 KiB
Markdown
131 lines
6.8 KiB
Markdown
# 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}}
|