此包旨在检测 CallStranger (CVE-2020-12695) 的利用尝试和数据外泄。它通过查找三个关键事项来实现:
SUBSCRIBE 命令。这可能是 DDoS 放大或数据外泄的前兆NOTIFY 命令。这可能表明存在活跃的 DDoS 放大或数据外泄CallStrangerDetector::exfiltration_threshold 字节的 UPnP SUBSCRIBE 命令。这可能表明存在通过 UPnP 进行的数据外泄该模块假设您的站点通常不会将 UPnP SUBSCRIBE 或 NOTIFY 命令发往互联网,并且您没有将 UPnP 设备暴露到互联网上。如果这两项中的任何一项成立,您将会看到误报。您可以将产生误报的特定 IP 添加到 CallStrangerDetector::ignore_subnets 集合中以忽略它们。
要针对 PCAP 使用此脚本,只需克隆 Git 仓库并使用 zeek -Cr your.pcap scripts/__load__.zeek 运行 Zeek
要安装此包,请克隆 Git 仓库并在包目录中执行 zkg install .
如果检测到类似 CallStranger 的活动,模块将向 notice.log 添加通知。通知如下:
CallStranger_Data_Exfiltration_Attempt: 观察到有人试图让 UPnP 设备外泄流量CallStranger_Data_Exfiltration_Success: 观察到 UPnP 设备可能正在外泄数据CallStranger_UPnP_Request_Callback_To_External_Host: 观察到有人试图让 UPnP 设备回连外部主机CallStranger_UPnP_To_External_Host: 观察到 UPnP 设备正在回连外部主机您可以设置三个配置选项:
CallStrangerDetector::exfiltration_threshold: 在 UPnP 回调 URL 中需要观察到的字节数,以便将其归类为数据外泄。CallStrangerDetector::ignore_subnets: 一组应在 UPnP 检测中被忽略的子网。如果您遇到 UPnP 合法穿越互联网的误报,请使用此选项。CallStrangerDetector::strict_upnp_protocol_detection: 此布尔值控制脚本在尝试识别 UPnP SUBSCRIBE 命令时是否更加严格。它通过要求观察到“NT”(通知类型)标头来实现这一点。默认值为 false,因为 NT 标头实际上不起任何作用,它只是 UPnP 规范所要求的。如果您有非 UPnP 的 SUBSCRIBE 流量,则可能需要将此选项设置为 true我已经针对本地 UPnP 流量并使用 CallStranger 作者提供的概念验证代码(https://github.com/yunuscadirci/CallStranger)对此进行了测试。如果您遇到任何问题,请提交 GitHub issue 或联系我们。谢谢!