Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pyrdp — RDP 몬스터-인-더-미들(mitm) 및 Python용 라이브러리, 연결을 실시간 또는 사후에 감시할 수 있는 기능 | Kitploit
도구/GitHubGitHub/gosecure/pyrdp
ExploitationNetwork ForensicsInformation GatheringNetwork SecurityMalware AnalysisCTFPenetration TestingLearning & EducationRed TeamingIncident ResponsePayload DevelopmentLabs & Practice
1.8k272424개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
GitHubgosecure/pyrdp

pyrdp

RDP 몬스터-인-더-미들(mitm) 및 Python용 라이브러리, 연결을 실시간 또는 사후에 감시할 수 있는 기능

저장소 보기웹사이트
공유

PyRDP

Tests Black Hat Arsenal 2019 Black Hat Arsenal 2021 Black Hat Arsenal 2022

PyRDP는 Python 원격 데스크톱 프로토콜(RDP) 중간자 공격(MITM) 도구 및 라이브러리입니다.

PyRDP Logo

다음과 같은 도구를 제공합니다:

  • RDP 중간자 공격(MITM)
    • 연결 시 사용된 평문 자격 증명 또는 NetNTLM 해시를 로깅합니다
    • 클립보드에 복사된 데이터를 가로챕니다
    • 네트워크를 통해 전송된 파일의 사본을 저장합니다
    • 백그라운드에서 공유 드라이브를 크롤링하여 로컬에 저장합니다
    • 연결의 리플레이를 저장하여 나중에 확인할 수 있습니다
    • 새 연결 시 콘솔 명령 또는 PowerShell 페이로드를 자동으로 실행합니다
  • RDP 플레이어:
    • MITM에서 들어오는 실시간 RDP 연결을 볼 수 있습니다
    • RDP 연결의 리플레이를 볼 수 있습니다
    • 작업을 숨기면서 활성 RDP 세션을 제어할 수 있습니다
    • 활성 세션 중 클라이언트의 매핑된 드라이브 목록을 확인하고 파일을 다운로드할 수 있습니다
  • 변환 도구:
    • RDP 리플레이를 비디오로 변환하여 공유를 용이하게 합니다
    • RDP 리플레이를 JSON 형식으로 직렬화된 저수준 이벤트 시퀀스로 변환합니다
    • PCAP를 리플레이, 비디오 또는 JSON 이벤트로 변환합니다
    • 복호화된 PCAP(L7 PDU)를 리플레이, 비디오 또는 JSON 이벤트로 변환합니다
  • RDP 인증서 클로너:
    • RDP 서버 인증서와 동일한 필드를 가진 자체 서명 X509 인증서를 생성합니다

PyRDP는 2018년에 소개되었으며 실제 위협 행위자를 잡을 수 있다는 것을 시연했습니다. 이 도구는 침투 테스트와 멀웨어 연구 사용 사례를 염두에 두고 개발되고 있습니다.

PyRDP Player Replaying an RDP session

목차

  • 지원 시스템
  • 설치
    • pipx 사용
    • Docker 이미지 사용
  • PyRDP 사용
    • PyRDP 중간자 공격 도구 사용
    • PyRDP 플레이어 사용
    • PyRDP 인증서 클로너 사용
    • PyRDP 변환 도구 사용
    • PyRDP 구성
    • 고급 사용법
    • Docker 전용 사용 지침
  • PyRDP 배경 이야기
  • PyRDP에 기여하기
  • 감사의 말

지원 시스템

PyRDP는 Python 3.7 이상에서 x86-64, ARM 및 ARM64 플랫폼에서 작동해야 합니다.

이 도구는 Linux(Ubuntu 20.04, 22.04), Raspberry Pi 및 Windows의 Python 3.7에서 테스트되었습니다. macOS에서는 테스트되지 않았습니다.

설치

pipx를 사용하거나 Docker 컨테이너를 사용하는 두 가지 설치 방법이 권장됩니다. 소스에서 설치하거나 직접 Docker 컨테이너를 빌드하는 방법은 개발 문서에서 다룹니다.

pipx 사용

의존성

Linux

