Введение
В этой лаборатории вы научитесь автоматизировать задачи в Kali Linux с помощью скриптов Bash и Python. Основное внимание уделяется оптимизации повторяющихся задач аудита безопасности, таких как сетевое сканирование с помощью Nmap и анализ журналов. Вы создадите скрипты, установите права доступа, запланируете автоматические задачи с помощью Cron и проверите их выполнение. Эта лаборатория предоставляет подробные пошаговые инструкции для формирования базовых навыков автоматизации в контейнере Kali Linux. Когда вы откроете терминал, вы автоматически подключитесь к оболочке контейнера Kali Linux, готовой к началу работы.
Настройка среды и установка инструментов
На этом первом шаге вы подготовите рабочую среду внутри контейнера Kali Linux, установив необходимое программное обеспечение. Это основополагающий шаг, гарантирующий наличие у вас всего необходимого для предстоящих задач автоматизации.
Когда вы откроете терминал, вы автоматически подключитесь к оболочке контейнера Kali Linux. Вы можете начинать работу немедленно.
Сначала обновите список пакетов, чтобы убедиться, что вы можете получить последние версии программного обеспечения.
apt update
Далее установите nmap для сетевого сканирования и python3 для написания скриптов. Эти инструменты критически важны для задач в этой лаборатории.
apt install -y nmap python3 nano
Установка может занять несколько минут. После завершения проверьте, установлен ли nmap, проверив его версию.
nmap --version
Вывод должен быть похож на следующий, подтверждая, что nmap готов к использованию.
Nmap version 7.x ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.4.6 openssl-3.0.11 libpcre-8.39 libpcap-1.10.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available NSE scripts: 655
Затем проверьте установку python3.
python3 --version
Вывод покажет установленную версию Python, похожую на эту:
Python 3.x.x
После установки этих инструментов ваша среда Kali Linux готова к задачам автоматизации на следующих шагах.
Создание скрипта Bash для сканирования Nmap
Теперь, когда ваша среда настроена, вы создадите скрипт Bash для автоматизации сканирования Nmap. Скриптинг на Bash — это мощный способ автоматизации задач командной строки в Linux. На этом шаге вы напишете простой скрипт для выполнения сканирования Nmap по адресу localhost.
Сначала используйте текстовый редактор nano для создания нового файла с именем nmap_scan.sh в каталоге /root.
nano /root/nmap_scan.sh
Эта команда открывает пустой файл в редакторе nano. Введите или вставьте следующее содержимое в редактор:
#!/bin/bash
echo "Starting Nmap scan on localhost..."
nmap localhost
echo "Scan completed."
Этот скрипт состоит из трех основных частей:
#!/bin/bash: Эта строка, известная как shebang, указывает, что скрипт должен выполняться с помощью интерпретатора Bash.echo "...": Эти команды выводят сообщения о состоянии в терминал.nmap localhost: Эта команда выполняет базовое сканирование Nmap на вашей локальной машине, что является безопасной целью для практики.
Чтобы сохранить файл в nano, нажмите Ctrl+O, затем нажмите Enter, чтобы подтвердить имя файла. Чтобы выйти из редактора, нажмите Ctrl+X.
После возвращения в терминал убедитесь, что файл был создан успешно, просмотрев содержимое каталога /root.
ls -l /root
Вы должны увидеть свой новый скрипт в выводе, похожем на этот:
-rw-r--r-- 1 root root 85 Oct 20 10:15 nmap_scan.sh
Это подтверждает, что файл nmap_scan.sh существует. На следующих шагах вы сделаете этот скрипт исполняемым и протестируете его.
Создание скрипта Python для анализа журналов
Далее вы напишете скрипт Python для автоматизации анализа журналов (лог-парсинга). Анализ журналов — распространенная задача в области безопасности, при которой извлекается определенная информация из файлов журналов. Python хорошо подходит для этого благодаря своим мощным возможностям обработки текста.
Сначала создайте образец файла журнала для анализа вашим скриптом. Выполните следующую команду, чтобы создать файл с именем sample.log в каталоге /root с некоторыми примерами записей журнала.
echo -e "2023-10-20 10:00:00 INFO System started\n2023-10-20 10:01:00 ERROR Connection failed\n2023-10-20 10:02:00 INFO User logged in" > /root/sample.log
Теперь создайте скрипт Python. Используйте nano для создания нового файла с именем log_parser.py.
nano /root/log_parser.py
В редакторе nano введите или вставьте следующий код Python:
#!/usr/bin/env python3
print("Starting log parsing...")
with open('/root/sample.log', 'r') as file:
for line in file:
if 'ERROR' in line:
print(line.strip())
print("Log parsing completed.")
Этот скрипт открывает /root/sample.log, построчно считывает его и выводит только те строки, которые содержат слово ERROR. Метод strip() удаляет любые начальные или конечные пробелы из строки.
Сохраните файл, нажав Ctrl+O и Enter, затем выйдите из nano, нажав Ctrl+X.
Убедитесь, что в каталоге /root существуют как файл журнала, так и скрипт Python.
ls -l /root
Теперь вывод должен содержать оба файла:
-rw-r--r-- 1 root root 150 Oct 20 10:22 log_parser.py
-rw-r--r-- 1 root root 85 Oct 20 10:15 nmap_scan.sh
-rw-r--r-- 1 root root 112 Oct 20 10:20 sample.log
Вы успешно создали скрипт Python для анализа журналов. Следующий шаг — установка правильных прав доступа для обоих скриптов.
Установка прав доступа и тестирование скриптов
После создания обоих скриптов следующим шагом является предоставление им прав на выполнение. В Linux скрипт должен иметь права на выполнение, чтобы его можно было запускать напрямую из терминала.
Сначала проверьте текущие права доступа к файлам.
ls -l /root
Вывод показывает права доступа в первой колонке. -rw-r--r-- указывает, что файлы доступны для чтения и записи, но не для выполнения.
-rw-r--r-- 1 root root 150 Oct 20 10:22 log_parser.py
-rw-r--r-- 1 root root 85 Oct 20 10:15 nmap_scan.sh
-rw-r--r-- 1 root root 112 Oct 20 10:20 sample.log
Используйте команду chmod с флагом +x, чтобы добавить права на выполнение к обоим скриптам.
chmod +x /root/nmap_scan.sh
chmod +x /root/log_parser.py
Теперь снова проверьте права доступа.
ls -l /root
Символ x в строке прав доступа (-rwxr-xr-x) подтверждает, что файлы теперь исполняемые.
-rwxr-xr-x 1 root root 150 Oct 20 10:22 log_parser.py
-rwxr-xr-x 1 root root 85 Oct 20 10:15 nmap_scan.sh
-rw-r--r-- 1 root root 112 Oct 20 10:20 sample.log
После установки прав протестируйте скрипт Bash, запустив его.
/root/nmap_scan.sh
Скрипт выполнит сканирование Nmap и выведет результаты, которые должны быть похожи на следующие:
Starting Nmap scan on localhost...
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-20 10:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up, received user-set (0.00010s latency).
Other addresses for localhost (not scanned): ::1
rDNS record for 127.0.0.1: localhost
Not shown: 999 closed tcp ports (conn-refused)
PORT STATE SERVICE
...
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Scan completed.
Далее протестируйте скрипт Python.
/root/log_parser.py
Скрипт проанализирует файл журнала и выведет только строку, содержащую "ERROR".
Starting log parsing...
2023-10-20 10:01:00 ERROR Connection failed
Log parsing completed.
Оба скрипта теперь работают корректно. Последний шаг — запланировать их автоматический запуск.
Планирование скриптов с помощью Cron
На этом заключительном шаге вы автоматизируете выполнение ваших скриптов с помощью Cron. Cron — это планировщик заданий в Linux, основанный на времени, который позволяет запускать команды или скрипты через заданные интервалы.
Чтобы запланировать задание, вам необходимо отредактировать файл crontab. Откройте редактор crontab, выполнив следующую команду.
crontab -e
Если вам предложат выбрать редактор, выберите nano, введя соответствующий номер и нажав Enter.
Прокрутите до конца файла и добавьте следующие строки. Эти строки планируют запуск обоих скриптов каждую минуту.
* * * * * /root/nmap_scan.sh >> /root/nmap_scan.log 2>&1
* * * * * /root/log_parser.py >> /root/log_parser.log 2>&1
Давайте разберем эту конфигурацию:
* * * * *: Это расписание. Пять звездочек представляют минуту, час, день месяца, месяц и день недели. Все звездочки означают, что задание будет запускаться каждую минуту каждого часа каждого дня./root/nmap_scan.sh: Это команда, которая будет выполняться.>> /root/nmap_scan.log: Это перенаправляет стандартный вывод скрипта и добавляет его в файл журнала.2>&1: Это перенаправляет поток стандартных ошибок в стандартный вывод, гарантируя, что сообщения об ошибках также будут зафиксированы в файле журнала.
Сохраните изменения в nano, нажав Ctrl+O и Enter, затем выйдите с помощью Ctrl+X. Вы должны увидеть подтверждающее сообщение.
crontab: installing new crontab
Чтобы убедиться, что задания запланированы, выведите текущие записи crontab.
crontab -l
Вывод должен отобразить строки, которые вы только что добавили.
* * * * * /root/nmap_scan.sh >> /root/nmap_scan.log 2>&1
* * * * * /root/log_parser.py >> /root/log_parser.log 2>&1
Задания cron настроены. Через минуту вы можете проверить файлы журналов, чтобы увидеть вывод автоматического выполнения скриптов.
cat /root/nmap_scan.log
cat /root/log_parser.log
Это подтверждает, что ваши скрипты запускаются автоматически по расписанию.
Резюме
В этой лаборатории вы изучили основы автоматизации в Kali Linux с использованием Bash и Python. Вы начали с подготовки среды и установки основных инструментов, таких как Nmap и Python. Затем вы создали скрипт Bash для автоматизации сетевого сканирования и скрипт Python для анализа журналов. Вы также узнали, как устанавливать права на выполнение, тестировать свои скрипты и планировать их автоматический запуск с помощью Cron. Эти навыки закладывают прочную основу для автоматизации повторяющихся задач в области кибербезопасности и системного администрирования.


