Вернуться   Forum 3Dnews Tech > Софт > Программное обеспечение > Программирование
Вход через: 

Ответ Создать новую тему
 
Опции темы Опции просмотра
Старый 16.01.2021, 16:00   Вверх   #1
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
System explorer without driver

Всем привет!
Разработку приложения веду на профильном форуме.
Здесь буду выкладывать только скомпилированные сборки и небольшой changelog.

Но сначала ответ на вопрос - что это такое и с чем его едят?
Это инструмент на уровне ядра ОС, не требующий драйвера для доступа к системным процессам и файлам (но не всем - дескрипторы защищенных процессов и ProtectedLight процессов открываются в режиме ReadOnly).
Из ключевых особенностей:
1. запуск процессов в сессии 0 и в сессии залогинившегося пользователя на любом Рабочем столе;
2. все запускаемые процессы (как и сам инструмент) работают под учетной записью LocalSystem (СИСТЕМА) с токеном доступа TrustedInstaller;
3. переключение на такие Рабочие столы, как Winlogon (Рабочий стол приветствия с вводом логина и пароля) и Disconnect (малоизученный Рабочий стол, скорее всего связанный с ядром ОС - процессом System), с возможностью возврата на основной Рабочий стол Default (Рабочий стол проводника и шелла);
4. вывод информации SECURITY_DESCRIPTOR о процессе и его главном потоке;
5. включение и отключение привилегий в токене процесса;
6. включение и отключение сервисов.

Ведётся работа по переходу на Рабочий стол сессии 0 (UI0Detect, который был вырезан из Windows 10 сборки 1803 и последующих).

Поддерживаемые ОС: Windows Vista, Windows 7, Windows 8/8.1, Windows 10. Только 64 битные версии.
Наилучшая работа приложения оптимизирована для Windows 10.

PS: пользуйтесь аккуратно! неверные действия могут обрушить систему в "синий экран" (к примеру запуск второго процесса wininit.exe (что невозможно сделать обычным запуском даже из-под Администратора) обрушит систему с исключением CRITICAL_PROCESS_DIED).
Вложения
Тип файла: 7z KernelExplorer.7z (191.5 Кб, 323 просмотров)

Последний раз редактировалось _lunar_; 17.01.2021 в 14:18.
_lunar_ вне форума  
Ответить с цитированием
Старый 23.01.2021, 21:51   Вверх   #2
*ANDROID*
Мужской Абсолютный
 
Аватар для *ANDROID*
 
Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
И чо с этим делать ?
__________________
Будущее настало!
*ANDROID* вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 24.01.2021, 18:04   Вверх   #3
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Цитата (*ANDROID*) »
И чо с этим делать ?
Пользоваться

А если серьёзно, то можно управлять сервисами, вытаскивать информацию из процессов, задавать привилегии в токене, и многое другое.

Например, откроем процесс Windows Defender
Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 337
Размер:	51.6 Кб
ID:	58724
и попробуем его грохнуть
Нажмите на изображение для увеличения
Название: 3.png
Просмотров: 286
Размер:	15.2 Кб
ID:	58725
Так как процесс защищенный (в данном случае ProtectedLight, а не полностью защищенный) без драйвера уровня ядра подступиться к нему нельзя.

Но этот процесс имеет сервис WinDefend. И не смотря на то, что он также защищенный, он имеет флаг не системного процесса.
Поэтому останавливая сервис, мы останавливаем и процесс Windows Defender (Process Id: n/a) и система остаётся без защиты
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 320
Размер:	57.1 Кб
ID:	58727

Повторный запуск службы создаст новый процесс MsMpEng.exe и Windows Defender снова запустится.

Крайне не советую удалять сервисы! (команда ds)
Восстановить их потом будет сложно.
В будущем добавлю функционал по созданию и восстановлению сервисов.

Последний раз редактировалось _lunar_; 24.01.2021 в 18:21.
_lunar_ вне форума  
Ответить с цитированием
Старый 24.01.2021, 18:17   Вверх   #4
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Новая сборка.

