1.欺骗 "NT AUTHORITYSYSTEM"账户通过NTLM认证到我们控制的TCP终端。
当前我获得了一个普通域用户权限的shell,利用令牌窃取进行提权,提权到管理员权限。哈哈,提 权好简单。胡扯!
看了很多博客,其中几篇文章就这样带有误导性地写,这样不好吧。
描述进程或者线程安全上下文的一个对象。不同的用户登录计算机后, 都会生成一个Access Token,这个Token在用户创建进程或者线程时会被使用,不断的拷贝,这也就解释了A用户创建一个进 程而该进程没有B用户的权限。一般用户双击运行一个进程都会拷贝explorer.exe的Access Token。访问令牌分为:
· 授权令牌(Delegation token):交互式会话登陆(例:本地用户登陆、用户桌面等)
· 模拟令牌(Impersonation token):非交互式登陆(例:net use 访问共享文件)
两种token只有在系统重启后才会清除;授权令牌在用户注销后,该令牌会变为模拟令牌依旧有 效。
同样也可以这样理解,当前系统中的某个进程或线程能访问到什么样的系统资源,完全取决于你当前 进程是拿着谁的令牌。
默认情况下,我们列举令牌,只能列举出当前用户和比当前用户权限更低用户的令牌。令牌的数量取决 于当前shell的访问级别,如果当前的shell是administrator或者是system,我们就可以看到系统中的所 有的令牌。
我们通过exp提权或者永恒之蓝等得到的权限即为System,假如我们利用mimikatz和hashdump不能获得administrator用户的密码,那我们只能通过令牌窃取进行降权,获得administrator用户的shell, 从而以administrator用户的身份启动某些服务(因为某些服务只能通过administrator用户启动)。
可用于令牌窃取的工具有很多,例如cs、msf、empire等等,或者我们也可以直接使用现成的
incognito.exe 。
当前shell用户只是一个普通的域用户,权限低,也就意味着shell的访问级别低,所以令牌只有当前用 户本身。
这次就可以看到我们手中的令牌多了,但是还是没有出现域管的令牌,为什么呢?
因为在做本次实验之前,我将机器进行了重启,并且到现在并没有登录域管账号。那接下来,我们再登 录一下域管账号,再次查看令牌个数:
可以看到在登录域管账号之后,我们才会有相应的令牌。
利用命令impersonate_token 'HACKERGUAdministrator' ,使用域管令牌,如下:
这里需要注意的是,使用令牌时,最好使用引号将其括起,因为某些令牌的名字中间含有空格, 可能会报错。另外在输入主机名用户名时,需要输入两个反斜杠( \ )
如果我们不需要该权限了,可使用命令rev2self ,返回原本的权限。
首先要了解的是,烂土豆(Rotten Potato)提权是一个本地提权,是针对本地用户的,不能用于域用户。漏 洞 了 解 _MS16-075:https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2016/ms 16-075
接下来换一个System的shell,再次尝试:
可以看到只有当前用户的令牌。
然后我们运行如下命令,执行烂土豆:
execute -cH -f potato.exe
由此,我们得到了SYSTEM权限的shell。
附 上 RottonPatato 脚 本 :https://github.com/SecWiki/windows-kernel-exploits/blob/master/MS16- 075/potato.exe https://github.com/breenmachine/RottenPotatoNG/blob/master/RottenPotatoEXE/x64/Release/ MSFRottenPotato.exe
https://github.com/foxglovesec/RottenPotato
有好几个版本,自己随意选择。
RottenPotato(烂土豆)提权的原理可以简述如下:
当我们拿到一个普通本地用户的shell时,列举当前的令牌:
2. 对这个认证过程使用中间人攻击(NTLM重放),为"NT AUTHORITYSYSTEM"账户本地协商一个安全令牌。这个过程是通过一系列的Windows API调用实现的。
3. 模仿这个令牌。只有具有"模仿安全令牌权限"的账户才能去模仿别人的令牌。一般大多数的服务型账 户(IIS、MSSQL等)有这个权限,大多数用户级的账户没有这个权限。
所以,一般从web拿到的webshell都是IIS服务器权限,是具有这个模仿权限的。测试过程中,我发 现使用已经建好的账户(就是上面说的用户级账户)去反弹meterpreter然后再去执行EXP的时候会失 败,但使用菜刀(IIS服务器权限)反弹meterpreter就会成功。
一开始我一直始用系统创建的普通用户执行exp,所以利用失败,后来我在服务器上的web服务反 弹了shell,才得以执行成功。
烂土豆比热土豆的优点是:
1.100%可靠
2.(当时)全版本通杀。
3.立即生效,不用像hot potato那样有时候需要等Windows更新才能使用。
总之,我对这个的理解是通过中间人攻击,将COM(NT\SYSTEM权限)在第二部挑战应答过程中认证的区块改成自己的区块获取SYSTEM令牌,然后利用msf的模仿令牌功能模仿SYSTEM令牌。