먼저, 필수 패키지를 설치해야 합니다(Ubuntu 22.04 기준 목록이며, 다른 배포판에 맞게 조정해야 할 수 있습니다). 전체 설치와 간소화 설치의 두 가지 유형을 제공합니다. 사용 사례에 맞게 의존성을 설치하세요.```sh

Full install (GUI, convert captures to video)

sudo apt install python3 python3-pip python3-venv
build-essential python3-dev openssl
libegl1 libxcb-cursor0 libxkbcommon-x11-0 libxcb-icccm4 libxcb-keysyms1
libnotify-bin
libavcodec58 libavdevice58

Slim install (no GUI, no conversion to video possible)

sudo apt install python3 python3-pip python3-venv
build-essential python3-dev git openssl

이것은 PyRDP 실행에 필요한 종속성을 설치합니다. GUI 또는 비디오 변환 종속성 없이 설치하기로 선택한 경우, 헤드리스 모드(`--headless`) 없이 `pyrdp-player`를 사용하거나 `pyrdp-convert`를 사용하여 비디오 출력을 생성할 수 없습니다.

`pipx`가 설치되어 있는지 확인하세요. Ubuntu 22.04에서:```sh
python3 -m pip install --user pipx
python3 -m pipx ensurepath
Windows

Python이 설치되어 있는지 확인하세요. Windows Store Python은 Windows 11에서 작동하지 않았습니다. Scoop을 통해 Python을 설치하는 것을 권장합니다.```sh scoop install python # if not installed already scoop install pipx pipx ensurepath

로그아웃한 후 다시 로그인하세요(PATH를 업데이트하려면).

##### 다른 OS

다른 운영 체제에 `pipx`를 설치하려면 여기를 참조하세요: <https://github.com/pypa/pipx#install-pipx>

#### 설치

QT GUI와 캡처를 비디오로 변환하는 기능을 갖춘 완전한 PyRDP 경험을 원한다면:```sh
pipx install pyrdp-mitm[full]

헤드리스 환경(서버, 라즈베리파이)에서 실행하도록 설계된 컴팩트 버전의 경우:```sh pipx install pyrdp-mitm

이제 준비가 되었습니다! [사용 지침](#using-pyrdp)을 참조하세요.

### Docker 이미지 사용

도커가 설치되어 있고 작동 중이라면 가장 쉬운 설치 방법입니다.```sh
docker pull gosecure/pyrdp:latest

대안으로 GUI와 ffmpeg 종속성이 없는 더 슬림한 이미지를 제공합니다. 이것은 ARM 플랫폼에서 제공되는 유일한 이미지입니다.```sh docker pull gosecure/pyrdp:latest-slim

모든 Docker 이미지 목록은 [gosecure/pyrdp DockerHub 페이지](https://hub.docker.com/r/gosecure/pyrdp/tags)에서 찾을 수 있습니다.
`latest` 태그는 최신 릴리스 버전을 나타내고, `devel` 태그는 `main` 브랜치에서 빌드된 Docker 이미지입니다.

## PyRDP 사용하기

### PyRDP Monster-in-the-Middle 사용하기

MITM을 실행하려면 `pyrdp-mitm <ServerIP>` 또는 `pyrdp-mitm <ServerIP>:<ServerPort>`를 사용하세요.

`192.168.1.10`에서 RDP 서버가 실행 중이고 포트 3389에서 수신 대기 중이라고 가정하면 다음과 같이 실행합니다:

    pyrdp-mitm 192.168.1.10```sh
pyrdp-mitm 192.168.1.10

