mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 06:30:37 +00:00
173 lines
10 KiB
Markdown
173 lines
10 KiB
Markdown
# 3389 - Pentesting RDP
|
|
|
|
{% hint style="success" %}
|
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Support HackTricks</summary>
|
|
|
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
|
|
|
**취약점 평가 및 침투 테스트를 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능을 사용하여 어디서나 전체 침투 테스트를 실행할 수 있으며, 이는 탐색에서 보고에 이르기까지 가능합니다. 우리는 침투 테스터를 대체하지 않으며, 그들이 더 깊이 파고들고, 쉘을 터뜨리고, 재미를 느낄 수 있도록 맞춤형 도구, 탐지 및 악용 모듈을 개발합니다.
|
|
|
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
|
|
|
## 기본 정보
|
|
|
|
Microsoft에서 개발한 **원격 데스크톱 프로토콜**(**RDP**)은 네트워크를 통해 컴퓨터 간의 그래픽 인터페이스 연결을 가능하게 하도록 설계되었습니다. 이러한 연결을 설정하기 위해 사용자는 **RDP** 클라이언트 소프트웨어를 사용하고, 동시에 원격 컴퓨터는 **RDP** 서버 소프트웨어를 운영해야 합니다. 이 설정은 원격 컴퓨터의 데스크톱 환경을 원활하게 제어하고 접근할 수 있게 하여, 본질적으로 그 인터페이스를 사용자의 로컬 장치로 가져옵니다.
|
|
|
|
**기본 포트:** 3389
|
|
```
|
|
PORT STATE SERVICE
|
|
3389/tcp open ms-wbt-server
|
|
```
|
|
## 열거
|
|
|
|
### 자동
|
|
|
|
{% code overflow="wrap" %}
|
|
```bash
|
|
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
|
|
```
|
|
{% endcode %}
|
|
|
|
사용 가능한 암호화 및 DoS 취약성을 확인하고(서비스에 DoS를 유발하지 않음) NTLM Windows 정보(버전)를 얻습니다.
|
|
|
|
### [무차별 대입 공격](../generic-methodologies-and-resources/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>
|
|
```
|
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
|
|
|
**취약점 평가 및 침투 테스트를 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능을 사용하여 어디서나 전체 침투 테스트를 실행하세요. 우리는 침투 테스터를 대체하지 않습니다 - 그들이 더 깊이 파고들고, 쉘을 터뜨리고, 재미를 느낄 수 있도록 맞춤형 도구, 탐지 및 악용 모듈을 개발합니다.
|
|
|
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
|
|
|
## **공격**
|
|
|
|
### 세션 탈취
|
|
|
|
**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 Process Injection
|
|
|
|
다른 도메인에서 또는 **더 나은 권한으로 RDP를 통해 로그인한** 사용자가 **당신이 관리자**인 PC에 접속하면, 그의 **RDP 세션 프로세스**에 당신의 비콘을 **주입**하고 그로 행동할 수 있습니다:
|
|
|
|
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %}
|
|
[rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
|
|
{% endcontent-ref %}
|
|
|
|
### Adding User to RDP group
|
|
```bash
|
|
net localgroup "Remote Desktop Users" UserLoginName /add
|
|
```
|
|
## Automatic Tools
|
|
|
|
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
|
|
|
|
**AutoRDPwn**는 Microsoft Windows 컴퓨터에서 **Shadow** 공격을 자동화하기 위해 주로 설계된 Powershell로 생성된 포스트 익스플로잇 프레임워크입니다. 이 취약점(마이크로소프트에서 기능으로 나열됨)은 원격 공격자가 **피해자의 동의 없이 그의 데스크탑을 볼 수 있게** 하며, 심지어 운영 체제 자체의 도구를 사용하여 필요에 따라 이를 제어할 수 있게 합니다.
|
|
|
|
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
|
|
* 명령줄에서 자동화된 방식으로 마우스와 키보드 제어
|
|
* 명령줄에서 자동화된 방식으로 클립보드 제어
|
|
* RDP를 통해 대상에 네트워크 통신을 전달하는 SOCKS 프록시 클라이언트에서 생성
|
|
* 파일을 업로드하지 않고도 대상에서 임의의 SHELL 및 PowerShell 명령 실행
|
|
* 파일 전송이 대상에서 비활성화되어 있어도 대상에 파일을 업로드 및 다운로드
|
|
|
|
## HackTricks Automatic Commands
|
|
```
|
|
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}
|
|
```
|
|
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
|
|
|
|
**취약점 평가 및 침투 테스트를 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능을 사용하여 어디서나 전체 침투 테스트를 실행하세요. 우리는 침투 테스터를 대체하지 않습니다 - 우리는 그들이 더 깊이 파고들고, 쉘을 터뜨리고, 재미를 느낄 수 있도록 맞춤형 도구, 탐지 및 악용 모듈을 개발합니다.
|
|
|
|
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
|
|
|
|
{% hint style="success" %}
|
|
AWS 해킹 배우기 및 연습하기:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
GCP 해킹 배우기 및 연습하기: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>HackTricks 지원하기</summary>
|
|
|
|
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
|
|
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
|
|
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 깃허브 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.**
|
|
|
|
</details>
|
|
{% endhint %}
|