我想知道 BeEF 如何执行 ping 请求、端口扫描或其他严重依赖与较低级别操作系统 (OS) 交互的事情?
我曾经认为 JavaScript 无法访问 OS 函数和 API。那么,BeEF 是如何做到这一点的呢?
PS:我已经阅读了其他问题,但我对答案不满意:
我想知道 BeEF 如何执行 ping 请求、端口扫描或其他严重依赖与较低级别操作系统 (OS) 交互的事情?
我曾经认为 JavaScript 无法访问 OS 函数和 API。那么,BeEF 是如何做到这一点的呢?
PS:我已经阅读了其他问题,但我对答案不满意:
在 BeEF 中,ping 不是 ICMP ping 请求,端口扫描并不意味着 SYN 扫描(或您在 nmap 中找到的任何其他常见端口扫描方法)。相反,BeEF 使用标准 Web API 发出第 7 层网络请求 (HTTP/FTP/WS),并测量这些 API 调用的时间,以确定主机是否已启动或端口是否打开。
为此,BeEF 使用了三种不同的技术:
ping 模块仅使用 Cross-Origin XMLHttpRequests,而端口扫描模块使用所有这三个。BeEF 从不访问操作系统级别的网络功能,也无法发送 ICMP ping 请求或进行 TCP SYN 扫描。