Querido diario…

A veces intento no ser mala persona y ayudar a aquellos que acuden al gran, al único, al increíble… vendetta [inserte emoticón con lentes aquí].

El día de hoy me buscó un amigo y me dijo «gran y todo poderoso amigo mío, que me han hackeado, ayúdame, tú que estas en las alturas del cielo»… después de hacerlo sufrir un poco, cobrarle un café, un crossaint, burlarme de él y ver como el ceño se le transformaba en tristeza y frustración, decidí hacerle caso.

Bueno, pues resultado que al muchacho lo tenían hackeado desde hace varios hum… ¿años?, la verdad es qué ni sabe; sólo la semana pasada contrato a alguien para actualizar su sitio web y de pronto, ¡zascuash! que se da cuenta que tenía una C99 en el servidor web… eso estrictamente no debiese de ser tanto problema, porque pues lo máximo que uno podría imaginar que pasaría es que se heredan los privilegios al shell y se pueden ejecutar algunos comandos, pero obviamente debiesen estar limitados por los permisos del usuario… pero…

Bueno… para no hacerte el cuento largo, estaba ejecutando Apache como root; y como el sitio anterior era un CMS y a veces le daba problemas de permisos al subir archivos y crear directorios desde la aplicación, le dio un chmod 777 ./ a todo el ROOT directory. Ya cuando me empezó a contar eso la verdad es que me daban ganas de reñirme, pero intenté guardar la compostura, lo miré con cara de preocupación y le dije:

- Oye.. la señora que hace la limpieza de mi casa no se ha presentado en una semana, ¿trabajarías como mi sirvienta?

Jajajaja lo sé, lo sé… pero ¿qué puede hacer uno cuando le platican este tipo de cosas?

La verdad es que es complicado ya hacer algo cuanto te encuentras hackeado de esta forma, porque si vemos un simple ejemplo con una shell básica que yo hice en PHP y como se ve cuando se ejecuta, veremos lo siguiente:

Si lo vemos, lo único que estamos haciendo es pasar un parámetro el cual se está ejecutando como parte de la aplicación; lo cual lo hace poco posible de detectar. Al menos no sencillo, para hacerlo se requeriría tal vez algo como Imperva para poder detectar ese tipo de problemas.

Creo que la solución se encuentra en evitar que archivos de este tipo sean admitidos por la aplicación, tal vez incluso poder parsear los diferentes archivos que se suban, sean o no asociados a una extensión y poder evitar que se suban los que tengan contenido malicioso, porque desde el post se ve cuando se esta subiendo un system() que siempre va a ser malo.

Lo peor de todo esto es que una vez dentro no se sabe que tan lejos pudieron haber llegado, el hacerlo es demasiado complicado y puede que en lo que estamos intentando descubrirle, pasen cosas peores… no es burla, pero…

Querido diario… jajaja ya no me creen las técnicas chamaqueadoras 😛