一个假装成可由 Dell OMSA“管理”的主机,能够让你绕过登录屏幕,并且 可能作为模糊测试或其他测试的起点。
在研究 Dell 的 OpenManage Server Administrator 的潜在漏洞¹时, 我同时对以下两点感兴趣:
不必再拖着一台我拥有管理员凭据的 Dell 服务器到处跑,这样我可以轻松 利用那些只需要绕过登录屏幕¹即可利用的漏洞, 并且
看看是否能从我控制的一台“假”服务器(受管节点)中产生新漏洞, 该服务器会以意想不到的恶意方式响应 OMSA 的请求。
¹例如 https://www.exploit-db.com/exploits/39486/ 以及至少一个 XXE
这是一些_非常快速而粗糙_的 Java 代码,旨在监听 OMSA 的请求, 并按你的意愿作出响应。最初编写时,它只对登录过程中发出的两个请求有响应, 这足以让你以“真正的”³管理员身份进入² OMSA 实例。如果你想针对其他类型的请求, 可以在应用程序中摸索,看看 OMSA 发送了哪些 POST 数据,了解它期望得到什么样的响应, 构建你选择的响应, 并将该逻辑构建到此代码中。
²成功登录后,OMSA 会立即将你重定向到一个起始页面,该页面 会引发大量其他请求。你需要停止你的浏览器,因为 OMSA 在遇到错误时往往会将你重定向回登录屏幕,而如果这段代码 尚未修改以处理那些后续请求,并且没有以适当方式响应, 它就会这样做。
³显然有两套独立的权限,具体使用哪一套取决于你在处理哪部分代码。
每套似乎只使用三个位,因此 7 (4 + 2 + 1) 表示每套中的最大权限。
一套占据 32 位整数的高 16 位,而另一套占据低 16 位。
最终,这个假的受管节点以 7 + (7 << 16) 响应。
如果你打算测试 OMSA 是否根据用户权限限制对某些资源的访问,
你可能想更改这个值。
自 2016 年 5 月 31 日起,还提供了一种利用 XXE 的响应。OMSA 试图 过滤看似恶意的 URL 请求,但对于从受管节点返回的数据, 似乎并没有那么偏执。
这绝不是为了帮助你管理 Dell 服务器,也不是任何其他服务器。 虽然你可以尝试重新实现 Dell 的所有“秘密配方”,但这与 这段代码的意图相去甚远。如果与这段代码不同,你打算忠实地再现 Dell 针对 Dell 设计查询的行为,你可能需要咨询律师,因为 Oracle v Google ( https://www.eff.org/cases/oracle-v-google ) 或其他法律问题可能 适用。
最终目标是让 fakedell.XMLResponder servlet 可以在
https://[yourIP]:5986/wsman
使用旧版 OMSA 进行进一步测试表明,你可能还需要让该 servlet 可以
在 https://[yourIP]:443/wsman 被访问
服务器应使用自签名证书,并且在登录 OMSA 时, 你将提供你的 IP 作为要管理的远程主机,并选择忽略证书 警告。
这里的 web.xml 假定它是根应用程序,并将 servlet 映射到 /wsman。
你可能需要调整它以适应你的配置。
你可以选择让 Java 服务器或其他工具记录所有进出流量。 例如,我让 Tomcat 监听 8080 端口,让 stunnel 监听 5986 端口,并使用 Wireshark 捕获环回设备上的所有 8080 端口流量。
玩得开心~
如果你有充分的理由选择其他许可证,给我写封信,我们可以谈谈。 (不过,说实话,这不过是一个小小的 PoC 和骨架框架, 你可能很容易就能重新创建它。)
否则,
FakeDellOM
Copyright (C) 2016 Harrison Neal, [email protected]
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.