Menu

Планировщик 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. Больше внимания в нем уделяется тестированию на проникновение через интернет, а не через сеть.