Home

Awesome

0x01 前言

详见[Zer0ne安全研究]公众号

0x02 介绍

本工具参考incognito的代码进行编写,完成了获取token和以某token执行命令两个功能。

在获取系统上所有token的时候,incognito工具使用NtQuerySystemInformation微软未公开API获取系统上所有的进程,然后再获取该进程上句柄表中的每一个句柄,判断是不是token句柄,若是则保存。 JCTokenUtils工具同样使用NtQuerySystemInformation微软未公开API,不过是直接获取系统上所有的句柄,之后判断是不是token句柄,若是则保存。由于句柄表中没有保存进程自身的主令牌,因而会使用OpenProcessTokenAPI获取并保存进程的主令牌。 以某个令牌执行命令,本工具基本参照incognito工具编写,没有区别。

0x03 使用

0x0301 命令介绍

Usage: TokenUtil.exe <module> [OPTION]

[MODULE]
        ListTokens
[OPTION]
        -p <pid>: 列出某个进程中的令牌
        -P <procName>: 列出某个进程的令牌
        -u <username>: 列出某个用户的令牌
        -v : 详细模式 // 不加-v,每个用户只输出一次

example:
        TokenUtils.exe ListTokens -u "NT AUTHORITY\SYSTEM"
        TokenUtils.exe ListTokens -P "cmd"
        TokenUtils.exe ListTokens -P "cmd" -u "NT AUTHORITY\SYSTEM"

[MODULE]
        Execute
[OPTION]
        -p <pid>: 以指定pid的token执行命令
        -u <username>: 以某个用户执行命令,与-e <command>结合使用
        -e <command> : 执行命令
        -c: 是否在当前终端下执行
        -v : 详细模式

example:
        TokenUtils.exe Execute -p <pid> -e whoami -c
        TokenUtils.exe Execute -u "NT AUTHORITY\SYSTEM" -e whoami -c
        TokenUtils.exe Execute -p <pid> -u "NT AUTHORITY\SYSTEM" -e whoami -c

0x0302 使用说明

◊ -P -u参数值大小写敏感
◊ 同时使用-P -u参数表示同时满足两个条件
◊ 获取token时同一个用户只输出一次,使用-v参数,则输出所有用户

0x0303 使用效果

TokenUtil.exe ListTokens -u jerrybird TokenUtils.exe ListTokens -u jerrybird -v TokenUtil.exe Execute -u "DESKTOP-UIK8D53\test" -e cmd -c