Files
obsidian/cybersec/Forensic/Network layers.md
T
2026-07-30 11:35:10 +05:00

149 lines
30 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
**NTA (Network Traffic Analysis) - Анализ сетевого трафика** включает в себя:
1. **Collecting traffic** - сбор трафика в режиме real time
2. **Setting a baseline for day-to-day network communications** - Установка базового уровня для повседневной сетевой связи.
3. **Identifying and analyzing** - идентификация и анализ трафика на нестандартных портах, подозрительных хостах и различных проблем с протоколами.
4. **Detecting** - распознавание вирусов в сети, таких как программы-вымогатели, эксплойты и не стандартные события.
| Инструмент | Описание |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **tcpdump** | утилита командной строки, которая спомощью LibPcap захватывает и интерпретирует сетевой трафик из сетевого интерфейса или файла захвата |
| **Tshark** | Анализатор, похожий на tcpdump, захватывает пакеты из действующей сети или читает и декодирует файлы. Wireshark только в консоли |
| **Wireshark** | Графический анализатор сетевого трафика. Захватывает и декодирует кадры по сети и позволяет глубже изучить окружающую среду. Может запускать множество различных анализаторов трафика, что бы охарактеризовать протоколы и приложения и получить представление о том, что происходит |
| **NGrep** | как grep только для сети, работает pcap файлами |
| **tcpick** | анализатор пакетов в командной строке, специализируется на отслеживании и повторной сборке TCP потоков. |
| **Network Teps** | Тапы - устройства, способные снимать копию трафика и отправлять в другое место для анализа. Могут быть линейными и внеполосными. Могут активно перехватывать и анализировать трафик напрямую или пассивно, возвращая исходный пакет обратно в сеть, будто ничего не происходило |
| **Networking Span Ports** | Способ копирования кадров с сетевых устройств второго или третьего уровня во вреся исходящей или входящей обработки и отправки их в точку сбора. |
| **Elastic Stack** | кульминация инструментов, которые могут получать данные из многих источников, принимать их и визуализировать, что бы обеспечить их посик и анализ |
| **SIEMS** | являются центральной точкой анализа и визуализации данных |
# Процесс анализа трафика
![[Pasted image 20250105162015.png]]
1. **Получение трафика**
2. **Удаление шума с помощью фильтрации** - фильтрация трафика от ненужной нам информации
3. **Анализ и исследование трафика** - Осмотр отфильтрованного трафика, проверка на наличие подозрительных хостов, подключений к редкоиспользуемым портам и проверка флагов в заголовке TCP.
4. **Обнаружение и оповещение**
5. **Исправление и мониторинг трафика**
Пятый пункт фактически начинает процесс с самого начала, т.е. сам по себе процес всегда зациклен и должен выполнятся.
# OSI\TCP-IP
![[Pasted image 20250105164935.png]]
![[Pasted image 20250105165103.png]]
![[Pasted image 20250105165110.png]]
**MAC Address** - 48 битный, 6 байтный адрес, представленный в шестнадцатиричном формате. Используется на 2 уровне OSI или на 1 уровне TCP-IP, обеспечивая связь между хостами. Каждая сетевая карта имеет уникальный, встроенный MAC адрес, прошитый с ней при изготовлении.
![[Pasted image 20250105165916.png]]
**octet** - В сетевой терминологии октет (octet) обозначает последовательность из 8 битов. С помощью октетов определяют данные, передаваемые в сети. Например, в виде байтов (1 байт = 1 октет). В этом случае октеты могут представлять символы, числа или другую информацию, передаваемую через сетевое соединение.
***IP address*** - (Internet protocol address) уникальный числовой идентификатор устройства в сети интернет, отвечает за маршрутизацию пакетов.
**IPv4** - самый распространненный вид ip адреса, состоит из 4 байтов (32битное число), записывается в десятичной системе исчисления в виде четырех чисел, от 0 до 255, разделенных точкамим, например **192.168.0.1**
# IPv6
**IPv6** - состоит из 16 байтов (128 битов), записывается в виде восьми четырехзначных шестнадцатеричных чисел, разделенных двоеточием, например **`2001:0db8:85a3:0000:0000:8a2e:0370:7334`**.
В данном случае "пропуски" относятся к сокращению записи **IPv6-адресов**. IPv6-адреса состоят из восьми групп по четыре шестнадцатеричных цифры (каждая группа разделена двоеточием). Если одна или несколько групп состоят из нулей, их можно **опустить**, чтобы сократить запись.
### Что значит опускание нулей?
1. **Ведущие нули в группе можно не указывать.**
Например:
Группа `00ab` может быть записана как `ab`.
2. **Последовательность групп, содержащих только нули, можно заменить двойным двоеточием (`::`).**
Например:
Адрес `fe80:0:0:0:0:0:0:1` содержит 6 групп из нулей подряд. Эти нулевые группы можно заменить двойным двоеточием:
**`fe80::1`**.
3. **Двойное двоеточие можно использовать только один раз в адресе.**
Это ограничение существует для того, чтобы однозначно восстановить полный адрес. Если использовать `::` дважды, было бы непонятно, сколько групп нулей пропущено в каждом месте.
### Пример объяснения сокращения
Рассмотрим адрес:
`2001:0db8:0000:0000:0000:ff00:0042:8329`
1. Уберем ведущие нули в каждой группе:
**`2001:db8:0:0:0:ff00:42:8329`**
2. Заменим подряд идущие группы из нулей двойным двоеточием:
**`2001:db8::ff00:42:8329`**
Если вы встретите адрес с двойным двоеточием, например, `2001:db8::1`, это означает, что пропущенные группы заполнены нулями:
**`2001:0db8:0000:0000:0000:0000:0000:0001`**.
### Тип адресации IPv6
| Тип | Описание |
| --------- | ----------------------------------------------------------------------- |
| Unicast | Адрема для одного интерфейса |
| Anycast | Адреса для нескольких интерфейсов, где только один получает пакеты |
| Multicast | Адреса для нескольких интерфейсов, где они получают один и тот же пакет |
| Broadcast | Не существует и реализуется с помощью Multicast |
## TCP трехстороннее рукопожатие
Основные флаги TCP:
1. **SYN** - синхронизация
2. **ACK** - подтверждение
### Что происходит когда клиент запрашивает связь с сервером по TCP?
1. Клиент оправляет пакет с флагом **SYN** и другими согласованными параметрами в заголовке TCP
1. Это пакет синхронизации. Он будет установлен только в первом пакете от хоста и сервера и позволяет установить сеанс, позволяя с обоих концов согласовать порядковый номер для начала связи
2. Это играет решающую роль в отслеживании пакетов. Наряду с синхронизацией порядкового номера, на этом этапе согласуются многие другие параметры.
2. Сервет отвечает TCP пакетом, внутри которого установлен **SYN** флаг для согласования порядкового номера и флаг **ACK** для подтверждения предыдущего пакета **SYN**, отправленного клиентом.
1. Сервер так же включит любые изменения в параметры TCP, которые ему необходимо установить в полях заголовка.
3. Клиент ответит TCP пакетом, включающим в себя **ACK** для подтверждения согласия на согласование. Этот пакет завершает трехстороннее рукопожатие (three-way handshake) и устанавливает соединение между клиентом и сервером.
![[Pasted image 20250105183609.png]]
Если посмотреть на красный квадрат, то мы увидим пример трехстороннего рукопожатия. Сначала клиент отправляет **SYN** флаг серверу, на что сервер отвечает **SYN** для согласования порядкового номера и **ACK** для подтверждения предыдущего **SYN**. После чего идет последний пакет **ACK** от клиента, который завершает рукопожатия и устанавливает соединение.
Зеленым подчеркнуты 2 числа - одно из них это случайный номер "старшего" порта (клиенского порта, назначенного из диапазона динамических портов (**49152–65535**) операционной системой ) и "младшего" порта (порта на стороне сервера, на котором сервер принимает входящие подключения. Обычно это порт из диапазона **01023** ). В данном случае порт **80** это младший порт, стандартный порт для HTTP соединения, а **57678** - старший порт со стороны клиента.
### Окончание соединения TCP
![[Pasted image 20250105185359.png]]
Флаг **FIN** используется для обозначения необходимости разрыва соединения, и отправитель запрашивает завершение соединения.
Клиент подтверждает получение данных и отправляет **FIN** и **ACK** что бы завершить сессию. Сервер подтверждает получение **FIN** от клиента и отправляет **FIN ACK**. В итоге, клиент подтверждает закрытие сессии и закрывает соединение.
Всегда перед закрытием соединения мы увидим такую комбинацию:
1. **`FIN, ACK`**
2. **`FIN, ACK`**,
3. **`ACK`**
# FTP
**FTP** - file transfer protocol. Протокол позволяет быстро передавать данные между вычислительными устройствами. **Признан небезопасным и браузеры не поддерживают с 2020 года***. Использует **20 порт** для передачи данных и **21 порт** для получения данных.
Может работать в 2х режимах: **active** (по умолчанию) и **passive**.
**Active** в этом типе FTP клиент инициирует установление соединения с FTP-сервером, после чего сервер открывает новый порт для передачи данных, которые клиент должен принять. По умолчанию сервер использует порт 20 для передачи данных, а клиент использует порт 21 для установления соединения. Проблема этого типа FTP заключается в том, что многие сети блокируют входящие соединения на порту 20. **Passive** - в этом типе FTP клиент инициирует установление соединения с FTP-сервером, после чего сервер отвечает клиенту со своим IP-адресом и номером порта, который клиент может использовать для передачи данных. Этот тип FTP широко используется в Интернете, так как клиентам не нужно открывать новые порты для передачи данных, что делает его более безопасным и надежным.
#### FTP Commands
| Команда | Описание |
| ------- | ---------------------------------------------------------------------- |
| ftp | запускает программу FTP-клиента в командной строке |
| open | устанавливает соединение с FTP-сервером |
| user | вводит имя пользователя для аутентификации на FTP-сервере |
| pass | вводит пароль для аутентификации на FTP-сервере |
| cd | изменяет текущую директорию на FTP-сервере |
| lcd | изменяет текущую директорию на локальном компьютере |
| ls | показывает содержимое текущей директории на FTP-сервере |
| dir | показывает содержимое текущей директории на FTP-сервере в виде таблицы |
| get | скачивает файл с FTP-сервера на локальный компьютер |
| mget | скачивает несколько файлов с FTP-сервера на локальный компьютер |
| put | загружает файл с локального компьютера на FTP-сервер |
| mput | загружает несколько файлов с локального компьютера на FTP-сервер |
| delete | удаляет файл на FTP-сервере |
| mdelete | удаляет несколько файлов на FTP-сервере |
| quit | закрывает соединение с FTP-сервером и выходит из программы FTP-клиента |
# SMB
**SMB** - Server Message Block - протокол удалённого доступа, позволяющий совместно использовать ресурсы хостов. Требует аутентификации пользователя что бы гарантировать что у пользователя есть права на использование этого ресурса и выполнения действий.
| Название механизма | порты |
| ------------------ | ----------- |
| NetBios | UDP 137/138 |
| TCP | TCP 445 |
| NetBios | TCP 139 |
## Анализ трафика
**Анализ тарфика** - детальное исследование события или процесса, определение его происхождения и влияния, принятие конкретных мер предосторожности и действий для предотвращения угроз. Касаемо сетевого трафика - обработка полученного дампа, устранение шума, проверка на наличие подозрительных моментов.
| **Dependencies** | **Passive** | **Active** | **Description** |
| ----------------------------------------- | ----------- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Permission` | `☑` | `☑` | В зависимости от организации, в которой мы работаем, сбор данных может противоречить политике или даже закону в некоторых чувствительных областях, таких как здравоохранение или банковское дело. Обязательно всегда получайте разрешение в письменной форме от лица, обладающего соответствующими полномочиями, чтобы предоставить вам его. Мы можем называть себя хакерами, но мы хотим оставаться в свете с юридической и этической точки зрения. |
| `Mirrored Port` | `☑` | ☐ | Сетевой интерфейс коммутатора или маршрутизатора, настроенный для копирования данных из других источников в этот конкретный интерфейс, а также возможность перевода вашего сетевого адаптера в неразборчивый режим. Копирование пакетов на наш порт позволяет нам проверять любой трафик, предназначенный для других каналов, который мы обычно не можем видеть. Поскольку VLAN и порты коммутатора не будут пересылать трафик за пределы своего широковещательного домена, нам необходимо подключиться к сегменту или скопировать этот трафик на наш конкретный порт. Когда речь идет о беспроводной связи, пассивная технология может быть немного сложнее. Мы должны быть подключены к SSID, от которого мы хотим захватывать трафик. Простое пассивное прослушивание радиоволн вокруг нас предоставит нам множество рекламных объявлений SSID, но не более того. |
| `Capture Tool` | `☑` | `☑` | Способ поглощения трафика. Достаточно компьютера с доступом к таким инструментам, как TCPDump, Wireshark, Netminer или другим. Имейте в виду, что при работе с данными PCAP эти файлы могут быстро стать очень большими. Каждый раз, когда мы применяем к нему фильтр в таких инструментах, как Wireshark, приложение снова анализирует эти данные. Это может быть ресурсоемкий процесс, поэтому убедитесь, что на хосте достаточно ресурсов. |
| `In-line Placement` | ☐ | `☑` | Установка Tap в линию требует изменения топологии сети, в которой вы работаете. Хосты источника и назначения не заметят разницы в трафике, но ради маршрутизации и коммутации это будет невидимый следующий переход трафика. проходит по пути к месту назначения. |
| `Network Tap or Host With Multiple NIC's` | ☐ | `☑` | Компьютер с двумя сетевыми адаптерами или такое устройство, как сетевой перехватчик, необходим для обеспечения бесперебойной передачи данных, которые мы проверяем. Думайте об этом как о добавлении еще одного маршрутизатора в середину канала. Для активного захвата трафика мы будем дублировать данные непосредственно из источников. Лучшее место для ответвления — на третьем уровне связи между коммутируемыми сегментами. Это позволяет захватывать любую маршрутизацию трафика за пределами локальной сети. Коммутируемый порт или сегментация VLAN не отфильтровывают наше мнение здесь. |
| `Storage and Processing Power` | `☑` | `☑` | Вам понадобится много места для хранения и вычислительная мощность для захвата трафика. Гораздо больше трафика проходит по каналу третьего уровня, чем только внутри коммутируемой локальной сети. Подумайте об этом так; Когда мы пассивно захватываем трафик внутри локальной сети, это похоже на наливание воды в чашку из фонтана. Это постоянный поток, но управляемый. Активный захват трафика по маршрутизируемому каналу больше похож на использование шланга для наполнения чашки воды. За потоком стоит гораздо большее давление, и хосту может потребоваться большая обработка и хранение. |
# TCPdump
Базовые команды
| Команда | Результат |
| ------- | ---------------------------- |
| -D | Покажет доступные интерфейсы |