-[ 0x0F ]--------------------------------------------------------------------
-[ Recarga de moviles ]------------------------------------------------------
-[ by FCA00000 ]-----------------------------------------------------SET-30--

Hace ya tiempo, alguien public un mensaje en el tabln de SET indicando
una direccin WEB para recargar gratis el saldo en las tarjetas prepago
de los mviles.

Si bien la pgina era un burdo intento de engaar 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 pgina web capaz de confundir
a los que la visitan.

Buscando un poco por la red encontr otra pgina que pretenda hacer lo
mismo, aunque el mtodo era un poco ms sofisticado, ya que daba nmeros
diferentes, a pesar de que se repetan cada 10 peticiones. As que voy
a intentar dar unas cuantas ideas de ingeniera social.
Este es un tema que no es realmente tcnico, y todos los consejos que
voy a dar parecen triviales. Por eso no te extrae si, al acabar de leer
el artculo, te parece que no has aprendido nada.

En un principio, lo que se intentaba en la pgina original era que el
usuario mandase un SMS a un cierto nmero de telfono, que resultaba ser
de pago; es decir, que el coste del mensaje era superior a aquellos que
normalmente se envan entre usuarios.
Todos los operadores de telefona 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.
Bsicamente, hay una empresa -que llamaremos FUN4YOU- que decide que hay
un gran negocio en la creacin de melodas para los mviles. As que
hablan con TELCO y se ponen de acuerdo en habilitar un nmero de
telfono, 6969, asignado a un mvil, que a su vez se conecta a un ordenador.
Cuando el usuario manda un SMS a dicho nmero, TELCO lo enva al movil, el
ordenador lo interpreta, y manda otro SMS con la meloda.
Como este es un tipo de mensaje con una autorizacin especial que no cualquier
usuario puede enviar, para enviarlo se necesita un procesado especial:
-usar un centro de servicio SMSC no pblico, que lo procesa.
-FUN4YOU lo manda a TELCO quien se lo reenva 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, meloda, juego, sercicios metereolgicos, 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 errneo, por
ejemplo al escribir mal el nombre de la meloda que se quiere recibir.
Tambin existe otra opcin 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 compaa de la que
quiere hacer el seguimiento, y cada da-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 mtodo para darse de baja, pero imagino que ser
mandando otro mensaje. A ttulo informativo, Telefnica permite subscribirse 
a un servicio que manda cada da las noticias mas interesantes, totalmente 
gratis. Al menos esto funcionaba hace un tiempo; no s si todava est 
disponible.

Mencionar tambin que FUN4YOU est obligado por ley a informar del coste
de cada accin. Esto debe aparecer en las pginas en las que se publicita. 
Seguro que habis visto en los suplementos del peridico dominical una pgina 
con un montn de logos y melodas, y al final un texto con letra minscula
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 Telefnica 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 mvil por la cara, llamen a FUN4YOU, compaa 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 introduccin, 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 aparecern algunos banners de publicidad. Podemos eliminarlos
con tcnicas que ya detall anteriormente en SET, o podemos dejarlos.
Al fin y al cabo, muchos de los sitios ofertando servicios para mviles
tambin incluyen publicidad.
Recordar que no estamos poniendo en marcha un site para vender melodas
o logotipos, sino para dar recargas gratis. Esto es totalmente ilegal, y
debe parecerlo as.
Por eso no es mala idea empezar con una pgina que diga que declinamos
toda responsabilidad por usar estos mtodos, y que su uso puede ocasionar
problemas legales en algunos paises. En general los hackers espaoles
tienden a pensar que eso no van con nosotros y que tenemos todo el
derecho a defraudar, y ninguna responsabilidad.

En la pgina inicial, tras el "disclaimer", ponemos un link que
diga "no acepto" y que lleve a otra pgina, por ejemplo a  history (-1), o a
www.bsa.org Otro link nos llevar a la pgina segunda.
La pgina segunda puede estar tambin almacenada en el servidor, o bien
generada dinmicamente mediante JavaScript. Esta es una tcnica que
a m me gusta mucho: usando window.open y document.write , se crea
una pgina 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 mayora de los usuarios lo tienen activado.
Lo que pasa es que hacer cdigo que a su vez genera cdigo es difcil de
entender, as que en este ejemplo opto por un modelo ms sencillo.

