![]() |
|
Сайт 3DNews | Регистрация | Правила | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
![]() ![]() |
Опции темы | Опции просмотра |
![]() |
[включить плавающее окно] #1 | |
![]() Автор темы Регистрация: 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). Последний раз редактировалось _lunar_; 17.01.2021 в 14:18. |
|
![]() |
![]() |
![]() |
[включить плавающее окно] #2 |
![]() Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
|
И чо с этим делать ?
__________________
Будущее настало! |
![]() |
![]() |
![]() |
[включить плавающее окно] #3 |
![]() Автор темы Регистрация: 16.01.2021
|
Цитата
(*ANDROID*) »
И чо с этим делать ?
![]() А если серьёзно, то можно управлять сервисами, вытаскивать информацию из процессов, задавать привилегии в токене, и многое другое. Например, откроем процесс Windows Defender и попробуем его грохнуть Так как процесс защищенный (в данном случае ProtectedLight, а не полностью защищенный) без драйвера уровня ядра подступиться к нему нельзя. Но этот процесс имеет сервис WinDefend. И не смотря на то, что он также защищенный, он имеет флаг не системного процесса. Поэтому останавливая сервис, мы останавливаем и процесс Windows Defender (Process Id: n/a) и система остаётся без защиты Повторный запуск службы создаст новый процесс MsMpEng.exe и Windows Defender снова запустится. Крайне не советую удалять сервисы! (команда ds) Восстановить их потом будет сложно. В будущем добавлю функционал по созданию и восстановлению сервисов. Последний раз редактировалось _lunar_; 24.01.2021 в 18:21. |
![]() |
![]() |
![]() |
[включить плавающее окно] #4 |
![]() Автор темы Регистрация: 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. общие улучшения и оптимизация кода |
![]() |
![]() |
![]() |
[включить плавающее окно] #5 |
![]() Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
|
_lunar_ а может стоит сделать графический интерфейс ?
Добавлено через 3 минуты _lunar_ на чём это написано ?
__________________
Будущее настало! |
![]() |
![]() |
![]() |
[включить плавающее окно] #6 |
![]() Автор темы Регистрация: 16.01.2021
|
*ANDROID*
Да, GUI интерфейс это следующий этап. Как только закончу с запланированным функционалом консольной версии, сразу займусь переносом кода на оконную версию. Модули запуска с учёткой СИСТЕМА на C с применением NativeAPI, сама программа на C++ с применением WinAPI. Последний раз редактировалось _lunar_; 24.01.2021 в 21:47. |
![]() |
![]() |
![]() |
[включить плавающее окно] #7 |
![]() Регистрация: 30.12.2004
Адрес: Новосибирск
|
Цитата
(_lunar_) »
GUI интерфейс это следующий этап.
__________________
С уважением, Олег Р. Смирнов |
![]() |
![]() |
![]() |
[включить плавающее окно] #8 |
![]() Автор темы Регистрация: 16.01.2021
|
Цитата
(Smirnoff) »
для решения задач, которые вполне решает ProcessExplorer от Руссиновича
ProcessExplorer уже давно не актуален. Руссинович пишет её для Microsoft, поэтому в её функционале нет и половины того, что может моя программа. Насколько я помню (могу ошибаться, уже давно не пользуюсь ProcessExplorer), но вот к примеру включать привилегии в токене процесса она не умеет. Да и задача ProcessExplorer это вывод информационной части - ReadOnly так сказать. Я больше ориентируюсь на ProcessHacker. Но опять же, для некоторых действий ей нужен драйвер kprocesshacker.sys Моя программа делает без какого-либо драйвера порядка 70% того, что делает ProcessHacker с драйвером. Возвращаясь к привилегиям токена процесса - попробуйте включить какую-нибудь привилегию в том же wininit.exe в ProcessHacker без драйвера. А потом в моей программе - op -> wininit.exe -> token -> (имя привилегии) -> включить/отключить/удалить Единственный токен, к которому у меня пока что нет доступа это protected процесс System (ядро ОС) к остальным токенам PP и PPL процессов моя программа имеет полный доступ (касаемо сервисов, то даже PPL сервисы могут управляться моей программой). Будет время посвободней, сделаю описание всех функций и как ими пользоваться. Последний раз редактировалось _lunar_; 27.01.2021 в 13:58. |
![]() |
![]() |
![]() |
[включить плавающее окно] #9 |
![]() Автор темы Регистрация: 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 - согласитесь с соответствующим уведомлением Последний раз редактировалось _lunar_; 28.01.2021 в 15:08. |
![]() |
![]() |
![]() |
[включить плавающее окно] #10 |
![]() Регистрация: 30.12.2004
Адрес: Новосибирск
|
Цитата
(_lunar_) »
Я больше ориентируюсь на ProcessHacker
__________________
С уважением, Олег Р. Смирнов |
![]() |
![]() |
![]() |
[включить плавающее окно] #11 |
![]() Регистрация: 06.09.2003
Адрес: Москва
|
Цитата
(_lunar_) »
ProcessExplorer уже давно не актуален.
Руссинович пишет её для Microsoft, поэтому в её функционале нет и половины того, что может моя программа.
__________________
ПУК - Последняя Удачная Конфигурация. (с) veroni4ka |
![]() |
![]() |
![]() |
[включить плавающее окно] #12 |
![]() Автор темы Регистрация: 16.01.2021
|
Полковник Исаев
Да не вопрос, пользуйтесь чем угодно, считайте актуальным что угодно. Я выразил своё мнение по отношению к совершено скудной функциональности PE. |
![]() |
![]() |
![]() |
[включить плавающее окно] #13 |
![]() Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
|
Цитата
(_lunar_) »
сделаю описание всех функций и как ими пользоваться.
Добавлено через 10 минут Как то очень давно делал прогу по шифрованию данных, мало ли что накосячено в стороннем софте, да и хакеры с ней не знакомы. Так вот большинство юзеров не смогли разобраться там без подробного описания. Хотя всё довольно просто.
__________________
Будущее настало! |
![]() |
![]() |
![]() |
[включить плавающее окно] #14 |
![]() Автор темы Регистрация: 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 с включенным драйвером режима ядра - в результате получите "Отказано в доступе" 3. удаление "не удаляемого" файла (файл который открыт или занят процессом) 4. работа с сервисом UI0Detect оптимизирована для всех версий Windows 5. реализован функционал обновления программы через интернет - команда upd поэтому выкладывать сборки в архивах я больше не буду, нужно один раз скачать с Google Диска и дальше просто пользоваться функцией обновления 6. оптимизация кода и исправления ошибок Известные баги: - неполный токен системного процесса (не хватает 12 байт в дескрипторе безопасности главного потока) не знаю почему полностью не дуплицируется дескриптор, но на работу это вроде как не влияет (судя по тестам) Скачать - ЗДЕСЬ (нажмите СКАЧАТЬ ВСЕ) Последний раз редактировалось _lunar_; 03.03.2021 в 19:46. |
![]() |
![]() |