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.
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.