Aqu presentamos una pantalla con algunos dibujitos de mviles, otros de
operadoras de telefona, y algunos smbolos tpicamente asociados a
hackers, tales como calaveras, el pingino 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 ms atractivo.

En medio de la pgina explicamos que este programa te dar un nmero de
serie, y que tienes que enviar un SMS con un formato especial y dicho
numero. Tambin contamos que la metodologa para obtener el nmero depende
de muchos factores tales como el proveedor, el centro de mensajes SMSC, el
nmero de tu telfono, incluso la marca del mvil, 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 da con el mismo nmero de
serie, aunque si una recarga no funciona, se puede intentar de nuevo
con el mismo nmero de serie.

En la pantalla presentamos un Dropdown con la lista de los
operadores: Telefnica, Vodafone, Amena.
Tambin incluimos otro Dropdown para opciones de tarjeta o contrato.
Otro campo editable sirve para el nmero 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 cmo obtenerlo en varios modelos de mviles.
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 nmero de mvil del usuario. Esto hace
ms creible la generacin del nmero de serie, aunque tambin es cierto
que cualquier usuario avispado sabe que al mandar un SMS, el nmero del
mvil tambin 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-explicacin en la pgina web.
Por ltimo pedimos el modelo de mvil, primero la marca, y luego el modelo.
Alternativamente, podemos solicitar solo alguna caracterstica, por ejemplo
si es polifnico o no, si soporta java o no, o si tiene mas de 3 aos.
As podemos incluir una informacin que explique que los contratos
ms recientes usan un algoritmo mas complejo, pero que a pesar
de ello tambin hemos sido capaces de crackearlo.

Se puede incluir alguna pregunta del tipo "Soporta GPRS sobre canales
mltiples" , y proporcionar una explicacin que diga que en este caso
se pueden realizar 4 recargas simultneas, aunque depende del mdelo de
mvil, 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 opcin activada.
Al final ponemos un botn para iniciar el proceso, con un indicacin de
que puede tardar algn tiempo en hacer los clculos e insertar los datos
en los sistemas remotos.

En mi opinin no es bueno incluir muchos colores y efectos especiales.
Esto dara aspecto de publicidad, y hara desconfiar.
Creo que debe tener un cierto toque de oscurantismo, explicando un poco del
proceso, pero detenindose 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
nmero de serie que parezca creble.
Lo primero que tenemos que hacer es verificar que todos los campos tienen
un valor, y que el formato es correcto.
Un usuario normal probara antes con numeros al azar, antes de aventurarse
a escribir su informacin privada. Al menos, es lo que yo hara.

Ahora tenemos que hacer los clculos. Me ha parecido una buena idea dar
un nmero de serie de 10 dgitos, agrupados 4-4-2, separados por un guin.
Al principio dudaba de dar siempre el mismo nmero si los parametros eran
los mismos, o quizs sera mejor usar otro parmetro externo, por ejemplo
el da de la semana. Con esta segunda posibilidad, le explicara al
usuario que ese nmero slo es valido para hoy, y que si no funcionaba, que
volviera maana a visitar la web y se le dara un nuevo nmero. Esta idea
me pareci mejor, aunque la he borrado del ejemplo. As tienes algo para
ejercitarte y practicar.
Lo bueno de la ingeniera social es que puedes aprender de pautas
anteriores, y refinar el mtodo. 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 clculos decido que el primer nmero
depende del operador y el tipo de contrato.
El segundo dgito es funcin del nmero de centro de servicio.
El tercero depende del nmero de telfono de usuario, tanto si se ha
rellenado como si es +34600000000.
Como he explicado antes, otro dgito depende del da del mes, otro del
modelo de mvil, y otro de GPRS-multicanal.
La manera de generar estos nmeros 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 ms cutre es generarlo mediante Javascript. El gran error que
cometi la persona que hizo la pgina web mencionada al principio fu que
dejo el cdigo Javascript muy accesible, y era fcil de entender que
siempre generaba el mismo nmero de serie. As que nosotros aprendemos de
sus errores y enrevesamos el cdigo. Slo tenemos que hacer que el mtodo
de generacin del algoritmo sea difcil de leer, y que parezca que hace
un montn de calculos. Para ello, podra tomar el cdigo de generacin
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 clculo que simplemente eleva el nmero a la sexta potencia, y toma
algunos dgitos intermedios (por curiosidad, este mtodo es la base para
un generador de secuencias aleatorias).
As que slo nos queda presentarle el cdigo 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 sera que fuera necesario bajarse un programa y ejecutarlo
en el ordenador para hacer el clculo.
Esto dara muchas posibilidades a la hora de instalar un troyano.

