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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
FEP3370-advanced-ethical-hacking — DynoRoot (CVE-2018-1111) के साथ DHCP शोषण | Kitploit
उपकरण/GitHubGitHub/baldassarrefe/fep3370-advanced-ethical-hacking
भेद्यता विश्लेषणशोषणनेटवर्क सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubbaldassarrefe/fep3370-advanced-ethical-hacking

FEP3370-advanced-ethical-hacking

DynoRoot (CVE-2018-1111) के साथ DHCP शोषण

रिपॉजिटरी देखेंवेबसाइट
85 साल पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

DynoRoot CVE-2018-1111

कोर्स उन्नत एथिकल हैकिंग के लिए अंतिम प्रोजेक्ट, KTH, स्टॉकहोम

यह प्रोजेक्ट Fedora और RedHat मशीनों की एक ज्ञात कमजोरी को प्रदर्शित करता है, जो डायनेमिक होस्ट कॉन्फ़िगरेशन प्रोटोकॉल (DHCP) के असुरक्षित क्लाइंट-साइड कार्यान्वयन से संबंधित है। एक दुष्ट DHCP सर्वर एक दुर्भावनापूर्ण पेलोड के साथ DHCP ऑफ़र तैयार कर सकता है, जो पीड़ित मशीन पर रूट शेल में निष्पादित होता है।

इस कमजोरी का श्रेय Felix Wilhelm को दिया जाता है और इसे CVE-2018-1111 या "DynoRoot" के नाम से जाना जाता है।

विषय-सूची:

  • परिचय
    • पृष्ठभूमि
    • कमजोरी
    • स्रोत
  • सेटअप
    • प्रारंभिक तैयारियाँ
    • गेटवे मशीन
    • हमलावर
    • Fedora पीड़ित
  • हमले को अंजाम देना
    • गेटवे
    • हमलावर
    • पीड़ित
    • विश्लेषण
  • भविष्य का कार्य
  • श्रेय

परिचय

पृष्ठभूमि

डायनेमिक होस्ट कॉन्फ़िगरेशन प्रोटोकॉल (DHCP) नेटवर्क वाली प्रणालियों में अक्सर अनदेखा किया जाने वाला घटक है। इसकी भूमिका उन होस्ट मशीनों के गतिशील कॉन्फ़िगरेशन की अनुमति देना है जो किसी मौजूदा नेटवर्क से जुड़ती हैं। सबसे सामान्य उपयोग नए जुड़े होस्ट को IP पता निर्दिष्ट करना और उसे अन्य नेटवर्क तक पहुँचने के लिए मौजूदा रूट्स की जानकारी देना है। अतिरिक्त विकल्प निर्दिष्ट किए जा सकते हैं, उदाहरण के लिए स्थानीय DNS सर्वर का पता और उसके द्वारा सेवा प्रदान किया जाने वाला ज़ोन, या बूट फ़ाइल का स्थान।

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

  1. क्लाइंट, जिसके पास IP पता नहीं होता, नेटवर्क पर एक DISCOVER संदेश प्रसारित (broadcast) करता है।
  2. उस नेटवर्क के प्रभारी DHCP सर्वर एक OFFER के साथ उत्तर देता है, जिसमें शामिल होता है: IP पता, नेटवर्क सबमास्क, राउटर पता, और अन्य विकल्प।
  3. क्लाइंट एक REQUEST के साथ उत्तर देता है, जिसमें आधिकारिक रूप से प्रस्तावित IP पते को लीज़ (lease) पर लेने का अनुरोध किया जाता है।
  4. सर्वर इस आदान-प्रदान को ACK के साथ समाप्त करता है, जो दर्शाता है कि क्लाइंट को निर्दिष्ट समय अवधि के लिए IP पते का उपयोग करने की अनुमति है।

प्रारंभिक आदान-प्रदान के बाद, क्लाइंट केवल एक और REQUEST संदेश भेजकर लीज़ का नवीनीकरण कर सकता है। सर्वर क्लाइंट के IP और MAC पते के साथ लीज़ की मौजूदगी की जाँच करेगा और ACK के साथ उत्तर देगा।

DHCP सत्र (चित्र Wikimedia Commons से, CC BY-SA 4.0 लाइसेंस के अंतर्गत)।

ध्यान देने योग्य कुछ बातें:

  • एक क्लाइंट DISCOVER चरण को छोड़कर सीधे किसी पते का REQUEST भी कर सकता है। यह उन परिदृश्यों में आम है जिनमें क्लाइंट पहले भी नेटवर्क से जुड़ चुका है और पिछला पता याद रखता है। इस मामले में, सर्वर पते की उपलब्धता सत्यापित करता है और अनुरोध को ACK करता है, या यदि लीज़ उपलब्ध नहीं है, तो NACK भेजता है।
  • कनेक्शन समाप्त होने पर, क्लाइंट सर्वर को सूचित करने के लिए RELEASE संदेश भेज सकते हैं कि पता अब उपलब्ध है। हालाँकि, प्रोटोकॉल द्वारा यह अनिवार्य नहीं है और सर्वर समय-समय पर समाप्त हुई लीज़ को वापस एकत्र करेगा।
  • प्रत्येक DHCP सर्वर IP पतों का एक सीमित पूल प्रबंधित करता है; एक बार सभी पते आवंटित हो जाने पर, सर्वर नए क्लाइंटों को OFFER नहीं दे पाएगा।
  • एक ही नेटवर्क पर कई DHCP सर्वर मौजूद हो सकते हैं; यदि किसी क्लाइंट को कई OFFERs प्राप्त होते हैं, तो वह केवल एक को स्वीकार करेगा; अन्य सर्वर प्रसारित REQUEST को देखेंगे और प्रस्ताव को अमान्य कर देंगे।

