Sonar.js – 识别和发起针对内部网络主机的攻击的框架
Sonar.js是一个用于识别和启动针对内部网络主机的攻击的框架。通过WebRTC IP枚举,WebSocket主机扫描和外部资源指纹识别工作。
在现代Web浏览器中加载sonar.js有效载荷后,将会发生以下情况:
它从指纹数据库中运行。指纹只是设备上已知资源的列表,可以通过onload链接并检测。这包括图像,CSS样式表,甚至外部JavaScript。
下面是一个示例指纹数据库:
每个数据库条目都有以下内容:
通过创建自己的指纹,您可以构建自定义漏洞利用,一旦它们被sonar.js检测到,就会针对内部设备发起攻击。常见的漏洞包括诸如跨站点请求伪造(CSRF),跨站点脚本(XSS)等等。这个想法是,你可以使用这些漏洞来做一些事情,例如修改路由器DNS配置,从内部文件转储文件服务器等等。
要更轻松地创建指纹,请参阅以下Chrome扩展程序,该扩展程序会自动为您所在的页面生成指纹模板代码:
sonar.js - 指纹生成器
通过使用sonar.js,pentesting团队可以针对诸如内部日志记录服务器,路由器,打印机,VOIP电话等事物构建Web攻击。由于内部网络往往不够谨慎,诸如CSRF和XSS等攻击可以强大地接管主机内部网络上的设备配置。
下载地址:https://github.com/mandatoryprogrammer/sonar.js
名称:用于识别指纹所用设备的字段。这可能是HP Officejet 4500打印机或Linksys WRT54G路由器。
资源:这是一组相对指向资源的链接,如CSS样式表,图像甚至JavaScript文件。如果您希望这些资源位于非标准端口(如8080)上,请使用包含以下端口的端口设置资源::8080 / unique.css。请记住,使用包含JavaScript等活动内容的外部资源是非常危险的,因为它会中断正常的执行流程。
回调:如果发现所有这些资源都存在于枚举主机上,那么使用设备IP地址的单个参数调用回调函数。
sonar.js将使用WebRTC来枚举加载有效载荷的用户所拥有的内部IP。
sonar.js然后尝试通过WebSockets在内部网络上找到现场主机。
如果找到活的主机,sonar.js会尝试通过~img src =“x”>和<link rel =“stylesheet”type =“text / css”href =“x” 并挂载onload事件。如果预期的资源加载成功,将触发预设的JavaScript回调来启动用户提供的漏洞。
仅供于学习研究使用,不得非法使用,如非法操作,责任自行承担