Планировщик cron и скрипты разведки с Docker
Для распределения задач, автоматически выполняемых в назначенное время или интервал , применяется планировщик cron. С помощью Docker настроим его для целей разведки.
Введение
Чтобы скрипт cron.sh выполнялся ежеминутно, добавляем в файл crontab эту строку (https://crontab.guru/ — сайт для расчета времени в cron):
* * * * * export $(xargs < /app/.env); /app/cron.sh >> /app/log/cron.log 2>&1
Этой строкой экспортируются указанные в файле .env переменные среды́, а также запускается скрипт cron.sh для перенаправления вывода в файл cron.log каталога /app/log.
Чтобы указать местоположение файла среды и создать необходимые каталоги и файлы, добавляем в файл docker-compose.yml следующее:
version: "3.9"services: recon: build: . env_file: - .env volumes: - ./recon:/app/recon - ./log:/app/log
Теперь нужен Dockerfile:
FROM ubuntu:22.04# Установка всего необходимогоRUN apt-get update && apt-get install -y \ curl \ unzip \ dnsutils \ cronRUN mkdir /app/WORKDIR /app/COPY ./ /app/RUN mkdir -p /app/log/RUN touch /app/log/cron.logRUN cp /app/cronjob /etc/cron.d/cronjobRUN chmod 644 /etc/cron.d/cronjobRUN crontab /etc/cron.d/cronjobRUN chmod +x /app/recon.sh# Создание точки входа для cron CMD ["cron", "-f"]
Запускаем cron, а командой tail отслеживаем лог-файл:
docker-compose up -dtail -n0 -f ./log/cron.log
Вот и все. Планировщик готов к запуску с Docker. Остается настроить переменные среды́ в файле .env, создать необходимые скрипты и файлы. В дальнейшем можно сделать скрипт разведки с открытым исходным кодом. А пока рассмотрим примеры.
- Инструменты для захвата поддоменов, такие как MX Takeover
- Автоматизация сканирования WordPress
Это инструмент сканирования WordPress для обнаружения любых потенциальных уязвимостей и слабых мест систем, запускается в планировщике cron на регулярной основе.
- Перечисление поддоменов
Cron настраивается для запуска на регулярной основе инструмента перечисления поддоменов, такого как Findomain, чтобы следить за поддоменами целевой организации и потенциально обнаруживать новые поверхности атаки.
- Отслеживание сети
Сети сканируются на наличие открытых портов и служб с помощью Nmap и Zmap. В cron такие сканирования настраиваются с регулярной периодичностью, так что изменения в сети отслеживаются с течением времени.
- Отслеживание срока действия SSL-сертификата
Сроки действия SSL-сертификатов на целевых доменах проверяются с помощью таких инструментов, как SSLScan. Cron настраивается на регулярное выполнение таких проверок с уведомлением о любых событиях, касающихся истечения срока действия сертификата.
- Автоматическое сканирование в Burp Suite
В cron такие сканирования настраиваются на регулярной основе, так что безопасность приложения отслеживается с течением времени.
- Периодические проверки на наличие конфиденциальных данных
Проверки на наличие незащищенных конфиденциальных данных выполняются периодически. Cron настраивается на запуск grep или truffleHog (инструмент для выявления конфиденциальных данных в гит-репозиториях). С ними потенциальные цели не останутся незамеченными.
Скоро многие инструменты будут автоматизированы в cron. Уже готовится релиз скрипта разведки на Github. Больше внимания в нем уделяется тестированию на проникновение через интернет, а не через сеть.