PowerShell для новичков [Первые шаги в безопасности]
PowerShell — это удобный инструмент от Microsoft, который помогает управлять компьютером и проверять его состояние. Для специалистов по информационной безопасности он полезен, чтобы быстро посмотреть, что происходит в системе. Этот урок научит вас самым простым командам и покажет, как работать с путями, даже если там есть русские буквы или пробелы. Ничего сложного — начнем с азов.
Чтобы открыть PowerShell, нажмите Win + S, введите "PowerShell" и выберите "Windows PowerShell". Если вы хотите видеть больше данных, например, системные службы, запустите его от имени администратора — для этого щелкните правой кнопкой и выберите "Запуск от имени администратора". Откроется окно, где можно вводить команды.
Хотите разбирать реальные случаи взломов и разбираться в киберугрозах?
В своём Telegram-канале Security Controls я делюсь историями атак, методами защиты и разбором уязвимостей. Подписывайтесь, если тема безопасности вам интересна.
Начнем с простого. Введите `Get-Process`, и PowerShell покажет, какие программы сейчас работают. Вы увидите таблицу с именами вроде "notepad" (Блокнот) или "chrome" (браузер), их номерами (PID) и сколько они используют ресурсов. Это как список того, что запущено на вашем компьютере. Хотите узнать, откуда идет процесс? Введите `Get-Process -Name "notepad" | Select-Object Name, Path`. Если Блокнот открыт, вы увидите что-то вроде "notepad" и "C:\Windows\System32\notepad.exe". Если его нет, ничего страшного — просто запустите Блокнот и попробуйте снова.
Дальше — службы. Введите `Get-Service`, и PowerShell покажет, какие службы работают или остановлены. Это как список помощников в системе — например, "W32Time" отвечает за время, а "WinDefend" — это Windows Defender. Вы можете увидеть, включена ли защита. Останавливать службы пока не будем — это лучше делать, когда вы точно знаете, что делаете.
Для файлов есть команда `Get-ChildItem`. Введите `Get-ChildItem -Path "C:\Windows"`, и вы увидите, что лежит в папке "Windows". Это похоже на просмотр папки в проводнике, только через текст. Хотите посмотреть свою папку? Попробуйте `Get-ChildItem -Path "C:\Users"`.
Что делать, если в пути русские буквы или пробелы? Например, у вас есть папка "C:\Users\Иван Иванов". Без кавычек PowerShell может запутаться. Введите `Get-ChildItem -Path "C:\Users\Иван Иванов"`, и все сработает. Двойные кавычки — это как рамка для пути, чтобы он читался правильно. Попробуйте сами — создайте папку "Тест Папка" на диске C и введите `Get-ChildItem -Path "C:\Тест Папка"`. Увидите, что внутри, если там что-то есть.
Можно упростить работу с помощью переменной. Введите `$myFolder = "C:\Users\Иван Иванов"`, а потом `Get-ChildItem -Path $myFolder`. Переменная — это как ярлык, чтобы не писать длинный путь каждый раз. Проверьте, что она работает, введя `Write-Output $myFolder` — вы увидите "C:\Users\Иван Иванов".
Как это помогает в безопасности? Представьте, что в `Get-Process` вы видите незнакомый процесс, например, "strange.exe". Введите `Get-Process -Name "strange" | Select-Object Name, Path`, и узнайте, откуда он. Если путь "C:\Users\Иван\Temp" вместо "C:\Program Files", это может быть подозрительно. Пока не будем его останавливать — просто запомните, что путь дает подсказку. Или в `Get-Service` проверьте, работает ли "WinDefend". Если нет, это повод задуматься.
Несколько простых советов. Нажимайте `Tab`, чтобы PowerShell сам дописывал команды. Например, введите `Get-Pro` и нажмите `Tab` — получится `Get-Process`. Если что-то непонятно, добавьте `-?`, например, `Get-Process -?`, и PowerShell покажет подсказку. Не трогайте процессы и службы, если не уверены — лучше сначала разобраться.
Попробуйте сами. Введите `Get-Process` и найдите знакомый процесс, например, "notepad". Узнайте его путь с `Get-Process -Name "notepad" | Select-Object Name, Path`. Потом введите `Get-Service` и посмотрите, есть ли "WinDefend". Задайте переменную `$myPath = "C:\Users\ВашеИмя"` и проверьте папку с `Get-ChildItem -Path $myPath`. Если в пути русские буквы или пробелы, не забудьте кавычки.