- Как узнать имя пользователя и не только ?
- Вывести имя пользователя в текущем сеансе windows
- CMD. Управление пользователями в Windows.
- Команда NET USER
- Синтаксис команды NET USER
- Узнаём имена пользователей Windows 7
- Как узнать имя пользователя на удаленном компьютере?
- Утилиты PSLoggedOn и Qwinsta
- Получаем имя пользователя на удаленном компьютере через PowerShell
- PowerShell скрипт для проверки пользователей на удаленных компьютерах
- CMD. Управление пользователями в Windows.
- Команда NET USER
- Синтаксис команды NET USER
Как узнать имя пользователя и не только ?
Как узнать имя пользователя текущего сеанса windows ?
Всем привет. Очередная статья для страждущих знаний от Компьютер76 и сегодня я представлю вашему вниманию очередную порцию знаний о системе Windows , точнее об одной из её утилит, которую вы, скорее всего, ещё не пользовали. С его помощью можно будет моментально вычислить имя пользователя windows , который только что встал из-за ноутбука или компьютера, и какое он занимает положение в составе групп безопасности установленной системы.
На редко используемую, но иногда незаменимую утилиту windows можно посмотреть, запустив консоль команд. Она называется WHOAMI (помнится, был такой одноимённый фильм со знаменитым китайским акробатом). По-русски она звучит как «ХуЭмАй» – «Кто я такой?».
Что умеет утилита ?
Вывести имя пользователя в текущем сеансе windows
Утилита представлена в сборке, начиная с версии Windows Vista , однако в отдельном скачивании доступна для более разных версий.
Для чего она нужна?
Если вы – единственный владелец своего ноутбука или компьютера, этой утилитой вы, видимо, никогда не воспользуетесь. Про себя вы всё знаете, пароль администратора помните…
Другое дело, если из соображений безопасности или по причине пользования компьютером на нём установлены сразу несколько учётных записей, есть шанс, что она вам пригодится.
Так, в течение нескольких секунд можно прямо из текущего сеанса узнать, кто конкретно работает за компьютером и самую подробную о нём информацию. Запустите консоль команд с правами администратора и наберите команду вызова WHOAMI, сохраняя регистр. Консоль по вводу команды отобразит имя пользователя текущего сеанса. Изменим синтаксис команды для вызова справки в следующей строке:
Появится подробное описание доступных команд и выводимой информации. Всё на русском. Изучите не спеша, может пригодиться.
Так, чтобы узнать, что может понаделать текущий пользователь и не много ли он на себя берёт, а также не пора ли его в некоторых правах ограничить, можно набрать команду с таким синтаксисом:
Вы увидите самую подробную информацию об имени пользователя, SID и всех имеющихся привилегиях безопасности.
CMD. Управление пользователями в Windows.
Управление пользователями в Windows, помимо графической оснастки «Учетные данные пользователей», расположенной в панели управления, можно производить с помощью командной строки.
Команда NET USER
Команда NET USER предназначена для просмотра, добавления или редактирования учетных записей пользователей на компьютерах. При выполнении команды в командной строке без параметров отображается список учетных записей пользователей Windows, присутствующих на компьютере(локальные УЗ). Информация об учетных записях пользователей хранится в базе данных Windows.
Синтаксис команды NET USER
net user [имя_пользователя [пароль | *] [параметры]] [/domain]
net user имя_пользователя <пароль | *>/add [параметры] [/domain]
net user имя_пользователя [/delete] [/domain], где
- имя_пользователя — Указывает имя учётной записи пользователя, которую можно добавить, удалить, отредактировать или просмотреть. Имя может иметь длину до 20 символов.
- пароль — Присваивает или изменяет пароль пользователя. Введите звездочку (*) для вывода приглашения на ввод пароля. При вводе с клавиатуры символы пароля не выводятся на экран.
- /domain — Выполняет операцию на контроллере основного для данного компьютера домена.
- параметры — Задает параметр командной строки для команды.
- net help команда — Отображение справки для указанной команды net.
- /delete — Удаление учетной записи пользователя.
Узнаём имена пользователей Windows 7
В Windows 7 существует ошибка, которая позволяет, удалённо узнавать имена пользователей в одноранговой (домашней) сети. Про корпоративные сети здесь речи не ведётся, хотя имеет место быть.
Начинающим игрокам, часто хочется поиздеваться над соседями в подъезде или даже доме, узнать их секреты и впоследствии возможно даже манипулировать ими в своих целях.
Обычно, провайдер, объединяет подъезд или дом в домашнюю сеть. Пользователи, могут, в ней делиться файлами (расшаренными ресурсами), устраивать сетевые игры, общаться без выхода в интернет.
В настоящее время всё более распространёной становится практика подключать абонентов прямо к интернету, то есть при включении компьютера пользователь уже будет подключён к сети интернет. При этом типе подключения домашней сеть пропадает, тем самым повышается безопасность абонентов, стоит так же заметить что интерес к домашней сети заметно упал и для большинства её отключение не считается критичным, главное интернет. Так же увеличивается скорость и качество интернета. Но поскольку прямое подключение далеко не у всех, эта тема остаётся актуальной.
В сетевом окружении прямое подключение выглядит как подключение к локальной сети оно не требует дополнительных действий пользователя для подключения к интернету, достаточно включенного компьютера и вставленного в него сетевого кабеля. С помощью дополнительного подключения подразумевает необходимость того, что пользователь должен подключаться к интернету при помощи дополнительно настроенного сетевого соединения:
Уязвимость про которую будем говорить, заключается в том, что, удалённо мы можем узнать имена пользователей. И в дальнейшем провести атаку brute force (подбор пароля), тем самым получив контроль над системой. Также узнать пароли в локальной сети можно перехватив хеши паролей, изпользуя атаку ARP-poisoning.
Стоит лишь добавить что уязвимость эта известна давно, но так и не исправлена полностью. Заключается она в получении индетификатора SID пользователя и дальнейшего перебора значений RID.
В своё время получить индетификаторы пользователей можно было создав так называемое анонимное соединение (авторизация с пустым именем и паролем), но Microsoft исправила эту уязвимость добавив параметр запрета трансляции SID анонимным пользователям в локальные политики безопасноси. Но сохранилась возможность получить индетификаторы при гостевой или пользовательской авторизации.
Я продемонстрирую, как это проделать, с помошью программы Cain & Abel.
Для успешной атаки, ПК должен быть разрещён гостевой доступ и активирована учётная запись гостя (это можно определить по на наличию хоть одной расшаренной папки) или же включён классический доступ и известен имя и пароль одного из пользователей.
На вкладке «Network» находим интересующие ПК.
Подключаемся, переходим на вкладку «Users», в первом запросе нам будет отказано в доступе (доступно с правами администратора), при втором (он производится автоматически) программа запустит SID Scanner, просканирует диапозон значений RID (по умолчанию от 500 до 2000), ретранстлирует полученные индетификаторы в имена пользователей.
В данной программе имена на латинице некорректно отображаются.
Данный способ позволяет узнать имена пользователей исключительно в Windows 7 всех редакций, с Vista и XP воспроизвести не получилось, с серверными версиями не тестировалось. Но остаётся вероятность что данный способ так же будет работать с Windows 2008, 2008 R2, а так же Windows 8, в связи со схожей системой общего доступа.
Стоит упомянуть что есть множество программ выполняющих аналогичные функции.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Как узнать имя пользователя на удаленном компьютере?
Довольно часто администратору нужно быстро узнать имя пользователя, который выполнил вход на удаленном компьютере Windows. В это статье мы рассмотрим несколько утилит и PowerShell скриптов, которые помогут вам узнать имена пользователей, залогиненых на удаленных компьютерах в сети.
Утилиты PSLoggedOn и Qwinsta
В комплекте утилит SysInternals PSTools от Microsoft есть консольная утилита PSLoggedOn.exe, которую можно использовать для получения имени пользователя, который вошел на удаленный компьютер, а также список подключенных к нему SMB сеансов.
Скачайте утилиту и запустите ее в формате:
Как вы видите, утилита вернула имя залогиненного пользователя (Users logged on locally), а также список пользователей, которые по сети используют ресурсы с этого компьютера (Users logged on via resource shares).
Если нужно получить только имя пользователя, вошедшего локально, используйте опцию –l:
Psloggedon.exe \\wks215s1 –l
Утилита Psloggedon подключается к реестру и проверяет в нем имя пользователя, вошедшего локально. Для этого должна быть включена служба RemoteRegistry. Вы можете запустить ее и настроить автозапуск службы с помощью PowerShell:
Set-Service RemoteRegistry –startuptype automatic –passthru
Start-Service RemoteRegistry
Также можно получить список сессий на удаленном компьютере с помощью встроенной утилиты qwinsta . Эта утилита должна быть знакома любому администратору, управляющему терминальными серверами с Remote Desktop Services. Чтобы получить список сессий с удаленного компьютера, выполнит команду:
Утилита возвращает список всех сессий (активных и отключенных по таймауту) на RDS сервере или десктопной редакции Windows 10 (даже если вы разрешили к ней множественные RDP подключения).
reg add «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server» /v «AllowRemoteRPC» /t «REG_DWORD» /d «1» /f
Получаем имя пользователя на удаленном компьютере через PowerShell
Вы можете получить имя пользователя, который залогинен на компьютере через WMI класс Win32_ComputerSystem. Откройте консоль PowerShell и выполните команду:
Get-WmiObject -class Win32_ComputerSystem | Format-List Username
Команда вернула имя пользователя, который выполнил вход на компьютер.
У командлета Get-WmiObject есть параметр –ComputerName, который можно использовать для получения доступа к WMI объектам на удаленном компьютере. Следующая команда вернет имя пользователя с удаленного компьютера:
(Get-WmiObject -class Win32_ComputerSystem –ComputerName wks215s1).Username
Данная команда показывает только пользователя, вошедшего на консоль (не через RDP).
Если нужно получить только имя пользователя на компьютере (без домена), воспользуетесь следующими командами:
$userinfo = Get-WmiObject -ComputerName ‘wks215s1’ -Class Win32_ComputerSystem
$user = $userinfo.UserName -split ‘\\’
$user[1]
Get-CimInstance –ComputerName wks215s1 –ClassName Win32_ComputerSystem | Select-Object UserName
(Get-CimInstance -ComputerName wks215s1 -ClassName Win32_ComputerSystem).CimInstanceProperties | where<$_.Name -like "UserName">| select value
GetCiminstance использует WinRM для подключения к удаленным компьютерам, поэтому на них нужно включить и настроить WinRM через GPO или командой:
PowerShell скрипт для проверки пользователей на удаленных компьютерах
Если вам нужно собрать информацию о пользователях сразу с нескольких компьютерах, можете использовать следующую PowerShell функцию получить имена пользователей.
На вход функции Get-LoggedUser нужно передать имена компьютеров, на которых нужно проверить имена пользователей:
Если для какого-то компьютера функция вернула пустое имя пользователя, значит на компьютер никто не залогинен.
Можно получить имена пользователей, которые работают на компьютерах в домене Active Directory. Для получения списка компьютеров нужно использовать командлет Get-ADComputer. В следующем примере мы получим имена пользователей, которые работают за активными компьютерами в определенном OU домена. Чтобы скрипт работал быстрее перед тем, как обратится к обратится к удаленному компьютеру, я добавил проверку его доступности по сети через ICMP пинг с помощью командлета Test-NetConnection:
Также обратите внимание, что вы можете хранить в свойствах компьютеров в AD имя пользователя, который выполнил вход. Для этого можно использовать логон скрипт, описанный в статье “Set-ADComputer: добавляем информацию о пользователе в свойства компьютеров AD”
После этого вам не нужно сканировать все компьютеры, чтобы найти где залогинен определенный пользователь. Можно найти компьютер пользователя простым запросом к Active Directory:
$user=’dvpetrov’
$user_cn=(get-aduser $user -properties *).DistinguishedName
Get-ADComputer -Filter «ManagedBy -eq ‘$user_cn'» -properties *|select name,description,managedBy|ft
CMD. Управление пользователями в Windows.
Управление пользователями в Windows, помимо графической оснастки «Учетные данные пользователей», расположенной в панели управления, можно производить с помощью командной строки.
Команда NET USER
Команда NET USER предназначена для просмотра, добавления или редактирования учетных записей пользователей на компьютерах. При выполнении команды в командной строке без параметров отображается список учетных записей пользователей Windows, присутствующих на компьютере(локальные УЗ). Информация об учетных записях пользователей хранится в базе данных Windows.
Синтаксис команды NET USER
net user [имя_пользователя [пароль | *] [параметры]] [/domain]
net user имя_пользователя <пароль | *>/add [параметры] [/domain]
net user имя_пользователя [/delete] [/domain], где
- имя_пользователя — Указывает имя учётной записи пользователя, которую можно добавить, удалить, отредактировать или просмотреть. Имя может иметь длину до 20 символов.
- пароль — Присваивает или изменяет пароль пользователя. Введите звездочку (*) для вывода приглашения на ввод пароля. При вводе с клавиатуры символы пароля не выводятся на экран.
- /domain — Выполняет операцию на контроллере основного для данного компьютера домена.
- параметры — Задает параметр командной строки для команды.
- net help команда — Отображение справки для указанной команды net.
- /delete — Удаление учетной записи пользователя.