![]() |
|
Сайт 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 (Enter) поэтому выкладывать сборки в архивах я больше не буду, нужно один раз скачать с Google Диска и дальше просто пользоваться функцией обновления 6. оптимизация кода и исправления ошибок Известные баги: - неполный токен системного процесса (не хватает 12 байт в дескрипторе безопасности главного потока) не знаю почему полностью не дуплицируется дескриптор, но на работу это вроде как не влияет (судя по тестам) Скачать - ЗДЕСЬ (нажмите СКАЧАТЬ ВСЕ) Последний раз редактировалось _lunar_; 04.03.2021 в 14:23. |
![]() |
![]() |
![]() |
[включить плавающее окно] #15 |
![]() Автор темы Регистрация: 16.01.2021
|
Первая GUI сборка
Весь функционал из консольной версии ещё не перекинул (писать окно на Win32 API то ещё "веселье"), но пока есть свободное время решил всё таки начать разработку графического интерфейса. Консольная версия продолжает жить, и интегрирована в основную программу. Новые функции я отрабатываю сначала на консольной версии (т.к. нет необходимости в адаптации к Win32 API), а уже потом произвожу перенос. Поэтому в крайних случая я рекомендую пользоваться консольной версией, т.к. она более стабильна и более протестирована. Скачать можно здесь KernelExplorer Ссылка постоянная, поэтому самая актуальная версия будет всегда там. Либо можно воспользоваться функционалом обновления программы из меню. |
![]() |
![]() |
![]() |
[включить плавающее окно] #16 |
![]() Регистрация: 06.09.2003
Адрес: Москва
|
_lunar_
Гуй не рабочий совсем, кнопка ОК не активна при любых заданных параметрах создания процесса.
__________________
ПУК - Последняя Удачная Конфигурация. (с) veroni4ka |
![]() |
![]() |
![]() |
[включить плавающее окно] #17 |
![]() Автор темы Регистрация: 16.01.2021
|
Полковник Исаев
Я эти кнопки отключил намеренно. Там не полностью реализовано задуманное, и чтобы не ломать логику приложения (возможно поменяю radioBtn на checkBox) создание процессов пока недоступно. Надеюсь до конца недели хватит времени доделать то, что запланировал, в том числе и создание процессов. |
![]() |
![]() |
![]() |
[включить плавающее окно] #18 |
![]() Регистрация: 27.06.2009
Адрес: Великая страна, секретный бункер
|
Цитата
(_lunar_) »
Поэтому в крайних случая я рекомендую пользоваться консольной версией, т.к. она более стабильна и более протестирована.
![]()
__________________
Будущее настало! |
![]() |
![]() |
![]() |
[включить плавающее окно] #19 |
![]() Регистрация: 20.04.2021
Адрес: Бекасовка
|
Лунарчик простой болтун (с сайта призраков Кибер форум).
Однажды он сказал следующее "IDA - (программа Ильфака), примитивная чепуха"! |
![]() |
![]() |