MITM을 처음 실행하면 pyrdp_output/ 디렉토리가 현재 작업 디렉토리 기준으로 생성됩니다. 해당 디렉토리의 예시 구조는 다음과 같습니다:```sh pyrdp_output/ ├── certs │   ├── WinDev2108Eval.crt │   └── WinDev2108Eval.pem ├── files │   ├── e91c6a5eb3ca15df5a5cb4cf4ebb6f33b2d379a3a12d7d6de8c412d4323feb4c │   ├── b14b26b7d02c85e74ab4f0d847553b2fdfaf8bc616f7c3efcc4771aeddd55700 ├── filesystems │   ├── romantic_kalam_8214773 │   │   └── device1 │   │   └── clipboard | └── priv-esc.exe -> ../../../files/b14b26b7d02c85e74ab4f0d847553b2fdfaf8bc616f7c3efcc4771aeddd55700 │   └── happy_stonebraker_1992243 │   ├── device1 │   └── device2 | └── Users/User/3D Objects/desktop.ini -> ../../../../../../e91c6a5eb3ca15df5a5cb4cf4ebb6f33b2d379a3a12d7d6de8c412d4323feb4c ├── logs │   ├── crawl.json │   ├── crawl.log │   ├── mitm.json │   ├── mitm.log │   ├── mitm.log.2021-08-26 │   ├── ntlmssp.log │   ├── player.log │   └── ssl.log └── replays ├── rdp_replay_20231214_01-20-28_965_happy_stonebraker_1992243.pyrdp └── rdp_replay_20231214_00-42-24_295_romantic_kalam_8214773.pyrdp

* `certs/` - 인증서의 `CN`을 파일 이름으로 사용하여 생성된 인증서를 저장합니다.
* `files/` - 캡처된 모든 파일을 포함하며, 콘텐츠의 SHA-256 해시를 파일 이름으로 사용하여 중복 제거하여 저장합니다.
* `filesystems/` - 세션 ID별로 분류된 대상의 파일 시스템을 재생성하여 포함합니다.
   유사한 세션의 공간을 절약하기 위해 파일은 `files/` 아래의 실제 파일에 대한 심볼릭 링크입니다.
* `logs/` - 대부분 JSON 및 일반 텍스트 형식으로 다양한 로그를 포함합니다:
  * `crawl`: 파일 크롤러 로그
  * `mitm`: 주요 MITM 로그
  * `ntlmssp.log`: 캡처된 NetNTLM 해시
  * `player.log`: 플레이어 로그
  * `ssl.log`: Wireshark와 호환되는 형식으로 저장된 TLS 마스터 시크릿
* `replays/` - 타임스탬프와 세션 ID가 파일 이름에 포함된 이전에 기록된 모든 PyRDP 세션을 포함합니다.

#### 개인 키와 인증서 지정

키 생성이 작동하지 않거나 사용자 정의 키와 인증서를 사용하려면 `-c` 및 `-k` 인수를 사용하여 지정할 수 있습니다:```sh
pyrdp-mitm 192.168.1.10 -k private_key.pem -c certificate.pem
Monster-in-the-Middle 네트워크 수준 인증(NLA) 연결

네트워크 수준 인증(NLA)은 Windows Vista부터 도입된 보안 기능으로, RDP 연결에 보안을 추가합니다. NLA는 새로운 보안 지원 공급자 CredSSP에 의존하며, 이 이름으로 불리기도 합니다. NLA를 적용하는 서버는 공격하기 더 어렵습니다. 사용할 수 있는 세 가지 전략이 있습니다:

  • 서버의 인증서 및 개인 키 획득
  • 호스트 리디렉션 기능 사용
  • 클라이언트의 NetNTLMv2 해시를 캡처하여 크랙
Monster-in-the-Middle NLA

서버의 인증서와 개인 키에 접근할 수 있다면, NLA가 적용되어 있어도 RDP MITM을 성공적으로 수행할 수 있습니다. 이 공격을 1.0 릴리스 블로그 게시물에 문서화했습니다. RDP 인증서 및 개인 키 추출 지침은 GitHub에서 확인할 수 있습니다.

인증서와 개인 키에 접근할 수 있게 되면, pyrdp-mitm 명령줄에 다음을 추가하여 인증을 ssp로 설정하기만 하면 됩니다:```sh --auth ssp -c <certificate.pem> -k <private-key.pem>

이는 NLA가 적용된 연결을 가로챌 수 있는 가능성을 제공합니다.

###### 서버에서 NLA가 적용된 경우의 대체 호스트 리디렉션

![NLA 리디렉션을 설명하는 다이어그램](https://assets.kitploit.com/production/public/readmes/2804/e74aa87cc1cfb892b9070fe387c9530e4e99973b2d780b72f6c118abf1ec8a5b.png)

PyRDP가 대상 RDP 서버에 연결할 때 (1), 해당 서버가 NLA를 적용하면 PyRDP는 (2) 연결을 사용자가 선택한 다른 호스트로 대체합니다 (3).

예를 들어, 이 기능을 사용하여 NLA를 적용하지 않는 것으로 알려진 서버로 리디렉션하거나 공격자가 제어하는 VM으로 리디렉션할 수도 있습니다.
도구 다운로드