Основы сети. Часть 8. Сетевые инструменты.
BagOs
Глава 8. СЕТЕВЫЕ ИНСТРУМЕНТЫ.
- PING.
- TRACEROUTE.
- WHOIS.
- NSLOOKUP.
- DIG.
- DNSENUM.
- DNSRECON.
- GOBUSTER.
- NETCAT.
- SOCAT.
____________________________________________________________________________
§ 8.1. PING.
8.1.1) PING — сетевой инструмент для проверки соединения между устройствами. Команда ping используется для проверки возможности подключения к удалённой системе.
Ping работает с использованием протокола ICMP — это протокол модели TCP/IP, который работает на уровне Интернета в модели TCP/IP или на сетевом уровне в модели OSI.
В удалённую систему отправляется эхо-пакет ICMP, а удалённая система отправляет обратно эхо-ответ ICMP. Если ответа от удалённой системы нет, то она либо не подключена к сети, либо ping-пакет был неправильно маршрутизирован или заблокирован брандмауэром удалённой системы. Брандмауэр MS Windows блокирует ping по умолчанию.
8.1.2) ПРИМЕНЕНИЕ PING — применить ping можно с помощью команды:

Команда ping возвратила IP-адрес сервера Google, к которому она подключена, а не запрошенный URL-адрес. То есть ping можно ещё использовать для определения IP-адреса сервера, на котором размещен веб-сайт.
ПАРАМЕТРЫ PING:
- man ping — выдаёт справочную информацию для ping.
- -i время — определяет интервал отправки пакетов (например, -i 10 будет отправлять пакеты каждые 10 секунд).
- -c числоПакетов — отправит указанное число пакетов (например, -с 10 отправит только 10 пакетов).
- -4 — ограничивает запросы к адресам IPv4.
- -v — выводит более подробную информацию.
- и т. д.
§ 8.2. TRACEROUTE.
8.2.1) TRACEROUTE — инструмент для отслеживания маршрута пакетов от нашей системы к удалённой системе.
Цель трассировки — найти IP-адреса маршрутизаторов или переходов, через которые проходит пакет данных на пути от нашей системы к целевому системе. Этот инструмент также показывает количество маршрутизаторов между двумя системами. Однако стоит учитывать, что маршрут может измениться, поскольку многие маршрутизаторы используют протоколы динамической маршрутизации, которые периодически изменяют свои IP-адреса в сети.
Traceroute работает с использованием протокола ICMP — это протокол модели TCP/IP, который работает на уровне Интернета в модели TCP/IP или на сетевом уровне в модели OSI.
8.2.2) ПРИМЕНЕНИЕ TRACEROUTE — применить traceroute можно с помощью команды:

ПАРАМЕТРЫ TRACEROUTE:
- man traceroute — выдаёт справочную информацию для traceroute.
- -t — использование запросов TCP SYN при отслеживании маршрута пакетов.
- и т. д.
8.2.3) ПРИНЦИП РАБОТЫ TRACEROUTE — мы используем ICMP, чтобы «обмануть» маршрутизаторы и заставить их раскрыть свои IP-адреса. Для этого в поле заголовка IP используется TTL (время жизни IP-пакета). Но данном случае, TTL не используется в качестве времени, а указывает максимальное количество маршрутизаторов/переходов, через которые может пройти пакет данных, прежде чем он будет отброшен.
Когда маршрутизатор получает пакет, он уменьшает TTL на одну единицу, прежде чем передать его следующему маршрутизатору:

