Скачиваний:
3
Добавлен:
18.07.2023
Размер:
130.56 Кб
Скачать

5

Министерство науки и высшего образования РФ

Федеральное государственное бюджетное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

Отчёт по лабораторной работе №6

Сниффер.

По дисциплине «Сети и телекоммуникации»

Выполнили студенты гр. 439 — 4:

___________ Фомин М.А.

«____» _________ 2022

Проверил доцент каф. АСУ:

___________ Суханов А.Я.

«____» _________ 2022

Томск 2022

Введение

Любым программам для мониторинга сети, инструментам безопасности необходим перехват сетевых пакетов. Цель работы: Научиться использовать технологии перехвата сетевых пакетов.

  1. Задание

Реализовать программу (сниффер) для перехвата пакетов в сети Wi-Fi.

Реализовать удобный вывод данных о перехваченном пакете.

  1. Листинг программы

  • PROGRAM.CS

public class Program

{

public static void Main()

{

var devices = CaptureDeviceList.Instance;

if (devices.Count < 1)

{

Console.WriteLine("Не был обнаружен девайс");

return;

}

var device = devices[4];

device.OnPacketArrival += new PacketArrivalEventHandler(device_OnPacketArrival);

int readTimeoutMilliseconds = 1000;

device.Open(DeviceMode.Promiscuous, readTimeoutMilliseconds);

Console.WriteLine("Нажмите Ctrl+C для выхода...");

device.Capture();

}

private static void device_OnPacketArrival(object sender, CaptureEventArgs e)

{

Packet packet = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data);

DateTime time = e.Packet.Timeval.Date;

int len = e.Packet.Data.Length;

ICMPv4Packet icmpPacket = ICMPv4Packet.GetEncapsulated(packet);

TcpPacket tcpPacket = TcpPacket.GetEncapsulated(packet);

IpPacket ipPacket = IpPacket.GetEncapsulated(packet);

string ipTO = ipPacket.SourceAddress.ToString();

string ipFROM = ipPacket.DestinationAddress.ToString();

string portTO;

string portFROM;

string protocol = ipPacket.Protocol.ToString();

string versionProtocol = ipPacket.Version.ToString();

if (protocol == "TCP")

{

portTO = tcpPacket.SourcePort.ToString();

portFROM = tcpPacket.DestinationPort.ToString();

}

else

{

portTO = "None";

portFROM = "None";

}

Console.WriteLine("{0}:{1}:{2} | Packet: {3,4} | {4,15}:{5,-5} => {6,15}:{7,-5} | Protocol: {8,5} Version: {9,5}",

time.Hour, time.Minute, time.Second, len, ipTO, portTO, ipFROM, portFROM, protocol, versionProtocol);

}

}

  1. Результаты работы

На рисунке 1 представлена работа сниффера.

Рисунок 1 — работа сниффера

Выводы

В результате лабораторной работы был написана программа для перехвата сетевых пакетов внутри локальной сети. Научился использовать технологии перехвата сетевых пакетов, для работы с которой был использован язык C# и библиотека SharpPcap.

Соседние файлы в папке Лабораторная работа 10