Otra es solicitar al usuario que llame a un nmero de
telfono 906 (o 806, tal como establece la legislacin actual). Desde
ah se le indica que debe mandar un SMS. Pero dado que la mayora de
la gente sabe que los 906/806 son de pago, seguramente pocos lo haran, pues
es fcil entender que no es gratuito.

Tambin se puede conectar la pgina web con un servidor en el que
almacenar los datos. El punto dbil de mi pgina es que no guarda la
informacin. 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 publicacin de
mensajes sin necesidad de registrarse. Nada mas fcil 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 ms caros, lo normal sera
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 sera una estafa en toda regla.

Otra de las mejoras que hay que hacer es que esta pgina debe ser encontrada
con facilidad. Esto significa que tenemos que conseguir que los buscadores
ms populares nos incluyan es sus listas. Simplemente conctate con la
pgina principal de yahoo, google, ... , y sigue el procedimiento.
Lamentablemente a veces esto implica un desembolso econmico, que dependiendo
de las circunstancias puede resultar provechoso, y veces no.
Similarmente podemos perder un tiempo buscando foros dedicados a hacking y
a telefona, 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
haba seguido mal el procedimiento.
A decir verdad, yo ni siquiera lo intent. Saba que no funcionara.
Digo que hizo bien porque, si se publica un mensaje en un foro pblico, es
importante seguir con la charada. Me parece una buena idea mandar algunos
mensajes, con otra personalidad, confirmando que funciona. Incluso tambin
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 estn ya disfrutando de
algo que t tambin tienes al alcance de la mano.
Sin duda habr otros que desmientan que funciona, pero es importante
acallar las crticas y contrarrestar a tiempo.

Y es que la ingeniera 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 Mviles</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 pgina permite 
     <h2><b><i>Recargar gratis 20 euros</i></b></h2> en tu mvil.</td>
   </tr>

   <tr>
   <td colspan="5">Vale para Telefnica, 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 telfono, y tu nmero de telefono.
    Tambin depende del da del mes.
   <br>
   Puedes ver ayuda sobre cada unos de estos datos pulsando en la etiqueta.
   <br>
   <B>Advertencia:</B> el mtodo no es fiable completamente, pero funciona
    el 80% de los casos.
    Si no funciona, prueba de nuevo cambiando los parmetros, o intntalo
    otro da.
   <br>
   <B>Advertencia2:</B> Bajo ninguna circunstancia debe recargarse ms
    de una vez al da con el mismo nmero de serie, aunque si una
    recarga no funciona, se puede intentar de nuevo con el mismo nmero
    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')">Nmero:</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 dgitos");
 return -1;
 }

if(numero.value.charAt(0)!='+' || numero.value.charAt(1)!='3' ||
   numero.value.charAt(2)!='4' )
 {
 alert ("El nmero debe empezar por      +34");
 return -1;
 }
// alert(numero.value.length);
if(numero.value.length!=12)
 {
 alert ("El nmero debe contener 12 digitos");
 return -1;
 }
if(numero.value=='+34600000000' && contrato.value=='S')
 {
 alert ("Debes introducir tu propio nmero de telfono");
 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 nmero 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 telfonos 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 mvil: SIEMENS, MOTOROLA, NOKIA, " +
        "ERICSSON, OTRO. En maysculas. ");
if(strName=='modelo')
  alert("modelo de mvil: 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 " +
   "simultneas, aunque depende del modelo " +
   "de mvil, y de si hay red GPRS multicanal en el rea. \n" +
   "Soportado, al menos, en PDAs y NOKIA fabricados despus de 01.08.2004 ");
}

</script>
  </table>
  <p>Con este nmero de serie (ej: 1234-5678-90), manda un SMS al 6969,
     usando el SMSC escrito, con el mensaje LOAD y
     el nmero de serie (ej: 'LOAD 1234-5678-90' , sin las comillas ) </td>
 </tr>

</table>
</center>
</body>

</html>

*EOF*