原理
假冒令牌可以假冒一个网络中的另一个用户进行各种操作。令牌包括登录会话的安全信息,如用户身份识别、用户组合用户权限。当一个用户登录Windows系统时,它被给定一个访问令牌作为它认证会话的一部分。例如,一个入侵用户可能需要以域管理员处理一个特定任务,当它使用令牌便可假冒域管理员进行工作。
Windows安全相关概念
- Session
- Windows Station
- Desktop
- Login Session:不同账号登录产生不同的登录Session,代表不同的账号权限
Tokens
- Tokens与进程相关联,进程创建时根据Login Session分配对应Token,含有该进程用户账号、组信息、权限信息等。
- 用户每次登录,产生Login Session分配对应Token
- 访问资源时提交Token进行身份验证,类似于Web Cookie
- Delegate Token:交互登录会话
- Impersonate Token:非交互登录会话
攻击过程
首先我们得构造一个域环境,这里我已经搭建完成了,不懂的小伙伴请自行百度。然后我们关闭Windows XP的防火墙,利用经典的缓冲区溢出漏洞MS08_067
漏洞获取shell。
加载Incognito
模块,重要的是impersonate_token
和list_tokens
这两个模块,前者是伪造域管理员或者更高权限的令牌,后者是列出当前计算机都有哪些计算机访问过留下的token值
我们尝试使用域控用共享的方式访问XP主机的C盘
成功捕获到域管理员的令牌
然后使用impersonate_token
命令假冒域管理员,因为单斜杠会被转义,所以要换成双斜杠,可以看到我们当前的权限变为域管理员权限
然后我们就能进入shell执行各种恶意操作了