1. токен доступа заменен на SID учетной записи TrustedInstaller
2. расшифровка прав доступа к дескрипторам безопасности процессов/потоков в режиме beta (могут попасться процессы или потоки, чьи права не добавлены в базу, т.к. комбинаций может быть очень много)
3. добавлена новая команда utl (запуск утилит с требуемым параметрами из программы), но т.к. размер архива форумом ограничен, утилиты разместите сами в соответствующих папках
4. добавлен драйвер устройств ввода/вывода для Windows 10 в сессии 0 (спасибо ребятам из FireDaemon), установка через inf файл, работоспособность проверена в Windows 10 1709 и 20H2 (ака 2009)
5. переработан код main функции (уменьшен её размер, код открытия файла вынесен в отдельный модуль)
6. программа сама определяет версию Windows и использует нужный код (если в системных либах ОС нет новых оптимизированных функций, которые есть в Win10, то используются устаревшие функции)
7. общие улучшения и оптимизация кода
Вложения
Тип файла: 7z Release.7z (223.1 Кб, 312 просмотров)
_lunar_ вне форума  
Ответить с цитированием
Старый 24.01.2021, 21:34   Вверх   #5
*ANDROID*
Мужской Абсолютный
 
Аватар для *ANDROID*
 
Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
_lunar_ а может стоит сделать графический интерфейс ?

Добавлено через 3 минуты

_lunar_ на чём это написано ?
__________________
Будущее настало!
*ANDROID* вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 24.01.2021, 21:40   Вверх   #6
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
*ANDROID*
Да, GUI интерфейс это следующий этап.
Как только закончу с запланированным функционалом консольной версии, сразу займусь переносом кода на оконную версию.

Модули запуска с учёткой СИСТЕМА на C с применением NativeAPI, сама программа на C++ с применением WinAPI.

Последний раз редактировалось _lunar_; 24.01.2021 в 21:47.
_lunar_ вне форума  
Ответить с цитированием
Старый 26.01.2021, 18:12   Вверх   #7
Smirnoff
Мужской 12.12.1959 - 5.11.2025
 
Аватар для Smirnoff
 
Регистрация: 30.12.2004
Адрес: Новосибирск
Цитата (_lunar_) »
GUI интерфейс это следующий этап.
Это было бы интереснее; а то консольная утилита в винде для решения задач, которые вполне решает ProcessExplorer от Руссиновича (с GUI) несколько... э-э-э... сужает несколько круг потенциальных пользователей.
__________________
С уважением,
Олег Р. Смирнов
Smirnoff вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 27.01.2021, 09:21   Вверх   #8
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Цитата (Smirnoff) »
для решения задач, которые вполне решает ProcessExplorer от Руссиновича
Вот здесь бы я поспорил.
ProcessExplorer уже давно не актуален.
Руссинович пишет её для Microsoft, поэтому в её функционале нет и половины того, что может моя программа.
Насколько я помню (могу ошибаться, уже давно не пользуюсь ProcessExplorer), но вот к примеру включать привилегии в токене процесса она не умеет.
Да и задача ProcessExplorer это вывод информационной части - ReadOnly так сказать.

Я больше ориентируюсь на ProcessHacker. Но опять же, для некоторых действий ей нужен драйвер kprocesshacker.sys
Моя программа делает без какого-либо драйвера порядка 70% того, что делает ProcessHacker с драйвером.
Возвращаясь к привилегиям токена процесса - попробуйте включить какую-нибудь привилегию в том же wininit.exe в ProcessHacker без драйвера.
А потом в моей программе - op -> wininit.exe -> token -> (имя привилегии) -> включить/отключить/удалить
Единственный токен, к которому у меня пока что нет доступа это protected процесс System (ядро ОС)
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 316
Размер:	35.6 Кб
ID:	58735
к остальным токенам PP и PPL процессов моя программа имеет полный доступ (касаемо сервисов, то даже PPL сервисы могут управляться моей программой).

Будет время посвободней, сделаю описание всех функций и как ими пользоваться.

Последний раз редактировалось _lunar_; 27.01.2021 в 13:58.
_lunar_ вне форума  
Ответить с цитированием
Старый 28.01.2021, 14:49   Вверх   #9
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Закончена работа по переходу на Рабочий стол Default интерактивной Рабочей станции WinSta0 сессии 0.
Штатный инструмент UI0Detect.exe от Windows 10 сборки 1709 так и не удалось завести на 20H2.
Поэтому было принято решение написать свой сервис Обнаружения интерактивных служб.

Итак, небольшая инструкция:
1. если у вас Windows 10 (любой сборки) установите драйвер устройств ввода\вывода через FDUI0Input.inf (в папке UI0Input), перезагрузите компьютер
2. если у вас Windows Vista, Windows 7, Windows 8/8.1 и Windows 10 включительно до сборки 1709:
2.1. запустите ReqAdmin.exe -> выполните команду ui0 (Enter) -> выполните команду ss (Enter) -> введите UI0Detect (Enter), появится дефолтовое окно перехода в сессию 0
3. если у вас Windows 10 сборки 1803 и последующие:
3.1. проверьте не создан ли сервис Обнаружение интерактивных служб, если создан запустите ReqAdmin.exe -> выполните команду ds (Enter) -> введите UI0Detect (Enter)
3.2. удалите файл UI0Detect.exe в папке Windows\System32 (если таковой имеется)
3.3. запустите ReqAdmin.exe и выполните команду ui0 (Enter) -> выполните команду ss (Enter) -> введите UI0Detect (Enter)
3.4. выполните команду sw (Enter) -> введите Default (Enter), будет осуществлен переход в сессию 0
4. чтобы вернуться в сессию 1 - согласитесь с соответствующим уведомлением
Вложения
Тип файла: 7z KernelExplorer.7z (218.7 Кб, 308 просмотров)

Последний раз редактировалось _lunar_; 28.01.2021 в 15:08.
_lunar_ вне форума  
Ответить с цитированием
Старый 28.01.2021, 15:11   Вверх   #10
Smirnoff
Мужской 12.12.1959 - 5.11.2025
 
Аватар для Smirnoff
 
Регистрация: 30.12.2004
Адрес: Новосибирск
Цитата (_lunar_) »
Я больше ориентируюсь на ProcessHacker
В таком разе, твоя софтина - она больше для т.н. хацкеров/техногиков; так что разумнее про неё рассказывать на сайтах, которые для них и предназначены...
__________________
С уважением,
Олег Р. Смирнов
Smirnoff вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 28.01.2021, 21:58   Вверх   #11
Полковник Исаев
Мужской Абсолютный
 
Аватар для Полковник Исаев
 
Регистрация: 06.09.2003
Адрес: Москва
Цитата (_lunar_) »
ProcessExplorer уже давно не актуален.
Руссинович пишет её для Microsoft, поэтому в её функционале нет и половины того, что может моя программа.
Да серьёзно не актуален? А выглядит пока что так же ) https://youtu.be/i9DrGNL_LZ8
__________________
ПУК - Последняя Удачная Конфигурация.
(с) veroni4ka
Полковник Исаев вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 28.01.2021, 22:56   Вверх   #12
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Полковник Исаев
Да не вопрос, пользуйтесь чем угодно, считайте актуальным что угодно.
Я выразил своё мнение по отношению к совершено скудной функциональности PE.
_lunar_ вне форума  
Ответить с цитированием
Старый 30.01.2021, 18:28   Вверх   #13
*ANDROID*
Мужской Абсолютный
 
Аватар для *ANDROID*
 
Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
Цитата (_lunar_) »
сделаю описание всех функций и как ими пользоваться.
Обычно это намного проще, чем сделать прогу.

Добавлено через 10 минут

Как то очень давно делал прогу по шифрованию данных, мало ли что накосячено в стороннем софте, да и хакеры с ней не знакомы. Так вот большинство юзеров не смогли разобраться там без подробного описания. Хотя всё довольно просто.
__________________
Будущее настало!
*ANDROID* вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 03.03.2021, 17:14   Вверх   #14
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
К сожалению до GUI я пока не добрался. Следующие пару недель будут посвободнее, начну проектировать форму (скорее всего на WinAPI).
Но значительно расширил функционал по отношению к той версии, которая здесь выложена.

Из нового:
1. написал небольшую справку - команда help (Enter)

2. теперь можно снимать защиту с ProtectedLite процессов через их сервис (в Windows 8.1 и новее)
в качестве примера:
открываете сервис wscsvc (Центр обеспечения безопасности)
os (Enter) -> wscsvc (Enter) -> op (Enter) -> введите идентификатор процесса из Process Id
программа выдаст информацию о том, что этот процесс ProtectedLite и выдаст "скудную" информацию о SACL (DACL без драйвера режима ядра недоступен)
затем остановите сервис, измените его защиту и снова его запустите
ss (Enter) -> wscsvc (Enter) -> prot (Enter) -> wscsvc (Enter) -> 1 (Enter) -> ss (Enter) -> wscsvc (Enter)
откройте сервис и откройте его родительский процесс
os (Enter) -> wscsvc (Enter) -> op (Enter) -> введите идентификатор процесса из Process Id
программа выдаст полную информацию о процессе, включая весь SACL и DACL
в целях безопасности проделайте обратную операцию и верните сервису защиту WindowsLite

для эксперимента попробуйте точно также изменить защиту в ProcessHacker с включенным драйвером режима ядра - в результате получите "Отказано в доступе"
Нажмите на изображение для увеличения
Название: fcer445.jpg
Просмотров: 311
Размер:	165.8 Кб
ID:	58943

3. удаление "не удаляемого" файла (файл который открыт или занят процессом)

4. работа с сервисом UI0Detect оптимизирована для всех версий Windows

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

6. оптимизация кода и исправления ошибок

Известные баги:
- неполный токен системного процесса (не хватает 12 байт в дескрипторе безопасности главного потока)
не знаю почему полностью не дуплицируется дескриптор, но на работу это вроде как не влияет (судя по тестам)

Скачать - ЗДЕСЬ (нажмите СКАЧАТЬ ВСЕ)

Последний раз редактировалось _lunar_; 04.03.2021 в 14:23.
_lunar_ вне форума  
Ответить с цитированием
Старый 16.03.2021, 17:55   Вверх   #15
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Первая GUI сборка
Нажмите на изображение для увеличения
Название: vnkj5b.png
Просмотров: 261
Размер:	24.0 Кб
ID:	58999

Весь функционал из консольной версии ещё не перекинул (писать окно на Win32 API то ещё "веселье"), но пока есть свободное время решил всё таки начать разработку графического интерфейса.

Консольная версия продолжает жить, и интегрирована в основную программу.
Новые функции я отрабатываю сначала на консольной версии (т.к. нет необходимости в адаптации к Win32 API), а уже потом произвожу перенос.
Поэтому в крайних случая я рекомендую пользоваться консольной версией, т.к. она более стабильна и более протестирована.

Скачать можно здесь KernelExplorer
Ссылка постоянная, поэтому самая актуальная версия будет всегда там.
Либо можно воспользоваться функционалом обновления программы из меню.
_lunar_ вне форума  
Ответить с цитированием
Старый 16.03.2021, 20:03   Вверх   #16
Полковник Исаев
Мужской Абсолютный
 
Аватар для Полковник Исаев
 
Регистрация: 06.09.2003
Адрес: Москва
_lunar_
Гуй не рабочий совсем, кнопка ОК не активна при любых заданных параметрах создания процесса.
__________________
ПУК - Последняя Удачная Конфигурация.
(с) veroni4ka
Полковник Исаев вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 16.03.2021, 21:01   Вверх   #17
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Полковник Исаев
Я эти кнопки отключил намеренно. Там не полностью реализовано задуманное, и чтобы не ломать логику приложения (возможно поменяю radioBtn на checkBox) создание процессов пока недоступно.
Надеюсь до конца недели хватит времени доделать то, что запланировал, в том числе и создание процессов.
_lunar_ вне форума  
Ответить с цитированием
Старый 16.03.2021, 21:17   Вверх   #18
*ANDROID*
Мужской Абсолютный
 
Аватар для *ANDROID*
 
Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
Цитата (_lunar_) »
Поэтому в крайних случая я рекомендую пользоваться консольной версией, т.к. она более стабильна и более протестирована.
И как же ей пользоваться не имея подробного мануала ?
__________________
Будущее настало!
*ANDROID* вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 23.04.2021, 00:42   Вверх   #19
*ANDROID*
Мужской Абсолютный
 
Аватар для *ANDROID*
 
Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
Цитата (_lunar_) »
GUI версией
Кстати как там успехи, появилось что нибудь интересное ?
__________________
Будущее настало!
*ANDROID* вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 23.04.2021, 12:34   Вверх   #20
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Цитата (*ANDROID*) »
появилось что нибудь интересное ?
открыл доступ к рабочей станции Service-0x0-3e7$ (LocalSystem).
интересен тот факт, что эта станция одновременно имеет и не имеет рабочий стол.
т.е. по факту, созданный там процесс (не важно GUI или консольный), не будет иметь какого-либо отображения интерфейса, или взаимодействия с пользователем.
но эта станция имеет некоторые флаги доступа к рабочему столу Default от оконной станции WinSta0 сессии 0.
в рабочей станции Service-0x0-3e7$ находятся службы, хендлы которых могут быть унаследованы (видно из отладчика).
можно написать сервис, который будет наследовать какой-либо хендл из этих процессов и запускаться непосредственно в этом же окружении.
управлять таким сервисом нужно будет через каналы.
в теории это может дать контроль аудита над определенным функционалом ОС.

к станциям Service-0x0-3e4$ (NetworkService) и Service-0x0-3e5$ (LocalService) тоже можно получить доступ, но там ничего интересного нет, часть хедлов находятся под защитой уровня Protected.

также в Windows 10 есть ещё одна интересная рабочая станция msswindowstation (рабочий стол называется mssrestricteddesk).
скорее всего это станция запроса UAC.
если в лоб расшифровать, получится примерно следующее:
msswindowstation - MicroSoft Security Window Stantion
а рабочий стол mssrestricteddesk прям так и переводится - рабочий стол с ограниченным доступом.
_lunar_ вне форума  
Ответить с цитированием
Старый 03.08.2024, 14:49   Вверх   #21
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Новая версия
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 36
Размер:	90.4 Кб
ID:	63894
Переход IDE от Visual Studio VC++ на Pelles C.
Полностью GUI, уменьшено количество вспомогательных файлов (всё управление утилитой из одного исполняемого файла).

Из ключевых особенностей:
- переход в терминальную сессию (окружение ядра ОС) на любой версии Windows
- снятие защиты с protected служб\сервисов и перезапуск процесса (уже не защищенного)
- удаление "занятых" файлов
- включение\выключение привилегий
- создание системного процесса в любой сессии (терминальной и пользовательской)
- информация об объектах ядра (процесс, сервис, токен), двойной щелчок левой кнопкой мыши по спискам (правая кнопка мыши - обновление списков)
Нажмите на изображение для увеличения
Название: 2.jpg
Просмотров: 33
Размер:	84.7 Кб
ID:	63896

Инструкция:
1. SystemResearch.zip - основная утилита (для удобства сделаны куча подсказок на английском языке)
Следующие пункты можно не выполнять, если вам не нужна терминальная сессия.
2. UI0Detect.zip - сервис для перехода в терминальную сессию
2.1. Wls0wndh.dll - вспомогательная утилита для возврата из терминальной сессии
UI0Detect.exe и Wls0wndh.dll необходимо разместить в папке Windows\System32
Если файл UI0Detect.exe уже существует (а это все ОС до Windows 10 build 1709 включительно), то заменять его не нужно.
Тоже самое касается файла Wls0wndh.dll - в Windows 7 он уже существует.
3. FDUI0Input.zip - драйвер клавиатуры и мыши для терминальной сессии. Без него Input устройства работать не будут.
Читайте справку для какой ОС какая версия. Если у вас Windows 10 build 1709 и более ранние, то этот драйвер устанавливать не нужно.
4. После установки драйвера FDUI0Input.sys обязательно перезагрузить компьютер.

Предельно внимательно пользуйтесь данной утилитой. SystemResearch может положить систему и\или вызвать BSOD за один щелчок по кнопке (утилита работает с правами как сама ОС).

Virus Total - https://www.virustotal.com/gui/file/...b558?nocache=1 (файл чист)

Последний раз редактировалось _lunar_; 03.08.2024 в 14:54.
_lunar_ вне форума  
Ответить с цитированием
Старый 05.08.2024, 14:43   Вверх   #22
XaXoL
Мужской Модератор
 
Аватар для XaXoL
 
Регистрация: 17.03.2004
Адрес: K-PAX
Цитата (_lunar_) »
Virus Total - https://www.virustotal.com/gui/file/...b558?nocache=1 (файл чист)
Прошёл по ссылке, а там:
Цитата
2/74 security vendors flagged this file as malicious
XaXoL вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 05.08.2024, 15:47   Вверх   #23
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Цитата (XaXoL) »
Прошёл по ссылке, а там:
И?
Какие-то ноунейм аверы ложно сработали. И то что остальные 72 авера промолчали это мелочи?
Мой код не подписан сертификатом и не является драйвером, который был бы интегрирован в ОС и ни один авер в жизни не ругнулся.

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

Да и в целом, можно ознакомиться с алгоритмами детекта и понять как работают ноунейм аверы и аверы, которые только накапливают базу.
_lunar_ вне форума  
Ответить с цитированием
Старый 05.08.2024, 16:02   Вверх   #24
XaXoL
Мужской Модератор
 
Аватар для XaXoL
 
Регистрация: 17.03.2004
Адрес: K-PAX
_lunar_
я без претензий, просто зашёл, увидел, сообщил.
XaXoL вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 05.08.2024, 16:19   Вверх   #25
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
XaXoL
обычно нужно смотреть всего не несколько нормальных аверов: AVG, BitDefender, DrWeb, Avast + ESET-NOD32 + Panda (эти с натяжкой), Malwarebytes, Kaspersky
если они молчат - ничего опасного в файле нет.

а так, если есть вопросы касаемо самой утилиты с удовольствием отвечу.
функционал не полный, можно увидеть пустые заготовки, в частности в ближайшее время планирую доработать SACL и DACL с возможностью добавления контроля над объектом.
_lunar_ вне форума  
Ответить с цитированием
Старый 06.08.2024, 00:28   Вверх   #26
XaXoL
Мужской Модератор
 
Аватар для XaXoL
 
Регистрация: 17.03.2004
Адрес: K-PAX
Цитата (_lunar_) »
а так, если есть вопросы касаемо самой утилиты с удовольствием отвечу.
Это хорошо. Но я пока даже на знаю зачем и для чего эту утиль мне использовать.
XaXoL вне форума  
Конфигурация ПК
Ответить с цитированием
Старый 06.08.2024, 12:37   Вверх   #27
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Цитата (XaXoL) »
Но я пока даже на знаю зачем и для чего эту утиль мне использовать.
В Windows 10\11 есть защищенные процессы с разным уровнем защиты
Нажмите на изображение для увеличения
Название: 3.png
Просмотров: 34
Размер:	86.2 Кб
ID:	63912
Часть из них это хост-процессы, управляемые через службу\сервис.
К примеру: сервис wscsvc - Центр обеспечения безопасности
Имеет уровень защиты WindowsLite. Хост-процесс, который запускает этот сервис, имеет такой же уровень защиты.
Запускаем утилиту с токеном TrustedInstaller, останавливаем сервис, выключаем защиту и запускаем вновь.
В итоге хост-процесс запустится без защиты и к его дескриптору открыт полный доступ.

Менеджер привилегий позволяет включать и отключать привилегии в токене процесса (позже возможно реализую и в токене сервиса, хотя это бессмысленная функциональность, т.к. настройки сервиса захардкодены в ControlSet).
К примеру, чтобы получить информацию по дескриптору безопасности (Security Descriptor) необходимо включить привилегию SeSecurityPrivilege.
Или чтобы создать токен (чистый морф из ядра) требуется привилегия SeCreatePrivilege (доступна при токене LocalSystem).
Для доступа к ACL (список управления доступом) требуются определенные права в дескрипторе процесса (соответственно включаем SACL и/или DACL).

Функционал по удалению "занятого" файла. Если файл занят каким-то процессом (драйвер, вирус или ещё что) - Delete Locked File.
Принцип следующий - утилита отсоединяет поток (stream) от файловой системы и удаляет файл полностью. Остаётся только процесс, который можно грохнуть или просто перезагрузить ПК.

И массивный функционал по терминальной сессии (с чего собственно и началось проектирование данной утилиты).
При загрузке ядра, ОС создаёт окружение. Сперва создаётся терминальная сессия (SessionID = 0). В ней создаётся Рабочая станция (существуют интерактивная рабочая станция (WinSta0) для отображения GUI, и не интерактивные для расположения сервисов и служб). После создаётся рабочий стол (существуют несколько столов - Winlogon, Default, Disconnect и другие). Там запускаются минимальные процессы - System, Wininit.exe, smss.exe, csrss.exe и прочие.
Когда это всё проинициализированно, ядро создаёт новое окружение - пользовательская сессия (SessionID = 0+n). В ней запускается winlogon.exe, userinit.exe который запускает проводник (explorer.exe) а сам затем переходит в состояние зомби процесса (его идентификатор остаётся в системе, но дескриптор создаётся с ограничениями и процесса фактически не существует).
Так вот утилита даёт возможность попасть в окружение ядра ОС - в терминальную сессию SessionID = 0 и там работать без пользовательской оболочки минуя юзерские API.

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

И создание процессов. Например можно создать процесс SystemInformer (ака ProcessHacker) или Explorer++ в терминальной сессии и там работать с проводником для GUI удобства.

Последний раз редактировалось _lunar_; 06.08.2024 в 12:50.
_lunar_ вне форума  
Ответить с цитированием
Старый 05.09.2024, 08:13   Вверх   #28
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Обновление утилиты до версии 1.3.4

Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 24
Размер:	29.2 Кб
ID:	64088 Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 29
Размер:	29.8 Кб
ID:	64089

Всю информацию об объекте ядра в списки ACL я занёс, кроме SE_OBJECT_TYPE (пока используемый метод не работает, позже постараюсь решить проблему).
Из неудобств (временных) - TreeView не выводит строку длиннее 260 символов (касается некоторых списков прав доступа объекта, остальное всё умещается).
Постарался структурировать TreeView так, чтобы было удобно читать.
Пришлось повозиться с SACL процесса lsass.exe - в новых ОС он имеет два ACE. При получении структуры EXPLICIT_ACCESS (в частности перечисления ACCESS_MODE) вылетает 87 ошибка.
Вложения
Тип файла: zip SystemResearch.zip (53.6 Кб, 25 просмотров)
_lunar_ вне форума  
Ответить с цитированием
Старый 13.09.2024, 15:39   Вверх   #29
_lunar_
Мужской Новенький
Автор темы
 
Регистрация: 16.01.2021
Обновление утилиты до версии 1.3.5

1. Добавлена поддержка Windows 11 24H2
- упорядочены сигнатуры для не экспортируемой функции GetSecurityInfoEx
- исправлена битовая маска для преобразования номера билда ОС (в некоторых случаях таблицы SACL\DACL могли загружаться по неверному адресу, что приводило к аварийному завершению программы)
2. Часть строковых переменных убрана из кода в ресурсы (данные)
3. Разделение списка прав на объектные и общие (GeneralAccess) для более корректного вывода в строку TreeView
4. Мелкие фиксы кода
Вложения
Тип файла: zip SystemResearch.zip (55.6 Кб, 21 просмотров)
_lunar_ вне форума  
Ответить с цитированием
Ответ Создать новую тему


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 05:11. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4 Patch Level 5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot