导语:攻击者一旦拿下一台机器进入内网,他就会尝试各种方法在内网中进行漫游,获取到他想要的数据。
攻击者一旦拿下一台机器进入内网,他就会尝试各种方法在内网中进行漫游,获取到他想要的数据。一般情况下攻击者是从个人计算机中开始入侵,不过这对于APT攻击者来讲并不困难,因为他们可以通过提权,进而攻击网络中的一些基础设施,从而查找甚至破坏他们的目标内容。
提权最简单的方法之一就是利用计算机中的配置问题,这一方面就包含查找存在管理员账户的文件,错误的配置信息,故意削弱的安全措施,以及用户多余的权限等等。因为这种方法特别简单,所以在一般的渗透测试当中是可以很普遍看到的。不过这种方法成功与否主要是看人品,所以不成功也是很正常的。
比较可靠提权方法就是攻击机器的内核,让机器以更高的权限执行代码,进而绕过设置的所有安全限制。如果系统打上了补丁,那提权就看你手中掌握了多少0day,所以在APT攻击中,0day是非常重要而且价值非常大的。
在一些情况下我们可以通过密码相关的问题进行提权,比如用户使用了弱密码,或者密码与之前获得的产生碰撞,进而攻击者可以以更高权限运行他们的恶意软件。另外一种方法则是捕获到用户的登录凭证,然后使用这个凭证在其他服务上进行使用。总而言之,攻击者的目的就是以更高的权限运行他们的木马。
当大多数常用方法都失败时,攻击者可能会寻找另外的方式进行提权。但是,其他的方法可能会需要更多的资源,那么攻击者可能会采用攻击当前机器的方式进行攻击其他的机器。不过,提权在渗透测试中是不可缺少的过程。
提权方法
信息收集
下面的例子就展示了攻击者如何通过快速的分析当前用户以及计算机打补丁的情况。此时攻击者已经可以远程控制计算机,于是继续列出了用户组,以及当前安装的更新补丁。使用如下命令以及工具去收集这些信息:
上图whoami命令中我们可以发现我们处于BUILTINusers域组里,而不是处于administrator组中。于是我们通过systeminfo命令去收集当前安装的更新。一旦信息收集完毕,使用Windows-Exploit-Suggester工具检测系统中是否存在非修复的漏洞。如下图
通过CVE-2015-1701进行提权
一旦发现有漏洞未修复,那么攻击者就可以对这些漏洞进行利用,就在这个例子中可以发现MS15-051没有修复,我们就可以使用metasploit中的模块进行利用,如下图:
利用错误配置进行提权
但是,在一个完全将补丁打好的机器中,攻击者就需要利用他们手里的0day漏洞进行攻击。那么如果没有0day就不能提权成功吗?不存在的,仍可以通过系统的不正确的配置尝试提权。一个常见的系统错误配置就是一些服务并没有做安全限制,允许攻击者注入到他们的进程当中,进而实现权限提升。在这种情况下,我们可以使用powersploit中的Powerup脚本进行快速探测,如下图:
PowerUp脚本已经发现了以高权限运行的RasMan服务,攻击者就可以将他的payload注入到这一进程中,进而得到最高权限。在这一过程可以执行Invoke-ServiceAbuse命令,如下图:
从上图中可以看到,我们已经成功的利用了这一系统错误配置,并且可以以system权限执行命令。然后使用脚本下载后门,然后执行,得到新的meterpreter,此时meterpreter具有系统最高权限。
本文介绍的是最常见的提权技术,不过在没有0day的情况下还可以使用其他的方法进行提权,比如社工,键盘记录。这就需要很长的时间去进行了,因此,攻击者往往把精力放到0day挖掘这一方面上来。