На схеме выше показано, что каждый раз, когда IP-пакет проходит через маршрутизатор, его значение TTL уменьшается на 1. Первоначально IP-пакет покидает нашу систему со значением TTL 64 (а уходит он с нашего собственного роутера), а достигает целевой системы со значением TTL 60, поскольку после прохождения через 4 маршрутизаторов IP-пакет потерял 4 позиции.
Однако, если значение TTL достигнет 0, IP-пакет будет отброшен, а исходному отправителю будет отправлено сообщение о превышении TTL ICMP. Некоторые маршрутизаторы могут быть настроены так, чтобы не отправлять такие сообщения ICMP при отбрасывании пакета.
8.2.4) ОСОБЕННОСТИ РАБОТЫ TRACEROUTE:
- количество переходов/маршрутизаторов между нашей системой и целевой системой зависит от времени, в течение которого запускается traceroute. Нет никакой гарантии, что наши пакеты всегда будут следовать по одному и тому же маршруту, даже если мы находимся в одной сети или повторяем команду traceroute в течение короткого промежутка времени.
- некоторые маршрутизаторы возвращают общедоступный IP-адрес.
- некоторые маршрутизаторы не возвращают ответ.
§ 8.3. WHOIS.
8.3.1) WHOIS — это протокол запросов и ответов, предназначенный для доступа к базам данных, в которых хранится информация о зарегистрированных интернет-ресурсах. WHOIS соответствует спецификации RFC 3912.
WHOIS предоставляет информацию о доменных именах, IP-адресах и автономных системах. Это как гигантская телефонная книга для Интернета, где можно искать информацию о владельцах различных онлайн-ресурсов.
Сервер WHOIS прослушивает TCP-порт 43 на наличие входящих запросов. Регистратор домена несёт ответственность за ведение записей WHOIS для доменных имен, которые он арендует. Сервер WHOIS присылает ответы на запросы из записей WHOIS.
8.3.2) ИНФОРМАЦИЯ, ПОЛУЧАЕМАЯ С ПОМОЩЬЮ WHOIS:
- Доменное имя: например, google.com
- Регистратор: в какой компании был зарегистрирован домен (например, GoDaddy, Namecheap, Reg.ru).
- Контактная информация регистранта: лицо или организация, которые зарегистрировали домен, а также их адреса, телефоны и т.д. (эти данные могут быть скрыты с помощью службы конфиденциальности).
- Контактное лицо по административным вопросам: лицо, которое ответственно за управление доменом.
- Контактное лицо по техническим вопросам.
- Даты создания, обновления и истечения срока действия: дата регистрации, дата обновления и дата истечения срока действия домена.
- Серверы имен: серверы, которые преобразуют доменное имя в IP-адрес (какой сервер нужно запрашивать для разрешения доменного имени).
8.3.3) ИСПОЛЬЗОВАНИЕ WHOIS — чтобы использовать WHOIS, нужно в терминале прописать следующую команду:

Мы послали запрос на WHOIS-сервер о предоставлении нам информации о доменном имени georoute.ge. В ответ WHOIS-сервер прислал некоторую информацию о запрашиваемом домене:
- дата создания домена: 2012.10.04
- дата истечения срока действия реестра: 2023.10.05
- имя регистратора: proservice ltd
- имена серверов веб-сайта: ns1.proservice.ge и ns2.proservice.ge
Собранная информация служит плацдармом для новых способов атак, таких как социальная инженерия или технические атаки. Например, узнав имя обслуживающего сервера, можно произвести атаку на неё.
Важно отметить, что многие службы WHOIS могут скрывать важную информацию. Например, могут скрываться адреса электронной почты или иная конфиденциальная информация.
8.3.4) WHOIS-СЕРВИСЫ:
8.3.5) ИСТОРИЯ WHOIS. История WHOIS связана с ученым-компьютерщиком Элизабет Файнлер, которая сыграла ключевую роль в формировании раннего Интернета. В 1970-х годах Файнлер и ее команда из Сетевого информационного центра (NIC) осознали необходимость системы для отслеживания и управления растущим числом сетевых ресурсов в ARPANET (предшественник современного Интернета). Их решением стало создание каталога WHOIS, революционной базы данных, которая хранила информацию о пользователях сети, именах хостов и доменных именах.
Формализация и стандартизация. По мере расширения Интернета, протокол WHOIS был официально оформлен и стандартизирован в RFC 812 в 1982 году. Это заложило основу для более структурированной и масштабируемой системы управления регистрацией доменов и техническими деталями.
Рост популярности распределенных WHOIS и RIR. С ростом Интернета централизованная модель WHOIS оказалась неэффективной. Поэтому создание региональных интернет-регистраторов (RIR) в 1990-х годах ознаменовало переход к децентрализованной системе WHOIS. RIR разделила ответственность за управление интернет-ресурсами на региональные зоны. Эта децентрализация улучшила масштабируемость и устойчивость, что позволило WHOIS идти в ногу с быстрым расширением Интернета.
ICANN и модернизация WHOIS. В 1998 году была создана ICANN (Интернет-корпорация по присвоению имен и номерных знаков), которая взяла на себя ответственность за глобальное управление DNS и разработку политики WHOIS.
Этот централизованный надзор помог стандартизировать форматы данных WHOIS, повысить точность и разрешить доменные споры, возникающие из-за различных проблем. Единая политика разрешения доменных споров (UDRP) ICANN обеспечивает основу для разрешения таких конфликтов посредством арбитража.
Проблемы конфиденциальности и эпоха GDPR. В связи с возросшими проблемами конфиденциальности, связанными с данными WHOIS, привело к появлению сервисов защиты конфиденциальности, которые позволяют владельцам доменов скрывать свою личную информацию.
Внедрение GDPR в 2018 году еще больше ускорило эту тенденцию, потребовав от операторов WHOIS соблюдения строгих правил защиты данных.
§ 8.4. NSLOOKUP.
8.4.1) NSLOOKUP — утилита для запроса записей базы данных DNS-серверов. С помощью Nslookup можно получить информацию, которые затем используют для диагностики инфраструктуры системы DNS.

8.4.2) ПАРАМЕТРЫ NSLOOKUP — чтобы найти больше информации из DNS-сервера, нужно использовать следующие параметры:
1 параметр: OPTIONS — ищет конкретные данные о цели атаки:
- A — ищет адреса IPv4.
- AAAA — ищет адреса IPv6.
- CNAME — ищет канонические имена.
- MX — ищет почтовые серверы.
- SOA — ищет записи SOA, которые содержат информацию о зонах DNS, а именно данные о передачи зоны: серийный номер, время кэширования информации и взаимодействия с внешними запросами, электронная почта и имя главного сервера идентификации доменов.
- TXT — ищет текстовые записи.
2 параметр: SERVER — ищет записи о цели атаки в общедоступных DNS-серверах. Можно выбрать любой локальный или общедоступный DNS-сервер для запроса:
- 1.1.1.1, 1.0.0.1 — DNS-серверы Cloudflare.
- 8.8.8.8, 8.8.4.4 — DNS-серверы Google.
- 9.9.9.9, 149.112.112.112 — DNS-серверы Quad9.
- другие общедоступные DNS-сервера

Мы указали утилите Nslookup искать следующие параметры для домена georoute.ge:
- параметры OPTIONS (-type-SOA): утилита будет искать записи SOA.
- параметры SERVER (8.8.8.8): утилита будет искать записи SOA в DNS-сервере Google.
§ 8.5. DIG.
8.5.1) DIG (DOMAIN INFORMATION GROPER) — утилита для запроса DNS-серверов и получения различных DNS-записей. Его гибкость и детальный вывод делают его идеальным выбором.