कमजोरी

कमजोरी /etc/NetworkManager/dispatcher.d/11-dhclient में स्थित है, जिसे क्लाइंट द्वारा DHCP के माध्यम से प्राप्त विकल्पों को पार्स करने और सेट करने के लिए निष्पादित किया जाता है।

  • declare एक bash बिल्टिन है, जो बिना तर्कों के उपयोग किए जाने पर सभी घोषित चरों को सूचीबद्ध करता है।
  • grep DHCP से संबंधित सभी चरों को फ़िल्टर करता है।
  • while read opt DHCP चरों पर एक-एक करके पुनरावृत्ति करता है, कुछ पार्सिंग करता है और प्रत्येक विकल्प के लिए export new_optionname=value जैसी एक पंक्ति प्रिंट करता है।
  • export स्टेटमेंट्स फिर शेल द्वारा eval के माध्यम से निष्पादित किए जाते हैं।```bash eval "$( declare | LC_ALL=C grep '^DHCP4_[A-Z_]=' | while read opt; do optname=${opt%%=} optname=${optname,,} optname=new_${optname#dhcp4_} optvalue=${opt#*=} echo "export $optname=$optvalue" done )"
<!-- omit in toc -->
#### सामान्य संचालन
सामान्य परिस्थितियों में, कोड ठीक काम करेगा और नए DHCP विकल्पों को पार्स करेगा।
उदाहरण के तौर पर, निम्नलिखित कोड:```bash
DHCP4_OPTION_ONE=42
DHCP4_OPTION_TWO="bla bla"

declare | LC_ALL=C grep '^DHCP4_[A-Z_]*=' | while read opt; do
  optname=${opt%%=*}
  optname=${optname,,}
  optname=new_${optname#dhcp4_}
  optvalue=${opt#*=}
  echo "export $optname=$optvalue"
done

ये दो export स्टेटमेंट प्रिंट करेगा, जिन्हें eval द्वारा मूल्यांकित किया जाना है:```bash export new_option_one=42 export new_option_two='bla bla'

<!-- omit in toc -->
#### कोड इंजेक्शन
हालाँकि, असुरक्षित `eval` के कारण, बैश कमांड इंजेक्ट करना संभव है:```bash
DHCP4_OPTION_ONE="x'& echo Hacked! #"
DHCP4_OPTION_TWO='bla bla'

eval "$(                             
  declare | LC_ALL=C grep '^DHCP4_[A-Z_]*=' | while read opt; do
    optname=${opt%%=*}
    optname=${optname,,}
    optname=new_${optname#dhcp4_}
    optvalue=${opt#*=}
    echo "export $optname=$optvalue"
  done
)"

इसके परिणामस्वरूप echo Hacked! का मूल्यांकन होगा:```text [1] 1541 Hacked!

### स्रोत
- [एक्सप्लॉइट डेटाबेस प्रविष्टि](https://www.exploit-db.com/exploits/44890)
- [RedHat घोषणा](https://access.redhat.com/security/vulnerabilities/3442151)
- [Tenable ब्लॉग पोस्ट](https://www.tenable.com/blog/advisory-red-hat-dhcp-client-command-injection-trouble)
- [GitHub रिपॉज़िटरी](https://github.com/kkirsche/CVE-2018-1111)
- [Twitter घोषणा](https://twitter.com/_fel1x/status/996388421273882626?lang=en)

## सेटअप
इस एक्सप्लॉइट को प्रदर्शित करने के लिए न्यूनतम सेटअप में सिर्फ दो मशीनें होती हैं: `victim` मशीन
जो Fedora 28 चला रही है, और एक `attacker` मशीन। इस सेटअप में, हमलावर को बस एक
DHCP सेवा प्रदान करनी होती है और victim के कनेक्शन का इंतज़ार करना होता है।

<figure style="text-align:center">
  <img src="https://raw.githubusercontent.com/baldassarrefe/fep3370-advanced-ethical-hacking/HEAD/media/network_simple.svg" style="max-width:400px;" width="90%"/>
  <figcaption>न्यूनतम एक्सप्लॉइट सेटअप।</figcaption>
</figure>

अधिक यथार्थवादी सेटअप में मशीनों को एक निजी नेटवर्क पर रखा जाता है, जहाँ एक तीसरी मशीन, `gateway`,
को हानिरहित DHCP सर्वर और बाहरी इंटरनेट के गेटवे के रूप में कॉन्फ़िगर किया जाता है।
इस सेटअप में, हमलावर को हमला करने से पहले victim को वैध DHCP सर्वर से कनेक्ट होने से रोकना होता है।

<figure style="text-align:center">
  <img src="https://raw.githubusercontent.com/baldassarrefe/fep3370-advanced-ethical-hacking/HEAD/media/network.svg" style="max-width:800px;" width="90%"/>
  <figcaption>एक गेटवे मशीन वाला निजी नेटवर्क सेटअप जो DHCP, राउटर और फ़ायरवॉल के रूप में कार्य करती है।</figcaption>
</figure>
टूल डाउनलोड करें