День 12. Основы “НЕТВОРКИНГ”.
В этой статье разбираем комнаты Нетворкинг, Сети, HTTP, DNS, Сайты.
Прошел все модули из бесплатного старта и решил что нужно объединить все вместе, так как статейки маленькие. Буду рассказывать вкратце, начнем.
Сети — это связанные объекты, как круг друзей или городская транспортная система.
В вычислительной технике сеть — это взаимодействие устройств (от телефонов до светофоров) по определённым правилам. Они важны в повседневной жизни — от передачи данных до управления инфраструктурой. Понимание сетевого взаимодействия критично в кибербезопасности.
Что такое: Интернет — это гигантская сеть, где мы находимся. Сети бывают частными и общественными. Придумал интернет Тим Бернерс-Ли в 1989 году.
Как устройства общаются в сети?
Представь, что у нас есть три человека:
Эти полные ФИО — как MAC-адреса. Они уникальны и присваиваются устройству на заводе.
Но в повседневной жизни мы часто используем сокращённые имена:
Это похоже на IPv4 — короткие, удобные, но ограниченные по количеству.
Теперь представим, что мы хотим записать полные имена, но в другом формате, например:
Это как IPv6 — он длиннее, но даёт больше уникальных комбинаций.
- MAC-адрес (ФИО) уникален и не меняется.
- IPv4 (краткое имя) используется чаще, но имеет ограничения.
- IPv6 (полное имя в новом формате) даёт больше возможностей.
У каждого устройства есть ИМЯ, общаются они по именам как и люди, только у них ИМЯ=IP
IP - это числовой идентификатор устройства в сети. Он может быть публичным (в Интернете) или частным (в локальной сети). IP-адреса следуют сетевым протоколам и могут изменяться, но не повторяться в одной сети одновременно, делится на 4 октета, кто дает имя/ip?
В интернете IP-адреса выдаёт интернет-провайдер (ISP), а в локальных сетях — маршрутизатор (роутеры) или сервер DHCP.
IPv6 и IPv4
IP-адреса могут иметь разные форматы в зависимости от их «родителя». Например, короткое имя вроде "Артем" похоже на IPv4, а более сложное, как "Давид Тутан-Хамонович Оглы ", соответствует IPv6, так как содержит больше символов. (шутка - пример)
IPv6 — это новая версия схемы адресации интернет-протокола, призванная помочь решить эту проблему. Хотя она кажется более сложной, она может похвастаться несколькими преимуществами:
- Поддерживает до 2^128 IP-адресов (более 340 триллионов), решая проблемы, возникающие при использовании IPv4.
- Более эффективно благодаря новым методологиям
Все устройства в сети будут иметь физический сетевой интерфейс, который представляет собой плату микросхемы , находящуюся на материнской плате устройства. Этому сетевому интерфейсу назначается уникальный адрес на заводе, на котором он был собран, называемый MAC - адресом ( Media Access Control ).
Ping - выполняет команду между устройствами - "привет, пообщаемся?"
Ping — один из самых фундаментальных сетевых инструментов , доступных нам. Ping использует пакеты ICMP ( Internet Control M essage Protocol ) для определения производительности соединения между устройствами, например, существует ли соединение или является ли оно надежным .
Здесь мы пингуем устройство с частным адресом 192.168.1.254 . Ping сообщает нам, что мы отправили шесть пакетов ICMP, все из которых были получены со средним временем 4,16 миллисекунды.
Тут пробежимся по сетевым службам и зачем они нужны.
1. SMB (Server Message Block)
📌 Порт: 445 (TCP), раньше использовались 137-139 (TCP/UDP)
🔹 Назначение: Протокол для общего доступа к файлам, принтерам и другим ресурсам в локальной сети Windows.
🔹 Особенности:
- Используется в Windows и Samba (на Linux).
- Может поддерживать аутентификацию пользователей.
- Уязвим к атакам, например, EternalBlue (MS17-010).
✅ Enumerating SMB – сбор информации о доступных файлах, папках и учетных записях с помощью smbclient
, enum4linux
, nmap
(--script smb-*
).
✅ Exploiting SMB – атаки на слабые пароли, эксплуатация уязвимостей (MS08-067
, MS17-010
).
2. Telnet
📌 Порт: 23 (TCP)
🔹 Назначение: Протокол для удаленного доступа к устройствам (как SSH, но без шифрования).
🔹 Особенности:
- Передает данные в открытом виде (небезопасен).
- Используется в старых системах и сетевых устройствах (например, маршрутизаторы, камеры).
- Может быть защищён с помощью VPN или SSH-туннелирования.
✅ Enumerating Telnet – поиск открытых Telnet-серверов (nmap -p23 --script telnet-*
), проверка учетных данных.
✅ Exploiting Telnet – брутфорс паролей, атаки по перехвату трафика (например, MITM).
3. FTP (File Transfer Protocol)
📌 Порты: 21 (управление, TCP), 20 (передача данных, TCP)
🔹 Назначение: Передача файлов между клиентом и сервером. (Обычно это свалка документов)
🔹 Особенности:
- Работает в активном (сервер подключается к клиенту) и пассивном (клиент устанавливает соединение) режимах.
- Не шифрует данные (аналогично Telnet).
- Может поддерживать анонимный доступ. - (вектор атаки)
- Альтернативы: SFTP (через SSH, порт 22), FTPS (SSL/TLS, порт 990).
✅ Enumerating FTP – проверка анонимного входа, сканирование nmap -p21 --script ftp-*
.
✅ Exploiting FTP – использование слабых паролей, эксплуатация FTP Bounce Attack
, перехват трафика.
1. NFS (Network File System)
📌 Порт: 2049 (TCP/UDP), также использует rpcbind
на 111 (TCP/UDP).
🔹 Назначение: Протокол удаленного доступа к файловым системам в Linux/Unix. Позволяет монтировать сетевые каталоги как локальные.
🔹 Особенности:
- Используется в корпоративных сетях и дата-центрах.
- Не поддерживает встроенное шифрование.
- Может быть открыт для неавторизованного доступа.
✅ Enumerating NFS – проверка доступных экспортированных каталогов (showmount -e <IP>
).
✅ Exploiting NFS – подключение к открытому каталогу, загрузка SSH-ключа для обхода аутентификации.
2. SMTP (Simple Mail Transfer Protocol)
📌 Порты: 25 (TCP, без шифрования), 465 (SSL), 587 (TLS).
🔹 Назначение: Протокол отправки электронной почты между серверами.
🔹 Особенности:
- Может использоваться для спама и фишинга.
- Поддерживает
VRFY
иEXPN
команды, позволяющие узнавать существующие email-адреса. - Открытые SMTP-серверы можно использовать для релея спама (Open Relay).
✅ Enumerating SMTP – поиск учетных записей (nmap --script smtp-enum-users
).
✅ Exploiting SMTP – перехват логинов, спуфинг отправителей, эксплуатация Open Relay.
3. MySQL
📌 Порт: 3306 (TCP).
🔹 Назначение: Реляционная база данных, широко используемая в веб-приложениях.
🔹 Особенности:
- Если открыт во внешнюю сеть – цель для атак.
- Атаки на слабые пароли, SQL-инъекции.
- Важна настройка прав доступа (лучше ограничить доступ локальным хостом).
✅ Enumerating MySQL – проверка учетных записей (mysql -h <IP> -u root -p
или nmap --script mysql-*
).
✅ Exploiting MySQL – брутфорс паролей, эксплуатация уязвимостей (CVE-2016-6662
– Privilege Escalation).
Что такое HTTP ? (Протокол передачи гипертекста)
HTTP — это то, что используется всякий раз, когда вы просматриваете веб-сайт, разработанный Тимом Бернерсом-Ли и его командой в 1989-1991 годах. HTTP — это набор правил, используемых для связи с веб-серверами для передачи данных веб-страниц, будь то HTML, изображения, видео и т. д.
Что такое HTTPS? (Безопасный протокол передачи гипертекста)
HTTPS — это защищенная версия HTTP . Данные HTTPS шифруются, поэтому это не только не позволяет посторонним видеть данные, которые вы получаете и отправляете, но и дает вам уверенность в том, что вы общаетесь с правильным веб-сервером, а не с чем-то, выдающим себя за него.
Что такое URL? (унифицированный указатель ресурсов)
URL (Uniform Resource Locator) – это адрес ресурса в интернете.
Схема: здесь указывается, какой протокол использовать для доступа к ресурсу, например HTTP , HTTPS, FTP (протокол передачи файлов).
Пользователь: для входа в некоторые службы требуется аутентификация. Для входа в систему можно указать имя пользователя и пароль в URL-адресе.
Хост: Доменное имя или IP-адрес сервера, к которому вы хотите получить доступ.
Порт: порт, к которому вы собираетесь подключиться, обычно 80 для HTTP и 443 для HTTPS, но его можно разместить на любом порту от 1 до 65535.
Путь: Имя файла или местоположение ресурса, к которому вы пытаетесь получить доступ.
Строка запроса: Дополнительные биты информации, которые могут быть отправлены по запрошенному пути. Например, /blog? id=1 сообщит пути блога, что вы хотите получить статью блога с идентификатором 1.
Фрагмент: это ссылка на местоположение на запрошенной странице. Обычно используется для страниц с длинным содержимым и может иметь конкретную часть страницы, напрямую связанную с ним, поэтому она становится видимой для пользователя, как только он получает доступ к странице.
Запросы и ответы в контексте веб-разработки, как правило, связаны с протоколом HTTP (HyperText Transfer Protocol). HTTP запросы могут использовать различные методы для выполнения разных операций. Рассмотрим основные HTTP методы:
1. GET
- Описание: Метод GET используется для запроса информации с сервера. Он не должен изменять состояние сервера, только извлекать данные.
- Пример: Получение страницы или данных.
GET /index.html HTTP/1.1
2. POST
- Описание: Метод POST используется для отправки данных на сервер. Это может быть создание нового ресурса, отправка данных формы и другие операции, которые могут изменить состояние сервера.
- Пример: Отправка формы с данными.
Что такое DNS ?
DNS (система доменных имен) предоставляет нам простой способ общения с устройствами в Интернете без запоминания сложных чисел. Подобно тому, как у каждого дома есть уникальный адрес для отправки почты непосредственно на него, у каждого компьютера в Интернете есть свой собственный уникальный адрес для общения с ним, называемый IP-адресом. IP-адрес выглядит следующим образом 104.26.10.229, 4 набора цифр от 0 до 255, разделенных точкой. Когда вы хотите посетить веб-сайт, не совсем удобно запоминать этот сложный набор цифр, и именно здесь DNS может помочь. Поэтому вместо того, чтобы запоминать 104.26.10.229, вы можете вместо этого запомнить tryhackme.com .
- TLD (домен верхнего уровня) – самая правая часть, например, .com, .org, .ru. Бывают общие (gTLD) и национальные (ccTLD).
- Домен второго уровня – название перед TLD, например, google в google.com. Именно его регистрируют.
- Поддомен – часть слева от домена второго уровня, например, blog.google.com, где blog – поддомен. Можно создавать неограниченно.
Пример структуры: shop.store.example.com
Общая длина имени – до 253 символов.
Веб-сайт состоит из двух основных компонентов:
- Front End (сторона клиента) — способ, которым ваш браузер отображает веб-сайт.
- Back End (серверная часть) — сервер, который обрабатывает ваш запрос и возвращает ответ.
В процессе отправки браузером запроса на веб-сервер задействовано множество других процессов, но на данный момент вам просто нужно понимать, что вы отправляете запрос на сервер, а он отвечает данными, которые ваш браузер использует для предоставления вам информации.
Веб-сайты в основном создаются с использованием:
- HTML, для создания веб-сайтов и определения их структуры
- CSS, чтобы сделать веб-сайты красивыми, добавляя параметры стилей
- JavaScript, реализация сложных функций на страницах с использованием интерактивности
Язык гипертекстовой разметки (HTML) — это язык , на котором написаны веб-сайты. Элементы (также известные как теги) являются строительными блоками HTML-страниц и сообщают браузеру , как отображать контент. Фрагмент кода ниже показывает простой HTML- документ , структура которого одинакова для каждого веб-сайта:
JavaScript (JS) — один из самых популярных языков кодирования в мире, позволяющий страницам стать интерактивными. HTML используется для создания структуры и содержимого веб-сайта, в то время как JavaScript используется для управления функциональностью веб-страниц — без JavaScript страница не имела бы интерактивных элементов и всегда была бы статичной.
Раскрытие конфиденциальных данных
Читайте код, что может оставить разраб для себя, но использовать может любой?
HTML-инъекция — это уязвимость, которая возникает, когда на странице отображается неотфильтрованный пользовательский ввод. Если веб-сайт не очищает пользовательский ввод (не фильтрует любой «вредоносный» текст, который пользователь вводит на веб-сайт), и этот ввод используется на странице, злоумышленник может внедрить HTML-код в уязвимый веб-сайт.
Да можно взять и тупо добавить свой код)
Отобразим вредоносную ссылку на hacker.com
Когда трафик веб-сайта становится достаточно большим или запущено приложение, которому требуется высокая доступность, один веб-сервер может больше не справляться с работой. Балансировщики нагрузки предоставляют две основные функции, гарантируя, что веб-сайты с высоким трафиком смогут справиться с нагрузкой, и обеспечивая отказоустойчивость, если сервер перестает отвечать.
Веб-сервер — это программное обеспечение, которое прослушивает входящие соединения, а затем использует протокол HTTP для доставки веб-контента своим клиентам. Наиболее распространенное программное обеспечение веб-сервера, с которым вы столкнетесь, — это Apache , Nginx, IIS и NodeJS. Веб-сервер доставляет файлы из так называемого корневого каталога, который определяется в настройках программного обеспечения. Например, Nginx и Apache используют одно и то же расположение по умолчанию /var/www/html в операционных системах Linux , а IIS использует C:\inetpub\wwwroot для операционных систем Windows. Так, например, если вы запросили файл http ://www.example.com/picture.jpg , он отправит файл /var/www/html/picture.jpg со своего локального жесткого диска.
я чаще всего использую Apache2 и NGINX.
На этом ОБЩИЙ МОДУЛЬ кончился, примерное понимание БАЗЫ IT уже есть в наших головах, теперь пойдем учиться искать уязвимости и взламывать веб приложения и серваки, в рамках обучения.
Основная группа обучения ИБ
Lab-группу с полезным софтом / книгами / аудио.
Чат для обсуждений, задавай свои вопросы.
P.S. С вами был @Fnay_Offensive
До новой встречи, user_name!