从t0到t3 - 信息搜集
一开始,我们拥有的帐号是一个没有特权的普通账号。假设我们已经在远程或者在本地利用EXP进行了一次攻击并且获得了一个反弹回来的shell。根本上说,在时间t0,我们不知道被攻击的机器是做什么的,它和谁进行连接,我们拥有怎样的权限,甚至它的操作系统是哪个。
因此,开始的时候,我们就需要快速的搜集一些至关重要的信息,这样我们就可以了解一下我们所处环境的情况。
首先,先看看我们连接的什么类型的操作系统
注:中文环境下,"OS Name"为"OS 名称","OS Version"为"OS 版本"
接着,看下计算机名和我们使用的用户
现在我们有了基本的信息,接下来我们可以列出计算机上的其它用户,并且可以看一下我们当前用户的详细信息。从下面的结果可以看出,user1不是本地用户组Administrators的成员。
这是我们暂时需要了解的关于用户的所有信息。接下来我们需要从网络方面搜集信息了。
首先,看一下网络连接和路由表。
arp -A 展示了ARP缓存表.
下面可以看到活动的网络连接和防火墙规则
接下来的两个netsh命令是不能在所有操作系统都通用的命令的例子,netsh firewall命令只能在XP SP2及其以上版本的操作系统使用。
最后,我们大概的看一下计算机上的:计划任务,正在运行的进程,启动的服务,安装的驱动程序。
这条命令将详细的展示出所有的计划任务:
下面的这条命令将正在运行的进程和该进程启动的服务列了出来:
这有时是有用的,一些第三方驱动程序,即使是有信誉的公司,也可能有比瑞士奶酪上的孔还多的的漏洞。这仅仅是有可能的,因为对ring0攻击在大多数人专业技能之外。
t4 - WMIC的神秘艺术
我在这里单独的拿出WMIC(Windows Management Instrumentation Command-Line)来讲解,是因为它是Windows平台下最有用的命令行工具。
WMIC在信息搜集和后渗透测试阶段非常实用。话虽这么说,其实它是有一点笨重的,因为它有时候会输出比我们需要的信息更多的信息。
要完全讲完WMIC的使用,要耗费很长的时间。还有不得不提的是,一些输出可能会因为它的格式,很难在命令行下完美的展示出来。
在这里安利两个WMIC的教程:
不幸的是,一些windows默认的配置是不允许使用WMIC命令的,除非你是管理员组成员。经过我的测试,在XP下低权限用户是不能使用WMIC命令,但是在Windows 7 和Windows 8下,低权限用户可以使用WMIC,且不用更改任何设置。这正是我们使用WMIC搜集目标机器信息的前提。
下面是WMIC的命令行帮助:
为了省时省力,我写了一个可以放在目标机器上,调用WMIC来提取下面信息(进程,服务,用户,用户组,网络连接,硬盘信息,网络共享信息,已安装补丁,启动项,已安装的软件,操作系统的相关信息,和时区)的脚本。
从t5到t6 - 快速攻陷
在继续之前,你需要先看一下你已经搜集到的信息,下一步就是要寻找一下能被利用的系统缺陷来提升我们的权限。
首先我们要看的是是补丁修正情况,我的WMIC脚本可以列出已安装的补丁,但是你也可以通过下面这条命令来查看:
这些输出的结果是不能直接被利用的,最好的方式是去找权限提升的EXP并且将这些编号与EXP编号进行对比。这些EXP包括,但不限于:KiTrap0D (KB979682), MS11-011 (KB2393802), MS10-059 (KB982799), MS10-021 (KB979683), MS11-080 (KB2592799)。
如果有许多机器需要被安装,通常,一个技术员不会挨个机器手动装机。有一些自动安装的解决方案。这些方案是什么以及它们是如何工作的对我们的目的不重要,重要的是他们留下的用于安装过程的配置文件,这些安装文件包含大量的敏感信息,例如操作系统的产品密钥和管理员的密码。我们最感兴趣的就是管理员密码,因为我们可以用它来提升我们的权限。
通常的,这些目录包含这些配置文件(检查整个系统的所有文件也是不错想法):
这些文件要么包含着明文密码,要么就是Base64加密后的密码。下面是一个例子:
sysprep.inf 文件中的明文密码:
sysprep.xml 文件中的Base64加密后的密文:
Unattended.xml 中同样是Base64加密后的密文:
在我们的好基友Ben Campbell的推荐下,我将获取组策略首选项(Group Policy Preferences)保存的密码也作为快速攻陷目标机器的方式之一。GPP允许域管理员在域控制端远程向域内主机添加本地账户以方便管理。当你要攻击的计算机连接到了一个域,那么去寻找储存在SYSVOL中的Groups.xml文件是非常值得做的事。任何经过授权的用户都对该文件有读的权限。在这个xml文件中,密码是用AES加密的,但令人费解的是,在MSDN上,密码的密钥和加密方式都被公布了,这样我么就可以轻松的解密这个密码。
除了Groups.xml,其他的策略选项文件也有可选的“cPassword”属性:
例如以下这几个:
这个漏洞可以手动的浏览SYSVOL文件夹,接下来我来做个示范:
然而,我们都喜欢自动的方法,这样我们可以尽可能快的完成这个操作。这里主要有两种方式,取决于我们拥有的shell类型和权限的大小。
(1)metasploit的一个模块(post/windows/gather/credentials/gpp
(2)你可以使用PowerSploit的Get-GPPPassword功能。PowerSploit是一个强大的powershell框架,作者是Matt Graeber。
接下来的事情,我们要找一个奇怪的注册表设置“AlwaysInstallElevated”,如果这个设置被启用,它允许任何权限的用户暂时使用NT AUTHORITY\SYSTEM权限来安装*.msi文件。对我来说,你创建了一个低权限的用户(限制它们的操作系统的使用)但是给了它们使用SYSTEM权限来安装软件的能力是很奇怪的。想要进一步了解,请]
为了能够使用这种方式,我们首先要执行以下语句:
仅仅当存在键名:AlwaysInstallElevated且它的DWORD值是1才有效。
在这种情况下,我们可以获取一个SYSTEM权限的shell了。
为了完成这部分,我们将在操作系统上做一些快速的搜索,并且希望我们可以打动老天爷。
接下来的这条命令可以搜索system32下的所有名字包含以下几个关键字的文件,当然你可以手动指定关键字。
搜索某些特定的文件类型,这可能搜索到大量的结果:
相似的,接下来的两条命令都是用来搜索注册表的,keyword是password,你可以替换成任何你想要的。
本文链接:https://www.58ssl.cn/wangluoanquan/1437.html TAG:"Windows,测试,提权"转载请注明出处。