Мы получили ответ на DNS-запрос для домена georoute.ge, который можно разбить на четыре раздела:
____________________________________________________________________________
- ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 44017 — эта строка указывает тип запроса (QUERY), успешный статус (NOERROR) и уникальный идентификатор (44017) для этого конкретного запроса.
- flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 — эта строка описывает флаги в заголовке DNS:
➤ qr: Флаг ответа на запрос — указывает, что это ответ.
➤ rd: Флаг желаемой рекурсия — означает, что была запрошена рекурсия.
➤ ad: Флаг аутентичных данных — означает, что данные подлинные.
____________________________________________________________________________
- georoute.ge. IN A: В этой строке задается вопрос: «Что такое IPv4-адрес для домена georoute.ge?»
____________________________________________________________________________
- georoute.ge. 1679 IN A 91.239.206.136: В этой строке указывается на то, что IP-адрес, связанный с georoute.ge является 91.239.206.136. Ответ «1679» представляет собой TTL (время жизни), то есть, как долго результат может храниться в кэше перед обновлением.
____________________________________________________________________________
- Query time: 4 msec: показывает время, необходимое для обработки запроса и получения ответа (4 миллисекунд).
- SERVER: 192.168.0.1#53(192.168.0.1) (UDP): показывает DNS-сервер, который предоставил ответ, и используемый для ответа протокол (UDP).
- WHEN: Thu Mar 23 20:35:38 MSK 2023: это время выполнения запроса.
- MSG SIZE rcvd: 45: указывает размер полученного DNS-сообщения (45 байта).
____________________________________________________________________________
8.5.2) ПАРАМЕТРЫ DIG — чтобы найти больше информации из DNS-сервера, нужно использовать следующие параметры:
- dig имяДомена A — извлекает адрес IPv4 (A-запись), связанный с доменом.
- dig имяДомена AAAA — извлекает адрес IPv6 (AAAA-запись), связанный с доменом.
- dig имяДомена MX — находит почтовые серверы (MX-записи), отвечающие за домен.
- dig имяДомена NS — находит авторитетные серверы имен для домена.
- dig имяДомена TXT — извлекает все TXT-записи, связанные с доменом.
- dig имяДомена CNAME — извлекает запись канонического имени (CNAME) для домена.
- dig имяДомена SOA — извлекает запись о начале полномочий авторитетной записи (SOA) для домена.
- dig имяДомена @целевойIP AXFR — извлекает данные из переноса DNS-зоны на целевом DNS-сервере.
- dig @1.1.1.1 имяДомена — указывает конкретный сервер имен для запроса (в данном случае это сервер имен 1.1.1.1).
- dig +trace имяДомена — показывает полный путь разрешения DNS.
- dig -x 192.168.1.1 — выполняет обратный поиск по IP-адресу 192.168.1.1, чтобы найти связанное имя хоста. Возможно, нам придется указать сервер имен.
- dig +short имяДомена — даёт короткий и сжатый ответ на запрос.
- dig +noall +answer имяДомена — отображает только раздел ответа в выходных данных запроса.
- dig имяДомена ANY — извлекает все доступные DNS-записи для домена. Многие DNS-серверы игнорируют ANY-запросы для снижения нагрузки и предотвращения злоупотреблений согласно RFC 8482.
§ 8.6. DNSENUM.
8.6.1) DNSENUM — инструмент для сбора информации об инфраструктуре DNS целевого домена и потенциальных поддоменах. Данный инструмент работает по словарю и методом брутфорса. Предустановлен по умолчанию в Kali Linux.
DNSEnum предлагает следующие ключевые функции:
- Перечисление DNS-записей: DNSEnum может извлекать различные DNS-записи (A, AAAA, NS, MX и TXT), предоставляя полный обзор конфигурации DNS целевой системы.
- Попытка переноса DNS-зоны: DNSEnum автоматически пытается выполнить перенос DNS-зоны с обнаруженных серверов имен. Хотя большинство серверов настроены на предотвращение несанкционированной передачи зон, успешная попытка может привести к обнаружению огромного количества информации о DNS.
- Перебор поддоменов: DNSEnum может выполнить перебор поддоменов с использованием списка слов.
- Поиск в Google: DNSEnum может выполнять поиск в Google, чтобы найти дополнительные поддомены, которые могут не быть указаны непосредственно в DNS-записях.
- Обратный поиск: DNSEnum может выполнять обратный поиск DNS для идентификации доменов, связанных с данным IP-адресом, что потенциально может выявить другие веб-сайты, размещенные на том же сервере.
- Поиск по WHOIS: DNSEnum может выполнять запросы WHOIS для сбора информации о владельце домена и регистрационных данных.
8.6.2) ПРИМЕНЕНИЕ DNSEnum:

- inlanefreight.com — целевой домен.
- /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt — словарь с наиболее распространенными поддоменами.
- -r — этот параметр включает рекурсивный перебор поддоменов. То есть, если DNSEnum находит поддомен, то он попытается перечислить поддомены этого поддомена.
§ 8.7. DNSRECON.
8.7.1) DNSRECON — инструмент для сбора информации об инфраструктуре DNS целевого домена и потенциальных поддоменах.
DNSRecon предлагает следующие ключевые функции:
- Проверка всех NS-записей на предмет зональных трансферов.
- Перечисление общих DNS-записей для домена (MX, SOA, NS, A, AAAA, SPF и TXT).
- Общее перечисление SRV-записей.
- Расширение домена верхнего уровня (TLD).
- Проверка разрешения подстановочных знаков.
- Брутфорс поддоменов и записей хоста A и AAAA с помощью списка слов.
- Поиск PTR-записей для заданного диапазона IP-адресов или CIDR.
- Проверка кэшированных записей DNS-сервера на наличие записей A, AAAA и CNAME, предоставив список записей хоста в текстовом файле для проверки.
8.7.2) ПРИМЕНЕНИЕ DNSRecon:

