Используем PowerShell для автоматизации пентеста
В первой части на 5 примерах, используя PowerShell, я рассказал вам про то, почему полезно изучать возможности CLI (Интерфейс командной строки) и что умение пользоваться PowerShell может сэкономить вам кучу времени. Идём дальше.
Идея
Поскольку мой канал посвящён кибербезопасности, в этой статье я покажу на конкретном примере, как можно использовать PowerShell для автоматизации рутинной работы начинающего пентестера в Windows. Идея такая: у нас есть сайт, который мы защищаем. Каждый раз, когда мы включаем компьютер, наш сайт должен автоматически проверяться на уязвимости и в определённую папку на рабочем столе должен сохраняться отчёт. Соответственно - нам остаётся только бегло просмотреть отчёт, чтобы убедиться, что никаких новых уязвимостей на нашем сайте не появилось, либо, если появились - срочно предпринимать необходимые действия для актуализации его защиты.
Выбор инструмента для сканирования
Давайте сначала определимся с требованиями к инструменту, который будем использовать для сканирования нашего сайта:
- Инструмент должен быть бесплатным, чтобы любой мог его тут же скачать и повторить всё то, что я описываю в данной статье;
- Инструмент должен быть современным и актуальным, а также постоянно обновляться, чтобы мы были точно уверены, что наш сайт проверяется с учётом всех современных угроз;
- Инструмент должен быть быстрым, т.е. проверка нашего сайта не должна занимать больше 2 минут;
- Инструмент должен позволять управлять собой из командной строки без необходимости запуска графического интерфейса.
Знаете такой инструмент? Я знаю!
ZAP
Zed Attack Proxy (ZAP) — это простой в использовании интегрированный инструмент тестирования на проникновение и нахождения уязвимостей в веб-приложениях. Он создан для использования людьми с различным опытом в сфере безопасности, поэтому он идеален для новичков в тестировании на проникновение.
Важно то, что его развитие активно поддерживается сообществом OWASP (Open Web Application Security Project), а всё, что создаётся и публикуется этим сообществом - обязательно к изучению всем, кто интересуется кибербезопасностью!
Качаем ZAP, устанавливаем, запускаем и обновляем.
Также я рекомендую через "Marketplace" ZAP установить дополнение "Technology Detection", которое позволяет определить технологии, которые используются в сканируемом сайте.
Больше нам ZAP пока не нужен - закрываем его.
Итак, ZAP бесплатный, современный и активно развивается cообществом. А что насчёт скорости и работы из командной строки?
ZAPit
В конце 2023, в версию ZAP 2.14 был добавлен функционал, который так и описали: "a new -zapit command line option to perform a quick ‘reconnaissance’ scan of the URL specified". Его и будем использовать.
Написание и сохранение скрипта
Далее я приведу код скрипта PowerShell, где я прокомментировал каждую строчку, чтобы у вас не возникло никаких вопросов по тому, что, как и зачем я делаю:
Скопируйте данный скрипт в текстовый файл, придумайте название (я назвал scanscript) и сохраните, например, на рабочем столе с расширением ps1. Расширение ps1 используется для скриптов автоматизации PowerShell.
Теперь давайте проверим, что скрипт работает корректно - запустим его. Для этого в PowerShell переходим в папку, где лежит наш скрипт и для его запуска пишем: ".\scansсript.ps1" и нажимаем "Enter".
Если команда отработала успешно, то на рабочем столе должна появиться папка ZAPSCAN и в ней txt-файл. Давайте посмотрим содержимое.
Обратите внимание, если перед сайтом вы не укажите http:\\ или https:\\, то ZAPit проверит оба варианта.
Мы видим в отчёте по нашему сайту: используемые технологии, выявленные ошибки (благо нет критических уязвимостей) и некоторую дополнительную информацию.
Далее давайте посмотрим, как же нам запускать наш скрипт каждый раз при загрузке компьютера. И тут нам поможет стандартный инструмент Windows, который я рекомендую каждому изучить и использовать для автоматизации.
Планировщик задач
Планировщик задач (Task Scheduler) в Windows — это встроенный инструмент, который позволяет автоматизировать выполнение различных задач на компьютере. С его помощью можно настроить запуск программ, скриптов, отправку электронных писем, выполнение команд и других действий по расписанию или в ответ на определенные события.
Автоматизируем запуск скрипта при загрузке:
- Нажмите Win + R, введите taskschd.msc и нажмите Enter
- Или найдите "Планировщик задач" через поиск в меню "Пуск"
- В правой панели выберите "Создать задачу"
4. Настройте общие параметры:
- В поле "Имя" введите название задачи, например, "Scanscript";
- В разделе "Параметры безопасности" установите галочку "Выполнять с наивысшими правами".
5. Настройте триггер:
- Перейдите на вкладку "Триггеры" и нажмите "Создать";
- В поле "Начать задачу" выберите "При входе в систему" и нажмите "ОК". Тут можете сами экспериментировать и настроить тот триггер, который больше соответствует вашим задачам.
6. Настройте действие:
- Перейдите на вкладку "Действия" и нажмите "Создать";
- В поле "Действие" выберите "Запуск программы";
- В поле "Программа или сценарий" введите: powershell.exe
- В поле "Добавить аргументы (необязательно)" введите: -ExecutionPolicy Bypass -File "C:\Users\chumi\Desktop\scanscript.ps1" (Путь к скрипту конечно же надо указать свой);
- Нажмите "ОК".
7. Настройте дополнительные параметры:
- На вкладке "Параметры" настройте дополнительные параметры, например, я, для тестирования, установил галочку "Выполнять задачу по требованию", которая позволяет запускать задачу вручную.
8. Нажмите "ОК", чтобы сохранить задачу.
Итого
Теперь, при каждом входе в свою учётную запись (или как вы сами настроили), будет запускаться скрипт, который после отработки сохраняет отчёт с результатами сканирования. Скрипт работает быстро, при этом, сам сканер - современное популярное решение.
В следующей, уже в 3 части, мы дальше разовьём скрипт и попытаемся повторить сцену из культовой первой части Матрицы 1999 года. Догадались о какой сцене я? Если да, напишите в комментах!
Поставьте мне лайк, если статья вам понравилась и подписывайтесь на мой Телеграм!