Encontrar código malintencionado en PHP con grep en Linux

Aprende cómo encontrar código malintencionado en PHP (u otros lenguajes) usando una línea simple de grep en Linux
security protection anti virus software 60504

Algunas veces utilizamos alguna librería que “nos da un poco de inseguridad” por lo que para encontrar posibles códigos que puedan alterar cosas en nuestro servidor les comparto un comando muy sencillo que nos permitirá encontrar en todos los archivos la posibilidad de uso de código malintencionado en PHP.

Pero antes de llegar a él, te daré un poco de idea que existen algunas funciones en PHP que permiten cambiar ciertas cosas, por ejemplo con passthru podemos ejecutar código en consola con PHP, entonces si tenemos alguna especie de backdoor podrían modificar permisos desde ahí si el usuario que lo ejecuta es root y nos podrían destrampar todo. Otro ejemplo es que puedan crear archivos con un “uploader” (una manera de subir archivos) y pues no nos demos cuenta. Claro, entendemos que algunas funciones son seguras porque no hay otra manera (es como decir que mkdir es inseguro en el core de WP pero WP sí lo necesita, más un plugin que nos muestra datos no tendría por qué crear directorios, ¿cierto?), pero algunas otras nunca deberían estar ahí…

Entonces, vamos al código:

grep -RPnDskip "(passthru|shell_exec|system|phpinfo|base64_decode|chmod|mkdir|fopen|fclose|readfile) *" /var/www/html

Lo primero son muchas flags que no quisiera perder mucho tiempo explicando. Pero, lo que sigue es lo interesante, va a intentar buscar en la ruta /var/www/html (esto lo pueden cambiar a donde estará el código que va a terminar por testear esta línea) las funciones tipo passthru/shell_exec ustedes pueden agregar o quitar algunas a su conveniencia, por ejemplo como mencionaba, si es un plugin de WordPress y necesitan poder subir archivos mkdir pudiera ser opción, por lo que se quita de la lista, así sucesivamente pueden agregar o quitar diferenciando con los pipes | de entre cada función que agreguen o quiten y listo.

Así pueden comprobar algunas cosas más de seguridad. ¿Fácil no lo creen?.

¿Cuál es tu reacción?
+1
0
+1
0
+1
0
+1
0
+1
1
Total
0
Shares
Publicación anterior
javascript logo

Cómo saber si un objeto está vacío o no en JavaScript

Siguiente Publicación

Creando mi propio IDE con Angular y Node – Parte 3

Publicaciones Relacionadas