
Лаборатория Blue Team, сосредоточенная на анализе журналов доступа Apache для обнаружения directory brute forcing и web scanning активности.
Лаборатория Blue Team, посвященная анализу журналов HTTP-сервера Apache для обнаружения активности веб-сканирования, перебора каталогов и попыток обхода пути.
Установить и развернуть веб-сервер Apache в изолированной лабораторной среде, смоделировать автоматическое веб-сканирование с использованием стандартных отраслевых инструментов и проанализировать сгенерированные журналы с точки зрения Blue Team — выявляя атакующие шаблоны, сигнатуры инструментов и индикаторы вредоносной разведывательной активности.
| Компонент | Описание |
|---|---|
| ВМ атакующего | Kali Linux |
| ВМ цели | Debian 13 |
| Сеть | NAT Network (VirtualBox) |
| IP атакующего | 10.0.2.5 |
| IP цели | 10.0.2.15 |
| Веб-сервер | Apache 2.4.67 |
| Источники журналов | /var/log/apache2/access.log, /var/log/apache2/error.log |
| Порт HTTP | 80 |
Подтверждено, что HTTP-сервер Apache активен и работает на целевой машине.```bash sudo systemctl status apache2 --no-pager
Результат: `active (running)` since Wed 2026-05-06 21:09:17. Apache 2.4.67 (Debian), Main PID 3164, 55 tasks active.
---
### 2. Идентификация целевого IP-адреса
Определён IP-адрес целевой машины Debian.```bash
ip a
Целевой IP: 10.0.2.15/24 — интерфейс enp0s3
Проверена сетевая связность между атакующей машиной Kali и целевой машиной Debian.```bash ping -c 4 10.0.2.15
**Результат:** 4 отправлено, 4 получено, 0% потерь пакетов. RTT мин/сред/макс: 0.495/1.288/2.139ms.
---
### 4. Тест браузера Apache
Выполнен доступ к серверу Apache из браузера Kali для подтверждения доступности HTTP-сервиса.```
http://10.0.2.15
Result: Apache2 Debian Default Page успешно загружена — подтверждение, что веб-сервер был доступен и отвечал на HTTP-запросы.
Созданы тестовые каталоги и страницы на целевом сервере для имитации реалистичной структуры веб-приложения.```bash sudo mkdir -p /var/www/html/admin sudo mkdir -p /var/www/html/backup sudo mkdir -p /var/www/html/login echo "
Созданные каталоги: `/admin`, `/backup`, `/login`
---
### 6. Сканирование Nikto
Запуск Nikto против целевого веб-сервера для имитации автоматического сканирования уязвимостей.```bash
nikto -h http://10.0.2.15
Nikto v2.5.0 — Время начала: 2026-05-06 20:16:56 — Время окончания: 20:17:13 (17 секунд)
Результаты, сообщенные Nikto:
X-Frame-Options — защита от кликджекинга отсутствуетX-Content-Type-Options — защита от MIME-сниффинга отсутствует/admin/, /backup/, /login//admin/index.html — страница входа администратора доступнаЗапущен Dirb для подбора каталогов на целевом веб-сервере.```bash dirb http://10.0.2.15
**DIRB v2.22 — Start: Wed May 6 20:19:50 2026 — End: 20:19:59 2026 (9 секунд)**
Используемый список слов: `/usr/share/dirb/wordlists/common.txt` — проверено 4612 слов
Найденные каталоги и файлы:
| URL | Код | Размер |
| --------------------------------- | --- | ------ |
| http://10.0.2.15/index.html | 200 | 10703 |
| http://10.0.2.15/server-status | 403 | 314 |
| http://10.0.2.15/admin/ | 200 | — |
| http://10.0.2.15/admin/index.html | 200 | 21 |
| http://10.0.2.15/backup/ | 200 | — |
| http://10.0.2.15/login/ | 200 | — |
| http://10.0.2.15/login/index.html | 200 | 20 |
**Предупреждение:** Для каталога `/backup/` включена навигация по содержимому — индексный файл отсутствует, содержимое каталога просматривается напрямую.
**Всего загружено:** 13836 байт — **Найдено:** 4 ресурса
---
### 8. Анализ журнала доступа
Проверены необработанные записи журнала доступа для выявления шаблона атаки.```bash
sudo cat /var/log/apache2/access.log
Примеры записей из фазы сканирования Nikto (21:18:32):``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.tar.bz2 HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10_0_2_15.gz HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.sql HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.zip HTTP/1.1" 404 527
Примеры записей из фазы сканирования Dirb (21:21:34):```
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xsql HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xxx HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zimbra HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zoom HTTP/1.1" 404 472
Наблюдаемый шаблон: Сотни последовательных запросов в течение одной секунды, все направлены на несуществующие пути — соответствует поведению автоматического сканирования.
Отфильтрованы все записи журнала доступа, исходящие от IP-адреса атакующего.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | head -30
Additional patterns observed:
- Nikto attempted to access backup files using the server IP as filename (e.g., `10.0.2.15.tar.bz2`, `10.0.2.15.sql`, `10.0.2.15.zip`)
- Dirb итерировал по алфавитно упорядоченным словарям, нацеливаясь на каждый обнаруженный каталог
- Оба инструмента генерировали запросы на машинной скорости — несколько записей в секунду из одного и того же диапазона исходных портов
---
### 10. Распределение HTTP-кодов состояния
Подсчёт запросов по HTTP-кодам ответа для количественной оценки поверхности атаки.```bash
sudo grep " 200 " /var/log/apache2/access.log | wc -l
sudo grep " 403 " /var/log/apache2/access.log | wc -l
sudo grep " 404 " /var/log/apache2/access.log | wc -l
| HTTP код | Значение | Количество |
|---|---|---|
| 200 | OK — ресурс найден и обслужен | 177 |
| 403 | Запрещено — ресурс существует, но доступ запрещен | 26 |
| 404 | Не найден — ресурс не существует | 21740 |
Всего ошибок 404: 21,740 — подавляющее большинство запросов было направлено на несуществующие пути, что является определяющей характеристикой автоматического перебора директорий.
Подсчитаны все записи журнала доступа, исходящие от атакующего.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | wc -l
**Total requests from 10.0.2.5: 21 962**
---
### 12. Идентификация сигнатур инструментов
Выполнен поиск сигнатур, специфичных для сканеров, в журнале доступа.
#### Сигнатура Nikto```bash
sudo grep "nikto" /var/log/apache2/access.log | head -5
Результат:``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "PUT /nikto-test-pk9VPSjF.html HTTP/1.1" 405 590 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
Nikto создал тестовый файл (`nikto-test-pk9VPSjF.html`) через PUT-запрос для проверки прав на запись на сервере.