§ 8.8. GOBUSTER.
8.8.1) GOBUSTER — инструмент для поиска следующих целей:
- URI (каталоги и файлы) на веб-сайтах.
- поддомены DNS (с поддержкой подстановочных знаков).
- виртуальные хосты на целевых веб-серверах.
- открытые корзины Amazon S3
- открытые сегменты Google Cloud
- TFTP-серверы
8.8.2) ПРИМЕНЕНИЕ GOBUSTER:

- dns — устанавливает режим поиска поддоменов. Все остальные режимы поиска смотреть на Гитхабе.
- -d georoute.ge — имя целевого домена.
- -w /usr/share/seclists/Discovery/DNS/namelist.txt — путь к словарю.
§ 8.8. FFUF.
8.8.1) FFUF — инструмент для поиска веб-каталогов, виртуальных хостов (без записей DNS), а также параметров GET и POST.
§ 8.7. NETCAT.
8.7.1) NETCAT — сетевой инструмент для подключения к оболочкам и портам. Netcat использует для соединения протоколы TCP/UDP. Основным предназначением Netcat является передача и принятие данных, однако этот инструмент можно использовать для многих вещей во время пентеста.
Netcat предустановлен в большинстве дистрибутивов Linux. В Windows нужно самостоятельно устанавливать Netcat. Альтернативой Netcat для Windows является PowerCat.
Поскольку оболочки, полученные через Netcat, очень нестабильны, то их нужно улучшать с помощью методов, рассмотренных здесь (§ 1.5).
8.7.2) ПРИМЕНЕНИЕ NETCAT.
I) Запустить прослушивание на нашем компьютере можно с помощью команды:

- -l — включает режим прослушивания в Netcat.
- -v — включает подробный вывод в Netcat.
- -n — отключает разрешение имен хостов и DNS в Netcat, чтобы работать только с IP-адресами, тем самым ускоряя соединение.
- -p мойПорт — номер порта нашего компьютера, на котором будет включен прослушиватель Netcat и на который должно быть отправлено обратное соединение. Можно указать любой свободный порт, не используемый службами нашего компьютера. При запуске Netcat на порту ниже 1024, нужно вводить команду sudo. Рекомендуется использовать номера портов 80, 443 или 53, поскольку это с большей вероятностью позволит обойти правила брандмауэра.
II) Подключиться к целевой системе или к его порту можно с помощью команды:

Порт 22 прислал нам свой баннер, сообщающий о том, что SSH работает на этом порту. Эта техника называется захват баннера (banner grabbing) и может помочь определить, какая служба работает на определенном порту.
С помощью Netcat можно также проверить какую службу использует целевая система на конкретном порту (не всегда срабатывает):
§ 8.8. SOCAT.
8.8.1) SOCAT — сетевой инструмент для подключения к удалённым оболочкам и портам. В отличие от Netcat, Socat имеет больше функций:
- переадресация портов
- подключение к последовательным устройствам.
- есть возможность обновить оболочку до полностью интерактивного TTY.
- есть возможность получить более стабильное соединение с помощью файла socat. Более подробнее об этом в данной главе.
8.8.2) ПРИМЕНЕНИЕ SOCAT — прежде, чем получить оболочку, нужно сначала загрузить на целевую систему файл socat.
Параметры инструмента Socat прописаны здесь.
ЭТАП 1. На нашем компьютере в директории, где находится файл socat, нужно включить веб-сервер Python3, запустив команду:

ЭТАП 2. А затем из целевой системы нужно загрузить файл socat с веб-сервера нашего компьютера:

Мы загрузили файл socat в каталог целевой системы /tmp.
ЭТАП 3. Чтобы загруженный файл Socat работал на целевой системе, нужно дать файлу Socat права доступа с помощью команды:

В Windows то же самое можно сделать с Powershell, используя либо Invoke-WebRequest, либо системный класс веб-запроса, в зависимости от установленной версии Powershell:
Более подробнее о применении Socat — в данной главе.