
Scanner di rete basato su browser e rilevamento dell'IP locale
webscan è uno scanner di rete basato su browser e un rilevatore IP locale. Rileva gli IP associati all'utente/vittima ascoltando su un canale dati RTP tramite WebRTC e rimandando indietro alla porta attraverso qualsiasi IP attivo, oltre a scoprire tutti gli indirizzi IP attivi su sottoreti valide monitorando i timeout istantanei (pacchetti TCP RST restituiti) da chiamate fetch() o tag img nascosti puntati a sottoreti/IP validi. Funziona su dispositivi mobili e desktop in tutti i principali browser e sistemi operativi. La versione beta è estensibile per permettere l'aggiunta di più tecniche.
webscan sfrutta il fatto che i socket dei tag img non reattivi possono essere chiusi per evitare la limitazione di velocità basata su browser e rete, modificando l'attributo src in un URI non socket (la rimozione dal DOM ironicamente non chiude il socket), oppure usando il supporto del segnale di fetch() tramite l'interfaccia AbortController().
prova webscan dal vivo qui
versione beta qui
di @SamyKamkar
rilasciato il 2020/11/07
altri progetti divertenti su samy.pl
webscan funziona così
// wait for scan to finish
let scanResults = await webScanAll()
// or get callbacks when ips are found with a promise
let ipsToScan = undefined // scans all pre-defined networks if null
let scanPromise = webScanAll(
ipsToScan, // array. if undefined, scan major subnet gateways, then scan live subnets. supports wildcards
{
rtc: true, // use webrtc to detect local ips
logger: l => console.log(l), // logger callback
noRedirect: false, // if true, doesn't redirect from http to http - Chrome doesn't scan detect network IPs proprly on https atm
localCallback: function(ip) { console.log(`local ip callback: ${ip}`) },
subnetCallback: function(ip) { console.log(`router ip callback: ${ip}`) },
networkCallback: function(ip) { console.log(`network ip callback: ${ip}`) },
}
)
restituisce
scanResults = {
"local": ["192.168.0.109"], // local ip address
"network": { // other hosts on the network and how fast they respond
"192.168.0.1": 97,
"192.168.0.2": 82,
"192.168.0.100": 46,
"192.168.0.109": 0,
"192.168.0.117": 74,
"192.168.0.113": 17,
"192.168.0.112": 21,
"192.168.0.114": 25,
"192.168.0.116": 25,
"192.168.0.115": 25,
"192.168.0.105": 57,
"192.168.0.107": 63,
"192.168.0.103": 64,
"192.168.0.108": 31
}
}
Da fare
Testato su