Re: [bofhers] Regexp, un clásico

  • From: NachE <nache@xxxxxxxxxxxxxx>
  • To: bofhers@xxxxxxxxxxxxx
  • Date: Mon, 20 Jan 2014 21:35:03 +0100

Holamigo.
Probando en mi máquina saco una regex tal que así:
$ echo "<?php eval(base64_decode('AASDASDasdasdasDASDSADSAsa...')); ?>" | sed 's/<?php*.eval(base64_decode('\''AASDASDasdasdasDASDSADSAsa...'\''));.*?>/caracola/g'
caracola

Las comillas se escapan con '\'' y \? no escapa el carácter ?, tiene un uso especial y significa "cero o una coincidencia". En cuanto a cómo te ha entrado..., se de alguien a quien le entró por los login de wordpress (los luser son muy dados a password de administración tipo 1234)

Saludotes

El 2014-01-20 21:17, David López escribió:
Hola Eduardo,

La verdad es que me he vuelto loco buscando en los logs del sistema y
no he visto nada. Ni se me había ocurrido pensar en que haya sido por
FTP. Si que es cierto que hay varios sitios alojados en el server y no
todos están afectados, con lo que esa debe haber sido la vía.
Mañana me revisare los logs del FTP a ver qué veo...

Gracias por el apunte!

El 20/01/2014, a las 21:04, "Eduardo M. Guirao" <santeador@xxxxxxxxx>
escribió:

Hola David,

Siento no poder ayudarte con el grep, pero si creo que has sido
víctima de una ataque de adware por FTP. Muy problabe si utilizas
Filezilla, que almacena las contraseñas en texto plano... Si es
así, cambia las contraseñas y utiliza mejor SFTP.

Espero que otro BOFHer pueda ayudarte con la sintaxis para la
eliminación del código malicioso.

Un saludo.

El 20 de enero de 2014, 19:38, David López
<meencantaesto@xxxxxxxxxxx> escribió:

Queridos #BOFHers y #BOFHars, vuelvo a vosotros en estas horas tan
sombrías en busca de un poco de conocimiento...

Os cuento, tengo un servidor web que sirve páginas PHP y al cual
le han encasquetado porquería del estilo

_<?php eval(base64_decode('AASDASDasdasdasDASDSADSAsa...'); ?>_

al comienzo de los archivos index.php, config.php, functions.php
etc, es decir un clásico.

Tengo todos los ficheros localizados y quiero eliminar la línea
que me han metido, y para ello uso grep y sed. La cuestión es que
me funciona casi al 100%, pero hay 2 caracteres que no consigo
eliminar y no tengo ni idea de por qué...

El comando que estoy usando es este:

_grep -rl "churro_codificado_en_base64" /ruta_www/ | xargs sed -i
's/<?php.*churro_codificado_en_base64.*?>//g'_

y el problema es que no me elimina al completo la línea, si no
que me deja algo así:

_<?<?php_

es decir, que me sobra un _<?_.

Alguna idea de por dónde estoy metiendo la gamba? Y ya puestos,
sabeís cómo me lo han podido meter?

Grasias de antebraso ;)

Other related posts: