Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
WhoamiAlternatives — Различные методы получения текущего имени пользователя без использования whoami | Kitploit
Инструменты/GitHubGitHub/ricardojoserf/whoamialternatives
РазведкаСбор информацииПост-эксплуатацияАнализ вредоносных программRed Teaming
GitHubricardojoserf/whoamialternatives

WhoamiAlternatives

Различные методы получения текущего имени пользователя без использования whoami

Репозиторий
1881942 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Альтернативы whoami

Некоторые эксперименты по получению текущего имени пользователя без вызова whoami.exe или аналогичных бинарных файлов.


Метод 1: PRTL_USER_PROCESS_PARAMETERS

Получить переменные окружения из структуры PEB и проанализировать их, чтобы найти имя пользователя.

  • Функция NtQueryInformationProcess возвращает структуру "PROCESS_BASIC_INFORMATION", содержащую указатель на базовый адрес PEB.

  • Структура PEB содержит указатель "ProcessParameters" на структуру RTL_USER_PROCESS_PARAMETERS.

  • Из этой структуры можно получить указатель "Environment" на переменные окружения и указатель "EnvironmentSize" на размер переменных окружения.

  • Считав количество байтов, указанное в "EnvironmentSize", по адресу "Environment" как текст в кодировке UNICODE, проанализировать переменные окружения и вывести ту, которая называется "USERNAME". Если нужны все переменные окружения, загляните в этот репозиторий.

esquema

img


Метод 2: LookupAccountSid

Получить доступ к токену, найти SID пользователя в строковом формате и преобразовать его с помощью функции LookupAccountSid.

  • Функция NtOpenProcessToken создает токен доступа, связанный с текущим процессом.

  • Функция NtQueryInformationToken получает информацию из созданного токена; используя значение "tokenUser" (1) в поле "TOKEN_INFORMATION_CLASS", мы получаем информацию об имени пользователя, которая хранится в указателе "TokenInformation".

  • Функция ConvertSidToStringSid преобразует SID пользователя из бинарного формата в строковый.

  • Функция LookupAccountSid принимает SID в строковом формате и возвращает имя пользователя.

esquema

img


Метод 3: LsaLookupSids

Получить доступ к токену и объекту Policy и получить имя пользователя с помощью функции LsaLookupSids.

  • Функции NtOpenProcessToken и NtQueryInformationToken используются, как в методе 2, возвращают указатель "TokenInformation" с SID пользователя в бинарном формате.

  • Функция LsaOpenPolicy создает дескриптор объекта Policy в текущей системе.

  • Функция LsaLookupSids принимает указатель на SID и возвращает структуру LSA_TRANSLATED_NAME, содержащую имя пользователя.

esquema

img


Метод 4: NamedPipe

Создать именованный канал (named pipe) и дополнительный поток, записать и прочитать из именованного канала и получить имя пользователя из недокументированной функции NpGetUsername.

esquema

img


Метод 5: ADSystemInfo

Получить имя пользователя, если компьютер присоединен к домену, с помощью функции CoCreateInstance как в примере MSDN. Используются класс ADSystemInfoClass и интерфейсы ADSystemInfo и IADsADSystemInfo из ActiveDS.dll, которые уже находятся в папке проекта, поэтому DLL не требуется.

Если нет соединения с AD:

img

Если соединение есть:

img


Источник

Twitter-аккаунт vx-underground

Скачать инструмент