Перечисление HTTP и Обход каталогов

LinuxBeginner
Практиковаться сейчас

Введение

Добро пожаловать на лабораторную работу по перечислению веб-серверов и базовому доступу к файлам. В этом упражнении вы изучите фундаментальные методы веб-разведки, используемые для обнаружения и взаимодействия с веб-сервисами.

В этой лабораторной работе вы смоделируете базовый сценарий веб-разведки. Вы начнете с проведения разведки на целевой системе, чтобы подтвердить ее доступность в сети и определить запущенные службы. Используя инструмент nmap, вы обнаружите веб-сервер и перечислите его версию. Затем вы используете команду curl для доступа к файлу с флагом, который был размещен на веб-сервере.

По завершении вы будете понимать, как:

  • Проверять сетевое подключение с помощью ping.
  • Использовать nmap для сканирования веб-сервисов и выполнения перечисления.
  • Понимать базовые методы веб-разведки.
  • Использовать curl для доступа к файлам на веб-сервере и получения флага.

Приступим.

Проверка подключения к цели с помощью Ping

На этом этапе вы начнете с подтверждения того, что целевая система доступна с вашей машины. Команда ping является стандартной утилитой для проверки сетевого подключения. Она отправляет пакеты ICMP Echo Request на хост и ожидает ответов. Это первый и самый базовый шаг в любой задаче сетевой разведки.

Ваша среда включает целевую систему, доступную по имени хоста target.

Выполните следующую команду в терминале, чтобы отправить четыре пакета на target:

ping -c 4 target

Вы должны увидеть вывод, подтверждающий, что четыре пакета были отправлены и четыре получены, что указывает на стабильное соединение. IP-адрес может отличаться, но результат должен показывать 0% потери пакетов.

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.067/0.077/0.105/0.016 ms

После подтверждения подключения вы готовы приступить к сканированию цели.

Сканирование открытых портов с помощью Nmap

На этом этапе вы будете использовать nmap для сканирования цели на предмет открытых портов и идентификации служб, работающих на них. Nmap — это мощный инструмент для исследования сети и аудита безопасности. Это сканирование поможет вам найти потенциальные точки входа, такие как веб-сервер.

Мы выполним целевое сканирование порта 80, стандартного порта для HTTP-трафика. Мы также будем использовать скрипты для сбора дополнительной информации о службе.

Выполните следующую команду nmap в вашем терминале:

nmap -sV -p 80 --script http-enum target

Разберем эту команду:

  • -sV: Включает определение версии, которое пытается определить версию службы, работающей на порту.
  • -p 80: Указывает, что мы хотим сканировать только порт 80.
  • --script http-enum: Запускает скрипт, который перечисляет каталоги и файлы на веб-сервере.
  • target: Имя хоста нашей целевой машины.

Вывод будет выглядеть примерно так:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-18 09:40 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00018s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.41 ((Unix))
|_http-server-header: Apache/2.4.41 (Unix)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.32 seconds

Результаты сканирования подтверждают, что порт 80/tcp открыт и на нем работает Apache httpd 2.4.41. Этот веб-сервер размещает файлы, к которым мы можем получить доступ на следующем шаге.

Подключение к цели по HTTP

На этом этапе вы будете взаимодействовать с веб-сервером с помощью curl для доступа к файлам. curl — это инструмент командной строки для передачи данных с использованием URL.

Сначала сделаем стандартный запрос к главной странице веб-сервера, чтобы посмотреть, как она выглядит.

curl http://target

Сервер должен ответить содержимым страницы по умолчанию Apache.

<html>
  <body>
    <h1>It works!</h1>
  </body>
</html>

Теперь давайте получим доступ к файлу флага, который был помещен в корневой каталог веб-сервера. Хотя в данной конфигурации файл доступен напрямую, давайте продемонстрируем, как вы обычно получаете к нему доступ:

curl http://target/flag.txt

Эта команда извлечет файл флага непосредственно из корневого каталога документов веб-сервера.

Исследование целевой системы и поиск флага

На этом заключительном этапе вы получите и просмотрите флаг. Вывод предыдущей команды curl должен был отобразить флаг непосредственно в вашем терминале.

Ожидаемый вывод команды — содержимое файла флага:

labex{p4th_tr4v3rs4l_w1zardry}

Если вывод большой или вы хотите сохранить его на потом, вы можете перенаправить вывод команды curl в файл. Это распространенная практика при работе с большими файлами.

Выполните команду еще раз, но на этот раз сохраните результат в файл с именем flag.txt:

curl http://target/flag.txt > flag.txt

Теперь вы можете просмотреть содержимое загруженного файла с помощью команды cat:

cat flag.txt

Терминал отобразит флаг:

labex{p4th_tr4v3rs4l_w1zardry}

Поздравляем! Вы успешно идентифицировали веб-сервер, получили доступ к файлу флага и захватили флаг. Скопируйте значение флага, чтобы завершить лабораторную работу.

Резюме

В этой лабораторной работе вы успешно выполнили базовое упражнение по веб-разведке. Вы изучили и отработали следующие навыки:

  • Разведка (Reconnaissance): Вы использовали ping для проверки доступности цели.
  • Перечисление (Enumeration): Вы использовали nmap с опциями сканирования версий (-sV) и скриптов (--script http-enum) для определения открытого порта HTTP и конкретной версии веб-сервера Apache.
  • Доступ к файлам: Вы использовали curl для доступа к файлам на веб-сервере.
  • Получение флага: Вы успешно получили файл флага с веб-сервера.

Это упражнение демонстрирует базовые методы веб-разведки, которые необходимы для понимания принципов работы веб-серверов и способов взаимодействия с ними программно. Эти навыки являются ключевыми для веб-разработки, системного администрирования и тестирования безопасности.