Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pyrdp — RDP monster-in-the-middle (mitm) और Python के लिए लाइब्रेरी जिसमें कनेक्शनों को लाइव या बाद में देखने की क्षमता है | Kitploit
उपकरण/GitHubGitHub/gosecure/pyrdp
शोषणनेटवर्क फोरेंसिकजानकारी एकत्र करनानेटवर्क सुरक्षामालवेयर विश्लेषणCTFपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंगघटना प्रतिक्रियापेलोड डेवलपमेंटलैब और अभ्यास
1.8k272224 महीने पहलेKitploit द्वारा समीक्षित
GitHubgosecure/pyrdp

pyrdp

RDP monster-in-the-middle (mitm) और Python के लिए लाइब्रेरी जिसमें कनेक्शनों को लाइव या बाद में देखने की क्षमता है

रिपॉजिटरी देखेंवेबसाइट

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

PyRDP

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

PyRDP एक Python रिमोट डेस्कटॉप प्रोटोकॉल (RDP) मॉन्स्टर-इन-द-मिडल (MITM) उपकरण और लाइब्रेरी है।

PyRDP Logo

इसमें कुछ उपकरण शामिल हैं:

  • RDP Monster-in-the-Middle
    • कनेक्ट होने पर उपयोग किए गए सादे पाठ क्रेडेंशियल्स या NetNTLM हैश को लॉग करता है
    • क्लिपबोर्ड पर कॉपी किए गए डेटा को चुराता है
    • नेटवर्क पर स्थानांतरित फ़ाइलों की एक प्रति सहेजता है
    • पृष्ठभूमि में साझा ड्राइव को क्रॉल करता है और उन्हें स्थानीय रूप से सहेजता है
    • कनेक्शनों के रीप्ले सहेजता है ताकि आप बाद में उन्हें देख सकें
    • नए कनेक्शनों पर स्वचालित रूप से कंसोल कमांड या PowerShell पेलोड चलाता है
  • RDP Player:
    • MITM से आने वाले लाइव RDP कनेक्शन देखें
    • RDP कनेक्शनों के रीप्ले देखें
    • अपने कार्यों को छिपाते हुए सक्रिय RDP सत्रों का नियंत्रण लें
    • सक्रिय सत्रों के दौरान क्लाइंट के मैप किए गए ड्राइव को सूचीबद्ध करें और उनसे फ़ाइलें डाउनलोड करें
  • Converter tool:
    • आसान साझाकरण के लिए RDP रीप्ले को वीडियो में बदलें
    • RDP रीप्ले को JSON प्रारूप में क्रमबद्ध निम्न-स्तरीय घटनाओं के अनुक्रम में बदलें
    • PCAP को रीप्ले, वीडियो या JSON घटनाओं में बदलें
    • डिक्रिप्ट किए गए PCAP (L7 PDU) को रीप्ले, वीडियो या JSON घटनाओं में बदलें
  • RDP Certificate Cloner:
    • एक स्व-हस्ताक्षरित X509 प्रमाणपत्र बनाएं जिसमें RDP सर्वर के प्रमाणपत्र के समान फ़ील्ड हों
  • PyRDP को 2018 में पेश किया गया था जिसमें हमने प्रदर्शित किया कि हम एक वास्तविक खतरे वाले अभिनेता को कार्रवाई में पकड़ सकते हैं। यह उपकरण पेंटेस्ट और मैलवेयर अनुसंधान उपयोग मामलों दोनों को ध्यान में रखकर विकसित किया जा रहा है।

    PyRDP Player Replaying an RDP session

    विषय सूची

    • समर्थित सिस्टम
    • स्थापना
      • pipx का उपयोग करना
      • Docker इमेज का उपयोग करना
    • PyRDP का उपयोग करना
      • PyRDP मॉन्स्टर-इन-द-मिडल का उपयोग करना
      • PyRDP प्लेयर का उपयोग करना
      • PyRDP सर्टिफिकेट क्लोनर का उपयोग करना
      • PyRDP कन्वर्ट का उपयोग करना
      • PyRDP को कॉन्फ़िगर करना
      • उन्नत उपयोग
      • Docker विशिष्ट उपयोग निर्देश
    • PyRDP Lore
    • 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

    root@kitploit:~
    यह 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

    root@kitploit:~
    लॉग आउट करें और फिर से लॉग इन करें (अपने PATH को अपडेट करने के लिए).
    
    ##### अन्य ऑपरेटिंग सिस्टम
    
    अन्य ऑपरेटिंग सिस्टम पर `pipx` स्थापित करने के लिए यहाँ देखें: <https://github.com/pypa/pipx#install-pipx>
    
    #### स्थापना
    
    QT GUI और कैप्चर को वीडियो में बदलने की क्षमता के साथ पूर्ण PyRDP अनुभव के लिए:```sh
    pipx install pyrdp-mitm[full]
    

    हेडलेस वातावरण (सर्वर, RaspberryPi) में चलाने के लिए बनाए गए कॉम्पैक्ट संस्करण के लिए:```sh pipx install pyrdp-mitm

    root@kitploit:~
    आप जाने के लिए तैयार हैं! [उपयोग निर्देश](#using-pyrdp) देखें।
    
    ### Docker इमेज का उपयोग करना
    
    यदि आपके पास docker स्थापित और कार्यशील है तो यह सबसे आसान इंस्टॉलेशन विधि है।```sh
    docker pull gosecure/pyrdp:latest
    

    एक विकल्प के रूप में, हमारे पास GUI और ffmpeg निर्भरताओं के बिना एक पतला इमेज है। ARM प्लेटफार्मों पर यह एकमात्र प्रदान की गई इमेज है।```sh docker pull gosecure/pyrdp:latest-slim

    root@kitploit:~
    आप सभी 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 पर सुन रहा है, तो आप चलाएंगे:```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

    root@kitploit:~
    * `certs/` में प्रमाणपत्र शामिल हैं जो प्रमाणपत्र के `CN` का उपयोग करके फ़ाइल नाम के रूप में संग्रहीत किए गए हैं
    * `files/` में कैप्चर की गई सभी फ़ाइलें शामिल हैं और सामग्री के SHA-256 हैश को फ़ाइल नाम के रूप में उपयोग करके उन्हें सहेज कर नकल हटाई जाती हैं
    * `filesystems/` में सत्र आईडी द्वारा वर्गीकृत लक्ष्यों के फ़ाइलसिस्टम का पुनर्निर्माण शामिल है।
       समान सत्रों पर स्थान बचाने के लिए, फ़ाइलें `files/` के अंतर्गत वास्तविक फ़ाइलों के प्रतीकात्मक लिंक हैं।
    * `logs/` में सभी विभिन्न लॉग शामिल हैं जिनमें से अधिकांश JSON और प्लेनटेक्स्ट दोनों प्रारूपों में हैं:
      * `crawl`: फ़ाइल क्रॉलर लॉग
      * `mitm`: मुख्य MITM लॉग
      * `ntlmssp.log`: कैप्चर किए गए NetNTLM हैश
      * `player.log`: प्लेयर लॉग
      * `ssl.log`: TLS मास्टर सीक्रेट्स जो Wireshark के अनुकूल प्रारूप में संग्रहीत हैं
    * `replays/` में फ़ाइल नाम में टाइमस्टैम्प और सत्र आईडी के साथ पहले से रिकॉर्ड किए गए सभी PyRDP सत्र शामिल हैं
    
    #### निजी कुंजी और प्रमाणपत्र निर्दिष्ट करना
    
    यदि कुंजी जनरेशन काम नहीं करता है या आप एक कस्टम कुंजी और प्रमाणपत्र का उपयोग करना चाहते हैं, तो आप उन्हें `-c` और `-k` तर्कों का उपयोग करके निर्दिष्ट कर सकते हैं:```sh
    pyrdp-mitm 192.168.1.10 -k private_key.pem -c certificate.pem
    
    Monster-in-the-Middle नेटवर्क स्तर प्रमाणीकरण (NLA) कनेक्शन

    नेटवर्क स्तर प्रमाणीकरण (NLA) एक सुरक्षा सुविधा है जो विंडोज विस्टा से उपलब्ध है, जो RDP कनेक्शनों में सुरक्षा जोड़ती है।
    NLA नए सुरक्षा समर्थन प्रदाता CredSSP पर निर्भर करता है और कभी-कभी इसे उसी नाम से संदर्भित किया जाता है।
    NLA लागू करने वाले सर्वर पर हमला करना अधिक कठिन होता है।
    तीन अलग-अलग रणनीतियाँ उपयोग की जा सकती हैं:

    • सर्वर का प्रमाणपत्र और निजी कुंजी प्राप्त करें
    • होस्ट रीडायरेक्शन सुविधा का उपयोग करना
    • क्लाइंट के NetNTLMv2 हैश को कैप्चर करें और इसे क्रैक करें
    Monster-in-the-Middle NLA

    यदि हमारे पास सर्वर के प्रमाणपत्र और निजी कुंजी तक पहुंच है, तो हम NLA लागू होने पर भी सफलतापूर्वक MITM RDP कर सकते हैं।
    हमने इस हमले का दस्तावेज़ीकरण अपने 1.0 रिलीज़ ब्लॉग पोस्ट में किया है।
    RDP प्रमाणपत्र और निजी कुंजी निकालने के निर्देश हमारे GitHub पर उपलब्ध हैं।

    प्रमाणपत्र और निजी कुंजी सुलभ होने पर, आपको बस pyrdp-mitm कमांड-लाइन पर यह जोड़कर प्रमाणीकरण को ssp पर सेट करना होगा:```sh --auth ssp -c <certificate.pem> -k <private-key.pem>

    root@kitploit:~
    यह NLA-लागू कनेक्शनों को इंटरसेप्ट करने की संभावना को सक्षम करेगा।
    
    ###### जब सर्वर द्वारा NLA लागू किया गया हो तो वैकल्पिक होस्ट रीडायरेक्शन
    
    ![NLA रीडायरेक्शन समझाने वाला आरेख](https://assets.kitploit.com/production/public/readmes/2804/e74aa87cc1cfb892b9070fe387c9530e4e99973b2d780b72f6c118abf1ec8a5b.png)
    
    जब PyRDP गंतव्य RDP सर्वर (1) से कनेक्ट होता है, यदि वह सर्वर NLA लागू करता है, तो PyRDP (2) कनेक्शन को बदलकर आपकी पसंद के किसी अन्य होस्ट (3) पर ले जाएगा, इसके बजाय।
    
    उदाहरण के लिए, इसका उपयोग ऐसे सर्वर पर रीडायरेक्ट करने के लिए किया जा सकता है जो NLA लागू नहीं करता है, या यह किसी हमलावर के नियंत्रण में किसी VM पर भी रीडायरेक्ट कर सकता है।
    
    इस सुविधा को सक्षम करने के लिए वैकल्पिक होस्ट का पता और पोर्ट इस प्रकार निर्दिष्ट करें:```sh
    --nla-redirection-host 192.168.1.12 --nla-redirection-port 3389
    

    यह सुविधा PyRDP 1.1.0 में शुरू की गई थी।

    NetNTLMv2 हैश कैप्चर करना

    NetNTLMv2 हैश एक हमलावर के लिए उपयोगी होते हैं क्योंकि उन्हें अपेक्षाकृत आसानी से क्रैक किया जा सकता है, जिससे हमलावर वैध RDP पहुंच का लाभ उठा सकते हैं या क्रेडेंशियल स्टफिंग का प्रयास कर सकते हैं। संस्करण 1.1.0 से शुरू करके, PyRDP में NLA (CredSSP) कनेक्शन के माध्यम से क्लाइंट के NetNTLMv2 हैश को कैप्चर करने की क्षमता है, जो बातचीत को आगे बढ़ाकर और NTLMSSP प्रमाणीकरण संदेशों को कैप्चर करके काम करता है। संस्करण 1.2.0 में उस समर्थन को बढ़ाया गया ताकि यह तब भी काम करे जब हमारे पास सर्वर का प्रमाणपत्र और निजी कुंजी न हो, जिसका अर्थ है कि कनेक्शन सफलतापूर्वक MITM नहीं किया जाएगा। यह उसी प्रकार का है जो Responder RDP के साथ करता है। कैप्चर किया गया NetNTLMv2 हैश ntlmssp.log लॉग फ़ाइल में पाया जा सकता है और इसे इस प्रकार स्वरूपित किया गया है कि क्रैकिंग टूल जैसे John The Ripper या hashcat इसे ग्रहण कर सकें।

    इस तकनीक का एक ब्लॉग पोस्ट में विस्तार से वर्णन किया गया है: Capturing RDP NetNTLMv2 Hashes: Attack details and a Technical How-To Guide

    यह सुविधा --auth ssp के साथ संगत है लेकिन --nla-redirection-host के साथ असंगत है।

    PyRDP प्लेयर से कनेक्ट करना

    यदि आप PyRDP प्लेयर के माध्यम से लाइव RDP कनेक्शन देखना चाहते हैं, तो आपको -i और -d आर्गुमेंट्स का उपयोग करके प्लेयर जिस IP पते और पोर्ट पर सुन रहा है, उसे निर्दिष्ट करना होगा। नोट: पोर्ट आर्गुमेंट वैकल्पिक है, डिफ़ॉल्ट पोर्ट 3000 है।```sh pyrdp-mitm 192.168.1.10 -i 127.0.0.1 -d 3000

    root@kitploit:~
    ##### जब MITM सर्वर पर चल रहा हो तो PyRDP प्लेयर से कनेक्ट करना
    
    यदि आप MITM को सर्वर पर चला रहे हैं और फिर भी लाइव RDP कनेक्शन देखना चाहते हैं, तो आपको अपने सर्वर पर एक पोर्ट को अपनी मशीन के प्लेयर पोर्ट पर अग्रेषित करने के लिए
    [SSH रिमोट पोर्ट फ़ॉरवर्डिंग](https://www.booleanworld.com/guide-ssh-port-forwarding-tunnelling/)
    का उपयोग करना चाहिए। एक बार ऐसा करने के बाद, आप `127.0.0.1` और अग्रेषित पोर्ट को MITM को तर्क के रूप में पास करते हैं। उदाहरण के लिए, यदि सर्वर पर पोर्ट 4000 आपकी मशीन के प्लेयर पोर्ट पर अग्रेषित है, तो यह उपयोग करने का आदेश होगा:```sh
    pyrdp-mitm 192.168.1.10 -i 127.0.0.1 -d 4000
    

    नए कनेक्शन पर पेलोड चलाना

    PyRDP नए कनेक्शन बनने पर स्वचालित रूप से कंसोल कमांड या PowerShell पेलोड चलाने का समर्थन करता है। RDP की प्रकृति के कारण, यह प्रक्रिया थोड़ी हैकिश है और हमेशा 100% विश्वसनीय नहीं होती। यह इस प्रकार काम करता है:

    1. उपयोगकर्ता के प्रमाणित होने की प्रतीक्षा करें।
    2. पेलोड को छिपाने और हस्तक्षेप को रोकने के लिए क्लाइंट के इनपुट/आउटपुट को ब्लॉक करें।
    3. नकली Windows+R अनुक्रम भेजें और cmd.exe चलाएं।
    4. पेलोड को कंसोल कमांड के रूप में चलाएं और कंसोल से बाहर निकलें। यदि PowerShell पेलोड कॉन्फ़िगर किया गया है, तो इसे powershell -enc <PAYLOAD> के साथ चलाया जाता है।
    5. पेलोड को पूरा होने देने के लिए थोड़ी प्रतीक्षा करें।
    6. क्लाइंट के इनपुट/आउटपुट को पुनर्स्थापित करें।

    इसे काम करने के लिए, आपको 3 तर्क सेट करने होंगे:

    • पेलोड
    • पेलोड शुरू होने से पहले की देरी
    • पेलोड की अवधि
    पेलोड सेट करना

    आप चलाने के लिए पेलोड सेट करने के लिए निम्नलिखित तर्कों में से एक का उपयोग कर सकते हैं:

    • --payload, एक स्ट्रिंग जिसमें कंसोल कमांड हैं
    • --payload-powershell, एक स्ट्रिंग जिसमें PowerShell कमांड हैं
    • --payload-powershell-file, PowerShell स्क्रिप्ट का पथ
    पेलोड कब शुरू करना है यह चुनना

    फिलहाल, PyRDP यह पता नहीं लगाता कि उपयोगकर्ता लॉग ऑन है या नहीं। आपको पेलोड चलाने से पहले प्रतीक्षा करने के लिए एक समय अवधि देनी होगी। इस समय अवधि के बीत जाने के बाद, यह नकली कुंजी अनुक्रम भेजेगा और पेलोड के ठीक से चलने की उम्मीद करेगा। ऐसा करने के लिए, आप --payload-delay तर्क का उपयोग करते हैं। देरी मिलीसेकंड में होती है। उदाहरण के लिए, यदि आप उम्मीद करते हैं कि उपयोगकर्ता पहले 5 सेकंड के भीतर लॉग इन हो जाएगा, तो आप निम्नलिखित तर्कों का उपयोग करेंगे:```sh --payload-delay 5000

    root@kitploit:~
    इसे RDPDR आरंभीकरण के दौरान आदान-प्रदान किए गए कुछ संदेशों का लाभ उठाकर और अधिक सटीक बनाया जा सकता है।
    यदि आप इसे बेहतर बनाने में रुचि रखते हैं, तो [यह मुद्दा](https://github.com/GoSecure/pyrdp/issues/98) देखें।
    
    ##### सामान्य गतिविधि फिर से शुरू करने का समय चुनना
    
    चूंकि यह जानने का कोई सीधा तरीका नहीं है कि कंसोल ने चलना बंद कर दिया है, इसलिए आपको PyRDP को बताना होगा कि आप क्लाइंट के इनपुट/आउटपुट को कितने समय तक ब्लॉक करना चाहते हैं। हम अनुशंसा करते हैं कि आप इसे उस अधिकतम समय पर सेट करें जिसके दौरान आप उम्मीद करते हैं कि आपका पेलोड चलाने वाला कंसोल दिखाई देगा। दूसरे शब्दों में, आपके पेलोड को पूरा होने में लगने वाला समय।
    पेलोड अवधि सेट करने के लिए, आप `--payload-duration` तर्क का उपयोग मिलीसेकंड में समय की मात्रा के साथ करते हैं।
    उदाहरण के लिए, यदि आप उम्मीद करते हैं कि आपके पेलोड को पूरा होने में 5 सेकंड तक का समय लगेगा, तो आप निम्नलिखित तर्क का उपयोग करेंगे:```sh
    --payload-duration 5000
    

    यह क्लाइंट के इनपुट/आउटपुट को 5 सेकंड के लिए ब्लॉक कर देगा, ताकि कंसोल छिपा रहे और हस्तक्षेप को रोका जा सके। 5 सेकंड के बाद, इनपुट/आउटपुट सामान्य रूप से बहाल हो जाता है।

    अन्य MITM तर्क

    तर्कों की पूरी सूची के लिए pyrdp-mitm --help चलाएँ।

    --no-downgrade

    यह तर्क पायरेडीपी को हनीपॉट परिदृश्यों में चलाते समय स्कैनर फिंगरप्रिंटिंग से बचने के लिए उपयोगी है। जब स्विच सक्षम होता है, पायरेडीपी असमर्थित एक्सटेंशन को डाउनग्रेड नहीं करेगा और ट्रैफिक को पारदर्शी रूप से गुजरने देगा। प्लेयर संभवतः वीडियो ट्रैफिक को सफलतापूर्वक रीप्ले नहीं कर पाएगा, लेकिन निम्नलिखित समर्थित चैनल अभी भी सुलभ होने चाहिए:

    • की-स्ट्रोक रिकॉर्डिंग
    • माउस स्थिति अपडेट
    • क्लिपबोर्ड एक्सेस (निष्क्रिय)
    • ड्राइव एक्सेस (निष्क्रिय)

    यह सुविधा अभी भी चालू है और कनेक्शन स्थापित करने के लिए कुछ डाउनग्रेडिंग वर्तमान में अपरिहार्य है। निम्नलिखित वर्तमान में इस स्विच से प्रभावित नहीं हैं और अभी भी अक्षम रहेंगे:

    • FIPS एन्क्रिप्शन
    • गैर-TLS एन्क्रिप्शन प्रोटोकॉल
    • क्लाइंटइन्फो संपीड़न
    • वर्चुअल चैनल संपीड़न

    नोट: यदि अंततः पूरे सत्र को रीप्ले करने में सक्षम होना महत्वपूर्ण है, तो एक अच्छा समाधान वायरशार्क का उपयोग करके कच्चे आरडीपी ट्रैफिक को रिकॉर्ड करना और टीएलएस मास्टर सीक्रेट्स को रखना है। जब भी पायरेडीपी अतिरिक्त एक्सटेंशन के लिए समर्थन जोड़ता है, तो कच्चे नेटवर्क कैप्चर से एक मान्य आरडीपी रीप्ले फ़ाइल निकालना संभव हो जाएगा।

    --transparent

    पायरेडीपी को क्लाइंट के स्रोत आईपी पते को स्पूफ करने का प्रयास करने का निर्देश देता है ताकि सर्वर MITM पते के बजाय वास्तविक आईपी पता देखे। यह विकल्प केवल कुछ परिदृश्यों में उपयोगी है जहां MITM शारीरिक रूप से क्लाइंट और सर्वर के बीच एक गेटवे है और सभी ट्रैफिक देखता है। विशिष्ट उदाहरण यहां पाए जा सकते हैं।

    नोट: इसके लिए रूट विशेषाधिकारों की आवश्यकता है, केवल लिनक्स पर काम करता है, और ट्रैफिक को सही ढंग से रूट करने के लिए मैनुअल फ़ायरवॉल कॉन्फ़िगरेशन की आवश्यकता है।

    --no-gdi: त्वरित ग्राफिक्स पाइपलाइन अक्षम करें

    पायरेडीपी वीडियो को सबसे हाल की ग्राफिक्स पाइपलाइन में डाउनग्रेड करता है जिसका वह समर्थन करता है। यह स्विच MITM को स्पष्ट रूप से वीडियो स्ट्रीम करने के लिए ग्राफिक्स डिवाइस इंटरफ़ेस त्वरण एक्सटेंशन का उपयोग न करने का निर्देश देता है। इस मोड का लाभ उच्च रिज़ॉल्यूशन कनेक्शन के लिए आवश्यक बैंडविड्थ में महत्वपूर्ण कमी है।

    ध्यान दें कि कुछ GDI ड्रॉइंग ऑर्डर वर्तमान में लागू नहीं हैं क्योंकि वे अप्रयुक्त प्रतीत होते हैं। यदि आपके पास एक रीप्ले है जिसमें कोई असमर्थित या अनियंत्रित ऑर्डर है, तो परियोजना के अनुरक्षकों के साथ साझा करने में संकोच न करें ताकि आवश्यकतानुसार समर्थन जोड़ा जा सके। (सुनिश्चित करें कि ट्रेस में संवेदनशील जानकारी नहीं है)

    PyRDP प्लेयर का उपयोग करना

    प्लेयर चलाने के लिए pyrdp-player का उपयोग करें।

    रीप्ले फ़ाइल चलाना

    आप एक नई रीप्ले फ़ाइल खोलने के लिए मेनू का उपयोग कर सकते हैं: File > Open।

    आप प्लेयर लॉन्च करते समय भी रीप्ले फ़ाइलें खोल सकते हैं:```sh pyrdp-player ...

    root@kitploit:~
    #### लाइव कनेक्शन के लिए सुनना (Listening for live connections)
    
    प्लेयर हमेशा लाइव कनेक्शन के लिए सुनता है। डिफ़ॉल्ट रूप से, सुनने का पोर्ट 3000 है, लेकिन इसे बदला जा सकता है:```sh
    pyrdp-player -p <PORT>
    

    सुनने का पता बदलना

    डिफ़ॉल्ट रूप से, प्लेयर केवल स्थानीय मशीन से आने वाले कनेक्शनों को सुनता है। हम प्लेयर को अन्य मशीनों के लिए खोलने की अनुशंसा नहीं करते हैं। यदि आप फिर भी सुनने का पता बदलना चाहते हैं, तो आप इसे -b के साथ कर सकते हैं:```sh pyrdp-player -b

    root@kitploit:~
    #### अन्य प्लेयर तर्क
    
    पूर्ण तर्क सूची के लिए `pyrdp-player --help` चलाएँ।
    
    ### PyRDP प्रमाणपत्र क्लोनर का उपयोग करना
    
    नोट: इस उपकरण का उपयोग वैकल्पिक है।
    संस्करण 1.0 से, PyRDP प्रमाणपत्रों को तुरंत उत्पन्न करता है ठीक वैसे ही जैसे यह उपकरण करेगा।
    
    PyRDP प्रमाणपत्र क्लोनर एक मौजूदा RDP सर्वर के प्रमाणपत्र के मानों का उपयोग करके एक बिल्कुल नया X509 प्रमाणपत्र बनाता है। यह एक RDP सर्वर से जुड़ता है, उसका प्रमाणपत्र डाउनलोड करता है, एक नई निजी कुंजी उत्पन्न करता है और नई निजी कुंजी का उपयोग करके प्रमाणपत्र की सार्वजनिक कुंजी और हस्ताक्षर को बदल देता है। इसका उपयोग पेंटेस्ट में किया जा सकता है, उदाहरण के लिए, जब आप किसी वैध उपयोगकर्ता को अपने MITM के माध्यम से जाने के लिए धोखा देने का प्रयास कर रहे हों। एक प्रमाणपत्र का उपयोग करना जो एक वैध प्रमाणपत्र जैसा दिखता है, आपकी सफलता दर बढ़ा सकता है।
    
    #### एक प्रमाणपत्र क्लोन करना
    
    आप `pyrdp-clonecert` का उपयोग करके एक प्रमाणपत्र क्लोन कर सकते हैं:```sh
    pyrdp-clonecert 192.168.1.10 cert.pem -o key.pem
    

    The -o पैरामीटर जनरेट की गई प्राइवेट कुंजी के लिए उपयोग करने हेतु पथ नाम को परिभाषित करता है।

    कस्टम प्राइवेट कुंजी का उपयोग करना

    यदि आप नई प्राइवेट कुंजी जनरेट करने के बजाय अपनी खुद की प्राइवेट कुंजी का उपयोग करना चाहते हैं:```sh pyrdp-clonecert 192.168.1.10 cert.pem -i input_key.pem

    root@kitploit:~
    #### अन्य क्लोनर तर्क
    
    तर्कों की पूरी सूची के लिए `pyrdp-clonecert --help` चलाएँ।
    
    ### PyRDP कन्वर्ट का उपयोग करना
    
    `pyrdp-convert` एक सहायक स्क्रिप्ट है जो विभिन्न इनपुट स्वरूपों से विभिन्न आउटपुट स्वरूपों में कई उपयोगी रूपांतरण करती है।
    यह स्क्रिप्ट PyRDP द्वारा कैप्चर किए गए ट्रैफ़िक पर सबसे अच्छा काम करती है क्योंकि गैर-अवरोधित कनेक्शन में असमर्थित RDP प्रोटोकॉल सुविधाओं का उपयोग हो सकता है।
    
    निम्नलिखित इनपुट समर्थित हैं:
    
    - TLS मास्टर सीक्रेट के साथ नेटवर्क कैप्चर (PCAP) (कम विश्वसनीय)
    - एक्सपोर्टेड PDU लेयर 7 फॉर्मेट में नेटवर्क कैप्चर (PCAP) (अधिक विश्वसनीय)
    - PyRDP द्वारा उत्पन्न रीप्ले फ़ाइल
    
    निम्नलिखित आउटपुट समर्थित हैं:
    
    - MP4 वीडियो फ़ाइल
    - JSON: JSON प्रारूप में क्रमबद्ध निम्न-स्तरीय घटनाओं का अनुक्रम
    - `pyrdp-player` के साथ संगत रीप्ले फ़ाइल
    
    एन्क्रिप्टेड (TLS) नेटवर्क कैप्चर के लिए `--secrets ssl.log` का उपयोग करके TLS मास्टर सीक्रेट प्रदान करना आवश्यक है।```sh
    # Export the session coming client 10.2.0.198 to a .pyrdp file.
    pyrdp-convert --src 10.2.0.198 --secrets ssl.log -o path/to/output capture.pcap
    
    # Or as an MP4 video
    pyrdp-convert --src 10.2.0.198 --secrets ssl.log -o path/to/output -f mp4 capture.pcap
    
    # List the sessions in a network trace, along with the decryptable ones.
    pyrdp-convert --list-only capture.pcap
    

    ध्यान दें कि MP4 रूपांतरण के लिए libavcodec और ffmpeg की आवश्यकता होती है, इसलिए विंडोज पर अतिरिक्त कदम उठाने पड़ सकते हैं।

    मैन्युअल रूप से डिक्रिप्ट किए गए नेटवर्क ट्रेस को Wireshark से File > Export PDUs चुनकर और OSI Layer 7 चुनकर निर्यात किया जा सकता है।

    पहले, सुनिश्चित करें कि आपने Wireshark को TLS सीक्रेट लोड करने के लिए कॉन्फ़िगर किया है:

    TLS सीक्रेट लॉग कॉन्फ़िगर करें

    अगला, OSI Layer 7 PDU निर्यात करें:

    OSI Layer 7 निर्यात करें

    और वैकल्पिक रूप से, डिस्प्ले फ़िल्टर लागू करके और File > Export Specified Packets... पर क्लिक करके ट्रेस को केवल रुचि के वार्तालाप(ओं) तक सीमित करें।

    वैकल्पिक रूप से निर्यातित ट्रेस को फ़िल्टर करना

    अब इस ट्रेस का उपयोग सीधे pyrdp-convert में किया जा सकता है।

    PyRDP कॉन्फ़िगर करना

    अधिकांश PyRDP कॉन्फ़िगरेशन कमांड लाइन स्विच के माध्यम से किया जाता है, लेकिन कुछ सेटिंग्स जैसे लॉग कॉन्फ़िगरेशन के लिए कॉन्फ़िगरेशन फ़ाइल का उपयोग करना भी संभव है।

    PyRDP द्वारा उपयोग की जाने वाली डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइलें mitm.default.ini और player.default.ini में स्थित हैं। दोनों फ़ाइलें पूरी तरह से दस्तावेज़ीकृत हैं और आगे के कॉन्फ़िगरेशन के लिए आधार के रूप में काम कर सकती हैं।

    भविष्य में उन कॉन्फ़िगरेशन फ़ाइलों के माध्यम से PyRDP कॉन्फ़िगरेशन के अन्य पहलुओं का समर्थन करने की योजना है।

    उन्नत उपयोग

    PyRDP को लाइब्रेरी के रूप में उपयोग करना

    यदि आप RDP के साथ प्रयोग करने और अपने स्वयं के उपकरण बनाने में रुचि रखते हैं, तो अधिक जानकारी के लिए हमारे दस्तावेज़ीकरण अनुभाग पर जाएं।

    twistd के साथ PyRDP का उपयोग करना

    PyRDP MITM घटक को twistd प्लगइन के रूप में भी लागू किया गया है। यह आपको इसे डीबग मोड में चलाने में सक्षम बनाता है और यदि आप twistd प्रक्रिया को SIGUSR2 भेजते हैं तो आपको एक इंटरैक्टिव डीबगिंग रेप्ल (pdb) प्राप्त करने की अनुमति देता है। अधिक जानकारी के लिए twistd दस्तावेज़ीकरण देखें।

    Bettercap के साथ PyRDP का उपयोग करना

    हमने अपना स्वयं का Bettercap मॉड्यूल, rdp.proxy, विकसित किया है ताकि किसी दिए गए LAN पर सभी RDP कनेक्शनों को monster-in-the-middle किया जा सके। अधिक जानकारी के लिए यह दस्तावेज़ देखें।

    Docker विशिष्ट उपयोग निर्देश

    चूंकि Docker होस्ट सिस्टम (फ़ाइलसिस्टम और नेटवर्क) के साथ इंटरैक्शन को प्रतिबंधित करता है, PyRDP Docker इमेज को आपके उपयोग के मामले के अनुसार कुछ पैरामीटर के साथ चलाया जाना चाहिए। यह अनुभाग उन पैरामीटर का दस्तावेज़ीकरण करता है।

    हम सार्वजनिक रूप से प्रदान की गई Docker इमेज का संदर्भ लेते हैं लेकिन यदि आपने अपनी खुद की बनाई है तो gosecure/pyrdp को अपनी स्थानीय रूप से बनाई गई इमेज के नाम से बदलें।

    सुनने वाले पोर्ट को मैप करना

    अधिकांश monster-in-the-middle मामलों में आपको अपने होस्ट के एक पोर्ट को Docker इमेज में मैप करने की आवश्यकता होगी। यह docker run पर लागू किए गए --publish (-p) पैरामीटर द्वारा प्राप्त किया जाता है।

    उदाहरण के लिए, सभी इंटरफेस पर 3389 (RDP का डिफ़ॉल्ट पोर्ट) पर सुनने के लिए, इसका उपयोग करें:```sh docker run -p 3389:3389 gosecure/pyrdp pyrdp-mitm 192.168.1.10

    root@kitploit:~
    #### लॉग और आर्टिफैक्ट्स का भंडारण
    
    PyRDP आउटपुट को स्थायी रूप से संग्रहीत करने के लिए (लॉग, फ़ाइलें, आदि), पिछले कमांड में `--volume` (`-v`) विकल्प जोड़ें। इस उदाहरण में हम फ़ाइलों को वर्तमान निर्देशिका के सापेक्ष `pyrdp_output` में संग्रहीत करते हैं:```sh
    docker run -v $PWD/pyrdp_output:/home/pyrdp/pyrdp_output -p 3389:3389 gosecure/pyrdp pyrdp-mitm 192.168.1.10
    

    सुनिश्चित करें कि आपकी गंतव्य निर्देशिका 1000 के UID वाले उपयोगकर्ता के स्वामित्व में है, अन्यथा आपको अनुमति अस्वीकार त्रुटियाँ मिलेंगी। यदि आप सिस्टम पर एकमात्र गैर-रूट उपयोगकर्ता हैं, तो आमतौर पर आपके उपयोगकर्ता को UID 1000 निर्धारित किया जाएगा।

    होस्ट IP पते की लॉगिंग

    यदि आप चाहते हैं कि PyRDP अपने लॉग में होस्ट IP पते को लॉग करे, तो आप docker run का उपयोग करते समय HOST_IP पर्यावरण चर सेट कर सकते हैं:```sh docker run -p 3389:3389 -e HOST_IP=192.168.1.9 gosecure/pyrdp pyrdp-mitm 192.168.1.10

    root@kitploit:~
    #### डॉकर में GUI प्लेयर का उपयोग करना
    
    प्लेयर का उपयोग करने के लिए आपको होस्ट से डॉकर में `DISPLAY` पर्यावरण चर निर्यात करना होगा।
    यह प्लेयर के GUI को होस्ट स्क्रीन पर रीडायरेक्ट करता है।
    आपको होस्ट के नेटवर्क को उजागर करने और Qt को MIT-SHM X11 Shared Memory Extension का उपयोग करने से रोकने की भी आवश्यकता है।
    ऐसा करने के लिए, run कमांड में `-e` और `--net` विकल्प जोड़ें:```sh
    docker run -e DISPLAY=$DISPLAY -e QT_X11_NO_MITSHM=1 --net=host gosecure/pyrdp pyrdp-player
    

    ध्यान रखें कि होस्ट के नेटवर्क को डॉकर के लिए उजागर करना आपके कंटेनर और होस्ट के बीच अलगाव से समझौता कर सकता है। यदि आप प्लेयर का उपयोग करने की योजना बना रहे हैं, तो SSH कनेक्शन का उपयोग करके X11 forwarding अधिक सुरक्षित तरीका होगा।

    Docker में वीडियो कनवर्ट करना

    वीडियो कनवर्ट करने की प्रक्रिया PyAV, ffmpeg और QT पर निर्भर करती है, इसलिए आपको नियमित डॉकर इमेज की आवश्यकता होगी, स्लिम वाली नहीं।

    आपको कंटेनर के साथ फ़ाइलें साझा करने के लिए वॉल्यूम माउंट (-v) की आवश्यकता है। यहाँ हम अपनी स्थानीय निर्देशिका को कंटेनर में /shared/ के साथ मैप करते हैं।```sh docker run -e QT_QPA_PLATFORM=offscreen -v $PWD/:/shared gosecure/pyrdp pyrdp-convert -f mp4 <filename-relative-to-volume-in-/shared/> -o /shared/

    root@kitploit:~
    `QT_QPA_PLATFORM=offscreen` पर्यावरण चर आवश्यक है [यहाँ दस्तावेज़ित एक बग के कारण](https://github.com/GoSecure/pyrdp/issues/428)।
    यह QT को बताता है कि कोई डिस्प्ले वातावरण उपलब्ध नहीं होना सही है।
    
    ## PyRDP किंवदंती
    
    * [परिचय ब्लॉग पोस्ट](https://www.gosecure.net/blog/2018/12/19/rdp-man-in-the-middle-smile-youre-on-camera) जिसमें हमने [प्रदर्शित किया कि हम एक वास्तविक खतरे वाले अभिनेता को कार्रवाई में पकड़ सकते हैं](https://www.youtube.com/watch?v=eB7RC9FmL6Q)
    * [NorthSec 2019 में वार्ता](https://docs.google.com/presentation/d/1avcn8Sh2b3IE7AA0G9l7Cj5F1pxqizUm98IbXUo2cvY/edit#slide=id.g404b70030f_0_581) जहाँ दो डेमो प्रस्तुत किए गए:
      * [पहला डेमो](https://youtu.be/5JztJzi-m48): क्रेडेंशियल लॉगिंग, क्लिपबोर्ड चोरी, क्लाइंट-साइड फ़ाइल ब्राउज़िंग और एक सत्र अधिग्रहण
      * [दूसरा डेमो](https://youtu.be/bU67tj1RkMA): क्लाइंट के सफलतापूर्वक प्रमाणित होने पर cmd या powershell पेलोड का निष्पादन
    * [PyRDP लोगो](https://github.com/gosecure/pyrdp/blob/main/docs/pyrdp-logo.png) CC-BY-SA 4.0 के तहत लाइसेंस प्राप्त।
    * [BlackHat USA Arsenal 2019 स्लाइड्स](https://docs.google.com/presentation/d/17P_l2n-hgCehQ5eTWilru4IXXHnGIRTj4ftoW4BiX5A/edit?usp=sharing)
    * [DerbyCon 2019 स्लाइड्स](https://docs.google.com/presentation/d/1UAiN2EZwDcmBjLe_t5HXB0LzbNclU3nnigC-XM4neIU/edit?usp=sharing) ([वीडियो](https://www.youtube.com/watch?v=zgt3N6Nrnss))
    * [ब्लॉग: ऑटोपायलट पर PyRDP](https://www.gosecure.net/blog/2020/02/26/pyrdp-on-autopilot-unattended-credential-harvesting-and-client-side-file-stealing/)
    * [ब्लॉग: PyRDP 1.0](https://www.gosecure.net/blog/2020/10/20/announcing-pyrdp-1-0/)
    * [DefCon 2020 डेमो लैब्स](https://www.youtube.com/watch?v=1q2Eo3x3u0g)
    * [ब्लॉग: RDP NetNTLMv2 हैश कैप्चर करना: हमले का विवरण और एक तकनीकी कैसे-करें गाइड](https://www.gosecure.net/blog/2022/01/17/capturing-rdp-netntlmv2-hashes-attack-details-and-a-technical-how-to-guide/)
    * [BlackHat USA Arsenal 2021 स्लाइड्स](https://gosecure.github.io/presentations/2021-08-05_blackhat-usa/BlackHat-USA-21-Arsenal-PyRDP-OlivierBilodeau.pdf)
    * [प्रस्तुति: मैंने आपको पासा रोल करते देखा: अद्वितीय RDP निगरानी हमलावरों की कारीगरी को उजागर करती है](http://i.blackhat.com/BH-US-23/Presentations/US-23-Bilodeau-I-Watched-You-Roll-the-Die-Unparalleled-RDP-Monitoring.pdf) BlackHat USA 2023 में
    
    ## PyRDP में योगदान
    
    हमारे [योगदान दिशानिर्देश](https://github.com/gosecure/pyrdp/blob/main/CONTRIBUTING.md) देखें।
    
    ## आभार
    
    PyRDP निम्नलिखित ओपन-सोर्स सॉफ़्टवेयर से कोड का उपयोग करता है:
    
    - [RC4-Python](https://github.com/bozhu/RC4-Python) RC4 कार्यान्वयन के लिए।
    - [rdesktop](https://github.com/rdesktop/rdesktop) बिटमैप डीकंप्रेसन के लिए।
    - [rdpy](https://github.com/citronneur/rdpy) RC4 कुंजियों, बिटमैप डीकंप्रेसन बाइंडिंग और PyRDP प्लेयर के लिए बेस GUI कोड के लिए।
    - [FreeRDP](https://github.com/FreeRDP/FreeRDP) स्कैन कोड गणना के लिए।
    
    टूल डाउनलोड करें