
FakeNet-NG - अगली पीढ़ी का डायनामिक नेटवर्क विश्लेषण उपकरण
| ____/\ | |/ / ____| \ | | ____|__ __| | \ | |/ ____|
| |__ / \ | ' /| |__ | \| | |__ | |______| \| | | __
| __/ /\ \ | < | __| | . ` | __| | |______| . ` | | |_ |
| | / ____ \| . \| |____| |\ | |____ | | | |\ | |__| |
|_|/_/ \_\_|\_\______|_| \_|______| |_| |_| \_|\_____|
D O C U M E N T A T I O N
FakeNet-NG 3.5 मैलवेयर विश्लेषकों और पैठ परीक्षकों के लिए एक अगली पीढ़ी का गतिशील नेटवर्क विश्लेषण उपकरण है। यह ओपन सोर्स है और विंडोज (और लिनक्स, कुछ संचालन मोड के लिए) के नवीनतम संस्करणों के लिए डिज़ाइन किया गया है। FakeNet-NG एंड्रयू होनिग और माइकल सिकोर्स्की द्वारा विकसित उत्कृष्ट Fakenet टूल पर आधारित है।
यह टूल आपको सभी या विशिष्ट नेटवर्क ट्रैफ़िक को इंटरसेप्ट और रीडायरेक्ट करने की अनुमति देता है, साथ ही वैध नेटवर्क सेवाओं का अनुकरण करता है। FakeNet-NG का उपयोग करके, मैलवेयर विश्लेषक मैलवेयर की कार्यक्षमता को शीघ्रता से पहचान सकते हैं और नेटवर्क सिग्नेचर कैप्चर कर सकते हैं। पैठ परीक्षक और बग हंटर्स को FakeNet-NG का कॉन्फ़िगरेबल इंटरसेप्शन इंजन और मॉड्यूलर फ्रेमवर्क एप्लिकेशन की विशिष्ट कार्यक्षमता का परीक्षण करने और PoCs को प्रोटोटाइप करते समय अत्यधिक उपयोगी लगेगा।
आप FakeNet-NG को कुछ अलग-अलग तरीकों से स्थापित कर सकते हैं। ध्यान दें कि निम्नलिखित स्थापना प्रक्रियाएं FakeNet-NG द्वारा उपयोग किए जाने वाले तीसरे पक्ष के ओपन-सोर्स पुस्तकालयों को आपके सिस्टम पर लाएगी। ये पुस्तकालय रनटाइम पर गतिशील रूप से लोड किए जाएंगे, और इनमें से कुछ पुस्तकालय LGPL लाइसेंस प्राप्त हो सकते हैं।
संकलित संस्करण को डाउनलोड करना सबसे आसान है, जिसे रिलीज़ पेज से प्राप्त किया जा सकता है:
https://github.com/mandiant/flare-fakenet-ng/releases
'fakenet.exe' चलाकर FakeNet-NG निष्पादित करें।
यह विंडोज पर FakeNet-NG का उपयोग करने का पसंदीदा तरीका है क्योंकि इसमें आपको कोई अतिरिक्त मॉड्यूल स्थापित करने की आवश्यकता नहीं होती है, जो मैलवेयर विश्लेषण मशीन के लिए आदर्श है।
नोट: FakeNet-NG को एंटीवायरस (AV) और एंडपॉइंट डिटेक्शन एंड रिस्पॉन्स (EDR) समाधानों (जैसे, विंडोज डिफेंडर, क्रोम की सेफ ब्राउज़िंग) द्वारा दुर्भावनापूर्ण के रूप में चिह्नित किया जा सकता है। यह संभवतः नेटवर्क ट्रैफ़िक को संशोधित करने और नेटवर्क सेवाओं का अनुकरण करने की इसकी क्षमता के साथ-साथ रिलीज़ निष्पादन योग्य बनाने के लिए PyInstaller के उपयोग के कारण है। आधिकारिक रिलीज़ बाइनरी सुरक्षित हैं, और इन डिटेक्शन को झूठी सकारात्मकता माना जाना चाहिए। एक अनुस्मारक के रूप में, FakeNet-NG को एक नियंत्रित और पृथक वातावरण, जैसे कि वर्चुअल मशीन (VM), में उपयोग के लिए डिज़ाइन किया गया है और अत्यधिक अनुशंसित किया जाता है, जहां यह सिस्टम की नेटवर्क सेटिंग्स को सुरक्षित रूप से बदल सकता है।
विंडोज/लिनक्स OS के लिए Python 3.10.11 और नवीनतम pip स्थापित करें।
विंडोज पर, Visual C++ build tools डाउनलोड और इंस्टॉल करें।
लिनक्स पर स्थापना के लिए निम्नलिखित निर्भरताओं की आवश्यकता होती है:
निम्नलिखित कमांड का उपयोग करके इन निर्भरताओं को स्थापित करें:
sudo apt-get install build-essential python3.10-dev libnetfilter-queue-dev
pip का उपयोग करके FakeNet-NG को Python मॉड्यूल के रूप में स्थापित करें:
python -m pip install https://github.com/mandiant/flare-fakenet-ng/zipball/master
या नवीनतम स्रोत कोड प्राप्त करके और इसे मैन्युअल रूप से स्थापित करके:
git clone https://github.com/mandiant/flare-fakenet-ng/
व्यवस्थापक विशेषाधिकारों के साथ निम्नलिखित कमांड चलाकर Python निर्भरताएं स्थापित करें:
लिनक्स (उबंटू 24.04.2 LTS में परीक्षित) में, setup.py चलाने से पहले निम्नलिखित कमांड चलाएं:
python -m pip install --upgrade setuptools
# python 3.10 के लिए व्हील बनाएं
python -m pip install --force-reinstall netifaces
# परीक्षण के दौरान "ModuleNotFoundError: No module named '_cffi_backend'" त्रुटि देखी गई
# यह क्रिप्टोग्राफी के लिए cffi पैकेज का आवश्यक संस्करण प्राप्त करेगा
python -m pip install --upgrade cryptography
अंत में, यदि आप FakeNet-NG को स्थापित करने से बचना चाहते हैं और इसे वैसे ही चलाना चाहते हैं (जैसे विकास के लिए), तो आपको स्रोत कोड प्राप्त करना होगा और निर्भरताओं को निम्नानुसार स्थापित करना होगा:
विंडोज/लिनक्स के 64-बिट या 32-बिट संस्करणों के लिए क्रमशः 64-बिट या 32-बिट Python 3.10.11 स्थापित करें।
विंडोज में, व्यवस्थापक विशेषाधिकारों के साथ निम्नलिखित कमांड चलाकर Python निर्भरताएं स्थापित करें:
python -m pip install pydivert dnslib dpkt pyopenssl pyftpdlib netifaces jinja2
नोट: pydivert %PYTHONHOME%\DLLs निर्देशिका में WinDivert पुस्तकालय और ड्राइवर भी डाउनलोड और इंस्टॉल करेगा। FakeNet-NG उन फ़ाइलों को बंडल करता है, इसलिए सामान्य उपयोग के लिए उनकी आवश्यकता नहीं है।
लिनक्स में, व्यवस्थापक विशेषाधिकारों के साथ निम्नलिखित कमांड चलाकर Python निर्भरताएं स्थापित करें:
python -m pip install --upgrade setuptools
# python 3.10 के लिए व्हील बनाएं
python -m pip install --force-reinstall netifaces
# परीक्षण के दौरान "ModuleNotFoundError: No module named '_cffi_backend'" त्रुटि देखी गई
# यह क्रिप्टोग्राफी के लिए cffi पैकेज का आवश्यक संस्करण प्राप्त करेगा
python -m pip install --upgrade cryptography
python -m pip install netfilterqueue dnslib dpkt pyopenssl pyftpdlib netifaces jinja2
वैकल्पिक रूप से, आप परीक्षण के लिए उपयोग किए जाने वाले निम्नलिखित मॉड्यूल को स्थापित कर सकते हैं:
python -m pip install requests
FakeNet-NG स्रोत कोड डाउनलोड करें:
git clone https://github.com/mandiant/flare-fakenet-ng
लिनक्स में, DNS सुनने के लिए पोर्ट 53 खाली करें:
FakeNet-NG चलाने का सबसे आसान तरीका प्रदान किए गए निष्पादन योग्य को व्यवस्थापक के रूप में निष्पादित करना है। सरल सहायता प्राप्त करने के लिए आप --help कमांड-लाइन पैरामीटर प्रदान कर सकते हैं:
C:\tools\fakenet-ng>fakenet.exe --help
______ _ ________ _ _ ______ _______ _ _ _____
| ____/\ | |/ / ____| \ | | ____|__ __| | \ | |/ ____|
| |__ / \ | ' /| |__ | \| | |__ | |______| \| | | __
| __/ /\ \ | < | __| | . ` | __| | |______| . ` | | |_ |
| | / ____ \| . \| |____| |\ | |____ | | | |\ | |__| |
|_|/_/ \_\_|\_\______|_| \_|______| |_| |_| \_|\_____|
Version 3.5
_____________________________________________________________
Developed by FLARE Team
Copyright (C) 2016-2026 Mandiant, Inc. All rights reserved.
_____________________________________________________________
Usage: python -m fakenet.fakenet [options]:
Options:
-h, --help show this help message and exit
-c FILE, --config-file=FILE
configuration filename
-v, --verbose print more verbose messages (default: False)
-l LOG_FILE, --log-file=LOG_FILE
-s, --log-syslog Log to syslog via /dev/log (default: False)
-f STOP_FLAG, --stop-flag=STOP_FLAG
terminate if stop flag file is created
-p, --no-pause disable pause for confirmation before closing the console
(default: pause)
-n, --no-console-output
Suppress console output (for testing on Linux)
जैसा कि आप ऊपर सरल सहायता से देख सकते हैं, FakeNet-NG शुरू करने के लिए उपयोग किए जाने वाले कॉन्फ़िगरेशन फ़ाइल को कॉन्फ़िगर करना संभव है। डिफ़ॉल्ट रूप से, टूल configs\default.ini का उपयोग करता है; हालाँकि, इसे -c पैरामीटर के साथ बदला जा सकता है। configs निर्देशिका में कई उदाहरण कॉन्फ़िगरेशन फ़ाइलें हैं। विभिन्न सेटिंग्स की बड़ी संख्या के कारण, FakeNet-NG अपनी कार्यक्षमता को नियंत्रित करने के लिए कॉन्फ़िगरेशन फ़ाइलों पर निर्भर करता है।
नोट: FakeNet-NG निर्दिष्ट कॉन्फ़िगरेशन फ़ाइल को खोजने का प्रयास करेगा, पहले आपके द्वारा प्रदान किए गए निरपेक्ष या सापेक्ष पथ का उपयोग करके यदि आप अपने सभी कॉन्फ़िगरेशन को संग्रहीत करना चाहते हैं। यदि निर्दिष्ट कॉन्फ़िगरेशन फ़ाइल नहीं मिलती है, तो यह अपनी configs निर्देशिका में देखेगा।
शेष कमांड-लाइन विकल्प आपको लॉगिंग आउटपुट की मात्रा को नियंत्रित करने के साथ-साथ इसे स्क्रीन पर डंप करने के बजाय एक फ़ाइल में रीडायरेक्ट करने की अनुमति देते हैं।
इससे पहले कि हम गहराई में जाएं और FakeNet-NG चलाएं, आइए कुछ बुनियादी अवधारणाओं पर चर्चा करें। टूल में कई मॉड्यूल एक साथ काम करते हैं। ऐसा ही एक महत्वपूर्ण मॉड्यूल Diverter है जो लिसनर्स के संग्रह में ट्रैफ़िक को रीडायरेक्ट करने के लिए जिम्मेदार है। Diverter एप्लिकेशन को वास्तविक सर्वरों के बजाय FakeNet-NG के साथ बातचीत करने के लिए मजबूर करता है। लिसनर्स अलग-अलग सेवाएं हैं जो इनकमिंग कनेक्शन को संभालती हैं और हमें एप्लिकेशन के ट्रैफ़िक (जैसे मैलवेयर सिग्नेचर) की जांच करने की अनुमति देती हैं।
डिफ़ॉल्ट सेटिंग्स का उपयोग करके निम्नलिखित कमांड चलाकर FakeNet-NG लॉन्च करें:
C:\tools\fakenet-ng>fakenet.exe
नीचे एनोटेटेड आउटपुट लॉग है जो एक नमूना इंटरसेप्टेड DNS अनुरोध और एक HTTP कनेक्शन दिखाता है:
______ _ ________ _ _ ______ _______ _ _ _____
| ____/\ | |/ / ____| \ | | ____|__ __| | \ | |/ ____|
| |__ / \ | ' /| |__ | \| | |__ | |______| \| | | __
| __/ /\ \ | < | __| | . ` | __| | |______| . ` | | |_ |
| | / ____ \| . \| |____| |\ | |____ | | | |\ | |__| |
|_|/_/ \_\_|\_\______|_| \_|______| |_| |_| \_|\_____|
Version 3.5
_____________________________________________________________
Developed by FLARE Team
Copyright (C) 2016-2026 Mandiant, Inc. All rights reserved.
_____________________________________________________________
07/06/16 10:20:52 PM [ FakeNet] Loaded configuration file: configs/default.ini
/
default configuration file /
07/06/16 10:20:52 PM [ Diverter] Capturing traffic to packets_20160706_222052.pcap
/
PCAP output file /
07/06/16 10:20:52 PM [ FakeNet] Anonymous Forwarder listener on TCP port 8080...
\
\ Anonymous Listener rule
07/06/16 10:20:52 PM [ RawTCPListener] Starting...
07/06/16 10:20:52 PM [ RawUDPListener] Starting...
07/06/16 10:20:52 PM [ FilteredListener] Starting...
07/06/16 10:20:52 PM [ DNS Server] Starting...
07/06/16 10:20:52 PM [ HTTPListener80] Starting...
07/06/16 10:20:52 PM [ HTTPListener443] Starting...
07/06/16 10:20:52 PM [ SMTPListener] Starting...
07/06/16 10:20:52 PM [ Diverter] Starting...
\
\ Listeners starting up
07/06/16 10:20:52 PM [ Diverter] Diverting ports:
07/06/16 10:20:52 PM [ Diverter] TCP: 1337, 80, 443, 25
07/06/16 10:20:52 PM [ Diverter] UDP: 1337, 53
/
Summary of diverted ports /
07/06/16 10:21:03 PM [ Diverter] Modifying outbound external UDP request packet:
07/06/16 10:21:03 PM [ Diverter] from: 192.168.250.140:49383 -> 4.2.2.1:53
07/06/16 10:21:03 PM [ Diverter] to: 192.168.250.140:49383 -> 192.168.250.140:53
07/06/16 10:21:03 PM [ Diverter] pid: 456 name: malware.exe
/
Intercepted traffic to the DNS server from malware.exe /
07/06/16 10:21:03 PM [ DNS Server] Received A request for domain 'evil.com'.
\
\ Fake DNS Listener handling the above request
07/06/16 10:21:04 PM [ Diverter] Modifying outbound external TCP request packet:
07/06/16 10:21:04 PM [ Diverter] from: 192.168.250.140:2179 -> 192.0.2.123:80
07/06/16 10:21:04 PM [ Diverter] to: 192.168.250.140:2179 -> 192.168.250.140:80
07/06/16 10:21:04 PM [ Diverter] pid: 456 name: malware.exe
/
Intercepted traffic to the web server from malware.exe /
07/06/16 10:21:08 PM [ HTTPListener80] Received a GET request.
07/06/16 10:21:08 PM [ HTTPListener80] --------------------------------------------------------------------------------
07/06/16 10:21:08 PM [ HTTPListener80] GET / HTTP/1.0
07/06/16 10:21:08 PM [ HTTPListener80]
07/06/16 10:21:08 PM [ HTTPListener80] --------------------------------------------------------------------------------
\
\ Fake HTTP Listener handling the above request
ध्यान दें कि प्रत्येक लॉग लाइन में वर्तमान में चल रहे FakeNet-NG मॉड्यूल का नाम है। उदाहरण के लिए, जब यह ट्रैफ़िक को डायवर्ट कर रहा होता है, तो लॉग Diverter लेबल से उपसर्गित होंगे:
07/06/16 10:21:03 PM [ Diverter] Modifying outbound external UDP request packet:
07/06/16 10:21:03 PM [ Diverter] from: 192.168.250.140:49383 -> 4.2.2.1:53
07/06/16 10:21:03 PM [ Diverter] to: 192.168.250.140:49383 -> 192.168.250.140:53
07/06/16 10:21:03 PM [ Diverter] pid: 456 name: malware.exe
उसी समय, जब भी अलग-अलग लिसनर्स डायवर्टेड ट्रैफ़िक को संभाल रहे होते हैं, तो लॉग कॉन्फ़िगरेशन फ़ाइल में निर्धारित नाम से लेबल किए जाएंगे:
07/06/16 10:21:03 PM [ DNS Server] Received A request for domain 'evil.com'.
FakeNet-NG को रोकने और उत्पन्न PCAP फ़ाइल और HTML रिपोर्ट को डिस्क पर सहेजने के लिए बस CTRL-C दबाएं:
07/06/16 10:21:41 PM [ FakeNet] Stopping...
07/06/16 10:21:42 PM [ HTTPListener80] Stopping...
07/06/16 10:21:42 PM [ HTTPListener443] Stopping...
07/06/16 10:21:42 PM [ SMTPListener] Stopping...
07/06/16 10:21:43 PM [ Diverter] Stopping...
07/06/16 10:21:43 PM [ Diverter] Generated new HTML report: report_20160607_102143.html
[Press Enter to exit]
PCAP और रिपोर्ट उत्पन्न होने की प्रतीक्षा करें, फिर बाहर निकलने के लिए Enter दबाएं। कंसोल विंडो तब तक खुली रहेगी जब तक आप ऐसा नहीं करते; इसे --no-pause फ्लैग से अक्षम किया जा सकता है (उदाहरण के लिए, स्क्रिप्ट में)।
FakeNet-NG के प्रत्येक सत्र के साथ, एक HTML रिपोर्ट उत्पन्न होती है जिसमें पूरे सत्र के दौरान कैप्चर किए गए नेटवर्क-आधारित संकेतक (NBI) शामिल होते हैं। CTRL-C दबाकर FakeNet के समाप्त होने पर, यह HTML फ़ाइल FakeNet की रूट निर्देशिका में सहेजी जाएगी। एक उपयोगकर्ता इस HTML फ़ाइल को क्रोम या फ़ायरफ़ॉक्स जैसे ब्राउज़र में देखकर NBI की समीक्षा कर सकता है।
HTML रिपोर्ट एक इंटरैक्टिव ग्राफ़िकल यूज़र इंटरफ़ेस (GUI) के रूप में कार्य करती है जो NBI सारांश को उपयोगकर्ता-अनुकूल तरीके से प्रस्तुत करती है। इसमें NBI का चयन, फ़िल्टर और कॉपी करने के लिए विभिन्न सुविधाएं शामिल हैं, जिससे नेटवर्क विश्लेषण आसान हो जाता है। UI सभी NBI को उनकी प्रक्रिया जानकारी के आधार पर व्यवस्थित करता है और फिर उन्हें उनके द्वारा उपयोग किए जाने वाले एप्लिकेशन लेयर या ट्रांसपोर्ट लेयर प्रोटोकॉल द्वारा और वर्गीकृत करता है।
NBI सारांश तालिका में जानकारी एक सारणीबद्ध प्रारूप में प्रस्तुत की जाती है और इसमें निम्नलिखित विवरण शामिल होते हैं:
चयन: चेकबॉक्स पर क्लिक करने से संबंधित NBI चयनित होता है। आप विभिन्न या समान प्रोटोकॉल में कई NBI का चयन कर सकते हैं। पंक्ति के भीतर कहीं भी क्लिक करके पूरी पंक्ति का भी चयन किया जा सकता है। चयनित NBI को "Copy Selected NBIs" बटन का उपयोग करके कॉपी किया जा सकता है।
NBI: यह सेल वास्तविक कैप्चर किए गए NBI का प्रतिनिधित्व करता है। इसमें कमांड, पैरामीटर, URI और क्लाइंट द्वारा लिसनर के विरुद्ध उत्पन्न अन्य महत्वपूर्ण गतिविधि शामिल हैं। यह सेल बेहतर समझ के लिए मैलवेयर व्यवहार का सारांश प्रस्तुत करता है।
अतिरिक्त जानकारी: यह सेल प्रत्येक NBI अनुरोध के बारे में अतिरिक्त जानकारी प्रदान करता है जैसे कि उपयोग किया गया ट्रांसपोर्ट लेयर प्रोटोकॉल, गंतव्य IP, पोर्ट और SSL एन्क्रिप्शन।
क्रियाएं: यह सेल आपको अलग-अलग NBI पर क्रियाएं करने की अनुमति देता है। वर्तमान में, केवल कॉपी करना समर्थित है। कॉपी बटन पर क्लिक करने से विशिष्ट NBI सेल डेटा एक मार्कडाउन प्रारूप में कॉपी होता है जो रिपोर्ट बनाने के लिए उपयुक्त है।
UI में विभिन्न इंटरैक्टिव सुविधाएं भी शामिल हैं:
चेकबॉक्स चयन: प्रत्येक प्रक्रिया और प्रोटोकॉल ब्लॉक से पहले चेकबॉक्स उपलब्ध हैं। एक चेकबॉक्स को टिक करने से उस प्रक्रिया या प्रोटोकॉल के अंतर्गत सभी NBI चयनित हो जाते हैं। यह उपयोगी है जब आप किसी विशेष प्रक्रिया या प्रोटोकॉल से सभी NBI का चयन करना चाहते हैं। फिर आप चयनित डेटा को कॉपी करने के लिए Copy Selected NBIs बटन का उपयोग कर सकते हैं।
खोज बार: खोज बार आपको कीवर्ड टाइप करने देता है, और केवल वे पंक्तियाँ जिनमें प्रक्रिया नाम, NBI या अतिरिक्त जानकारी में ये कीवर्ड शामिल हैं, HTML पृष्ठ पर प्रदर्शित होंगी। फिर आप प्रदर्शित डेटा को मार्कडाउन प्रारूप में कॉपी करने के लिए "Copy Filtered Data" बटन का उपयोग कर सकते हैं। खोज क्वेरी साफ़ करने से मूल तालिका दृश्य पुनर्स्थापित हो जाता है।
कॉपी बटन:
Copy Selected Data: सभी चयनित NBI को मार्कडाउन प्रारूप में कॉपी करता है। आप अलग-अलग NBI का चयन कर सकते हैं या चेकबॉक्स टिक करके किसी प्रक्रिया के अंतर्गत सभी NBI का चयन कर सकते हैं।Copy Filtered Data: फ़िल्टर किए गए NBI के डेटा को मार्कडाउन प्रारूप में कॉपी करता है। यदि कोई खोज क्वेरी का उपयोग नहीं किया जाता है, तो यह बटन पूरे डेटा को कॉपी करता है।Copy All NBIs: HTML पृष्ठ में मौजूद सभी NBI को मार्कडाउन प्रारूप में कॉपी करता है। भले ही कोई फ़िल्टर लागू किया गया हो, इस बटन पर क्लिक करने से सभी NBI कॉपी हो जाते हैं।अस्वीकरण बटन: अस्वीकरण प्रदर्शित करता है, जो उपयोगकर्ता के लिए प्रदर्शित NBI सारांश के बारे में धारणा बनाने से पहले विचार करने के लिए महत्वपूर्ण तथ्यों को रेखांकित करता है।
शीर्ष पर जाएं बटन: जब पृष्ठ की सामग्री दृश्य क्षेत्र से अधिक हो जाती है तब प्रकट होता है। इस बटन पर क्लिक करने से आप पृष्ठ के शीर्ष पर पहुंच जाते हैं, जहां आप Copy Selected NBIs, Copy All NBIs, Copy Filtered NBIs और खोज बार जैसे महत्वपूर्ण बटनों तक पहुंच सकते हैं।
FakeNet-NG की क्षमताओं का पूरा लाभ उठाने के लिए हमें इसकी कॉन्फ़िगरेशन फ़ाइल संरचना और सेटिंग्स को समझना होगा। नीचे एक नमूना कॉन्फ़िगरेशन फ़ाइल है:
###############################################################################
# Fakenet Configuration
[FakeNet]
DivertTraffic: Yes
###############################################################################
# Diverter Configuration
[Diverter]
NetworkMode: Auto
LinuxRedirectNonlocal: *
LinuxFlushIptables: Yes
LinuxFlushDNSCommand: service dns-clean restart
DumpPackets: Yes
DumpPacketsFilePrefix: packets
ModifyLocalDNS: No
StopDNSService: Yes
RedirectAllTraffic: Yes
DefaultTCPListener: RawTCPListener
DefaultUDPListener: RawUDPListener
###############################################################################
# Listener Configuration
[DNS Server]
Enabled: True
Port: 53
Protocol: UDP
Listener: DNSListener
DNSResponse: 192.0.2.123
NXDomains: 0
Hidden: False
[RawTCPListener]
Enabled: True
Port: 1337
Protocol: TCP
Listener: RawListener
UseSSL: No
Timeout: 10
Hidden: False
कॉन्फ़िगरेशन फ़ाइल कई खंडों में विभाजित है।* [FakeNet] - एप्लिकेशन के व्यवहार को नियंत्रित करता है। इस बिंदु पर एकमात्र वैध
विकल्प DivertTraffic है। जब सक्षम किया जाता है, तो यह टूल को उपयुक्त डायवर्टर प्लगइन लॉन्च करने और ट्रैफ़िक को इंटरसेप्ट करने का निर्देश देता है। यदि यह विकल्प
अक्षम है, तो FakeNet-NG अभी भी लिसनर लॉन्च करेगा, लेकिन उन्हें ट्रैफ़िक निर्देशित करने के लिए किसी अन्य विधि पर निर्भर करेगा (जैसे DNS सर्वर को मैन्युअल रूप से बदलना)।
[Diverter] - ट्रैफ़िक को पुनर्निर्देशित करने के लिए सेटिंग्स। नीचे विस्तार से वर्णित है।
[Listener Name] - लिसनर कॉन्फ़िगरेशन का एक संग्रह। प्रत्येक लिसनर में डिफ़ॉल्ट सेटिंग्स का एक सेट (जैसे पोर्ट, प्रोटोकॉल) के साथ-साथ लिसनर-विशिष्ट कॉन्फ़िगरेशन (जैसे HTTPListener के लिए DumpHTTPPosts) होता है।
मान लें कि आपने [FakeNet] कॉन्फ़िगरेशन ब्लॉक में DivertTraffic सेटिंग सक्षम की है,
तो टूल अपने ट्रैफ़िक पुनर्निर्देशन इंजन को सक्षम करेगा, जिसे हम अब से डायवर्टर कहेंगे, जो कि Windows प्लेटफ़ॉर्म पर पर्दे के पीछे जादू करने के लिए उपयोग की जाने वाली उत्कृष्ट WinDivert लाइब्रेरी के संदर्भ में है (Linux पर डायवर्टर का कार्यान्वयन
python-netfilterqueue का उपयोग करता है)।
डायवर्टर सभी आउटगोइंग पैकेटों की जाँच करेगा और उन्हें सक्षम लिसनरों के प्रोटोकॉल और पोर्ट की सूची से मिलाएगा। यदि पैकेट के पोर्ट और प्रोटोकॉल पर कोई लिसनर सुन रहा है, तो गंतव्य पता स्थानीय मशीन के IP पते में बदल दिया जाएगा, जहाँ लिसनर अनुरोध को संभालेगा। साथ ही, लिसनर से आने वाले प्रतिक्रिया पैकेटों को इस प्रकार बदला जाएगा कि स्रोत IP पता ऐसा प्रतीत हो जैसे पैकेट मूल रूप से अनुरोधित होस्ट से आ रहा है।
आप वैकल्पिक रूप से DumpPackets सेटिंग सक्षम कर सकते हैं ताकि FakeNet-NG द्वारा देखे गए सभी ट्रैफ़िक (पुनर्निर्देशित या फॉरवर्ड किए गए) को एक PCAP फ़ाइल में संग्रहीत किया जा सके। इंटरसेप्ट किए गए एप्लिकेशन और SSL समर्थन वाले लिसनरों के बीच SSL ट्रैफ़िक को डिक्रिप्ट करना संभव है। निम्नलिखित पेज पर दिए गए निर्देशों का उपयोग करें:
https://wiki.wireshark.org/TLS
FakeNet-NG के सर्वरों द्वारा उपयोग की जाने वाली कुंजियाँ privkey.pem और server.pem एप्लिकेशन की रूट निर्देशिका में स्थित हैं।
SingleHost: स्थानीय प्रक्रियाओं से ट्रैफ़िक में हेरफेर करें।MultiHost: अन्य सिस्टम से ट्रैफ़िक में हेरफेर करें।Auto: वर्तमान प्लेटफ़ॉर्म पर सबसे अधिक कार्यात्मक NetworkMode का उपयोग करें।NetworkMode सेटिंग्स का समर्थन नहीं करते हैं। यहाँ समर्थन की वर्तमान स्थिति है:
SingleHost का समर्थन करता है।MultiHost का समर्थन करता है और प्रयोगात्मक रूप से SingleHost मोड का समर्थन करता है (प्रक्रिया, पोर्ट और होस्ट ब्लैकलिस्टिंग और व्हाइटलिस्टिंग के अपवाद के साथ काम करता है)।Auto पर सेट करें
Windows पर SingleHost मोड और Linux पर MultiHost मोड प्राप्त करने के लिए।डायवर्टर आम तौर पर निम्नलिखित DNS-संबंधित सेटिंग का समर्थन करता है:
Windows पर डायवर्टर का कार्यान्वयन निम्नलिखित DNS-संबंधित सेटिंग का समर्थन करता है:
Linux पर डायवर्टर का कार्यान्वयन निम्नलिखित सेटिंग्स का समर्थन करता है:
LinuxRedirectNonlocal - जब FakeNet-NG का उपयोग किसी भिन्न होस्ट के लिए इंटरनेट कनेक्टिविटी का अनुकरण करने के लिए किया जाता है, तो यह निर्दिष्ट करता है कि बाहरी रूप से सामना करने वाले कौन से नेटवर्क इंटरफ़ेस को FakeNet-NG पर पुनर्निर्देशित किया जाए।
LinuxFlushIptables - FakeNet-NG के लिए नियम जोड़ने से पहले सभी iptables नियमों को फ्लश करें। जब तक Linux डायवर्टर की समाप्ति अनुक्रम बाधित नहीं होता, यह पुराने नियमों को पुनर्स्थापित करेगा।
LinuxFlushDnsCommand - अपने Linux वितरण के लिए सही कमांड निर्दिष्ट करें ताकि DNS रिज़ॉल्वर कैश को फ्लश किया जा सके यदि लागू हो।
DebugLevel - प्रदर्शित करने के लिए बारीक-दाने वाली डीबग घटनाएँ निर्दिष्ट करें। मान्य लेबल के लिए fakenet/diverters/linutil.py देखें।
डिफ़ॉल्ट रूप से डायवर्टर केवल उस ट्रैफ़िक को इंटरसेप्ट करेगा जिसके लिए एक समर्पित लिसनर बनाया गया है। हालांकि, RedirectAllTraffic सेटिंग को सक्षम करके और DefaultTCPListener और DefaultUDPListener सेटिंग्स के साथ डिफ़ॉल्ट TCP और UDP हैंडलर को कॉन्फ़िगर करके, लिसनरों में से किसी एक में स्पष्ट रूप से परिभाषित नहीं किए गए पोर्ट पर जाने वाले ट्रैफ़िक को गतिशील रूप से संभालना संभव है। उदाहरण के लिए, एक नमूना कॉन्फ़िगरेशन देखें जो सभी ट्रैफ़िक को पोर्ट 1234 पर स्थानीय TCP और UDP लिसनरों पर पुनर्निर्देशित करता है:
RedirectAllTraffic: Yes
DefaultTCPListener: TCPListener1234
DefaultUDPListener: UDPListener1234
नोट: हम लिसनर परिभाषाओं के साथ थोड़ा आगे बढ़ रहे हैं, लेकिन बस यह समझें कि TCPListener1234 और UDPListener1234 नीचे दिए गए अनुभाग में परिभाषित किए जाएंगे।
RedirectAllTraffic सेटिंग के साथ, FakeNet-NG न केवल गंतव्य पते बल्कि गंतव्य पोर्ट को भी संशोधित करेगा ताकि इसे डिफ़ॉल्ट लिसनरों में से एक द्वारा संभाला जा सके। नीचे एक नमूना लॉग है जो बाहरी होस्ट IP पते 1.1.1.1 पर पोर्ट 4444 पर जाने वाले ट्रैफ़िक का है, जिसे इसके बजाय पोर्ट 1234 पर डिफ़ॉल्ट लिसनर पर पुनर्निर्देशित किया गया:
07/06/16 01:13:47 AM [ Diverter] Modifying outbound external TCP request packet:
07/06/16 01:13:47 AM [ Diverter] from: 192.168.66.129:1650 -> 1.1.1.1:4444
07/06/16 01:13:47 AM [ Diverter] to: 192.168.66.129:1650 -> 192.168.66.129:1234
07/06/16 01:13:47 AM [ Diverter] pid: 3716 name: malware.exe
यह ध्यान रखना महत्वपूर्ण है कि स्पष्ट रूप से परिभाषित लिसनरों में से किसी एक के पोर्ट पर जाने वाले ट्रैफ़िक को अभी भी उस लिसनर द्वारा संभाला जाएगा, न कि डिफ़ॉल्ट लिसनर द्वारा। उदाहरण के लिए, यदि एक अलग UDP पोर्ट 53 DNS लिसनर परिभाषित है, तो डिफ़ॉल्ट UDP लिसनर DNS ट्रैफ़िक को संभाल नहीं पाएगा।
RedirectAllTraffic विकल्पों को सक्षम करने पर एक मुद्दा यह है कि आप अभी भी कुछ ट्रैफ़िक को गुज़रने दे सकते हैं ताकि मशीन का सामान्य संचालन सुनिश्चित हो सके। एक परिदृश्य पर विचार करें जहाँ आप एक ऐसे एप्लिकेशन का विश्लेषण करने का प्रयास कर रहे हैं जिसे अभी भी किसी बाहरी DNS सर्वर से कनेक्ट होने की आवश्यकता है। आप BlackListPortsTCP और BlackListPortsUDP सेटिंग्स का उपयोग करके उन पोर्ट की एक सूची परिभाषित कर सकते हैं जिन पर ट्रैफ़िक को अनदेखा किया जाएगा और बिना बदले आगे भेजा जाएगा, या BlackListIDsICMP (केवल Windows) का उपयोग करके फ़िल्टर और अनदेखा किए जाने वाले ICMP IDs की सूची परिभाषित कर सकते हैं:
BlackListPortsUDP: 53
कुछ अन्य डायवर्टर सेटिंग्स जिन पर आप विचार कर सकते हैं, वे हैं ProcessBlackList और HostBlackList जो डायवर्टर को किसी विशिष्ट प्रक्रिया नाम से आने वाले या किसी विशिष्ट होस्ट के लिए नियत ट्रैफ़िक को अनदेखा और आगे भेजने की अनुमति देते हैं।
लिसनर कॉन्फ़िगरेशन व्यक्तिगत लिसनरों के व्यवहार को परिभाषित करते हैं। आइए एक नमूना लिसनर कॉन्फ़िगरेशन देखें:
[TCPListener1234]
Enabled: True
Port: 1234
Protocol: TCP
Listener: RawListener
UseSSL: Yes
Timeout: 10
Hidden: False
उपरोक्त कॉन्फ़िगरेशन में लिसनर नाम TCPListener1234 शामिल है। इसका उपयोग लॉगिंग उद्देश्यों के लिए किया जाएगा ताकि आप कनेक्शन को संभालने वाले विभिन्न लिसनरों के बीच अंतर कर सकें, भले ही वे एक ही प्रोटोकॉल को संभाल रहे हों।
निम्नलिखित सेटिंग्स सभी लिसनरों के लिए सामान्य हैं:
Port और Protocol सेटिंग्स लिसनरों के लिए यह जानने के लिए आवश्यक हैं कि किन पोर्ट से बाइंड करना है और, यदि वे एकाधिक प्रोटोकॉल का समर्थन करते हैं (जैसे RawListener), तो तय करें कि किस प्रोटोकॉल का उपयोग करना है। इनका उपयोग डायवर्टर द्वारा भी किया जाता है ताकि यह पता लगाया जा सके कि किन पोर्ट और प्रोटोकॉल को पुनर्निर्देशित करना है।
Listener सेटिंग उपलब्ध लिसनर प्लगइन्स में से एक को परिभाषित करती है जो पुनर्निर्देशित ट्रैफ़िक को संभालेगा। FakeNet-NG के वर्तमान संस्करण के साथ निम्नलिखित लिसनर आते हैं:
DNSResponse सेटिंग में कॉन्फ़िगर करने योग्य पते के साथ देता है। आप NXDomains विशेषता को उन अनुरोधों की संख्या पर सेट कर सकते हैं जिन्हें लिसनर को अनदेखा करना चाहिए। इस तरह आप मैलवेयर से अपने सभी बैकअप C2 कंट्रोलर नामों का अनुरोध करवा सकते हैं। लिसनर TCP और UDP दोनों प्रोटोकॉल का समर्थन करता है।Webroot निर्देशिका में विभिन्न फ़ाइलों के साथ प्रतिक्रिया करता है। वैकल्पिक रूप से POST अनुरोधों को एक कॉन्फ़िगर करने योग्य फ़ाइल में डंप करता है जिसे DumpHTTPPosts और DumpHTTPPostsFilePrefix सेटिंग्स का उपयोग करके निर्दिष्ट किया जा सकता है।नोट: FakeNet-NG पहले प्रदान किए गए पूर्ण या सापेक्ष पथों का उपयोग करके वेबरूट निर्देशिका का पता लगाने का प्रयास करेगा। यदि निर्दिष्ट वेबरूट पथ नहीं मिलता है, तो यह अपनी defaultFiles निर्देशिका में देखने का प्रयास करेगा।
एक विशेष मामले के रूप में, Windows डायवर्टर कार्यान्वयन चलने के दौरान स्वचालित रूप से सभी ICMP अनुरोधों का उत्तर देता है। इसलिए यदि कोई मैलवेयर कनेक्टिविटी का परीक्षण करने के लिए किसी होस्ट को पिंग करने का प्रयास करता है तो उसे एक मान्य प्रतिक्रिया मिलेगी। Linux डायवर्टर सभी ICMP पैकेटों को लॉग करता है और localhost पर अग्रेषित करता है।
नोट: कुछ लिसनर फ़ाइल अपलोड को संभाल सकते हैं (जैसे TFTPListener और BITSListener)। अपलोड की गई सभी फ़ाइलें वर्तमान कार्यशील निर्देशिका में कॉन्फ़िगर करने योग्य उपसर्ग के साथ संग्रहीत की जाएंगी (जैसे TFTP अपलोड के लिए "tftp_")।
FakeNet-NG प्रक्रिया और होस्ट ब्लैकलिस्ट और व्हाइटलिस्ट से युक्त कई फ़िल्टरिंग नियमों का समर्थन करता है। व्हाइटलिस्ट को उन नियमों के रूप में माना जाता है जो लिसनरों से कनेक्शन की अनुमति देते हैं, जबकि ब्लैकलिस्ट का उपयोग आने वाले कनेक्शनों को अनदेखा करने और उन्हें बस आगे भेजने के लिए किया जाता है।
उदाहरण के लिए, प्रक्रिया और होस्ट फ़िल्टर के साथ नीचे दिए गए कॉन्फ़िगरेशन पर विचार करें:
[FilteredListener]
Enabled: True
Port: 31337
Protocol: TCP
Listener: RawListener
UseSSL: No
Timeout: 10
ProcessWhiteList: malware.exe, ncat.exe
HostBlackList: 5.5.5.5
उपरोक्त FilteredListener केवल malware.exe और ncat.exe प्रक्रियाओं से आने वाले कनेक्शन को संभालेगा, लेकिन होस्ट 5.5.5.5 के लिए नियत किसी भी कनेक्शन को अनदेखा कर देगा। इसका मतलब है कि यदि test.exe नामक कोई प्रक्रिया पोर्ट 31337 पर कनेक्ट करने का प्रयास करती है, तो इसे लिसनर पर पुनर्निर्देशित नहीं किया जाएगा और यदि मार्ग उपलब्ध है तो इसे वहीं भेज दिया जाएगा जहाँ मूल रूप से इरादा था।
साथ ही, यदि प्रक्रिया malware.exe 5.5.5.5 के अलावा किसी अन्य होस्ट पर पोर्ट 31337 से कनेक्ट करने का प्रयास करती है, तो इसे FilteredListener पर डायवर्ट किया जाएगा। प्रक्रिया malware.exe से 5.5.5.5 पर नियत किसी भी कनेक्शन को गुजरने दिया जाएगा।
एक और शक्तिशाली कॉन्फ़िगरेशन सेटिंग ExecuteCmd है। यह मूल रूप से आपको कनेक्शन के पहले पता लगाए गए पैकेट पर एक मनमाना कमांड निष्पादित करने की अनुमति देता है। ExecuteCmd का मान कई प्रारूप स्ट्रिंग चर का उपयोग कर सकता है:
{pid} - प्रक्रिया आईडी{procname} - प्रक्रिया निष्पादन योग्य नाम{src_addr} - स्रोत पता{src_port} - स्रोत पोर्ट{dst_addr} - गंतव्य पता{dst_port} - गंतव्य पोर्टएक पैक किए गए मैलवेयर नमूने के परिदृश्य पर विचार करें जो पोर्ट 8443 पर एक कॉन्फ़िगर किए गए C2 सर्वर से कनेक्ट होता है (यदि पोर्ट ज्ञात नहीं है तो RedirectAllTraffic का उपयोग करें)। कई मामलों में मैलवेयर कनेक्शन बनाने के समय तक स्वयं को अनपैक कर लेगा, जिससे निष्पादन में वह बिंदु एक डीबगर के साथ प्रक्रिया से जुड़ने और आगे के विश्लेषण के लिए इसका एक अनपैक संस्करण डंप करने के लिए आदर्श बन जाता है।
आइए देखें कि पहले कनेक्शन पर स्वचालित रूप से एक डीबगर लॉन्च करने के लिए इसका उपयोग कैसे किया जा सकता है:
[C2Listener]
Enabled: True
Port: 8443
Protocol: TCP
Listener: RawListener
UseSSL: Yes
Timeout: 300
ProcessWhiteList: malware.exe
ExecuteCmd: C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\windbg.exe -p {pid}
एक बार जब FakeNet-NG व्हाइटलिस्टेड प्रक्रिया malware.exe (यह सेटिंग वैकल्पिक है) से एक नया कनेक्शन का पता लगाता है, तो यह स्वचालित रूप से windbg लॉन्च करेगा और इसे कनेक्ट करने वाली प्रक्रिया से जोड़ देगा।
नोट: यदि मैलवेयर को लिसनर के साथ और अधिक इंटरैक्ट करने की आवश्यकता है, तो आप सामान्य Timeout सेटिंग को बढ़ाना चाह सकते हैं।
एक विशेष उपयोग मामला है जहाँ आप वास्तविक लिसनर को परिभाषित किए बिना एक नया लिसनर कॉन्फ़िगरेशन बना सकते हैं:
[Forwarder]
Enabled: True
Port: 8080
Protocol: TCP
ProcessWhiteList: chrome.exe
बिना किसी लिसनर परिभाषित किए, FakeNet-NG अभी भी ट्रैफ़िक को स्थानीय मशीन पर डायवर्ट करेगा, लेकिन उपयोगकर्ता द्वारा एक अलग लिसनर लॉन्च किया जाना चाहिए। उदाहरण के लिए, आपके पास पोर्ट 8080 पर कनेक्शन सुनने वाला एक HTTP प्रॉक्सी हो सकता है और FakeNet-NG को सभी ट्रैफ़िक को इंटरसेप्ट करने दें जो सिस्टम की प्रॉक्सी सर्वर सेटिंग्स का उपयोग नहीं करते हैं या हार्ड-कोडेड IP पतों का उपयोग करते हैं। अनाम लिसनर का उपयोग करके आप तीसरे पक्ष के टूल में FakeNet-NG की उन्नत ट्रैफ़िक और प्रक्रिया फ़िल्टरिंग क्षमताओं को ला सकते हैं।
आप डायवर्टर की ProcessBlackList सेटिंग को सक्षम करना भी चाह सकते हैं ताकि बाहरी टूल को इंटरनेट पर संचार करने की अनुमति मिल सके। उदाहरण के लिए, HTTP प्रॉक्सी को प्रॉक्सी ट्रैफ़िक को अग्रेषित करने की अनुमति देने के लिए, इसकी प्रक्रिया नाम को प्रक्रिया ब्लैकलिस्ट में जोड़ें। उदाहरण के लिए, Burp Proxy को इंटरनेट पर संचार करने देने के लिए निम्नलिखित प्रक्रिया जोड़ें:
ProcessBlackList: java.exe
उस परिदृश्य में जहां एप्लिकेशन एक अज्ञात पोर्ट पर संचार करता है, लेकिन फिर भी आप इसे पोर्ट 8080 पर अनाम लिसनर पर पुनर्निर्देशित करना चाहते हैं, आप डिफ़ॉल्ट लिसनर को निम्नानुसार परिभाषित कर सकते हैं:
RedirectAllTraffic: Yes
DefaultTCPListener: ForwarderTCP
DefaultUDPListener: RawUDPListener
अंत में, DNS ट्रैफ़िक को अभी भी इंटरनेट पर डिफ़ॉल्ट DNS सर्वर पर जाने देते हुए, अन्य सभी ट्रैफ़िक को पुनर्निर्देशित करने के लिए, डायवर्टर की UDP पोर्ट ब्लैकलिस्ट में पोर्ट 53 जोड़ें:
BlackListPortsUDP:
FakeNet-NG का नवीनतम संस्करण एक नया प्रॉक्सी लिसनर लागू करता है जो गतिशील रूप से संचार प्रोटोकॉल (SSL ट्रैफ़िक सहित) का पता लगाने और कनेक्शन को उपयुक्त लिसनर पर पुनर्निर्देशित करने में सक्षम है।
आप प्रॉक्सी लिसनर को एक विशिष्ट पोर्ट पर काम करने के लिए कॉन्फ़िगर कर सकते हैं जैसा कि नीचे दिए गए कॉन्फ़िगरेशन में दर्शाया गया है:
[ProxyTCPListener]
Enabled: True
Protocol: TCP
Listener: ProxyListener
Port: 38926
Listeners: HTTPListener, RawListener, FTPListener, DNSListener, POPListener, SMTPListener, TFTPListener, IRCListener, BITSListener
Hidden: False
नोट, नया Listeners पैरामीटर जो सभी आने वाले कनेक्शनों के लिए प्रयास करने योग्य संभावित प्रोटोकॉल हैंडलर की एक सूची परिभाषित करता है।
निम्नलिखित डायवर्टर कॉन्फ़िगरेशन को अपडेट करके अपने डिफ़ॉल्ट हैंडलर के रूप में एक प्रॉक्सी लिसनर को परिभाषित करने की भी सिफारिश की गई है:
RedirectAllTraffic: Yes
DefaultTCPListener: ProxyTCPListener
DefaultUDPListener: ProxyUDPListener
डिफ़ॉल्ट लिसनर प्रॉक्सी लिसनर की ओर इशारा करते हुए, सभी अज्ञात कनेक्शनों को उपयुक्त रूप से संभाला जाएगा। आप अभी भी एक विशिष्ट प्रोटोकॉल लागू करने के लिए पोर्ट पर विशिष्ट लिसनर असाइन कर सकते हैं (जैसे, पोर्ट 80 के लिए हमेशा HTTP लिसनर का उपयोग करें)।
प्रॉक्सी सभी उपलब्ध लिसनरों को फ़ंक्शन taste() के साथ पोल करके पैकेटों के प्रोटोकॉल का निर्धारण करता है। taste() को लागू करने वाला प्रत्येक लिसनर एक स्कोर के साथ प्रतिक्रिया करेगा जो इंगित करता है कि उस लिसनर द्वारा संभाले गए प्रोटोकॉल के पैकेट सामग्री से मेल खाने की संभावना है। प्रॉक्सी पैकेट को उस लिसनर को अग्रेषित करेगा जिसने उच्चतम स्कोर लौटाया। RawListener हमेशा 1 का स्कोर लौटाएगा, इसलिए उसे उस स्थिति में चुना जाएगा जहां अन्य सभी लिसनर 0 लौटाते हैं, इस प्रकार डिफ़ॉल्ट के रूप में कार्य करता है।
उपयोगकर्ता प्रत्येक लिसनर के कॉन्फ़िगरेशन में कॉन्फ़िगरेशन पैरामीटर 'Hidden' को बदल सकते हैं। यदि Hidden 'False' है, तो लिसनर एक विशिष्ट पोर्ट से बंधा होगा और उस पोर्ट पर सभी ट्रैफ़िक स्वचालित रूप से प्राप्त करेगा। Hidden को 'True' पर सेट करने पर, लिसनर केवल प्रॉक्सी के माध्यम से पुनर्निर्देशित ट्रैफ़िक प्राप्त कर सकता है।
FakeNet-NG Python में विकसित है जो आपको तेजी से नए प्लगइन विकसित करने और मौजूदा कार्यक्षमता का विस्तार करने की अनुमति देता है। विवरण के लिए, FakeNet-NG के लिए विकास देखें।
इस लेखन के समय, pydivert में डिफ़ॉल्ट बफ़र आकार 1500 है। यदि FakeNet-NG को डिफ़ॉल्ट बफ़र आकार से बड़ा पैकेट मिलता है, तो आपको यह त्रुटि दिखाई दे सकती है। एक समाधान fakenet/diverters/windows में self.handle.recv(bufsize=<your_bufsize>) में वांछित बफ़र आकार निर्दिष्ट करना है। यहां देखें
नीचे "ट्रैफ़िक इंटरसेप्ट नहीं कर रहा" देखें।
FakeNet-NG के लिए पैकेट को इंटरसेप्ट और संशोधित करने के लिए, पैकेट को अपने गंतव्य तक पहुंचने के लिए एक मान्य नेटवर्क रूट मौजूद होना चाहिए।
यह जांचने का एक आसान तरीका है कि आपके पास रूट सही ढंग से सेट हैं या नहीं। टूल चलाए बिना गंतव्य होस्ट को पिंग करने का प्रयास करें। आपको या तो एक मान्य प्रतिक्रिया या टाइमआउट संदेश दिखाई देना चाहिए। यदि इसके बजाय आपको गंतव्य तक नहीं पहुंचा जा सकता त्रुटि मिलती है, तो आपके पास मान्य रूट नहीं है।
यह आमतौर पर आपके गेटवे के या तो सेट नहीं होने या पहुंच योग्य न होने के कारण होता है। उदाहरण के लिए, होस्ट-ओनली मोड वाली VMWare मशीन पर, आपकी मशीन में गेटवे कॉन्फ़िगर नहीं होगा, जिससे FakeNet-NG को कोई ट्रैफ़िक दिखाई नहीं देगा।
इस समस्या को ठीक करने के लिए, मैन्युअल रूप से अपने प्राथमिक इंटरफ़ेस को उसी सबनेट में गेटवे पर कॉन्फ़िगर करें। पहले इंटरफ़ेस का नाम जांचें:
C:\>netsh interface show interface
Admin State State Type Interface Name
-------------------------------------------------------------------------
Enabled Connected Dedicated Local Area Connection
इस मामले में इंटरफ़ेस का नाम "Local Area Connection" है, इसलिए हम शेष कमांडों के लिए इसका उपयोग करेंगे।इंटरफ़ेस IP पता और गेटवे को मैन्युअल रूप से निम्नानुसार कॉन्फ़िगर करें:
C:\>netsh interface ip set address name="Local Area Connection" static 192.168.249.123 255.255.255.0 192.168.249.254
DNS सर्वर IP पता मैन्युअल रूप से सेट करें:
C:\>netsh interface ip set dns name="Local Area Connection" static 4.2.2.2
यदि आपको अभी भी समस्या हो रही है, तो सुनिश्चित करें कि गेटवे IP पता स्वयं रूटेबल है।
सुनिश्चित करें कि DNS लिसनर सफलतापूर्वक अपने पोर्ट से बंधा है। निम्नलिखित जैसी त्रुटियाँ इंगित करती हैं कि DNS लिसनर सफलतापूर्वक बंधा नहीं:``` 05/01/17 11:11:16 AM [ FakeNet] Error starting DNSListener listener: 05/01/17 11:11:16 AM [ FakeNet] [Errno 98] Address already in use
Use `netstat`, `tcpview`, या अन्य उपकरणों का उपयोग करके पता लगाएं कि कौन सा एप्लिकेशन बंधा है
पोर्ट से, और सेवा को अक्षम करने के लिए संबंधित ऑपरेटिंग सिस्टम या एप्लिकेशन
दस्तावेज़ देखें।
पुनर्न्यासन शुरू करने से पहले VM का स्नैपशॉट लेना उचित हो सकता है।
उदाहरण के लिए, Ubuntu आमतौर पर `dnsmasq` सेवा को सक्षम करता है
`/etc/NetworkManager/NetworkManager.conf` में `dns=dnsmasq` लाइन के साथ।
इसे अक्षम करना (जैसे कि इसे कमेंट करके) और
`network-manager` सेवा को पुनः आरंभ करना (जैसे `service network-manager restart`)
FakeNet-NG को पुनः चालू करने से पहले पोर्ट को मुक्त करने के लिए पर्याप्त है।
Ubuntu के नए संस्करणों या अन्य वितरणों में, `lsof -i` का उपयोग करने से पता चल सकता है
कि इसके बजाय `systemd-resolved` का उपयोग किया जाता है। ऐसे मामलों में, आप कोशिश कर सकते हैं
ये कदम, जो निम्नलिखित से अनुकूलित हैं
<https://askubuntu.com/questions/907246/how-to-disable-systemd-resolved-in-ubuntu>:```
sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
फिर /etc/NetworkManager/NetworkManager.conf में [main] अनुभाग के अंतर्गत, एक पंक्ति जोड़ें जो निर्दिष्ट करती है:```
dns=default
सिमलिंक `/etc/resolv.conf` को हटाएं, यानी `rm /etc/resolv.conf`।
अंत में, `NetworkManager` को पुनरारंभ करें:```
sudo systemctl restart NetworkManager
कृपया सुनिश्चित करें कि FakeNet-NG को स्थानीय C: ड्राइव पर निकाला गया है ताकि WinDivert ड्राइवर सही ढंग से लोड हो।
यह त्रुटि Fakenet के स्टैंड-अलोन निष्पादन योग्य संस्करण को चलाने पर हो सकती है। कृपया Visual C++ 2008 रनटाइम निष्पादन योग्य डाउनलोड और इंस्टॉल करें।
SingleHost मोड के लिए केवल Windows Vista+ समर्थित है। कृपया Windows XP/2003 ऑपरेटिंग सिस्टम के लिए मूल Fakenet का उपयोग करें।
MultiHost मोड के लिए केवल Linux समर्थित है।
python-netfilterqueue के पुराने संस्करण python में सेगमेंटेशन फॉल्ट का कारण बन सकते हैं। यदि आपको यह समस्या आती है, तो जाँचें कि आप python-netfilterqueue का नवीनतम संस्करण उपयोग कर रहे हैं।
python-netfilterqueue द्वारा उपयोग किए जाने वाले हार्ड-कोडेड बफ़र आकार के कारण, Linux डायवर्टर 4,016 बाइट्स से बड़े पैकेटों को सही ढंग से संभाल नहीं पाता। व्यवहार में, यह पारंपरिक 1,500 बाइट अधिकतम संचरण इकाई (MTU) के साथ कॉन्फ़िगर किए गए इंटरफ़ेस के लिए Linux MultiHost मोड को प्रभावित नहीं करता। यदि आप FakeNet-NG के साथ उपयोग कर रहे Linux इंटरफ़ेस का MTU 4016 से अधिक है, तो आपको <your_mtu> + 80 के बफ़र आकार का समर्थन करने के लिए python-netfilterqueue को पुनर्संकलित करना होगा (python-netfilterqueue बफ़र का 80 बाइट ओवरहेड के लिए आरक्षित करता है)।
Windows पर केवल स्थानीय मशीन का ट्रैफ़िक इंटरसेप्ट नहीं किया जाता (उदाहरण के लिए यदि आप सीधे किसी लिसनर से कनेक्ट करने का प्रयास करते हैं)।
केवल TCP, UDP, और ICMP प्रोटोकॉल का उपयोग करने वाला ट्रैफ़िक ही इंटरसेप्ट किया जाता है।
बग, क्रैश या अन्य टिप्पणियों के लिए कृपया [email protected] पर संपर्क करें।
समुदाय घोषणाओं के लिए FLARE मेलिंग सूची की सदस्यता लें! "subscribe" ईमेल करें [email protected] पर।
यदि मैन्युअल रूप से स्थापित कर रहे हैं, तो डाउनलोड किए गए flare-fakenet-ng निर्देशिका में जाएं और व्यवस्थापक विशेषाधिकारों के साथ निम्नलिखित चलाएं:
python setup.py install
लिनक्स में, DNS सुनने के लिए पोर्ट 53 खाली करें:
sudo systemctl stop systemd-resolved
विशेषाधिकार प्राप्त शेल में किसी भी निर्देशिका से 'fakenet' चलाकर FakeNet-NG निष्पादित करें।
sudo systemctl stop systemd-resolved
विशेषाधिकार प्राप्त शेल में Python इंटरप्रेटर के साथ चलाकर FakeNet-NG निष्पादित करें:
python -m fakenet.fakenet