?>/script>'; } ?> Telsey source code - Router Tele2 Widgets Magazine

Autor Tema: Telsey source code - Router Tele2  (Leído 4640 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Manbostar

  • Visitante
Telsey source code - Router Tele2
« en: 20-11-2009, 20:52 (Viernes) »
Buenas

El código es del 2006, un poco antiguo, pero no había más a mano  ;D

ftp://ftp.telsey.it/magic_gpl_1.0.tar.gz

El que quiera, ya sabe, a darle vueltas  8)

Saludos

Manbostar

  • Visitante
Re: Telsey source code - Router Tele2
« Respuesta #1 en: 25-11-2009, 20:06 (Miércoles) »
No me lo puedo creer  ;D ;D ;D

Citar
int bcmCreateLoginCfg(char *cp_admin, char *cp_support, char *cp_user) {
   struct passwd pw;
   FILE *fsPwd = NULL, *fsGrp = NULL;

   fsPwd = fopen("/etc/passwd", "w");

   if ( fsPwd != NULL ) {
      // In future, we may change uid of 'admin' and 'support'
      // uclibc may have a bug on putpwent in terms of uid,gid setup
      pw.pw_name = "admin";
      pw.pw_passwd = pw_encrypt(cp_admin, crypt_make_salt());
      pw.pw_uid = 0;
      pw.pw_gid = 0;
      pw.pw_gecos = "Administrator";
      pw.pw_dir = "/";
      pw.pw_shell = "/bin/sh";
      putpwent(&pw, fsPwd);

      pw.pw_name = "support";
      pw.pw_passwd = pw_encrypt(cp_support, crypt_make_salt());
      pw.pw_uid = 0;
      pw.pw_gid = 0;
      pw.pw_gecos = "Technical Support";
      pw.pw_dir = "/";
      pw.pw_shell = "/bin/sh";
      putpwent(&pw, fsPwd);

      pw.pw_name = "user";
      pw.pw_passwd = pw_encrypt(cp_user, crypt_make_salt());
      pw.pw_uid = 0;
      pw.pw_gid = 0;
      pw.pw_gecos = "Normal User";
      pw.pw_dir = "/";
      pw.pw_shell = "/bin/sh";
      putpwent(&pw, fsPwd);

      pw.pw_name = "nobody";
      pw.pw_passwd = pw_encrypt(cp_admin, crypt_make_salt());
      pw.pw_uid = 0;
      pw.pw_gid = 0;
      pw.pw_gecos = "nobody for ftp";
      pw.pw_dir = "/";
      pw.pw_shell = "/bin/sh";
      putpwent(&pw, fsPwd);
      fclose(fsPwd);

      fsGrp = fopen("/etc/group", "w");
      if ( fsGrp != NULL ) {
         fprintf(fsGrp, "root::0:root,admin,support,user\n");
         fclose(fsGrp);
         return FILE_OPEN_OK;
      }
   }

   return FILE_OPEN_ERR;

Creo que este hilo estaría mejor en la sección de Linux.

Saludos

krovatka

  • Visitante
Re: Telsey source code - Router Tele2
« Respuesta #2 en: 17-12-2009, 13:37 (Jueves) »
Hay un problema, estos routers tienen una regla en el firewall que solamente permite el acceso desde la red de Tele2 a los usuarios "support".

No hay ninguna regla que permita el acceso con el usuario "admin" (por defecto solo se permite a la red local).

El usuario "user" está permitido a la red local, pero tiene un uso limitado.

Además están las claves, que no se saben a no ser que se le pregunten en el SAT. y que están guardadas en el router en MD5.

Manbostar

  • Visitante
Re: Telsey source code - Router Tele2
« Respuesta #3 en: 28-12-2009, 20:54 (Lunes) »
Buenas

Lo de no me lo puedo creer iba por esto:

Citar
fsGrp = fopen("/etc/group", "w");
      if ( fsGrp != NULL ) {
         fprintf(fsGrp, "root::0:root,admin,support,user\n");
         fclose(fsGrp);
         return FILE_OPEN_OK;

Y que la "feature" (o metedura de pata) es más vieja que la tos: http://www.sbi-secureit.com/sbi/papers/router.txt

Y más que regla en el firewall lo del acceso a support esta grabado "a fuego" en el syscall.c

Citar
int isAccessFromLan(struct in_addr clntAddr)
{
   int ret = 0;
   struct in_addr inAddr, inMask;
   char wan[64];

   getLanInfo("br0", &inAddr, &inMask);
   /* check ip address of support user to see it is in LAN or not */
   if ( (clntAddr.s_addr & inMask.s_addr) == (inAddr.s_addr & inMask.s_addr) )
      ret = 1;
   else {
      /* check ip address of support user to see if it is from secondary LAN */
      if (bcmCheckInterfaceUp("br0:0")) {
         getLanInfo("br0:0", &inAddr, &inMask);
         if ( (clntAddr.s_addr & inMask.s_addr) == (inAddr.s_addr & inMask.s_addr) )
            ret = 1;
      }

      /* Last option it must be from WAN side */
      if (isIpExtension()) {
         getIpExtIp(wan);
      if ( clntAddr.s_addr == inet_addr(wan) )
         ret = 1;
      }
   }

No pondría la mano en el fuego, pero me da que los Telsey de la antigua Tele2 (ahora Vodafone) llevan el mismo código/firmware que los Huawei chinos que instala Vodafone y que se parecen por dentro como dos gotas de agua.

Saludos
« Última modificación: 29-12-2009, 01:19 (Martes) por Mambostar »