Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 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 Кб, 25 просмотров)

Последний раз редактировалось _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
Просмотров: 32
Размер:	51.6 Кб
ID:	58724
и попробуем его грохнуть
Нажмите на изображение для увеличения
Название: 3.png
Просмотров: 27
Размер:	15.2 Кб
ID:	58725
Так как процесс защищенный (в данном случае ProtectedLight, а не полностью защищенный) без драйвера уровня ядра подступиться к нему нельзя.

Но этот процесс имеет сервис WinDefend. И не смотря на то, что он также защищенный, он имеет флаг не системного процесса.
Поэтому останавливая сервис, мы останавливаем и процесс Windows Defender (Process Id: n/a) и система остаётся без защиты
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 29
Размер:	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 Кб, 22 просмотров)
_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
Мужской Модератор
 
Аватар для 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
Просмотров: 26
Размер:	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 Кб, 24 просмотров)

Последний раз редактировалось _lunar_; 28.01.2021 в 15:08.
_lunar_ вне форума  
Ответить с цитированием
Непрочитано 28.01.2021, 15:11   [включить плавающее окно]   #10
Smirnoff
Мужской Модератор
 
Аватар для 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
Просмотров: 5
Размер:	165.8 Кб
ID:	58943

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

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

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

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

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

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

Последний раз редактировалось _lunar_; 03.03.2021 в 19:46.
_lunar_ вне форума  
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

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

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

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


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey