只给你一个浏览器,除了上网,你还能做什么?
你的目标是VMware Horizon上运行着VDI的Windows服务器,假设你可以利用VDI登录Active Directory帐户,但只能使用浏览器,并且该浏览器仅允许使用单个应用程序,而且没有互联网连接,你会怎么做?
从读取服务器文件开始如何?
一个 URL 由不同部分组成对吧?
我们要关注的是最开头的部分,schema/protocol
简单的说,协议说明了如何处理 URI 的其余部分。
例如,mailto 协议指明了 URI 的其余部分是电子邮件地址,通过单击类似 mailto:[email protected] 的链接,你的浏览器会在系统默认的电子邮件应用程序中打开一个邮件撰写页面,并将 [email protected] 设置为收件人的电子邮件地址。
还有另一个很酷的协议叫做file。通过使用它,我们可以使用浏览器读取文件
比如:file:\\\C:WINDOWS\System32\drivers\etc\hosts
Cool…但这非常有限,你需要知道文件的确切路径才能读取其内容。
当然file协议还能显示目录的内容,只要你给出目录的位置就可以了
比如:file:///c:/
在地址栏输入它,就会为你列出C盘的内容
文件虽好,但Shell更好:
虽然(几乎)可以读取服务器上的所有文件,但我们仍在浏览器中。假如我们想访问底层操作系统,是否能够做到这一点呢?
给你一个小提示:当你想把文件上传到网站时,一般怎么做?
这就是本文开始变得有趣的地方...
上传文件时,首先需要选择该文件,对吧?然后选择文件的窗口是一个操作系统应用程序,如果我们可以访问此操作系统应用程序,则可以访问一些很酷的操作系统功能,例如创建和执行文件!
OK,也许此时你开始搜索 Web 应用程序并祈祷找到上传功能,虽然这可能也行得通。
但我会选择更取巧的方式:
document.write('<input/type=file> ')
是不是很有趣?假如 devtools 被禁用了怎么办?那么就轮到另一个有趣的协议登场了:javascript
如果浏览器是基于 Chromium 的,我们可以将其输入 URL 栏并获得相同的结果:
javascript:document.write('<input/type=file> ')
OK,接下来是 Shell 时间
我选择的方法是创建一个.bat文件,内容是cmd.exe,执行它来获得一个shell。
如果所在的目录具有写入和执行权限,则可以从此文件选择器窗口创建和执行文件。
但是可能会有一个问题,如果禁用了文件扩展名选项,则无法将文件扩展名更改为 .bat 然后执行它。
当选项禁用时:
当选项启用时:
让我们在这里再次取巧,使用在新窗口中打开时,我们将可以访问操作系统的文件资源管理器
从这里我们可以更改文件扩展名选项并启用它,然后就可以愉快的创建和修改文件了...
黑色果然是最性感的颜色
很好!我们终于获得了一个 shell,完事了吗?还没有…
其实我是一名黑客:
如果你无法打开文件资源管理器并启用文件扩展名选项或其他类型限制的时候怎么办?
不必慌张,在下面这张图片中你看到了什么?
能够创建几种不同类型的文件是吧?但是我却看到了隐藏在这些选项中的反弹shell…
让我们来新建一个Word文档,然后按快捷键 ALT+F11,开始写我们的反弹shell吧!
通过 Microsoft Word 的脚本引擎,使用该引擎的 Visual Basic 代码功能,我们可以编写和执行shell
这其实也是很多社会工程学用来渗透组织内部网络的常用手段,比如网络钓鱼电子邮件和恶意 Word 文档附件。
假如被限制无法创建文件该怎么办?
那么我们在服务器上尝试找到 Word 文档,然后对其进行编辑咯~
建议:如果你使用一种工具,最好去了解它的所有功能!
如果你觉得本篇文章对你有所帮助,请分享给更多有需要的朋友们。
====正文结束====