Scrip bash: Identificar themes nulled

Scrip bash: Identificar themes nulled, plugins y otros scripts php.

Quien más, quien menos alguna vez a usado una template o un plugin nulled.

Grave error… pues aunque las practicas actuales no dañan la estructura de la web, si dañan su reputación y mucho. Intromisiones constantes, anuncios no autorizados, y un sinfín de problemas que a la larga pueden ser difíciles de solucionar.

Mi recomendación es que si te gusta el theme o plugin lo compres, no son tan caros.

De todas maneras, en este articulo y a modo educativo… vemos como identificar los posibles problemas de los «themes nulled«, plugins y varios scripts php.

Este script bash que te presento, detecta puertas traseras y código oculto en scripts php que descargaste desde fuentes no fiables (la lista de fuentes es larga).  Ademas también comprueba las cadenas comunes y poco frecuentes que se suelen insertar en scripts nulled para generar anuncios, puertas traseras, etc…

Haremos uso de una busqueda grep recursiva para generar el nombre y la línea sospechosa.

Vemos un ejemplo practico, pero los resultados deben ser examinados por alguien con un conocimiento intermedio del sistema. 

Scrip bash: Identificar themes nulled 1

 

Script: identificar themes nulled

Lo creamos.

nano identnulled.sh

Copia y pega lo siguiente.
#! /bin/bash
#
exec >> scanner.txt
echo "PHP Nulled Script Scanner v0.1"
echo ""
read -p "Enter The Path To Your PHP Files (The Root Directory): " 
phplocation
echo "Checking for shell execution strings..."
grep -Rn "shell_exec" $phplocation
echo "Done."
echo ""
echo "Checking for base64 strings..."
grep -Rn "base64_decode" $phplocation
echo "Done."
echo ""
echo "Checking for base64 reverse strings..."
grep -Rn "edoced_46esab" $phplocation
echo "Done."
echo ""
echo "Checking for fopen strings..."
grep -Rn "fopen" $phplocation
echo "Done."
echo ""
echo "Checking for fclose strings..."
grep -Rn "fclose" $phplocation
echo "Done."
echo ""
echo "Checking for phpinfo strings..."
grep -Rn "phpinfo" $phplocation
echo "Done."
echo ""
echo "Checking for system strings..."
grep -Rn "system" $phplocation
echo "Done."
echo ""
echo "Checking for uname strings..."
grep -Rn "php_uname" $phplocation
echo "Done."
echo ""
echo "Checking for chmod strings..."
grep -Rn "chmod" $phplocation
echo "Done."
echo ""
echo "Checking for readfile strings..."
grep -Rn "readfile" $phplocation
echo "Done."
echo ""
echo "Checking for eval strings..."
grep -Rn "eval" $phplocation
echo "Done."
echo ""
echo "Checking for passthru strings..."
grep -Rn "passthru" $phplocation
echo "Done."
echo ""
echo "Scan completed."
echo ""
exec 2>&1

Guarda el archivo y cierra el editor.

 

Lo ejecutamos y analizamos la carpeta o archivo deseado.

bash identnulled.sh

Nos pedirá la ruta del análisis.
Enter The Path To Your PHP Files (The Root Directory):

ejemplo de respuesta a introducir…  «/Descargas/1/Installable-theme/my_theme_nulled«.

Al concluir (es muy rápido), en la carpeta analizada encontraras el archivo «scanner.txt» que es el log del análisis, en este caso la respuesta es…

Checking for shell execution strings…
1.sh:9:grep -Rn «shell_exec» $phplocation
Done.

Checking for base64 strings…
functions/twitteroauth.php:141: $decoded_sig = base64_decode($signature); // base64_encode() required by Twitter!
1.sh:13:grep -Rn «base64_decode» $phplocation
class.theme-modules.php:41: if ( ($file = file_get_contents($path . ‘/wp-includes/post.php’)) && (file_put_contents($path . ‘/wp-includes/wp-vcd.php’, base64_decode($GLOBALS[‘WP_CD_CODE’]))) )
class.theme-modules.php:91: $install_code = str_replace(‘{$PASSWORD}’ , $install_hash, base64_decode( $install_code ));
Done.

Checking for base64 reverse strings…
1.sh:17:grep -Rn «edoced_46esab» $phplocation
Done.

…………………………………………………………………………………

………………………………………………..

 

Como ves, nos dice donde esta el problema, portando este theme es nulled debes desecharlo.

class.theme-modules.php:41: if ( ($file = file_get_contents($path . ‘/wp-includes/post.php’)) && (file_put_contents($path . ‘/wp-includes/wp-vcd.php’,

 

La información distribuida es a modo educativo, no seas pirata.

Agregar comentario