答案1
如果你在渗透测试实验室中执行此操作,则可以使用位于以下位置的 Kali 内置 whoami.exe
/usr/share/windows-binaries/whoami.exe
只需将其复制过来并在 Win XP 机器上运行即可。
答案2
也许你因为某种原因缺少 USERNAME 环境变量。运行 set 命令,它会列出环境变量及其值。我的 XP 有 USERNAME,但我没有添加它,所以 XP 有它。。奇怪的是你的没有。但运行 set 并查看你有什么
一堆环境变量让用户
TEMP=C:\DOCUME~1\User\LOCALS~1\Temp
TMP=C:\DOCUME~1\User\LOCALS~1\Temp
USERNAME=user
USERPROFILE=C:\Documents and Settings\user
添加
在与您所在的示例类似的示例中,我已远程登录到计算机,它运行 bvsshserver(bitvise ssh 服务器,又名 winsshd)(即使从 cygwin 客户端登录,也会提供 windows 命令行),尽管通过 cygwin 的 openssh 服务器提供 bash。您可以使用 cygwin 中的 openssh 客户端登录 bitvise sshd 并获取 windows 命令行
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\WINSSH~1\LOCALS~1\Temp
TMP=C:\DOCUME~1\WINSSH~1\LOCALS~1\Temp
USERNAME=WinSSHD_VirtualUsers
USERPROFILE=C:\Documents and Settings\WinSSHD_VirtualUsers
VIRTGROUP=Virtual Users
VIRTUSER=user
windir=C:\WINDOWS
C:\>whoami
WinSSHD_VirtualUsers
C:\>
在这种情况下,“VIRTUSER”有用户名,尽管与whoami显示的不同。
您的 XP 机器运行什么 SSH 服务器(或远程登录程序服务器)?
答案3
您没有遗漏任何东西。也许您正在 powershell 中运行它?如果您没有从 cmd 返回正确的值,那么您必须进一步调查。
在 Windows 命令提示符(cmd 而不是 PowerShell)中输入:
echo %username%
在 PowerShell 中输入:
# Returns computername/username
whoami
# Returns username
echo $env:username
# Returns table containing computer/usernem
Get-WMIObject -class Win32_ComputerSystem | select username