(https://blog.desdelinux.net/wp-content/uploads/2019/01/bash-logo.jpg)
#!/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