Antivirus en Bash para servidores

Iniciado por ANTRAX, Junio 11, 2020, 10:40:44 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.


Código: bash
#!/bin/bash

case $1 in
        -p)     echo "####################################################################################";
                echo "ATENCION: NO CORRER ESTO EN LA RAIZ DEL CLIENTE, SOLO DENTRO DE HTDOCS O RUTA PUBLICA";
                echo "####################################################################################";
                echo "Aplicando permisos 755 a directorios...";
                        find . -type d -exec chmod 755 {} \;
                echo "Aplicando permisos 644 a ficheros...";
                        find . -type f -exec chmod 644 {} \;
        exit;
        ;;
esac

echo -e "************************";
echo -e "Buscando symlinks....";
echo -e "************************";


#find . -type l -exec ls -lad {} \;
echo -e "\nBuscando nuevos ofuscamientos ....";
egrep . -iRle "\\\\057|\\\\157|\\\\151|\\\\141|\\\\145|\\\\144|\\\\164|\\\\160|\\\\156|\\\\150|\\\\163|\\\\060|\\\\055"
#grep . -iRle "\\057" -e "\\157" -e "\\151" -e "\\141" -e "\\145" -e "\\144" -e "\\164" -e "\\160" -e "\\156" -e "\\150" -e "\\163" -e "\\060" -e "\\055"

echo -e "\nArchivos probabilidad > 80% (los js puede que no sean virus, revisar a mano):";

grep . -iRle "function.*strlen.*base64_decode" -e "gzinflate(base64_decode" -e "s21=strtolower" -e "s20=strtoupper" -e "gzuncompress(base64_decode" -e "strtoupper.*eval" -e "@eval($_POST" -e "_REQUEST.*chr" -e "\?php.*.chr(" -e "\$GLOBALS.*eval.*echo" -e "file_get_contents.*fwrite.*fclose" -e "gzinflate.*str_rot13"| egrep -v "phpmailer|.js";

#echo -e "\nArchivos probabilidad > 80% tipo nombre##.php común en virus";
#find . -iname [a-z][a-z]*[0-9][0-9].php;
#echo -e "";

echo -e "\n****************************************************";
echo -e "Deseas correr busquedas con Probabilidad < 50% ?";
echo -e "(yes = y / no = n): ";
echo -e "****************************************************";
read permisos
if [ "$permisos" = "y" ]; then
        echo "Archivos probabilidad < 50% OJO: Puede incluir falsos positivos:";
        grep . -R -l -e "return base64" -e "base64_decode" -e "md5(\$_REQUEST"  | grep -v "phpmailer";
        #grep . -iR -l -e "file_get_contents" -e "shell_exec";
        echo -e "";
else
        echo "Siguiente \n"
fi


echo -e "\n****************************************************";
echo -e "Deseas correr busquedas de ofuscamiento hexadecimal ";
echo -e "Probabilidad < 50%";
echo -e "(yes = y / no = n): ";
echo -e "****************************************************";
read permisos
if [ "$permisos" = "y" ]; then
        echo -e "Buscando PHP ofuscado en hexadecimal...";
        grep '\\x[0-9]\{1\}[0-9a-f]\{1\}\\x[0-9]\{1\}[0-9a-f]\{1\}*\\x[0-9]\{1\}[0-9a-f]\{1\}*\\x[0-9]\{1\}[0-9a-f]\{1\}*' . -ilr | grep -v jquery;
        echo -e "";
else
        echo "Siguiente\n";
fi


echo -e "\n***********************************************";
echo -e "Deseas correr otras busquedas no tan efectivas? ";
echo -e "(yes = y / no = n): ";
echo -e "***********************************************";
read permisos
if [ "$permisos" = "y" ]; then
        echo "Buscando Xploit Pattern\n";
        sploitpattern='r0nin|m0rtix|upl0ad|r57shell|cFaTaLisTiCz_Fx|Tukulesto|99shell|shellbot|phpshell|void\.ru|phpremoteview|directmail|bash_history|\.ru/|brute *force|multiviews|cwings|vandal|bitchx|eggdrop|guardservices|psybnc|dalnet|undernet|vulnscan|spymeta|raslan58|Webshell'
        find ./ \( -regex '.*\.php$' -o -regex '.*\.cgi$' -o -regex '.*\.inc$' \) -print0 | xargs -0 egrep -il "$sploitpattern" | sort
else
        echo "Siguiente \n.";
fi
#echo -e "";
#echo -e "Buscando posible SPAM...";
#echo -e "************************"

#grep . -R -l -e "$GLOBALS\[";


echo -e "\n************************";
echo -e "Deseas aplicar permisos ";
echo -e "seguros a archivos y directorios? ";
echo -e "(yes = y / no = n): ";
echo -e "**************************";
read permisos
if [ "$permisos" = "y" ]; then
        #echo -e "Aplicando permisos 755 a directorios...";
                echo "Ejecuta manualmente no en la ra▒z sino ruta publica: find . -type d -exec chmod 755 {} \;";
        #echo -e "Aplicando permisos 644 a ficheros...";
                echo "Ejecuta manualmente no en la raíz sino ruta publica:  find . -type f -exec chmod 644 {} \;";
else
        echo "Terminamos.";
fi


Dedicado a mi amigo @Gn0m3

Saludos,
ANTRAX