# Лабораторная 3.  Пакетные анализаторы трафика

Цель:<br><br>
Приобрести навыки работы с пакетными анализаторами трафика<br><br>
Задачи:<br>
1.	Подключится к виртуальной машине на облачной платформе СПбГУТ
0.	Установить tcpdump
0.	Получить навыки работы c tcpdump
0.	Получить навыки работы c SCP
0.  Получить навыки работы с Wireshark

##### Работа с анализатором пакетов tcpdump
tcpdump это компьютерная программа анализатор пакетов работающая через интерфейс командной строки. Она позволяет пользователю отображать пакеты, передаваемые или получаемые по сети

##### Синтаксис tcpdump
```bash
tcpdump {опции} -i {название интерфейса} {Фильтры}
```

###### опции tcpdump
|Ключ опции|Что делает|
|--|--|
|-A| Вывод пакетов в кодировке ASCI|
|-c n | перехватить n пакетов|
|-C n | создание дампа трафика определенного при размере, при генерации больше заданного создать новый файл для дампа, где n размер пакета по умолчанию указывается 1000000 байт  <br><br> Добавив к значению суффикс k/K, m/M или g/G, единицу измерения можно изменить на 1,024 (КиБ), 1,048,576 (МиБ) или 1,073,741,824 (ГиБ) соответственно. |
|-D | вывести список сетевых интерфейсов | 
|-e |выводить информацию уровня соединения для каждого пакета, это может быть полезно, например, для отображения MAC адреса |
|-n  |не отображать домены|
|-K | не проверять контрольные суммы пакетов|
|-w {название дампа}.pcap | запись вывода в файл |
|-r {название дампа}.pcap | чтение дампа созданного с помощью ключа -w| 
| -v -vv -vvv| Более подробный вывод, желательно устанавливать -vvv, для дальнейшей работы|
| -q | выводить минимум информации| 

###### Примеры работы с tcpdump
Просмотр всех интерфейсов
```bash
sudo tcpdump -D 
```

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/aL736ydxCgw5yIWC-image-1663324157183.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/aL736ydxCgw5yIWC-image-1663324157183.png)


Просмотр всего трафика на интерфейсе `eno0` с адресом назначения `8.8.8.8`
```bash
sudo tcpdump -i eno0 ip dst 8.8.8.8
```

> Название интерфейса брать из своей конфигурации

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/xzfqPIieNktSBp8Z-image-1663338357721.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/xzfqPIieNktSBp8Z-image-1663338357721.png)

Просмотр всего трафика на интерфейсе `eno0` с адресом отправки `8.8.8.8`
```bash
sudo tcpdump -i eno0 ip src 8.8.8.8
```

> Название интерфейса брать из своей конфигурации

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/fSq6Df8cYFwvMmvy-image-1663338507109.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/fSq6Df8cYFwvMmvy-image-1663338507109.png)

Просмотр всего трафика на интерфейсе `eno0` с доменным именем назначения `resds.ru`
```bash
sudo tcpdump -i eno0 dst host  resds.ru
```

> Название интерфейса брать из своей конфигурации


[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/SpNXtU5tkcr7V6yK-image-1663338706473.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/SpNXtU5tkcr7V6yK-image-1663338706473.png)

Просмотр всего трафика на интерфейсе `eth0` с доменном отправки  `resds.ru`
```bash
sudo tcpdump -i eno0 dst host resds.ru
```

> Название интерфейса брать из своей конфигурации

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/9VbfUpITLxZEj3fz-image-1663339052108.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/9VbfUpITLxZEj3fz-image-1663339052108.png)

Просмотр трафика на интерфейсу `eno0` с использованием `80` порта
```bash
sudo tcpdump -i eno0 port 80
```

> Название интерфейса брать из своей конфигурации


[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/El0ePXABBi4a1Wlu-image-1663339179269.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/El0ePXABBi4a1Wlu-image-1663339179269.png)

