Script que avisa de todos los cambios de ficheros PHP
Publicado inicialmente por
PacoSS
De la que me acaba de librar el script de Power.
Me habian reventado varios Joomla desde las 6:30 de la mañana.
A las 8.00 lanzo el script en el cron, y a las 9 lo he visto. Los he pillado in-fraganti, baneo ip's, suspendo cuentas, aviso a los webmaster, ...
¡TE DEBO UNA CAÑA POR CADA JOOMLA, POWER!
¡up! !up!
Hola,
PacoSS me alegra mucho que el script te haya servido.
Yo también he pescado, en el mismo día, algún script de PHP que le habían colado a algún cliente mío.
Tomo nota de tu deuda de cervecita por cada Joomla .
A ver si este año, por fín, se celebra el Congreso OVH y tenemos oportunidad de conocernos (y cobrarme esas cañas )
(Sigo gestionando el tema con Matilde, de OVH, a ver si este año puede ser)
Saludos
De la que me acaba de librar el script de Power.
Me habian reventado varios Joomla desde las 6:30 de la mañana.
A las 8.00 lanzo el script en el cron, y a las 9 lo he visto. Los he pillado in-fraganti, baneo ip's, suspendo cuentas, aviso a los webmaster, ...
¡TE DEBO UNA CAÑA POR CADA JOOMLA, POWER!
¡up! !up!
En eso mismo estaba pensando yo PacoSS
nando.dominios
08/03/2011, 12:37
Lo estoy usando, va genial, muchas gracias.
Hola,
Una magnífica aportación de mejora, PacoSS.
Gracias.
Saludos
Muy bueno el script, a ver si tengo un hueco y lo paso a Windows.
Yo además, como tengo varios portales/tiendas con el caché activado, me genera varias páginas del php cambiados, en los típicos directorios caché.
La solución es fácil, pasar la salida por "grep -v" que deja pasar todo, menos lo que tu le digas.
Por ejemplo, si quiero que no salgan los "/cache/phps*":
nice -19 find /home/httpd/$CUENTA/httpdocs/ -mtime -1 -name "*.php" |grep -v "/cache/phps*">> $FICHERO
Y si necesitas mas filtros, pues añades mas grep -v.
Esto me ha simplificado mucho la lectura de los emails diarios.
Hola,
¡¡ Qué casualidad !!
Esta misma noche, gracias a ese script acabo de detectar un fichero de nombre s.php que le habían colado, esta tarde, en su web a uno de mis clientes.
Después de renombrar el fichero a una extensión no ejecutable vía web, y de bloquear esa IP, he comprobado en los logs que habían accedido por FTP desde una IP de USA.
Lo habían conseguido a la primera, así que parece claro que habían obtenido la contraseña de FTP.
Posiblemente desde un PC infectado con algún troyano de algún desarrollador de esa web.
Queda demostrada, una vez más, la utilidad de esa sencilla herramienta.
Saludos
Demiurgo
05/03/2011, 23:26
Muy interesante.
La adaptación para Kloxo :
Código:
#!/bin/bash
# Script para localizar los ficheros de PHP modificados en las últimas 24 horas
CUENTAS=`ls -A1 /home/httpd/`
FICHERO=/tmp/control_diario_scripts
touch $FICHERO
for CUENTA in $CUENTAS
do
echo "====================================================" >> $FICHERO
echo $CUENTA >> $FICHERO
echo "====================================================" >> $FICHERO
nice -19 find /home/httpd/$CUENTA/httpdocs/ -mtime -1 -name "*.php" >> $FICHERO
done
echo "====================================================" >> $FICHERO
cat $FICHERO | mail -s "Control diario de scripts" mimail@loquesea.com
rm -f $FICHERO
Hola,
Publicado inicialmente por
PerroVerd
Para esto ¿no te iría mejor usar los servicios de inotify del kernel?
Con un
#iwatch /var/www
y tocando un poco los ficheros de configuración vienes a tener lo mismo y en tiempo real
http://iwatch.sourceforge.net/
Buenísima y sencilla de usar esa herramienta que (como muchíiiisimas otras) no conocía.
Muchas gracias PerroVerd.
Saludos
Me ha gustado lo de iwatch, pero... recompilar el kernel otra vez con el server en producción...
Por cierto, la adaptación para Plesk:
Código:
#!/bin/bash
# Script para localizar los ficheros de PHP modificados en las últimas 24 horas
CUENTAS=`ls -A1 /var/www/vhosts/`
FICHERO=/tmp/control_diario_scripts
touch $FICHERO
for CUENTA in $CUENTAS
do
echo "====================================================" >> $FICHERO
echo $CUENTA >> $FICHERO
echo "====================================================" >> $FICHERO
nice -19 find /var/www/vhosts/$CUENTA/httpdocs/ -mtime -1 -name "*.php" >> $FICHERO
done
echo "====================================================" >> $FICHERO
cat $FICHERO | mail -s "Control diario de scripts" mimail@gmail.com
rm -f $FICHERO
PerroVerd
14/04/2010, 10:10
Para esto ¿no te iría mejor usar los servicios de inotify del kernel?
Con un
#iwatch /var/www
y tocando un poco los ficheros de configuración vienes a tener lo mismo y en tiempo real
http://iwatch.sourceforge.net/
Arturoap
01/04/2010, 15:24
Publicado inicialmente por
Power
Hola,
En mi caso, ahora tengo 69 cuentas albergadas en mi servidor.
Pero es raro que haya más de una o dos cuentas que modifiquen ficheros PHP el mismo día.
Y aparte, como quedan separados por cuentas, se hace fácil de leer.
Saludos
Gracias Power sin duda lo voy a implementar junto con el de sendmail !
Hola,
En mi caso, ahora tengo 69 cuentas albergadas en mi servidor.
Pero es raro que haya más de una o dos cuentas que modifiquen ficheros PHP el mismo día.
Y aparte, como quedan separados por cuentas, se hace fácil de leer.
Saludos
Muy interesante, pero muy pesado cuando tenga que enviarte un mail de archivos que se han modificado de 300 webs.
Hola,
Como estaba un poco harto de tener que buscar "a pelo" los ficheros PHP que se modificaban y podían ser fuente de malware, he preparado este script:
Código:
#!/bin/bash
# Script para localizar los ficheros de PHP modificados en las últimas 24 horas
CUENTAS=`ls -A1 /var/cpanel/users`
FICHERO=/tmp/control_diario_scripts
touch $FICHERO
for CUENTA in $CUENTAS
do
echo "====================================================" >> $FICHERO
echo $CUENTA >> $FICHERO
echo "====================================================" >> $FICHERO
nice -19 find /home/$CUENTA/public_html/ -mtime -1 -name "*.php" >> $FICHERO
done
echo "====================================================" >> $FICHERO
cat $FICHERO | mail -s "Control diario de scripts" micorreo@gmail.com
rm -f $FICHERO
Se arranca todas las noches desde un cronjob y me envía email con los ficheros PHP de cada cuenta que han variado en las últimas 24 horas.
Está pensado para cPanel, pero se puede adaptar para otros paneles.
Saludos