
Burp या समान HTTP प्रॉक्सी टूल्स का उपयोग करके Windows Named Pipes संचार को इंटरसेप्ट करें
नेम्ड पाइप्स विंडोज़ पर इंटरप्रोसेस संचार के लिए बहुत लोकप्रिय हैं। इनका उपयोग कई अनुप्रयोगों में किया जाता है, जिसमें विंडोज़ रिमोट प्रोसीजर कॉल (RPC) भी शामिल है। इस टूल का उद्देश्य सुरक्षा शोधकर्ताओं और पेंटेस्टर्स को उन अनुप्रयोगों के लिए सुरक्षा मूल्यांकन करने की अनुमति देना है जो नेम्ड पाइप्स का उपयोग करते हैं।
यह प्रोजेक्ट CyberArk Labs के अद्भुत MITM_Intercept प्रोजेक्ट से प्रेरित है।
यह टूल एक WebSocket क्लाइंट/सर्वर ब्रिज के साथ एक पाइप क्लाइंट/सर्वर प्रॉक्सी बनाता है। WebSocket क्लाइंट, Burp जैसे HTTP प्रॉक्सी के माध्यम से WebSocket सर्वर से कनेक्ट होता है।
महत्वपूर्ण नोट: यह टूल नेम्ड पाइप्स बनाने के लिए win32 api का उपयोग करता है, इसलिए यह केवल विंडोज़ पर काम करता है। फिलहाल इसे लक्षित पाइप सर्वर और HTTP प्रॉक्सी के समान मशीन पर चलाना आवश्यक है। मैं रिमोट प्रॉक्सी का उपयोग करने का विकल्प और रिमोट पाइप सर्वर पर रिले करने का विकल्प जोड़ सकता हूँ, लेकिन टूल को अभी भी विंडोज़ पर चलाना होगा।
फ्लो आरेख:

यह समझना महत्वपूर्ण है कि यह टूल लक्षित सर्वर एप्लिकेशन द्वारा बनाए गए इंस्टेंस से अलग, अलग पाइप सर्वर इंस्टेंस बनाकर काम करता है, जिससे लक्षित क्लाइंट एप्लिकेशन इन प्रॉक्सी इंस्टेंस से कनेक्ट हो जाता है। इसका मतलब कुछ बातें हैं:
जैसा कि आप उपरोक्त बिंदुओं से देख सकते हैं, इस टूल का उपयोग करने से लक्षित एप्लिकेशन के व्यवहार में बदलाव आ सकता है। कृपया याद रखें कि यह टूल मुख्य रूप से सुरक्षा परीक्षण के लिए है, इसे प्रोडक्शन सिस्टम में उपयोग न करें।
टूल का परीक्षण Python संस्करण 3.13.7 के साथ किया गया था। सेटअप:
python -m venv .venv
.venv\Scripts\activate.bat
pip install -r requirements.txt
usage: pipe_intercept.py [-h] --pipe-name PIPE_NAME [--ws-port WS_PORT] [--http-proxy-port HTTP_PROXY_PORT] [--log-level {CRITICAL,ERROR,WARNING,INFO,DEBUG}]
options:
-h, --help show this help message and exit
--pipe-name PIPE_NAME
The name of the pipe to be intercepted
--ws-port WS_PORT An available port number for the internal WebSocket server (if not specified, a random port will be used)
--http-proxy-port HTTP_PROXY_PORT
The port number of the HTTP proxy (if not specified, the default is 8080)
--log-level {CRITICAL,ERROR,WARNING,INFO,DEBUG}
Log level (if not specified, the default is INFO)
रूट फ़ोल्डर (pipe-intercept) से:
pytest
विंडोज़ पर Docker, क्लाइंट और docker सेवा के बीच संचार के लिए एक नेम्ड पाइप का उपयोग करता है। पाइप का नाम "\\.\pipe\docker_engine" है। आइए देखें कि हम इस संचार को कैसे इंटरसेप्ट कर सकते हैं। हम टूल चलाकर शुरू करते हैं:
C:\pipe-intercept>python pipe_intercept.py --pipe-name docker_engine
INFO:websockets.server:server listening on 127.0.0.1:12037
अब हम Burp शुरू कर सकते हैं, और दूसरे शेल से एक Windows कंटेनर बना सकते हैं:
C:\pipe-intercept>docker run -it --name win mcr.microsoft.com/windows:1809-amd64 cmd
Microsoft Windows [Version 10.0.17763.2803]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\>dir
Volume in drive C has no label.
Volume Serial Number is 5C09-8FFA
Directory of C:\
05/07/2020 06:16 AM 5,510 License.txt
04/04/2022 02:57 PM <DIR> PerfLogs
04/04/2022 04:13 PM <DIR> Program Files
04/04/2022 02:57 PM <DIR> Program Files (x86)
04/04/2022 04:17 PM <DIR> Users
04/04/2022 04:13 PM <DIR> Windows
1 File(s) 5,510 bytes
5 Dir(s) 21,188,812,800 bytes free
C:\>
अब अगर हम Burp में WebSocket टैब खोलते हैं, तो हम संचार देख सकते हैं:

हम इंटरसेप्शन चालू करके संदेश को बदल भी सकते हैं:

Microsoft Windows [Version 10.0.17763.2803]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\>dir
Volume in drive C has no label.
Volume Serial Number is 5C09-8FFA
Directory of C:\
05/07/2020 06:16 AM 5,510 License.txt
04/04/2022 02:57 PM <DIR> PerfLogs
04/04/2022 04:13 PM <DIR> Modified Name
04/04/2022 02:57 PM <DIR> Program Files (x86)
04/04/2022 04:17 PM <DIR> Users
04/04/2022 04:13 PM <DIR> Windows
1 File(s) 5,510 bytes
5 Dir(s) 21,188,288,512 bytes free
C:\>