Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: erdosain9 en Marzo 08, 2016, 12:30:32 AM

Título: Acceder a router WRT54G2
Publicado por: erdosain9 en Marzo 08, 2016, 12:30:32 AM
Hola a todos.
Tengo una consulta........ qué método podría utilizar para hacerme con la contraseña de un router WRT54G2..... yo estoy dentro de la red del router pero la contraseña por defecto fue cambiada. (no tengo acceso físico........)
Además de fuerza bruta, se les ocurre algo? algún exploit se podría utilizar?
Saludos y muchas gracias
Título: Re:Acceder a router WRT54G2
Publicado por: Abraham20 en Marzo 08, 2016, 05:34:20 AM
Algoritmo que busque la contrasena caracter por caracter (no fuerza bruta con diccionario)
Título: Re:Acceder a router WRT54G2
Publicado por: Stiuvert en Marzo 08, 2016, 06:28:27 AM
Podrías intentar con el método Web Spoofing, para desviar la conexión de la víctima y sus datos a través de un fake de la página de login del router.

Modificando el archivo "hosts" de Windows para provocar que en caso de acceder a una URL como "google.es", esta redirija al servidor malicioso para sustraer los datos del login y enviarlos a un registro.


Saludos
Título: Re:Acceder a router WRT54G2
Publicado por: erdosain9 en Marzo 08, 2016, 06:29:41 PM
Y qué programa existe para realizar esta busqueda caracter por caracter?

Saludos y gracias.

En cuanto a lo de Web spoofing creo que quizás quienes usan la red ni sepan cual es la contraseña.........
Título: Re:Acceder a router WRT54G2
Publicado por: Stiuvert en Marzo 08, 2016, 06:49:31 PM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Y qué programa existe para realizar esta busqueda caracter por caracter?

Aprende a usar CRUNCH paso a paso. (https://underc0de.org/foro/hacking/aprende-a-usar-crunch-paso-a-paso/)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
En cuanto a lo de Web spoofing creo que quizás quienes usan la red ni sepan cual es la contraseña.........

Si no es "123", "1234" o "admin" quizás esté en la parte inferior del router, en la misma pegatina que la password del WiFi.

Saludos
Título: Re:Acceder a router WRT54G2
Publicado por: erdosain9 en Marzo 08, 2016, 07:06:42 PM
Hola, bárbaro, ahí veo lo de CRUNCH!

En cuanto a 1234, admin, etc. ya probé montón...... y no tengo acceso al router físicamente por lo que no puedo darle una miradilla....
Título: Re:Acceder a router WRT54G2
Publicado por: HATI en Marzo 08, 2016, 07:12:34 PM
Buenas @erdosain9 (https://underc0de.org/foro/profile/erdosain9/),

Aparte de lo ya mencionado por los compañeros de Underc0de sobre las técnicas que puedes usar, cómo Web Spoofing, o descifrar los carácteres uno a uno hay más opciones.

En algunas compañías como Movistar, si el contrato incluye línea teléfonica, es posible acceder a la configuración del router a través del número de teléfono asociado a la red, sin necesidad de introducir la contraseña.

Te invito a que busques en GOOGLE (https://www.google.com).

Saludos
Título: Re:Acceder a router WRT54G2
Publicado por: Abraham20 en Marzo 08, 2016, 07:16:06 PM
Ante todo es claro que se trata de un ciclo definido, porque lo que hay que tratar es cada uno de los caracteres de la cadena x, o sea que estamos frente a un esquema:

para cada letra de x
    averiguar si la letra es "A"
    y tratarla en consecuencia

Nos dice la especificación que se necesita una variable contador que cuenta la cantidad de letras A que contiene x. Y por lo tanto sabemos que el tratamiento es: si la letra es A se incrementa el contador en 1, y si la letra no es A no se lo incrementa, o sea que nos quedamos con un esquema de la forma:

para cada letra de x
    averiguar si la letra es "A"
    y si lo es, incrementar en 1 el contador

¿Estará todo completo? Alicia Hacker nos hace notar que en el diseño no planteamos el retorno del valor del contador. Lo completamos entonces:

para cada letra de x
    averiguar si la letra es "A"
    y si lo es, incrementar en 1 el contador
retornar el valor del contador

¿Y ahora estará todo completo? E. Lapurado, nuestro alumno impaciente nos induce a poner manos a la obra y a programar esta solución, y el resto del curso está de acuerdo.

3. Implementación

Ya vimos que Python nos provee de un mecanismo muy poderoso para recorrer una cadena: una instrucción for que nos brinda un carácter por vez, del primero al último.

Proponemos la siguiente solución:

def contarA(x):
    for letra in x:
        if letra == "A":
            contador = contador + 1
    return(contador)

Y la probamos

>>> contarA("Ana")
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "<stdin>", line 4, in contarA
UnboundLocalError: local variable 'contador' referenced
before assignment
>>>

¿Qué es lo que falló? ¡falló el diseño! Evidentemente la variable contador debe tomar un valor inicial antes de empezar a contar las apariciones del caracter A. Volvamos al diseño entonces.



Nota
Es muy tentador quedarse arreglando la implementación, sin volver al diseño, pero eso es de muy mala práctica, porque el diseño queda mal documentado, y además podemos estar dejando de tener en cuenta otras situaciones err6neas.

4. Diseño (revisado) Habíamos llegado a un esquema de la forma

para cada letra de x
    averiguar si la letra es "A"
    y si lo es, incrementar en 1 el contador
retornar el valor del contador

¿Cuál es el valor inicial que debe tomar contador? Como nos dice la especificación contador cuenta la cantidad de letras A que tiene la cadena x. Pero si nos detenemos en medio de la computación, cuando aún no se recorrió toda la cadena sino sólo los primeros 10 caracteres, por ejemplo, el valor de contador refleja la cantidad de A que hay en los primeros 10 caracteres de x.

Si llamamos parte izquierda de x al segmento de x que ya se recorrió, diremos que cuando leímos los primeros 10 caracteres de x, su parte izquierda es el segmento x[0:10].

El valor inicial que debemos darle a contador debe reflejar la cantidad de A que contiene la parte izquierda de x cuando aún no iniciamos el recorrido, es decir cuando esta parte izquierda es x[0:0](o sea la cadena vacía). Pero la cantidad de caracteres iguales a A de la cadena vacía es 0.

Por lo tanto el diseño será:

inicializar el contador en 0
    para cada letra de x
    averiguar si la letra es "A"
    y si lo es, incrementar en 1 el contador
retornar el valor del contador

(lo identificaremos como el esquema Inicialización - Ciclo de tratamiento - Retorno de valor). Pasamos ahora a implementar este diseño:

5. Implementación (del diseño revisado)

def contarA (x):
    """ La funcion contarA(x) cuenta cuántas
        letras "A" aparecen en la cadena x ."""
    contador = 0
    for letra in x:
        if letra == "A":
            contador = contador + 1
    return(contador)

6. Prueba

>>> contarA ("banana")
0
>>> contarA ("Ana")
1
>>> contarA ("lAn")
1
>>> contarA ("lAAn")
2
>>> contarA ("lAnA")
2
>>>

7. Mantenimiento:

Esta función resulta un poco limitada. Cuando nos pidan que contemos cuántas letras E hay en una cadena tendremos que hacer otra función. Tiene sentido hacer una función más general que nos permita contar cuántas veces aparece un carácter dado en una cadena.