
ماسح الشبكة المستند إلى المتصفح وكشف عنوان IP المحلي
webscan هو ماسح ضوئي للشبكة قائم على المتصفح وكاشف لعناوين IP المحلية. يكتشف عناوين IP المرتبطة بالمستخدم/الضحية من خلال الاستماع على قناة بيانات RTP عبر WebRTC وإعادة التوجيه إلى المنفذ عبر أي عناوين IP حية، بالإضافة إلى اكتشاف جميع عناوين IP الحية على الشبكات الفرعية الصالحة عن طريق مراقبة انتهاء المهلة الفورية (حزم TCP RST المرتجعة) من استدعاءات fetch() أو علامات img المخفية الموجهة إلى شبكات فرعية/عناوين IP صالحة. يعمل على الأجهزة المحمولة وسطح المكتب عبر جميع المتصفحات الرئيسية وأنظمة التشغيل. الإصدار التجريبي قابل للتوسيع للسماح بإضافة تقنيات متعددة.
يستفيد webscan من حقيقة أن مآخذ علامات img غير المستجيبة يمكن إغلاقها لمنع تحديد المعدل القائم على المتصفح والشبكة عن طريق تغيير سمة src إلى URI غير مأخذ (إزالتها من DOM بشكل ساخر لا يغلق المأخذ)، أو باستخدام دعم الإشارة لـ fetch() لواجهة AbortController().
جرب webscan مباشرة هنا
الإصدار التجريبي هنا
بواسطة @SamyKamkar
تم الإصدار 2020/11/07
المزيد من المشاريع الممتعة على samy.pl
يعمل webscan على النحو التالي
// 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}`) },
}
)
يرجع
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
}
}
المهام المتبقية
تم الاختبار على