Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
WhoamiAlternatives — 获取当前用户名的不同方法,无需使用 whoami | Kitploit
工具/GitHubGitHub/ricardojoserf/whoamialternatives
侦察信息收集后渗透利用恶意软件分析红队
GitHubricardojoserf/whoamialternatives

WhoamiAlternatives

获取当前用户名的不同方法,无需使用 whoami

查看仓库
188192年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

whoami 的替代方案

一些无需调用 whoami.exe 或类似二进制文件即可检索当前用户名的实验。


方法 1:PRTL_USER_PROCESS_PARAMETERS

从 PEB 结构中获取环境变量并解析以找到用户名。

  • 函数 NtQueryInformationProcess 返回一个包含指向 PEB 基地址指针的“PROCESS_BASIC_INFORMATION”结构。
  • PEB 结构包含一个指向 RTL_USER_PROCESS_PARAMETERS 结构的指针“ProcessParameters”。
  • 从该结构可以获取指向环境变量的指针“Environment”和指向环境变量大小的指针“EnvironmentSize”。
  • 以 UNICODE 文本形式从地址“Environment”读取“EnvironmentSize”指定的字节数,解析环境变量并输出名为“USERNAME”的变量。如果需要所有环境变量,请查看此仓库。

示意图

img


方法 2:LookupAccountSid

获取一个令牌的访问权限,以字符串形式找到用户的 SID,然后使用函数 LookupAccountSid 进行转换。

  • 函数 NtOpenProcessToken 创建一个与当前进程关联的访问令牌。
  • 函数 NtQueryInformationToken 从我们创建的令牌中获取信息,使用“TOKEN_INFORMATION_CLASS”字段中的值“tokenUser”(1),获取关于用户名的信息,该信息存储在指针“TokenInformation”中。
  • 函数 ConvertSidToStringSid 将用户名的二进制格式 SID 转换为字符串格式。
  • 函数 LookupAccountSid 接受字符串格式的 SID 并返回用户名。

示意图

img


方法 3:LsaLookupSids

获取一个令牌和一个 Policy 对象的访问权限,然后使用函数 LsaLookupSids 获取用户名。

  • 函数 NtOpenProcessToken 和 NtQueryInformationToken 的使用方式与方法 2 相同,返回一个指向“TokenInformation”的指针,其中包含用户的二进制格式 SID。
  • 函数 LsaOpenPolicy 在当前系统中创建一个指向 Policy 对象的句柄。
  • 函数 LsaLookupSids 接受一个指向 SID 的指针,并返回一个包含用户名的 LSA_TRANSLATED_NAME 结构。

示意图

img


方法 4:命名管道

创建一个命名管道和一个辅助线程,通过命名管道写入和读取数据,然后从未公开的函数 NpGetUsername 获取用户名。

示意图

img


方法 5:ADSystemInfo

如果计算机已加入域,则使用 CoCreateInstance 函数获取用户名,如 MSDN 示例 所示。它使用 ActiveDS.dll 中的类 ADSystemInfoClass 以及接口 ADSystemInfo 和 IADsADSystemInfo,这些已包含在项目文件夹中,因此无需 DLL。

如果与 AD 无连接:

img

如果有连接:

img


来源

vx-underground 的 Twitter 帐户

下载工具