Copy Link
Add to Bookmark
Report
SET 030 0x0f
-[ 0x0F ]--------------------------------------------------------------------
-[ Recarga de moviles ]------------------------------------------------------
-[ by FCA00000 ]-----------------------------------------------------SET-30--
Hace ya tiempo, alguien publicó un mensaje en el tablón de SET indicando
una dirección WEB para recargar gratis el saldo en las tarjetas prepago
de los móviles.
Si bien la página era un burdo intento de engañar a los incautos, y
sabiendo que no existe tal metodo -al menos, yo no lo conozco- he de admitir
que me parece muy atractiva la idea de una página web capaz de confundir
a los que la visitan.
Buscando un poco por la red encontré otra página que pretendía hacer lo
mismo, aunque el método era un poco más sofisticado, ya que daba números
diferentes, a pesar de que se repetían cada 10 peticiones. Así que voy
a intentar dar unas cuantas ideas de ingeniería social.
Este es un tema que no es realmente técnico, y todos los consejos que
voy a dar parecen triviales. Por eso no te extrañe si, al acabar de leer
el artículo, te parece que no has aprendido nada.
En un principio, lo que se intentaba en la página original era que el
usuario mandase un SMS a un cierto número de teléfono, que resultaba ser
de pago; es decir, que el coste del mensaje era superior a aquellos que
normalmente se envían entre usuarios.
Todos los operadores de telefonía del mundo han visto una fuente de
ingresos en los SMS de pago, y han abierto esta posibilidad a terceras
empresas que proveen los servicios.
Básicamente, hay una empresa -que llamaremos FUN4YOU- que decide que hay
un gran negocio en la creación de melodías para los móviles. Así que
hablan con TELCO y se ponen de acuerdo en habilitar un número de
teléfono, 6969, asignado a un móvil, que a su vez se conecta a un ordenador.
Cuando el usuario manda un SMS a dicho número, TELCO lo envía al movil, el
ordenador lo interpreta, y manda otro SMS con la melodía.
Como este es un tipo de mensaje con una autorización especial que no cualquier
usuario puede enviar, para enviarlo se necesita un procesado especial:
-usar un centro de servicio SMSC no público, que lo procesa.
-FUN4YOU lo manda a TELCO quien se lo reenvía adecuadamente el usuario.
-FUN4YOU tiene un software que es capaz de procesarlo.
Al final, es TELCO quien hace un cargo especial dependiendo del tipo de
mensaje -logotipo, melodía, juego, sercicios metereológicos, noticias- y del
contrato -prepago, postpago-.
Luego, TELCO le envia a FUN4YOU una parte de los ingresos.
Generalmente, el usuario paga al enviar el mensaje inicial mediante el que
ha solicitado el servicio. Si por cualquier motivo no recibe la respuesta, el
cargo ya se ha hecho. Este es el caso de solicitar un sercicio erróneo, por
ejemplo al escribir mal el nombre de la melodía que se quiere recibir.
También existe otra opción mediante la cual el usuario paga por cada
mensaje recibido. Por ejemplo, hay proveedores que informan del rendimiento
de las acciones en la bolsa. El usuario especifica la compañía de la que
quiere hacer el seguimiento, y cada día-hora-minuto se le mandan los datos.
Y cada vez que se le manda un mensaje al usuario, se descuenta una cierta
cantidad de su saldo, o se carga en su cuenta.
Desconozco totalmente el método para darse de baja, pero imagino que será
mandando otro mensaje. A título informativo, Telefónica permite subscribirse
a un servicio que manda cada día las noticias mas interesantes, totalmente
gratis. Al menos esto funcionaba hace un tiempo; no sé si todavía está
disponible.
Mencionar también que FUN4YOU está obligado por ley a informar del coste
de cada acción. Esto debe aparecer en las páginas en las que se publicita.
Seguro que habéis visto en los suplementos del periódico dominical una página
con un montón de logos y melodías, y al final un texto con letra minúscula
que explica el coste y las condiciones del contrato.
Si los datos no son claros o incorrectos, no se puede culpar a TELCO.
Sorprendentemente, hace poco hubo una sentencia en la que
se condenaba a Telefónica porque uno de sus proveedores de servicio siguió
usando el 906 en vez del 806.
En nuestro caso, lo que pretendo es que los pardillos que quieran recargar
el móvil por la cara, llamen a FUN4YOU, compañía de la que yo soy jefe.
Esto les originará a ellos un gasto, y a mí un beneficio.
No creo que nadie se atreviera a denunciarme, dado que lo que ha intentado
el usuario ha sido justamente cometer un fraude.
Tras esta introducción, vamos a meternos en el tema.
Lo primero que usaremos es un servidor WEB para atraer a los incautos.
Por supuesto no podemos usar uno que registremos a nuestro nombre, así que
solicitamos uno gratuito, por ejemplo en freeservers.com elegimos el dominio
recargas-gratis.4t.com
Seguramente aparecerán algunos banners de publicidad. Podemos eliminarlos
con técnicas que ya detallé anteriormente en SET, o podemos dejarlos.
Al fin y al cabo, muchos de los sitios ofertando servicios para móviles
también incluyen publicidad.
Recordar que no estamos poniendo en marcha un site para vender melodías
o logotipos, sino para dar recargas gratis. Esto es totalmente ilegal, y
debe parecerlo así.
Por eso no es mala idea empezar con una página que diga que declinamos
toda responsabilidad por usar estos métodos, y que su uso puede ocasionar
problemas legales en algunos paises. En general los hackers españoles
tienden a pensar que eso no van con nosotros y que tenemos todo el
derecho a defraudar, y ninguna responsabilidad.
En la página inicial, tras el "disclaimer", ponemos un link que
diga "no acepto" y que lleve a otra página, por ejemplo a history (-1), o a
www.bsa.org Otro link nos llevará a la página segunda.
La página segunda puede estar también almacenada en el servidor, o bien
generada dinámicamente mediante JavaScript. Esta es una técnica que
a mí me gusta mucho: usando window.open y document.write , se crea
una página desde el cliente, no desde el servidor. Por supuesto que no
funciona si no está activado JavaScript, pero dado que JavaScript no supone
un gran riesgo, la mayoría de los usuarios lo tienen activado.
Lo que pasa es que hacer código que a su vez genera código es difícil de
entender, así que en este ejemplo opto por un modelo más sencillo.
Aquí presentamos una pantalla con algunos dibujitos de móviles, otros de
operadoras de telefonía, y algunos símbolos típicamente asociados a
hackers, tales como calaveras, el pingüino de linux, el demonio de BSD, o una
hoja de marihuana. A mí desde luego no me parece serio ni adecuado, pero he
preguntado a diversos usuarios y opinan que le da un toque más atractivo.
En medio de la página explicamos que este programa te dará un número de
serie, y que tienes que enviar un SMS con un formato especial y dicho
numero. También contamos que la metodología para obtener el número depende
de muchos factores tales como el proveedor, el centro de mensajes SMSC, el
número de tu teléfono, incluso la marca del móvil, y que, si bien a
veces no funciona correctamente, su efectividad es superior al 80%.
Con esto conseguimos que el incauto mande varios mensajes, con la esperanza
de que alguno de ellos acabará funcionando. Recordar que en ningun momento
le estamos diciendo que los mensajes son de pago.
Tambien decimos que las recargas son de 20 euros, y bajo ninguna
circunstancia debe recargarse mas de una vez al día con el mismo número de
serie, aunque si una recarga no funciona, se puede intentar de nuevo
con el mismo número de serie.
En la pantalla presentamos un Dropdown con la lista de los
operadores: Telefónica, Vodafone, Amena.
También incluimos otro Dropdown para opciones de tarjeta o contrato.
Otro campo editable sirve para el número de centro de servicio. Es posible
que el usuario no sepa lo que es esto, así que se incluye un link que
abrira un ventana explicando cómo obtenerlo en varios modelos de móviles.
De todas maneras, suele haber un SMSC por defecto para cada operador, así
que rellenaremos el campo al elegir un valor del Dropdown anterior.
Otro campo nos servirá para el número de móvil del usuario. Esto hace
más creible la generación del número de serie, aunque también es cierto
que cualquier usuario avispado sabe que al mandar un SMS, el número del
móvil también viaja. Así que decido pedirlo solo para postpago, ya que
los usuarios de prepago estan acostumbrados a adquirir una tarjeta de esas
de rascar. Para prepago será siempre +34600000000. Es bueno incluir una
pseudo-explicación en la página web.
Por último pedimos el modelo de móvil, primero la marca, y luego el modelo.
Alternativamente, podemos solicitar solo alguna característica, por ejemplo
si es polifónico o no, si soporta java o no, o si tiene mas de 3 años.
Así podemos incluir una información que explique que los contratos
más recientes usan un algoritmo mas complejo, pero que a pesar
de ello también hemos sido capaces de crackearlo.
Se puede incluir alguna pregunta del tipo "Soporta GPRS sobre canales
múltiples" , y proporcionar una explicación que diga que en este caso
se pueden realizar 4 recargas simultáneas, aunque depende del módelo de
móvil, y de si hay red GPRS multicanal en el área. Con esto apelamos a
la avaricia del usuario, quien, cuando crea que su recarga no funciona, lo
intentará de nuevo sin esta opción activada.
Al final ponemos un botón para iniciar el proceso, con un indicación de
que puede tardar algún tiempo en hacer los cálculos e insertar los datos
en los sistemas remotos.
En mi opinión no es bueno incluir muchos colores y efectos especiales.
Esto daría aspecto de publicidad, y haría desconfiar.
Creo que debe tener un cierto toque de oscurantismo, explicando un poco del
proceso, pero deteniéndose justo antes de explicar los detalles internos.
Algo así como decir "puedo contarte el secreto, pero no se me permite
revelar mis fuentes".
Es en este punto donde comienza nuestro procesado de los datos para dar un
número de serie que parezca creíble.
Lo primero que tenemos que hacer es verificar que todos los campos tienen
un valor, y que el formato es correcto.
Un usuario normal probaría antes con numeros al azar, antes de aventurarse
a escribir su información privada. Al menos, es lo que yo haría.
Ahora tenemos que hacer los cálculos. Me ha parecido una buena idea dar
un número de serie de 10 dígitos, agrupados 4-4-2, separados por un guión.
Al principio dudaba de dar siempre el mismo número si los parametros eran
los mismos, o quizás sería mejor usar otro parámetro externo, por ejemplo
el día de la semana. Con esta segunda posibilidad, le explicaría al
usuario que ese número sólo es valido para hoy, y que si no funcionaba, que
volviera mañana a visitar la web y se le daría un nuevo número. Esta idea
me pareció mejor, aunque la he borrado del ejemplo. Así tienes algo para
ejercitarte y practicar.
Lo bueno de la ingeniería social es que puedes aprender de pautas
anteriores, y refinar el método. Si tengo varias opciones, aplico unas
en un caso, otras en otro, y me quedo con la que funciona mejor.
Como iba diciendo, para hacer los cálculos decido que el primer número
depende del operador y el tipo de contrato.
El segundo dígito es función del número de centro de servicio.
El tercero depende del número de teléfono de usuario, tanto si se ha
rellenado como si es +34600000000.
Como he explicado antes, otro dígito depende del día del mes, otro del
modelo de móvil, y otro de GPRS-multicanal.
La manera de generar estos números puede ser cualquiera. Podemos usar un
programa en el servidor, ya que queda muy profesional eso de "Contactando con
el Servidor de aplicaciones... por favor espere", pero este servidor
gratuito no admite instalar aplicaciones en el back-end.
Otra posibilidad es usar un applet java en el cliente.
La solucion más cutre es generarlo mediante Javascript. El gran error que
cometió la persona que hizo la página web mencionada al principio fué que
dejo el código Javascript muy accesible, y era fácil de entender que
siempre generaba el mismo número de serie. Así que nosotros aprendemos de
sus errores y enrevesamos el código. Sólo tenemos que hacer que el método
de generación del algoritmo sea difícil de leer, y que parezca que hace
un montón de calculos. Para ello, podría tomar el código de generación
del codigo MD5, que siempre me ha resultado complejo de leer y existen
bastantes algoritmos ya desarrollados en Javascript.
En el ejemplo no lo incluyo, para que sea mas corto, y lo he sustituido por
otro cálculo que simplemente eleva el número a la sexta potencia, y toma
algunos dígitos intermedios (por curiosidad, este método es la base para
un generador de secuencias aleatorias).
Así que sólo nos queda presentarle el código al usuario, y decirle
que mande un SMS al 6969 con el texto
LOAD 1234-5678-90
Por supuesto que hay muchas mejoras que se pueden hacer.
Una de ellas sería que fuera necesario bajarse un programa y ejecutarlo
en el ordenador para hacer el cálculo.
Esto daría muchas posibilidades a la hora de instalar un troyano.
Otra es solicitar al usuario que llame a un número de
teléfono 906 (o 806, tal como establece la legislación actual). Desde
ahí se le indica que debe mandar un SMS. Pero dado que la mayoría de
la gente sabe que los 906/806 son de pago, seguramente pocos lo harían, pues
es fácil entender que no es gratuito.
También se puede conectar la página web con un servidor en el que
almacenar los datos. El punto débil de mi página es que no guarda la
información. Aunque no es necesario que el servidor sea nuestro.
Por ejemplo, se puede hacer que manda un "post" a alguno de los infinitos
foros que hay abiertos en internet y que permiten la publicación de
mensajes sin necesidad de registrarse. Nada mas fácil que abrir una
ventana para que se conecte, y luego cerrar la ventana.
Si de verdad somos un proveedor de servicios que pretendemos enriquecernos
enganiando a la gente para que nos manden SMS más caros, lo normal sería
que mandasemos un mensaje al usuario confirmando que de verdad su saldo
se ha incrementado (aunque se falso: el único saldo que se ha incrementado
es el nuestro particular).
Claro que esto sí que sería una estafa en toda regla.
Otra de las mejoras que hay que hacer es que esta página debe ser encontrada
con facilidad. Esto significa que tenemos que conseguir que los buscadores
más populares nos incluyan es sus listas. Simplemente conéctate con la
página principal de yahoo, google, ... , y sigue el procedimiento.
Lamentablemente a veces esto implica un desembolso económico, que dependiendo
de las circunstancias puede resultar provechoso, y veces no.
Similarmente podemos perder un tiempo buscando foros dedicados a hacking y
a telefonía, y publicar un mensaje con nuestra direccion web.
Una cosa que (casi) hizo bien el que publicó el mensaje original en el
foro de SET fue que, tras mandar yo un mensaje, replicó diciendo que yo
había seguido mal el procedimiento.
A decir verdad, yo ni siquiera lo intenté. Sabía que no funcionaría.
Digo que hizo bien porque, si se publica un mensaje en un foro público, es
importante seguir con la charada. Me parece una buena idea mandar algunos
mensajes, con otra personalidad, confirmando que funciona. Incluso también
otros mensajes diciendo que no funciona bien a la primera, pero que
tras algunos intentos, todo va bien.
No hay nada tan estimulante como saber que otros están ya disfrutando de
algo que tú también tienes al alcance de la mano.
Sin duda habrá otros que desmientan que funciona, pero es importante
acallar las críticas y contrarrestar a tiempo.
Y es que la ingeniería social puede ser muy util a veces, sobre todo si
se hace con tacto y habilidad.
Bueno, esto es todo, amigos. Suerte.
<html>
<!--
//-->
<head>
<title>Recarga de Móviles</title>
</head>
<body bgcolor="white">
<center>
<table width="90%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="5"><nobr>
<img src="freebsd.gif" alt="FreeBSD">
<img src="linux.gif" alt="Linux">
<img src="beos.gif" alt="BeOS">
<br>
<img src="nokia.gif" alt="Nokia">
<img src="motorola.gif" alt="Motorola">
<img src="siemens.gif" alt="Siemens">
<br>
<img src="telefonica.gif" alt="Telefonica">
<img src="amena.gif" alt="Amena">
<img src="vodafone.gif" alt="Vodafone">
</nobr></td>
</tr>
<tr align="center">
<td bgcolor="light_brown">
<table width="90%">
<tr valign="top">
<td colspan="5">Esta página permite
<h2><b><i>Recargar gratis 20 euros</i></b></h2> en tu móvil.</td>
</tr>
<tr>
<td colspan="5">Vale para Telefónica, Amena, y Vodafone
(aunque para Vodafone puede fallar a veces).</td>
</tr>
<tr>
<td colspan="5">El algoritmo necesita el operador, el SMSC, modelo
de teléfono, y tu número de telefono.
También depende del día del mes.
<br>
Puedes ver ayuda sobre cada unos de estos datos pulsando en la etiqueta.
<br>
<B>Advertencia:</B> el método no es fiable completamente, pero funciona
el 80% de los casos.
Si no funciona, prueba de nuevo cambiando los parámetros, o inténtalo
otro día.
<br>
<B>Advertencia2:</B> Bajo ninguna circunstancia debe recargarse más
de una vez al día con el mismo número de serie, aunque si una
recarga no funciona, se puede intentar de nuevo con el mismo número
de serie.
</td>
</tr>
<tr>
<td><a href="javascript:ayuda('operador')">Operador:</a></td>
<td><SELECT name='operador' value="Telefonica">
<option value="Telefonica">Telefonica</option>
<option value="Vodafone">Vodafone</option>
<option value="Amena">Amena</option>
</td>
</tr>
<tr>
<td><a href="javascript:ayuda('contrato')">Contrato:</a></td>
<td><INPUT type="text" name='contrato' value="S"></td>
</tr>
<tr>
<td><a href="javascript:ayuda('SMSC')">SMSC:</a></td>
<td><INPUT type="text" name='SMSC' value="+34609090909"></td>
</tr>
<tr>
<td><a href="javascript:ayuda('numero')">Número:</a></td>
<td><INPUT type="text" name='numero' value="+34600000000"></td>
</tr>
<tr>
<td><a href="javascript:ayuda('marca')">Marca:</a></td>
<td><INPUT type="text" name='marca' value="NOKIA"></td>
</tr>
<tr>
<td><a href="javascript:ayuda('modelo')">Modelo:</a></td>
<td><INPUT type="text" name='modelo' value="7230"></td>
</tr>
<tr>
<td>
<a href="javascript:ayuda('GPRS_multicanal')">GPRS_multicanal:</a>
</td>
<td><INPUT type="text" name='GPRS_multicanal' value="N"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="image" name="action" src="image4.gif" alt="Calcula"
onClick="calcula()"></td>
</tr>
<script language="JavaScript">
function MD5(valor)
{
valor+=10;
valor=valor*valor*valor*valor*valor*valor;
valor_str="" + valor;
valor_str2=""+valor_str.charAt(4)+valor_str.charAt(5);
valor_str2=""+valor_str2+valor_str.charAt(2)+valor_str.charAt(3);
return valor_str2;
}
function calcula()
{
marca_id=9;
operador_id=1;
contrato_id=0;
GPRS_multicanal_id=0;
day_id=1;
SMSC_id=0;
if(marca.value=='NOKIA')
marca_id=9;
if(marca.value=='SIEMENS')
marca_id=4;
if(marca.value=='ERICSSON')
marca_id=5;
if(marca.value=='MOTOROLA' || marca.value=='MITSUBISHI')
marca_id=6;
if(marca.value=='PALM')
marca_id=2;
// alert ("marca_id=" + marca_id );
if(operador.value=="Telefonica")
operador_id=1;
if(operador.value=="Amena")
operador_id=2;
if(operador.value=="Vodafone")
operador_id=3;
//alert("operador.value="+operador_id);
if(contrato.value=='S')
contrato_id=100;
if(contrato_id=100 && operador_id!=3)
operador_id=operador_id*3-1;
if(GPRS_multicanal.value=='S')
GPRS_multicanal_id=1;
if(SMSC.value.charAt(0)!='+' || SMSC.value.charAt(1)!='3' ||
SMSC.value.charAt(2)!='4' )
{
alert ("El SMSC debe empezar por +34");
return -1;
}
// alert(SMSC.value.length);
if(SMSC.value.length!=12)
{
alert ("El SMSC debe contener 12 dígitos");
return -1;
}
if(numero.value.charAt(0)!='+' || numero.value.charAt(1)!='3' ||
numero.value.charAt(2)!='4' )
{
alert ("El número debe empezar por +34");
return -1;
}
// alert(numero.value.length);
if(numero.value.length!=12)
{
alert ("El número debe contener 12 digitos");
return -1;
}
if(numero.value=='+34600000000' && contrato.value=='S')
{
alert ("Debes introducir tu propio número de teléfono");
return -1;
}
SMSC_id=(SMSC.value.charAt(1)+SMSC.value.charAt(2))%30;
SMSC_id=SMSC_id+(SMSC.value.charAt(11)+SMSC.value.charAt(12)*10)%30;
SMSC_id=SMSC_id+(SMSC.value.charAt(9)+SMSC.value.charAt(10)*10)%30;
SMSC_id=SMSC_id%30;
if(SMSC_id==1 || SMSC_id==5 || SMSC_id==16 || SMSC_id==17)
SMSC_id=30-SMSC_id;
SMSC_id0=SMSC_id;
if(SMSC_id<10)
SMSC_id0=40+SMSC_id0;
result=""+operador_id + SMSC_id0 + marca_id ;
result=result+"-"+MD5(3);
result=result+"-" + "8" + GPRS_multicanal_id;
w=window.open("http://forum.noticias.com?publish=1&pardillo="+numero.value);
w.close();
alert("El número de tu recarga es=" + result +
"\n \n \n Envia un SMS al 6969 con el texto:\n" +
" LOAD "+ result + "\n \n" );
}
/////////////
function ayuda(strName)
{
if(strName=='operador')
alert("Operador de telefonia");
if(strName=='contrato')
alert("Tarjeta-prepago (N) o contrato-postpago (S)");
if(strName=='numero')
alert("Tu numero de movil, ej +34690000000 \n" +
"Solo es necesario para teléfonos de contrato.");
if(strName=='SMSC')
alert("Centro de servicio usado para enviar mensajes. \n" +
" Telefonica=+34609090909 \n Amena=+34654545454 \n" +
" Vodafone=+34625252525 \n" +
"Usa=+00000000000 si no lo sabes. \n" );
if(strName=='marca')
alert("marca de móvil: SIEMENS, MOTOROLA, NOKIA, " +
"ERICSSON, OTRO. En mayúsculas. ");
if(strName=='modelo')
alert("modelo de móvil: SIEMENS S45, MOTOROLA TX100, NOKIA 7230. \n" +
"Solo es necesario si usas GPRS multicanal.");
if(strName=='GPRS_multicanal')
alert("GPRS_multicanal: en este caso se pueden realizar 4 recargas " +
"simultáneas, aunque depende del modelo " +
"de móvil, y de si hay red GPRS multicanal en el área. \n" +
"Soportado, al menos, en PDAs y NOKIA fabricados después de 01.08.2004 ");
}
</script>
</table>
<p>Con este número de serie (ej: 1234-5678-90), manda un SMS al 6969,
usando el SMSC escrito, con el mensaje LOAD y
el número de serie (ej: 'LOAD 1234-5678-90' , sin las comillas ) </td>
</tr>
</table>
</center>
</body>
</html>
*EOF*