A menudo tengo problemas con sitios que son pirateados. Por lo general, terminan con scripts insertados en archivos diferentes. ¿Hay alguna manera, en Linux, de buscar este contenido y eliminarlo automáticamente? Por lo general, este contenido comienza y termina con algo como esto.
<!--2d3965--><script type="text/javascript" language="javascript">
</script><!--/2d3965-->
¿Sería posible utilizar algún tipo de combinación de grep para buscar archivos que contengan este contenido y luego canalizarlo a sed para eliminar todo desde
hasta
Respuesta1
Escribí ese guión, podría ser útil.
#!/usr/bin/env python
import os
import sys
for infile in sys.argv[1:]:
print infile
filetmp=infile+'.tmp'
BEGIN='<!--2d3965-->'
END='<!--/2d3965-->'
f = open(infile, 'r')
ftmp = open(filetmp, 'w')
skip=False
for line in f:
if BEGIN in line:
#print line.partition(BEGIN)[0]
ftmp.write(line.partition(BEGIN)[0])
skip=True
if END in line:
#print line.partition(END)[2]
ftmp.write(line.partition(END)[2])
skip=False
else:
if not skip:
ftmp.write(line)
#you can add save restrictions here
os.rename(filetmp, infile)
Deberías dar:
- nombre de archivo con virus
- cuerda, que marcael virus comienzacadena
cuerda, que marcafin del virus
No olvide volver a cambiar los permisos, si el archivo lo requiere. Por cierto, creo que solo se aplica a archivos de texto.
Pruébelo y haga una copia de seguridad antes de usarlo.
Úselo de esta manera:
python cleaner.py index.html js/jquery.js
Respuesta2
Agregaría estos archivos a subversion o git y compararía automáticamente la versión oficial de estos archivos con los archivos de los sitios de forma regular. Si ve una diferencia, sabrá que ha sido pirateado y puede buscar la fuga. Mientras tanto, puedes restaurar el archivo original desde la herramienta de control de versiones.