Просмотр трафика на интерфейсе `eth0` использующих диапазон портов `80-443`
```bash
sudo tcpdump -i eth0 portrange 80-443
```

Также для некоторых протоколов существуют готовые фильтры к примеру можно отфильтровать все `arp` пакеты интерфейса `eth0`
```bash
sudo tcpdump -i eth0 arp
```

Возможно фильтрация по размеру пакета, так мы можем отфильтровать все пакеты меньше 64 байт
```bash
sudo tcpdump -i eth0 less 64
```
Фильтрация пакетов больше 64
```bash
sudo tcpdump -i eth0 greater 64
```
Сохранить весь `udp` трафик проходящий интерфейс `eth0` в файл `dump.pcap`
```bash
sudo tcpdump -i eth0 udp -w dump.pcap
```
прочитать дамп `dump.pcap`
```bash
tcpdump -r dump.pcap
```


#### Использование SCP
SCP (secure copy) — это утилита командной строки, которая позволяет безопасно копировать файлы и каталоги между двумя локациями. Базовая технология для работы scp - это SSH(Secure Shell)

С помощью scp можно скопировать файл или каталог:
* От локальной  машины к удаленной.
* От удаленной системы к вашей локальной машине.
* Между двумя удаленными системами.

##### Синтаксис SCP 
```bash
scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
```
###### Опции SCP
|ключ|Что делает|
|---|---|
|-p|порт ssh на удаленной системе|
|-r|рекурсивное копирование|
|-С|Сжатие при передаче на удаленное устройство|
|-i n | использование ключа авторизации, где n путь к файлу ключа|
|-1 | использовать  SSH 1|
|-2| использовать SSH 2|
|-4|использовать IPv4|
|-6|использовать  IPv6|
|-o ssh_option| Возможность использовать дополнительные опции реализованные в протоколе SSH, на месте ssh_option используется ключи используемые ssh клиентом|
|-q|Тихий режим <br> ничего не выводится во время передачи|

##### Примеры использования
Перемещение файла `foobar.txt` с узла `resds.ru` под пользователем `test` в локальную домашнюю директорию 
```bash
scp test@resds.ru:foobar.txt ~/
```
> является примером, не выполнять

Перемещение файла `dump.pcap` из текущей директории на компьютер с именем `windows-ad-pc` для пользователя `tarabanov.if` находящимся в домене `ad`,  в домашнюю директорию пользователя

  ```bash
  scp dump.pcap ad\\tarabanov.if@windows-ad-pc:c:/users/tarabanov.if
  ```
  
* windows-ad-pc -  ip адрес вашего PC
* ad\\tarabanov.if - учетная запись на вашем ПК
* c:/users/tarabanov.if - путь к директории, куда перемещается файл

[![](https://docs.resds.ru/uploads/images/gallery/2022-09/scaled-1680-/BzE1VrUIJIOoHA4F-image-1663581791931.png)](https://docs.resds.ru/uploads/images/gallery/2022-09/BzE1VrUIJIOoHA4F-image-1663581791931.png)


###### Заданием scp
1. Создайте текстовый файл с вашими ФИО и группой и переместите его на локальный пк(аудиторный)
    ```
    Группа ИКТК-XY
    Иванов Иван Иванович
    Петров Петр Петрович
    ```
0. создайте нового пользователя `test_scp` с паролем `password` 
	1. смените пользователя на test_scp
	2. Создайте текстовый файл с названием лабораторной работы
    3. Вернуться на основную учетную запись
	4. передать с пользователя test_scp на локальный пк(аудиторный)
    
    
#### Задание
1. Открыть консольный мультиплексор 
	1. Запустить снятие трафика, с записью трафика в файл `http.pcap`
	0. Разделить экран вертикально на половину
    0. Загрузить страницу, сделанную в первой лаб. работе
    0. Закончить снятие трафика
0. Передать файл на локальный(аудиторный пк)
0. Открыть файл в `wireshark`, отфильтровать для отображения только задействованных пакетов в передачи  html страницы