通常,我们在渗透攻击时很有可能只获得了一个系统的Guest或User权限。低的权限级别将使我们受到很多的限制,在实施横向渗透或者提权攻击时将很困难。在主机上如果没有管理者权限,就无法进行获取Hash、安装软件、修改防火墙规则和修改注册表等各种操作,所以必须将访问权限从Guset提升到User,再到Administrator,最后到System级别。
渗透的最终目的是获取服务器的最高权限,即windows操作系统中管理员账号的权限,或linux操作系统中root账户的权限。提升权限的方式为以下俩类。
所以在成功获取目标机Meterpreter Shell后,我们要知道现在已经拥有了什么权限。
在Meterpreter Shell下输入shell命令进入目标机的cmd命令行。
接着输入 whoami /groups 命令查看哦我们当前的权限(之前用w10系统做实验发现没用,这次用w7的)
从图中可以看出,当前权限是Mandatory Lable\Medium Mandatory Level 说明我们是一个标准用户,那么就需要将用户权限从标准用户提升到管理员,也就是Mandatory Lable\High Mandatory Level。
下面我们就利用本地溢出漏洞来提升权限,也就是说通过运行一些现成的、能造成溢出漏洞的Exploit,把用户从User组或其他系统用户组中提升到Administrator组(或root)
利用WMIC实战MS16-032本地溢出漏洞:
首先输入 getuid 命令查看已经获得的权限,可以看到现在的权限最低,是root权限,尝试输入 getsystem 命令提权,结果失败。
接着查看系统的已打补丁,传统的方法在目标机的cmd命令下输入systeminfo 命令,或者通过查询c:\windows\里留下的补丁号“.log”查看目标机大概打了哪些补丁。
可以看到目标机上打了2个补丁,要注意这些输出的结果是不能被直接利用的,使用的方式是去找提权的EXP,然后将系统已经安装的补丁编号与提权的EXP编号进行对比,然后使用没有编号的EXP进行提权。因为虚拟机不怎么打补丁,所以我们可以使用很多EXP来提权,这里我们就用最新的MS16-032来尝试提权,对应编号是KB3139914.
接下来准备提权,同样需要用 background 命令将Meterpreter会话转为后台执行,然后用 search 命令搜索MS16-032.
接下来执行命令选中MS16-032这个漏洞,然后指定“sessions”进行提权操作,这里我们指定服务“sessions”为“1”,然后输入exploit或者run命令即可。
我这里由于某种原因,实验没成功。如果实验成功了,再次输入getuid 命令查看,发现已经是system级权限了。
防御方法:这个漏洞的安全补丁编号是KB3139914,我们只需要安装此补丁就可以了。
这里说下用msfvenom -p windows/meterpreter/reverse_tcp 默认是用32位模块的payload,如果需要是64位的必须改为 windows/x64/meterpreter/reverse_tcp。
令牌窃取:
令牌简介及原理:令牌(token)就是系统的临时密铭,相当于账户名和密码,用来决定是否允许这次请求和判断这次请求和判断这次请求是属于哪一个用户的。他允许你在不提供密码或其他凭证的前提下,访问网络和系统资源。这些令牌将持续存在于系统中,除非系统重新启动。
令牌的最大特点就是随机性,不可预测,一般黑客或软件无法猜测出来。令牌有很多种,比如访问令牌(Access token)表示访问控制操作主题的系统对象;密保令牌(security token),又叫做认证令牌或者硬件令牌,是一种计算机身份校验的物理设备,例如U盾;会话令牌(session token)是一种交互会话中唯一的身份标识符。
在假冒令牌攻击中需要使用Kerberos协议。Kerberos是一种网络认证协议,其设计目标是通过密铭系统为客户机/服务器应用程序提供强大的认证服务。Kerberos的工作机制如下图:
Kerberos工作机制
假冒令牌实战利用:
此时已经成功获取到目标机的meterpreter shell,首先输入getuid命令查看已经获得的权限,然后输入getsystem,发现提权失败。
然后我们先输入 use incognito 命令,然后输入 list_tokens -u
这里我们解释下(我们看到有俩种类型的令牌:一种是Delegation Tokens,也就是授权令牌,它支持交互式登陆,还有一种是Impersonation Tokens,也就是模拟令牌,它是非交互的会话。令牌的数量取决于meterpreter shell的访问级别)
接下来在incognito中调用impersonate_token命令假冒root用户进行攻击,
知识点:在输入hostname\username中需要加俩个反斜杠(\\)
运行成功后在meterpreter shell下运行shell命令并输入whoami ,就可以看见我们现在就是假冒的系统管理员了.