雨天Windows命令研究结果
我们都听过人们谈论Linux比Windows酷得多,更容易使用等等。嗯,他们不一定错…但我们发现微软有一些非常有趣的宝石隐藏在显而易见的地方。
说真的,微软似乎在共同努力添加一些类似Linux的功能。事实上,他们在2016年就在Windows 10上引入了Linux作为子系统。您可以使用PowerShell启用该功能,然后访问Microsoft Store选择您喜欢的发行版进行安装。但我离题了…这篇博客文章不是关于Linux,而是关于Windows内置的一些巧妙实用程序…有些实际上非常类似Linux,有些是Windows独有的,但对渗透测试人员仍然很有趣。我们将在下面向您展示一些有趣的发现。
请注意,许多工具的帮助文档可以在Windows命令参考文档中找到。
Certutil
内置的certutil命令可以用作快速的base64编码器/解码器。它旨在编码和解码SSL证书,但也可以用于其他用途。例如,假设您需要将可执行文件放到目标系统上,但网络控制检测/阻止了EXE文件的传输。那么,在这种情况下,您可以在发送之前对其进行base64编码,然后在目标系统上使用certutil进行base64解码。很好。
以下是一个使用文本字符串的示例,但对于二进制可执行文件也同样适用。
默认情况下,certutil解码和编码base64数据。但另一个有趣的事实是它也可以解码十六进制:
虽然帮助文本没有显示十六进制编码的选项,但我们尝试了它,实际上确实有效…请看。
如果您正在查找二进制文件中的字符串,这可能会非常方便。下面是一个显示notepad.exe十六进制转储的示例。
Clip
微软开发了"Clippy"角色来协助用户使用Office产品。自1997年以来,他一直在断断续续地工作,(可以理解)目前似乎正在休假。
与"Clippy"完全无关的是clip实用程序。 该实用程序将输出重定向到剪贴板。例如,如果您想捕获正在运行的服务并将列表插入剪贴板:
您可以将命令的输出定向到剪贴板以便轻松复制/粘贴,或者将整个文件的内容放入剪贴板。
|
|
在所有三种情况下,您都已将某些内容加载到剪贴板中,您可以使用右键单击"粘贴"或Control-V检索并粘贴到需要的地方。
我也经常将clip.exe与WSL(Windows Subsystem for Linux)一起使用,如下所示:
|
|
这是一种非常方便的方式来切片和切分数据以用于报告。
默认情况下,多个项目的剪贴板保存是关闭的,但如果您打开它….
…您可以使用Windows + V访问剪贴板中的所有"剪辑"。
要粘贴剪贴板中的项目之一,只需单击您想要的项目。 您甚至可以固定一个剪辑,即使您清除剪贴板,它也会被保存(直到重新启动)。这是存储密码的好地方。
Cmdkey
Cmdkey是Windows凭据管理器的命令版本。等效的GUI版本可以使用"control keymgr.dll"启动,或从控制面板选择"凭据管理器"。使用命令显示任何保存的凭据
|
|
但是,如果有存储的凭据是特权凭据呢?攻击者如何使用它们? 根据这篇博客文章,这很容易,尽管当我设置Cobalt Strike并尝试时,它没有工作,但您的体验可能会有所不同。
Curl
Curl是一个命令行浏览器,类似于wget,从Web服务器拉取内容,默认情况下在大多数Linux系统上找到,最近已添加到Windows! 对于渗透测试人员,也许代理配置阻止您使用浏览器下载文件。如果是这样,请尝试curl,也许这样的下载不会被注意到。 以下是一个您可以使用curl做的非常有用的示例:
Curl还有一个深入的帮助页面。使用"curl –help"查看所有选项。
Net1
“net1"与"net"几乎相同,但大约20年前,当我们接近Y2K时,“net"命令出现了问题。“net1"命令是该问题的补救措施,并且一直存在至今。为什么现在这很重要?在大多数情况下可能不重要,但如果您是渗透测试人员,您可能会发现"net"命令被蓝队注意到,而"net1"命令则不会。 示例命令:
|
|
Tar
Tar是一个古老的Unix实用程序,最初创建用于从一个或多个文件制作磁带存档。这是作为备份解决方案开发的。今天,tar的使用类似于zip – 从多个文件制作单个存档以便备份、存档、传输等。2018年4月,tar被包含在Windows 10版本中。 使用标准的Windows帮助”/?",Windows的tar似乎选项很少。
然而,当请求”–help"选项时,您可以看到实际上有更多的功能,包括像其Linux表亲一样的压缩选项。
我们通过使用tar在Windows系统上归档和压缩几个文件来测试这一点。
然后我们将文件移动到Debian Linux机器上,发现它们实际上是有效的tarball,一个没有压缩,一个有压缩。
Where
“Where"类似于Linux的"locate"命令。它为您查找文件,非常方便。 示例:
|
|
这将递归搜索C驱动器查找conf和xml文件。如果找到,"/F"表示显示完整路径。
Whoami
Whoami命令显示有关当前帐户的信息。不带参数使用时,它显示帐户名称。
它可以分别使用”/priv"和”/groups"选项显示与当前帐户关联的权限或组成员身份。 它还可以显示帐户的FQDN和UPN:
Wslconfig
这个内置命令显示当前的Windows Subsystem for Linux安装。它还允许您执行与Linux发行版相关的其他管理任务,前提是您具有管理员级别的访问权限。
了解WSL是否在您正在测试或已转向的系统上启用肯定很有趣。如果您看到此消息,则系统上未启用WSL:
另一方面,这表明系统上已安装了Kali Linux:
如果未启用且您具有管理员权限,请务必启用它! 因此,对于红队人员,将这些添加到您的"靠地生存"工具库中。而蓝队人员可能需要注意这些工具的使用。普通用户不太可能使用curl、certutil和tar,因此监控它们的使用应生成可操作的警报而不是噪音。
目前就这些了…
…但我们将继续挖掘,如果找到更多有趣的Windows命令,我们将编写续集。