
नेटवर्क प्रोटोकॉल फ़ज़र जिसे हम उपयोग करना चाहेंगे।
█ █
████████
██████████
██ ████ ██
██ ████ ██
████ ████
█ ████████████ █
█ ██████████ █ Fuzzowski नेटवर्क फ़ज़र
█ █ █ █ 🄯 Fuzzers, inc.
██ ██ द्वारा Mario Rivas
यह विचार नेटवर्क प्रोटोकॉल फ़ज़र बनने का है जिसका हम उपयोग करना चाहेंगे।
इस उपकरण का उद्देश्य नेटवर्क प्रोटोकॉल को फ़ज़ करने की पूरी प्रक्रिया में सहायता करना है, संचार को परिभाषित करने की अनुमति देना, किसी सेवा को क्रैश करने के "संदिग्धों" की पहचान करने में मदद करना, और बहुत कुछ।
[16/12/2019]
virtualenv venv -p python3
source venv/bin/activate
pip install -r requirements.txt
usage: python -m fuzzowski [-h] [-p {tcp,udp,ssl}] [-b BIND] [-st SEND_TIMEOUT]
[-rt RECV_TIMEOUT] [--sleep-time SLEEP_TIME] [-nc] [-tn]
[-nr] [-nrf] [-cr]
[--threshold-request CRASH_THRESHOLD_REQUEST]
[--threshold-element CRASH_THRESHOLD_ELEMENT]
[--ignore-aborted] [--ignore-reset] [--error-fuzz-issues]
[-c CALLBACK | --file FILENAME] -f
{cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
[-r FUZZ_REQUESTS [FUZZ_REQUESTS ...]]
[--restart module_name [args ...]]
[--restart-sleep RESTART_SLEEP_TIME]
[--monitors {IPPMon} [{IPPMon} ...]] [--path PATH]
[--document_url DOCUMENT_URL]
host port
█ █
████████
██████████
██ ████ ██
██ ████ ██
████ ████
█ ████████████ █
█ ██████████ █ Fuzzowski नेटवर्क फ़ज़र
█ █ █ █ 🄯 Fuzzers, inc.
██ ██
positional arguments:
host गंतव्य होस्ट
port गंतव्य पोर्ट
optional arguments:
-h, --help यह सहायता संदेश दिखाएँ और बाहर निकलें
Connection Options:
-p {tcp,udp,ssl}, --protocol {tcp,udp,ssl}
प्रोटोकॉल (डिफ़ॉल्ट tcp)
-b BIND, --bind BIND पोर्ट से बाइंड करें
-st SEND_TIMEOUT, --send_timeout SEND_TIMEOUT
send() टाइमआउट सेट करें (डिफ़ॉल्ट 5s)
-rt RECV_TIMEOUT, --recv_timeout RECV_TIMEOUT
recv() टाइमआउट सेट करें (डिफ़ॉल्ट 5s)
--sleep-time SLEEP_TIME
प्रत्येक परीक्षण के बीच स्लीप समय (डिफ़ॉल्ट 0)
-nc, --new-conns एक ही परीक्षण के प्रत्येक पैकेट के बाद एक नया कनेक्शन खोलें
-tn, --transmit-next-node
फ़ज़ किए गए नोड के ग्राफ में अगले नोड को प्रेषित करें
RECV() Options:
-nr, --no-recv प्रत्येक भेजने के बाद सॉकेट में recv() न करें
-nrf, --no-recv-fuzz फ़ज़ किए गए अनुरोध को भेजने के बाद सॉकेट में recv() न करें
-cr, --check-recv जांचें कि recv() में डेटा प्राप्त हुआ है या नहीं
Crashes Options:
--threshold-request CRASH_THRESHOLD_REQUEST
किसी अनुरोध में अनुमत क्रैश की संख्या सेट करें, उसे छोड़ने से पहले (डिफ़ॉल्ट 9999)
--threshold-element CRASH_THRESHOLD_ELEMENT
किसी प्रिमिटिव में अनुमत क्रैश की संख्या सेट करें, उसे छोड़ने से पहले (डिफ़ॉल्ट 3)
--ignore-aborted ECONNABORTED त्रुटियों को अनदेखा करें
--ignore-reset ECONNRESET त्रुटियों को अनदेखा करें
--error-fuzz-issues फ़ज़ किए गए नोड में किसी भी कनेक्शन समस्या होने पर त्रुटि के रूप में लॉग करें
Fuzz Options:
-c CALLBACK, --callback CALLBACK
सामान्य उत्परिवर्तनों के बजाय कॉलबैक जनरेटर के साथ फ़ज़ करने के लिए एक कॉलबैक पता सेट करें
--file FILENAME फ़ज़ उत्परिवर्तनों के लिए एक फ़ाइल की सामग्री का उपयोग करें
Fuzzers:
-f {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}, --fuzz {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
उपलब्ध प्रोटोकॉल
-r FUZZ_REQUESTS [FUZZ_REQUESTS ...], --requests FUZZ_REQUESTS [FUZZ_REQUESTS ...]
फ़ज़ करने के लिए प्रोटोकॉल के अनुरोध, डिफ़ॉल्ट All
dhcp: [opt82]
ipp: [http_headers, get_printer_attribs, print_uri_message, send_uri, get_jobs, get_job_attribs]
lpd: [long_queue, short_queue, ctrl_file, data_file, remove_job]
telnet_cli: [commands]
tftp: [read]
raw: ['\x01string\n' '\x02request2\x00' ...]
Restart options:
--restart module_name [args ...]
पुनरारंभक मॉड्यूल:
run: '<executable> [<argument> ...]' (कमांड और तर्क को उद्धरणों के भीतर पास करें, केवल एक तर्क के रूप में)
smartplug: यह स्मार्ट प्लग को बंद और चालू करेगा
teckin: <PLUG_IP>
--restart-sleep RESTART_SLEEP_TIME
क्रैश के बाद जारी रखने से पहले स्लीप सेकंड सेट करें (डिफ़ॉल्ट 5)
Monitor options:
--monitors {IPPMon} [{IPPMon} ...], -m {IPPMon} [{IPPMon} ...]
मॉनिटर मॉड्यूल:
IPPMon: लक्ष्य को एक get-attributes IPP संदेश भेजता है
Other Options:
--path PATH HTTP आधारित प्रोटोकॉल को फ़ज़ करते समय पथ सेट करें (डिफ़ॉल्ट /)
--document_url DOCUMENT_URL
print_uri के लिए दस्तावेज़ URL सेट करें
डिफ़ॉल्ट विकल्पों के साथ get_printer_attribs IPP ऑपरेशन को फ़ज़ करें:
python -m fuzzowski printer1 631 -f ipp -r get_printer_attribs --restart smartplug
फिंगर प्रोटोकॉल को फ़ज़ करने के लिए IPP की रॉ सुविधा का उपयोग करें:
python -m fuzzowski printer 79 -f raw -r '{{root}}\n'
फिंगर प्रोटोकॉल को फ़ज़ करने के लिए IPP की रॉ सुविधा का उपयोग करें, लेकिन पूर्वनिर्धारित उत्परिवर्तनों का उपयोग करने के बजाय, एक फ़ाइल का उपयोग करें:
python -m fuzzowski printer 79 -f raw -r '{{root}}\n' --file 'path/to/my/fuzzlist'
स्टेटफुल फ़ज़र उदाहरण, s_response और s_variable के उपयोग को प्रदर्शित करता है ताकि एक टोकन प्राप्त किया जा सके जो किसी अनुरोध को फ़ज़ करने के लिए आवश्यक है। यह उदाहरण mock http server test case पर आधारित है।