enchufado
   RSS
#
Ejemplo de phishing bancario (patrocinado por La Caixa) (Seguridad) 2010-04-28 21:15:30

Bueno bueno bueno, pues hace ya unos dias quería saber cómo podía funcionar esto que está tan en boga llamado phishing, y por esa misma razón aquí va un sencillo ejemplo _inocuo_ de phishing bancario cuyo target es La Caixa (pero lo mismo aplica al resto del sector bancario online).

Por si alguno se pregunta cuáles son los requisitos para entender este ejemplo, comentar que es necesario saber un poco de PHP, qué es cURL y un poco de regexps PCRE (expresiones regulares parecidas a las de Perl). ¡Pero tranquilos, son pocas lineas!

Vale, entonces, ¿qué haremos? Podríamos crear una réplica física del site origen (en este caso, el site de La Caixa), o bien podríamos hacer todo lo que podamos al vuelo. Es decir, obtener dinámicamente todo lo posible. Ya veremos que alguna cosa (como este .js simplificado y modificado alojado en la réplica) sí que tendrá que ser estática y permanecer en nuestro site: la réplica. Esta última opción parece más elegante y eficiente, porque no desperdiciamos espacio en disco de modo innecesario y -sobretodo- porque es menos propenso (por su naturaleza dinámica) a estar "desincronizado" con el sitio origen. Esto no significa que nuestra creación esté libre de errores ante cambios del site origen, pero lo estará menos.

A modo de guión simplificado (porque no voy a comentarlo linea a linea), esto es lo que se hace en el script:

  1. Parte donde usaremos cURL para obtener la página del site a replicar (o bien devolveremos un error para enterarnos de cuál es el problema, aunque en producción podríamos quitarlo y simplemente hacer un location/redirect hacia el site original para no levantar sospechas).
  2. Parte donde realizaremos la gran mayoría de sustituciones para que los enlaces de nuestro site apunten todos al original.
  3. Parte donde haremos los cambios particulares a los enlaces/elementos de nuestro interés (normalmente, los que queramos capturar/controlar) para que lleven a cabo las acciones que nosotros queramos.
  4. Parte de pasar a la acción: lanzaremos la caña (mostraremos el resultado al usuario) y esperaremos para capturar a Bob Esponja.

Tenéis una PoC en funcionamiento aquí mismo (EDIT: esto ya no es posible, ver comentarios), si bien las consecuencias de este ejemplo son, como se comentó en el primer párrafo del post, mayormente inocuas: los datos de acceso son mostrados al propio usuario a través de un Javascript alert. Si fuéramos malos, podríamos manejar estos datos a nuestro antojo, crearnos una de esas simpáticas URL's para ver quién pica y distribuirlo del modo que creamos conveniente (comúnmente en forma de spam) para dominar el mundo (o en su defecto, unas cuantas cuentas bancarias).

Dejo aquí el tarball del asunto, para quien lo prefiera todo agrupado y del tirón. Sólo cabe desempaquetar ambos ficheros en un mismo directorio y cambiar la primera variable del archivo php para que la URL sea aquella donde residan éstos archivos.

Notas adicionales: para el elemento flash principal (base_ca.swf) del site origen, para no complicarme yo la vida ni complicar el script, tras decompilar el flash me decanté por descartar el slideshow de las 4 animaciones flash y fijar una de ellas. No está de más decir que el site declina toda responsabilidad derivada del mal uso que la gente le pueda dar, quedando su práctica y uso limitado a fines didácticos y de investigación.


Comentarios (17)


Volver al indice

login, admin, form, register