欺骗 SSDP 回复并创建假的 UPnP 设备来获取凭证和 NetNTLM 挑战/响应。
目录
· 介绍
· 什么是 SSDP?
· 什么是 UPnP 设备?
· 安装
· 欺骗 SSDP 扫描仪
· 模板配置
· 操作用户
· 获取凭证
· 欺骗 Office365 SSDP
· 模板配置
· 操作用户
· 获取凭证
· 欺骗密码库 SSDP
· 模板配置
· 操作用户
· 获取凭证
· 欺骗微软 Azure SSDP
· 模板配置
· 操作用户
· 缓解措施
引言
什么是 SSDP?
SSDP 或简单服务发现协议是一种用于广告和发现网络服务的网络协议。 它可以在没有任何 DHCP 或 DNS 配置的情况下工作。 它被设计用于住宅或小型办公环境。 它使用 UDP 作为端口1900上的底层传输协议。 它使用 HTTP 的 NOTIFY 方法向多播组宣布服务的建立或撤销。 它是发现协议 UPnP 的基础。
什么是 UPnP 设备?
即插即用(UPnP)是一套网络协议,它允许联网设备(如个人电脑、打印机、Internet网关、Wi-Fi接入点和移动设备)发现彼此在网络上的可用性,并为通信、数据共享和娱乐建立网络服务。通用即插即用体系结构支持零配置网络。来自任何供应商的通用即插即用兼容设备都可以动态地加入网络、获取IP地址、根据请求宣布其名称、宣传或传达其功能,并了解其他设备的存在和功能。
既然我们已经了解了SSDP或UPnP的基本功能,让我们使用它来操作目标用户以窃取他们的凭证。
安装
evil_ssdp 是由 initstring 开发的。 这个工具托管在GitHub上。我们将使用git克隆命令将git仓库的所有内容克隆到攻击者的机器上。git克隆命令将创建一个与GitHub同名的目录。由于该工具是在Python版本3中开发的,为了运行该程序,我们必须使用python3后面跟着.py文件的名称。在这里我们可以看到该工具的基本帮助屏幕。
git clone https://github.com/initstring/evil-ssdp.git cd evil-ssdp/ ls python3 evil-ssdp.py --help
在克隆的目录中,我们将找到一个名为templates的目录。它包含了所有预先编译好的模板,可以用来攻击目标用户。
欺骗 SSDP 扫描仪
现在,我们已经毫无问题地运行了这个工具,让我们使用它来获得一些可靠的凭证。作为第一个实践操作,我们将欺骗一个扫描仪作为一个可靠的通用即插即用设备。首先,我们必须配置模板。
模板配置
要使用该工具,我们必须提供网络接口。在这里,在我们的攻击机器上,我们的接口是“eth0”,你可以使用“ifconfig”命令找到你的接口。
在提供接口之后,我们将使用“-template”参数来传递前面在 templates 目录中找到的模板。 要欺骗扫描仪,我们将运行以下命令。我们可以看到,该工具已经完成了它的工作,并在端口8888的攻击者计算机上托管了多个模板文件。我们还托管了SMB指针。
ls templates/ python3 evil-ssdp.py eth0 --template scanner
操作用户
下一个合乎逻辑的步骤是操纵用户单击应用程序。 与目标位于同一网络中将在其资源管理器上显示我们伪造的扫描仪。这就是“通用即插即用”发挥作用的地方。邪恶的SSDP工具在目标的系统上创建了这个看起来像是一个真实的扫描仪,而没有与目标进行任何强制交互。
单击资源管理器中的图标后,我们将被重定向到默认的Web浏览器,打开了我们设置好的链接。我们使用的模板在这里发挥了作用。用户现在知道自己确实连接到了我们生成的一个真正的扫描仪或一个假冒的通用即插即用设备。之后用户会在这个模板上输入有效的凭证,如下图所示。
获取凭证
一旦目标用户输入了凭据,我们就在攻击者机器上检查终端,可以发现用户输入的凭据已经存在。由于每个目标设备都不需要会话,所以网络中的每个用户都可以看到我们的伪扫描器。这意味着这种攻击的范围是无限的。
欺骗 Office365 SSDP
在前面的实践中,我们将扫描仪欺骗给目标用户。 现在,通过模板目录,我们找到了 Office365模板。 也可以进行利用。
模板配置
正如我们前面所做的,让我们从模板和工具的配置开始。 我们将使用 python 3运行该工具,命令后面跟上 python 文件的名称。然后提供网络接口,该接口后面是office365的模板参数。
python3 evil-ssdp.py eth0 --template office365
我们可以看到,该工具已经完成了它的工作,并在攻击者计算机上的端口8888托管了多个模板文件。
操纵用户
只要我们运行该工具,就会有一个名为Office365 backup的UPnP设备。这是由工具完成的,不需要向目标用户发送任何文件、载荷或任何其他类型的交互。剩下的就是用户点击图标了。
当被用户点击时,目标用户通过他们的默认浏览器重定向到我们伪造的模板页面。 这是一个看起来非常真实的微软网页。 安全意识淡薄的用户在此页面上会输入他们的有效凭据。
获取凭证
一旦用户输入凭证并将其作为发送请求传递给服务器(即我们的目标机器) ,我们就可以在终端上看到凭证。
欺骗密码库 SSDP
到目前为止,我们成功地欺骗了目标用户,以获得一些扫描仪凭证和一些 Office365备份凭证。 但现在我们来看看作为通用即插即用的最重要的东西——密码库。
模板配置
正如我们在前面的实践中所做的那样,我们必须为密码库设置模板。该工具会立即将密码库模板托管到端口8888上。
python3 evil-ssdp.py eth0 --template password-vault
操作用户
移到目标机器上,我们看到在资源管理器中可以看到密码库UPnP。用户点击设备就会掉入我们设置的陷阱。看到类似于密码库这样的东西,用户会忍不住点击图标。
因为愚蠢的用户认为,自己输入了密码就获得了迄今为止最重要的东西。这个欺骗页面会分散用户的注意力,因为用户会注意尝试这个详尽的密码列表,但明显他不可能成功。
欺骗微软 Azure SSDP
在使用欺骗技术时,最重要的任务之一是不要让目标用户知道他是欺骗的受害者。 这可以通过在我们获取凭据或 cookie 或攻击者想要获取的任何东西之后重定向用户来实现。 evil_ssdp 工具有一个参数(- u) ,它将目标用户重定向到攻击者选择的任何 URL。 让我们来看看这个参数的实际工作情况。
首先,我们将使用 python 3 执行该工具。 接下来我们将介绍应该使用的网络接口。 现在为了更加实用,我们将使用微软 Azure 存储模板。 在选择模板之后,我们设置(-u)参数,然后设置我们想要重定向用户的任何 URL。 这里我们使用的是微软官方链接。 你也可以设置成任何恶意站点。
python3 evil-ssdp.py eth0 --template microsoft-azure -u https://malicous-site.com
操纵用户
现在我们已经启动了这个工具,它将在目标机器上创建一个 UPnP 设备,如下图所示。 为了使攻击成功,目标用户需要点击设备。
用户点击图标后,我们看到用户被重定向到 微软官方页面。 这是任何攻击者想要的结果。
缓解措施
· 禁用 UPnP 设备
· 教育用户防止仿冒诈骗攻击
· 监视网络中的密码传输
本文翻译自:https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/如若转载,请注明原文地址: