# Лабораторная работа №3 "Big Windows Boss" (Остапенко В.Ю.)
---
## **Цель работы:**
- Получить понимание структуры исполняемых файлов Windows.
- Получить базовые навыки по анализу запущенных в системе процессов.
- Знакомство с типовыми сервисами ОС: Task Scheduler и службами Windows.
- Получить базовые навыки работы с DACL и Брандмауэром Windows.
---
## Практическая часть
### 1. Анализ дампа запущенного процесса
Для начала открываю **notepad++** и записываю в него случаюную фразу (в моём случае - "Heisenberg").

> Рис 1. Notepad++
Далее, запускаю ProcessExplorer, нахожу запущенный notepad++ (предварительно отфильровав процессы по нужному имени) и делаю его дамп.

> Рис 2. Дамп процесса Notepad++

> Рис 3. Сохраняю дамп в удобную директорию.
Открыв дамп памяти, нахожу введёный ранее текст.

> Рис 4. "Heisenberg" в файле дампа
:::success
Задание выполнено успешно!
:::
---
### 2. Анализ PID и ParentPID запущенных процессов
#### Задание 1. Попробуйте определить, какой процесс инициировал запуск данных процессов svchost.exe

Для выполнения задания необходимо определить ParentPID родительских процессов из предыдущего скриншота:

ParentPID процессов - 1016, что соответсвует процессу "services.exe"
:::info
Можно выстроить цепочку: **Процессы "svchost.exe" < "services.exe" < "winlogon.exe" < "smss.exe" < "System"**
:::
#### Задание 2. Какой процесс был запущен при помощи Проводника?
Проводнику (**explorer.exe**) соответсвует PID - **880**. Единственным процессом имеющим ParentPID = 880 является процесс **sqlmangr.exe (PID - 1512)**

#### Задание 3. Назовите ID процесса, имеющего максимальное количество дочерних процессов.
Не трудно заметить что в столбце PPID преобладает значение **1016** (15 процессов). Данный PID соответсвует процессу **"services.exe"**

#### Задание 4*. Откройте на своем ПК ProcessExplorer, сделайте скриншот процессов так, чтобы было видно их название и PID. Дайте краткую аналитику запущенных процессов (PID, родительский процесс, краткое описание процесса будет плюсом).
Разбирать каждый процесс давольно муторное и бессмысленое занятие. Поэтому рассмотрю лишь несколько процессов для демонстрации.

:::info
Алгоритм просмотра подробной инофрмации о процессе прост - **"ПКМ по процуссу -> Properties..."**
:::
a) Процесс notepad++.exe

Процесс соответсвует рассмотренему ранее приложению nodepad++. PID - 8472, ParentPID - 7828 (explorer.exe)
б) AMD External Events Client Module (atieclxx.exe)
Процесс отвечает за автоматическое определение и работу с подключёнными мониторами. PID - 13608 (или для аналогичного процесса - 2712). ParentPID - 2288 (atiesrxx.exe)

в) Search application (SearchApp.exe)
Процесс отвечает за поисковую строку Windows (в моём случае процесс не работает корректно, поэтому он "заморожен"). PID - 15836. ParentPID - 1172 (svchost.exe)

---
### 3. Создание задачи в Task Scheduler
В Task Scheduler создаю новое задание

Добавляю тригер

Добавляю дейсвтвие

:::info
Я не использую Chrome, поэтому использую иной браузер (Brave)
:::
Произвожу проверку:

:::success
Успех
:::

Для того, чтобы ответить на вопрос "почему при данном методе запуска родительским процессом стал svchost.exe, а не explorer.exe", стоит рассмотреть пару моментов.
а) В случае если процесс был запущен используя графический интерфейс (т.е. проводник), то и родительским процессом, соответсвенно будет explorer.exe.
б) Теперь, чтобы понять почему именно "svchost.exe" - рассмотрю данный процесс.

Параметр командной строки "**-s Schedule**" показывает, что данный процесс svchost и отвечает за планировщик задач, и, следовательно, он и будет ялвяться родительским процессом для всех запланированных задач.
#### Самостоятельное задание. Создайте задачу, однократно запускающую любое приложение по достижении определенного времени.
Создам задание автоматически запускающие hex редактор (HxD):

Назначаю время выполнения 22:00 (для меня + 5 минут)

Назначаю действие

Дожидаюсь нужного времени:

:::success
Успех!
:::
---
### 4. Анализ запущенных служб, запуск исполняемого файла как службы
#### Домашнее задание. Установка Блокнота (notepad.exe) как системной службы.
Добавляю notepad.exe как системную службу

:::success
Служба добавлена
:::
Запуск службы в оснастке services.msc:


:::danger
Ошибка запуска службы
:::
Не забываю удалить службу

----
### 5. DACL
#### Задание: попробуйте запретить своей УЗ запускать любой исполняемый файл (это может быть браузер/игра/любая другая программа).
Моим подопытным в очередной раз станет Hex редактор HxD.
Запрещаю "чтение и выполнение" файла HxD.exe

Итог:

:::success
Успех! Возможность запуска программы была заблокирована.
:::
---
### 6. Брандмауэр Windows
#### Задание: запретите выход в интернет с конкретного приложения (желательно с браузера). Результатом работы станет скриншот с настройками правила для брандмауэра и скриншот с ошибкой от браузера.
Создаю новое правило (для программы - браузера)

> Назначаю конкретную программу в качестве жертвы (вновь Brave браузер)
Создаю правило, для запрета http протокола.


Ошибка при получении доступа к сайту (http)

Теперь запрещу любой доступ к выходу в интернет.

Ошибка при получении доступа к сайту (https)

----
### Заключение.
#### В ходе выполнения был получен опыт работы в разных аспектах работы с Windows: работа со служюами и их изучение, создание дампов памяти, планировка задач, работа с доступом (DACL), и др. Для меня особо интересным стала возможность добавления программ, таких, например, как, notepad в качестве службы, при том что такую службу запустить невозможно.