Вход|Регистрация

Еще один унылый бложег

***

Среда, 1 сентября 2021, 13:34

Как работает система безопасности Windows

Kozhuh 3,821

Как работает система безопасности Windows

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

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция сайта spy-soft.net, ни автор не несут ответственности за любой возможный вред, причиненный информацией из этой статьи.

Как работает система безопасности Windows

В Windows все активные сущности, которые могут быть аутентифицированы операционной системой (пользователи или группы), называются участниками безопасности (security principals). Все участники безопасности имеют уникальный идентификатор переменной длины — Security ID (SID).

Структура SID следующая — S-R-IA-SA-RID, например S-1-5-21-1687231434-1254558764-1544283289-1004, где:

  • S — литеральный префикс, указывает на то, что идентификатор является SID (это просто конвенция наименования);
  • R — однобайтное значение версии или ревизии (revision) SID. Пока существует только версия 1;
  • IA — источник выдачи (issuing authority), шестибайтное значение. Указывает, в чьей области ответственности был выдан SID (буквально authority значит «орган власти»). Почти всегда имеет значение 5 (SECURITY_NT_AUTHORITY), за исключением well-known SID, о которых мы поговорим чуть позже. Например, 1 означает SECURITY_WORLD_SID_AUTHORITY и относится к well-known-группе Everybody;
  • SA — уполномоченный центр (sub-authority). Уникальное (в рамках IA) значение, состоит из четырех частей: 4-байтного числа, указывающего, кем был выдан идентификатор (контроллером домена или локальным компьютером), и 12-байтного значения, которое делится на три части и идентифицирует конкретный объект, выдавший идентификатор. Смысл этого поля в том, что при наличии нескольких доменов в лесу объекты в разных доменах будут иметь уникальный SA;
  • RID — относительный идентификатор (Relative-ID), 4-байтное значение, служит для разделения объектов внутри домена. Для встроенных учетных записей RID всегда будет один и тот же (например, для учетной записи администратора RID = 500).

Если быть более точным, то существует SID машины (machine SID) и SID домена (domain SID). А сам SID представляет собой базовый идентификатор (S, R, IA, SA) + RID.

Также есть стандартные так называемые well-known SID для пользователей и групп. Они имеют один и тот же SID на любых системах (например, группа Everyone или пользователь System).

Поизучать SID можно с помощью утилиты PsGetsid.exe из пакета Sysinternals. А почитать о структуре SID более подробно можно, например, в этих публикациях:

Также при администрировании можно допустить небольшой недочет, связанный с дубликацией сидов. Иногда он влияет на безопасность или функциональность (например, когда ОС развертывают, просто копируя диск). Об этом можно почитать подробнее в статье Марка Руссиновича, еще одной статье и в VMware knowledge base.

SID, в свою очередь, входит в так называемый маркер доступа — программный объект (структура в ядре Windows), который закрепляется за сессией (logon session) участников безопасности после авторизации. За выдачу маркера, как и за аутентификацию, отвечает LSASS (local security authority subsystem).

Помимо всего прочего, в маркер включены SID пользователя и его групп, а также механизм привилегий на совершение каких-либо действий (например, привилегия на отладку debug, которая, кстати, используется в mimikatz для получения доступа к системным процессам).

После того как удаляется последний ассоциированный с сессией токен, LSASS удаляет и саму сессию — таким образом завершается сеанс пользователя. Можно поподробнее изучить структуру маркера доступа в отладчике ядра (kernel debugger) с помощью команды dt_TOKEN. Вообще, если не получается нагуглить подробности о внутреннем устройстве Windows, можно изучить структуру самому с помощью средств отладки. Подробности представлены в документации Microsoft. С привилегиями может быть, например, связана такая вещь, как bypass traverse checking.

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

В свою очередь, для «пассивных» объектов, которые предназначены для предоставления к ним доступа извне (их называют securable objects), используется SD — security descriptor. Это дескриптор для управления доступом к данным объектам (например, процесс может иметь SD или SD может быть привязан к файлу в NTFS). У SD тоже, кстати, бывают проблемы с безопасностью.

В security descriptor включены ACL (access control list), которые бывают двух видов — SACL (нужен для ведения журнала доступа к объекту) и DACL (нужен непосредственно для управления доступом). В свою очередь, ACL включают ACE (access control entry) — каждая ACE предназначена для конкретного субъекта, который получает доступ, и содержит в себе тип (запрет или разрешение) и маску доступа. Правильно настроенные ACL позволяют перекрыть несанкционированный доступ к объектам внутри системы.

Однако, если кто-то загрузится на таком компьютере в Linux или вытащит жесткий диск из машины с Windows и примонтирует его в том же Linux, он сможет прочитать эти данные. В Windows удастся получить доступ к данным с «чужого» носителя NTFS, только если пользователь или его группа на другой системе имеет тот же SID — например, если в ACL выставлено слишком много прав на well-known-группы.

От этого можно защититься только шифрованием, но стоит быть осторожнее с выбором и использованием инструмента (см. статьи о проблемах с шифрованными контейнерами VeraCrypt и BitLocker, а также уязвимостях NAS).

В ядре Windows проверки ACL выполняются с помощью security reference monitor и object manager. Предоставление доступа выглядит так: субъект (пользователь) после авторизации получает маркер доступа, затем субъект обращается к файлу, система сравнивает необходимые данные из маркера доступа с соответствующими ACE в DACL объекта, и в зависимости от разрешений субъект получает доступ или отказ.

система безопасности Windows

Подробнее о ACL/ACE можно почитать на портале Microsoft или на сайте ntfs.com. Также в этом может участвовать механизм Mandatory Integrity Control, который проверяет доступ к объекту по уровню надежности того, кто этот доступ запрашивает.

Кстати, повышение привилегий за счет DACL было использовано в прошлогодней уязвимости CVE-2019-0841. Криво выпущенный патч — знакомые грабли. Также в 2018 году была уязвимость CVE-2018-1036, связанная с обходом разрешений.

Помимо привилегий, есть еще один способ контролировать действия пользователя, требующие прав администратора. Для этого был создан хорошо известный UAC (User Access Control). Идеала, разумеется, не бывает, поэтому вот несколько старых ссылок для дальнейшего изучения методик обхода UAC.

Аутентификация и авторизация в Windows

Как уже упоминалось, за аутентификацию отвечает LSASS. На деле, конечно, все выглядит сложнее. Ниже приведена схема механизма аутентификации для старых версий Windows.

система безопасности Windows

Вкратце это работает так: в LSASS поступают аутентификационные данные (пароль, биометрия и прочее), затем Windows производит авторизацию. Хеш от аутентификационных данных кладется в SAM, а пользовательскому процессу назначается маркер доступа. Известная проблема состоит в том, что можно сохраненные хеши сдампить (например, при помощи всем известного mimikatz) и провести атаку pass-the-hash.

В Windows 10 добавили Credential Guard (вместе с ним, кстати, появился новый процесс — Lsalso.exe). Этот механизм должен был защитить, в частности, от использования mimikatz. Но на каждого хитреца найдется свой мудрец.

Прежде всего, Credential Guard — опциональная функция, которая может быть отключена. Так как Credential Guard основан на механизме Virtual Secure Mode (VSM), который, в свою очередь, базируется на механизмах виртуализации CPU, то не стоит забывать и об аппаратных уязвимостях, позволяющих обойти Credential Guard.

Ну и напоследок нужно помнить, что введенный пароль преодолевает некоторый путь перед тем, как будет сохранен в компьютере для последующей авторизации. Это значит, что его можно получить с помощью кейлоггера или кастомного SSP (security support provider). Последнее возможно с помощью mimikatz. Помимо mimikatz, перехватить пароль помогут Empire, SharpSploit или PowerSploit, в которых, по сути, используется интегрированный mimikatz. Альтернативой в PowerSploit могут быть следующие команды:

Import-Module .\PowerSploit.psm1
Install-SSP -Path .\mimilib.dll
Для общего развития полезно будет почитать презентацию по pass-the-hash для Windows 10, представленную институтом SANS, и изучить основные методы защиты от mimikatz в домене Active Directory.

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

Кстати, есть старый трюк для обхода окна авторизации, который на удивление может сработать и в Windows 10. Суть этого способа в том, что нужно заменить программу sethc.exe на cmd.exe простым переименованием, а затем вызвать sethc.exe, пять раз нажав клавишу Shift. После этого можно сменить пароль пользователя. Еще в Windows 10 существует возможность сделать примерно следующее:

  1. Вставить загрузочный USB, перезагрузить компьютер, затем нажать Shift + F10, чтобы открыть cmd.exe.
  2. Ввести команду move D:\windows\Sstem32\utilman.exe D:\windows\system32\utilman.exe.bak.
  3. Для маскировки cmd под utilman ввести команду copy D:\windows\system32\cmd.exe D:\windows\System32\utilman.exe.
  4. Перезагрузить компьютер без загрузочного USB.
  5. После загрузки нажать «Специальные возможности» (рядом с кнопкой выключения питания в окне авторизации).
  6. Для создания нового пользователя ввести команду net user youruser /add.
  7. Для добавления нового пользователя в группы администраторов использовать команду net localgroup administrators youruser /add.

Можно добиться подобного эффекта, если у вас уже есть доступ к системе с правами редактирования реестра. В этом случае нужно в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ добавить раздел utilman.exe, в котором прописать ключ с типом String Value и значением в виде пути до нужной программы. Эта программа будет запускаться при попытке открыть окно специальных возможностей.

От этого опять-таки спасает шифрование диска. Для запрета смены пароля определенного юзера можно использовать учетную запись Microsoft вместо локальной. Также можно отключить для всех юзеров права на выполнение utilman.exe и sethc.exe. Ну и дополнительно включить Secure Boot и поставить пароль на BIOS/UEFI. Кстати, этот трюк показывался в сериале Mr.Robot в третьей серии четвертого сезона.

Также для байпаса окна авторизации есть старый, но по-прежнему рабочий инструмент (с поддержкой Windows 10) под названием kon-boot. Правда, работает он с некоторыми ограничениями (например, не поддерживается включенный secure boot). Чтобы защититься от него, нужно включить в системе функции, которые инструмент не поддерживает. Ну и конечно, не стоит забывать про HID-атаки (см. обзорные статьи за 2015 и 2018 годы, а также руководство по созданию BadUSB с Wi-Fi на Arduino).

Постэксплуатация

Часто бывает так, что эксплуатация уязвимости ведет к получению доступа, например, к учетной записи веб-сервера, а не к учетной записи администратора. Пути тут два: повышать привилегии и искать интересную информацию, к которой есть доступ. Для поиска интересностей в скомпрометированной системе есть множество скриптов, например winPEAS, Seatbelt, Powerless, Privesc, Sherlock, JAWS, Watson и SharpUp.

Но стоит учесть, что такие скрипты «шумные». Тем более программы, требующие .NET, могут и не сработать, если в системе настроен белый список ПО.

Дополнительные ссылки

При желании вы сможете сами поискать нужную информацию. В этих целях рекомендуется использовать списки LPE (local privilege escalation). Вот несколько полезных ссылок:

В материалах, ссылки на которые приведены выше, мелькает эксплуатация ядра как способ повышения привилегий. Стоит учесть, что в Windows есть механизм защиты ядра Kernel Patch Protection (PatchGuard), но и этому механизму тоже не чужды уязвимости. Также при постэксплуатации стоит знать про наличие AppContainer.

Заключение

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

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

Но для полного понимания вещей полезно знать, как все устроено внутри. Лучшим источником информации в этой области считается книга Марка Руссиновича под названием Windows internals (на данный момент выпущена первая часть 7-го издания, вторая часть находится в разработке).

Источник: https://spy-soft.net/how-windows-security-works/#__Windows-2

Написать комментарий
 

Reset HPE ILO Password from vSphere ESXi Host

Вторник, 22 декабря 2020, 13:33

Changing the login password of the ILO Out-of-Band Management with an ESX host can be done by doing the following:

  1. Enable SSH on the host you need the ILO IP from
  2. SSH into the host using Putty or another SSH client
  3. Type: cd /opt/hp/tools

From here, we will create a new file that will contain the new credentials you want to use on the iLO going forward. You can create this file and copy to the above location using WinSCP,or use Vi to do this all within putty

4. Type: vi pwreset.xml
5. Type: i
(this will put you into insert mode and allow you to copy the below text so you don’t have to type it. Please use your own password on line 5)

<RIBCL VERSION="2.0">
<LOGIN USER_LOGIN="Administrator" PASSWORD="unknown">
<USER_INFO MODE="write">
<MOD_USER USER_LOGIN="Administrator">
<PASSWORD value="Enter-Your-Password-Here"/>
</MOD_USER>
</USER_INFO>
</LOGIN>
</RIBCL>

6. Press the Esc key
7. Type: :wq to save and exit the file
8. Type: ./hponcfg -f pwreset.xml to reset the iLO

You should now be able to login with your new credentials. The last step is to remove the file you just created.

9. Type: cd /opt/hp/tools
10. Type: rm -rf pwreset.xml

 

via

Написать комментарий
 

Reference Architecture: Building an on-premise Kubernetes solution with VMware PKS and NSX-T

Воскресенье, 29 апреля 2018, 23:54

https://www.hanymichaels.com/2018/04/27/reference-architecture-building-an-on-premise-kubernetes-solution-with-vmware-pks-and-nsx-t/

Написать комментарий

HP 3PAR CLI command list

Вторник, 23 января 2018, 15:13

showalert        - show status of system alerts
showauthparam    - show authentication parameters
showbattery      - show battery status information
showblock        - show block mapping info for vvs, lds, pds
showcage         - show disk cage information
showcim          - show the CIM server information
showclienv       - show CLI environment parameters
showcpg          - show Common Provisioning Groups (CPGs)
showdate         - show date and time on all system nodes
showdomain       - show domains in the system
showdomainset    - show sets of domains in the system
showeeprom       - show node eeprom information
showeventlog     - show event logs
showfirmwaredb   - show current database of firmware levels
showhost         - show host and host path information
showhostset      - show sets of hosts in the system
showinventory    - show hardware inventory
showiscsisession - show iscsi sessions
showld           - show logical disks (LDs) in the system
showldch         - show LD to PD chunklet mapping
showldmap        - show LD to VV mapping
showlicense      - show installed license key
shownet          - show network configuration and status
shownode         - show node and its component information
shownodeenv      - show node environmental status (voltages,temperatures)
showpatch        - show what patches have been applied to the system
showpd           - show physical disks (PDs) in the system
showpdata        - show preserved data status
showpdch         - show status of selected chunklets of physical disks
showpdvv         - show PD to VV mapping
showport         - show Fibre Channel and iSCSI ports in the system
showportarp      - show ARP table for ports
showportdev      - show detailed information about devices on a Fibre Channel port
showportisns     - show iSNS host information for ports
showportlesb     - show Link Error Status Block information about devices on Fibre Channel port                         
showrcopy        - show remote copy configuration information
showrctransport  - show information about end-to-end transport for remote copy                         
showrsv          - show information about reservation and registration of VLUNs connected on a Fibre Channel port
showsched        - show scheduled tasks in the system
showsnmppw       - shows SNMP access passwords
showsnmpmgr      - show SNMP trap managers
showspace        - show estimated free space
showspare        - show information about spare and relocated chunklets
showsshkey       - show ssh public keys authorized by the current user
showsys          - show system information (system name, serial number etc.)
showsysmgr       - show system manager startup state
showtarget       - show unrecognized targets
showtask         - show information about tasks
showtemplate     - show templates
showtoc          - show system Table of Contents (TOC) summary
showtocgen       - show system Table of Contents (TOC) generation number
showuser         - show user accounts and SSH keys
showuseracl      - show user access control list
showuserconn     - show user connections
showversion      - show software versions
showvlun         - show virtual LUNs (VLUNs) in the system
showvv           - show virtual volumes (VVs) in the system
showvvmap        - show VV to LD mapping
showvvpd         - show VV distribution across PDs
showvvset        - show sets of VVs in the system
checkhealth        - perform checks to determine overall state of the system
checkpassword     - display authentication and authorization details
checkport         - perform loopback test on fc ports
checkpd           - perform surface scan or diagnostics on physical disks
checkld           - perform validity checks of data on logical disks
checkvv           - perform validity checks of virtual volume administrative information

http://etactiks.blogspot.com/

Написать комментарий

sysprep a fatal error occurred windows 2012 0x8007001f

Вторник, 29 августа 2017, 12:52

This error shows that sysprep was run multiple times on the machine, please open a command prompt, type: slmgr /dlv to view how many times of remaining Windows Activation count. Generally speaking, to sysprep the image on a single computer for multiple times, you need to configure the Microsoft-Windows-Security-SPP | SkipRearm to 1 in the unattend.xml file. I am assuming whether you configure the Microsoft-Windows-Security-Licensing-SLC | SkipRearm to 1 instead of SPP, the SLC setting is deprecated and should not be used.  

As a work around of this problem, please type: regedit in the Start Search box to open Registry Editor, set the value of GeneralizationState under HKEY_LOCAL_MACHINE\SYSTEM\Setup\Status\SysprepStatus to 7, then run sysprep again.

If the same issue still persists, please unistall the MSDTC and Reinstall it, then try the sysprep.

To uninstall MSDTC :- msdtc -uninstall

To reinstall  MSDTC :- msdtc –install

Написать комментарий
⇤ Последнее
← Позже 1-я страница Раньше →