Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа 10. Перехват сетевых пакетовСодержание книги
Поиск на нашем сайте
Реализовать программу (сниффер) для перехвата пакетов в сети Wi-Fi. Любым программам для мониторинга сети, инструментам безопасности необходим перехват сетевых пакетов. На языке C# и для Фреймворка Net существует по крайней мере две библиотеки: SharPcap и WinPKFilter.
SharpPcap
SharpPcapSharpPcap — библиотека для.NET, которая позволяет перехватывать пакеты. По сути, это обертка над библиотекой Pcap, которая используется во многих популярных продуктах. Например, сниффер Wireshark, IDS Snort. С SharpPCap также поставляется замечательная библиотека для парсинга пакетов — Packet.Net.
Packet.Net поддерживает следующий протоколы:
* Ethernet * LinuxSLL * Ip (IPv4 and IPv6) * Tcp * Udp * ARP * ICMPv4 и ICMPv6 * IGMPv2 * PPPoE * PTP * Link Layer Discovery Protocol (LLDP) * Wake-On-LAN (WOL)
Работать с библиотекой достаточно просто:
// метод для получения списка устройств CaptureDeviceList deviceList = CaptureDeviceList.Instance; // выбираем первое устройство в спсике (для примера) ICaptureDevice captureDevice = deviceList[0]; // регистрируем событие, которое срабатывает, когда пришел новый пакет captureDevice.OnPacketArrival += new PacketArrivalEventHandler(Program_OnPacketArrival); // открываем в режиме promiscuous, поддерживается также нормальный режим captureDevice.Open(DeviceMode.Promiscuous, 1000); // начинаем захват пакетов captureDevice.Capture();
Теперь в обработчике события
device_OnPacketArrival
мы можем работать с пакетом:
static void Program_OnPacketArrival(object sender, CaptureEventArgs e) { // парсинг всего пакета Packet packet = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data); // получение только TCP пакета из всего фрейма var tcpPacket = TcpPacket.GetEncapsulated(packet); // получение только IP пакета из всего фрейма var ipPacket = IpPacket.GetEncapsulated(packet); if (tcpPacket!= null && ipPacket!= null) { DateTime time = e.Packet.Timeval.Date; int len = e.Packet.Data.Length;
// IP адрес отправителя var srcIp = ipPacket.SourceAddress.ToString(); // IP адрес получателя var dstIp = ipPacket.DestinationAddress.ToString();
// порт отправителя var srcPort = tcpPacket.SourcePort.ToString(); // порт получателя var dstPort = tcpPacket.DestinationPort.ToString(); // данные пакета var data = tcpPacket.PayloadPacket; } }
Так же библиотека позволяет создавать пакеты и отправлять, работать с дампами и многое другое. Без проблем работает на mono. У SharpPcap есть конкурент Pcap.net. По описанию возможности совпадают.
WinPKFilter
WinPKFilter — NDIS драйвер для перехвата пакетов. Поддерживаются различные операционные системы:x/ME/NT/2000/XP/2003/Vista/2008/Windows 7/2008R2. Плюсом драйвера является то, что он позволяет модифицировать и блокировать пакеты. Для некоммерческих проектов библиотека бесплатна. Для удобной работы с драйвером предоставляется библиотека. На сайте можно скачать обертки для этой библиотеки для следующих языков — C#, Delphi, VB, MS VC++, C++ Builder. Работать с WinPkFilter сложнее, чем SharpPcap, нужны хорошие знания в работе с неуправляемым кодов и в маршалинге. Да и размер кода получается намного больше. На официальном сайте можно задать вопрос на который Вы без проблем получите от автора (кстати русский).
Перехватчик с использование библиотеки scapy на python.
Далее описан сканер, который будет осуществлять пассивное сканирование сети методом перехвата SSID-идентификаторов. Весь проект занимает несколько строчек кода на Python, в основу положена библиотека Scapy (www.secdev.org/projects/scapy), предназначенная для манипуляции сетевыми пакетами. К сожалению, под Windows это реализуется на несколько порядков сложнее, поэтому в качестве платформы мы выберем Linux. Установка scapy cd /scapy/ & python setup.py install.
Далее можно приступить к написанию сканера. Сканер будет просматривать специальные фреймы, которые содержат уникальный идентификатор сети SSID (Service Set Identifier) и рассылаются точкой доступа. Их также называют Beacon-фреймами. По ним мы и будут определяться найденные сети.
import sys
from scapy import *
print "Wi-Fi SSID passive sniffer"
interface = sys.argv[1] #задаем название интерфейса в качестве дополнительного консольного аргумента
def sniffBeacon(p):
if p.haslayer(Dot11Beacon):
print p.sprintf("%Dot11.addr2%[%Dot11Elt.info%|%Dot11Beacon.cap%]")
sniff(iface=interface,prn=sniffBeacon)
Вывод программы содержит информацию о перехваченных Beacon-фреймах:
skvoz@box: sniffssid.py eth1
00:12:17:3c:b6:ed['netsquare4'|short-slot+ESS]
00:30:bd:ca:1e:1e['netsquare7'|ESS+privacy]
Также можно поэкспериментировать с выбором haslayer (параметра мониторинга), поменяв его значение Dot11Beacon на: Dot11AssoResp, Dot11ProbeReq, Dot11ATIM, Dot11Auth, Dot11ProbeResp, Dot11Addr2MACField, Dot11Beacon, Dot11ReassoReq, Dot11Addr3MACField, Dot11Deauth, Dot11ReassoResp, Dot11Addr4MACField, Dot11Disas, Dot11WEP, Dot11AddrMACField, Dot11Elt, Dot11AssoReq, Dot11PacketList. В этом случае можно перехватить не только SSID точки доступа, но и всю остальную информацию о сети. К примеру, узнать информацию о физических идентификаторах пользователей и сетевых обращениях. Для этого мы задействуем протокол ARP:
import sys, os from scapy import * interface = raw_input("enter interface") #пользователь задает интерфейс сети os.popen("iwconfig interface mode monitor") #перевод карты в режим монитора на заданном интерфейсе #функция перехвата MAC def sniffMAC(p): if p.haslayer(Dot11): mac = p.sprintf("[%Dot11.addr1%)|(%Dot11.addr2%)|(%Dot11.addr3%)]") print mac #функция перехвата IP-адресов и показа ARP сообщений def sniffarpip(p): if p.haslayer(IP): ip = p.sprintf("IP - [%IP.src%)|(%IP.dst%)]") print ip elif p.haslayer(ARP): arp = p.sprintf("ARP - [%ARP.hwsrc%)|(%ARP.psrc%)]-[%ARP.hwdst%)|(%ARP.pdst%)]") print arp #уровни, которые мы мониторим sniff(iface=interface,prn=sniffMAC, prn=sniffarpip) Вывод skvoz@puffy: python sniff.py eth1 [ff:ff:ff:ff:ff:ff)|(00:30:bd:ca:1e:1e)|(00:30:bd:ca:1e:1e)] IP - [192.168.7.41)|(192.168.7.3)] ARP - [00:0f:a3:1f:b4:ff)|(192.168.7.3)]-[00:00:00:00:00:00)|(192.168.7.41)]
Лабораторная работа 11. SASL аутоинтефикация Реализовать аутоинтефикацию, используя основные механизмы простого протокола аутентификации. SASL (англ. Simple Authentication and Security Layer — простой уровень аутентификации и безопасности) — это фреймворк (каркас) для предоставления аутентификации и защиты данных в протоколах на основе соединений. Он разделяет механизмы аутентификации от прикладных протоколов, в теории позволяя любому механизму аутентификации, поддерживающему SASL, быть использованным в любых прикладных протоколах, которые используют SASL. Фреймворк также предоставляет слой защиты данных. Для использования SASL протокол включает команду для идентификации и аутентификации пользователя на сервере и для опциональной защиты переговоров последующей интерактивности протокола. Если это используется в переговорах, то слой безопасности вставляется между протоколом и соединением. В 1997 Джон Гардинер Майерс (John Gardiner Myers) написал изначальную спецификацию SASL (RFC 2222) при университете Карнеги-Меллона (Carnegie Mellon University). В 2006 году этот документ утратил силу после введения RFC 4422, под редакцией Алексея Мельникова (Alexey Melnikov) и Курта Зейлинга (Kurt Zeilenga). Механизмы SASL реализуют серию запросов и ответов. Определенные SASL механизмы включают:
«EXTERNAL», используется, когда аутентификация отделена от передачи данных (например, когда протоколы уже используют IPsec или TLS); «ANONYMOUS», для аутентификации гостевого доступа (RFC 4505); «PLAIN», простой механизм передачи паролей открытым текстом. PLAIN является заменой устаревшему LOGIN; «OTP», механизм одноразовых паролей. OTP заменяет устаревший механизм SKEY; «SKEY», система одноразовых паролей (устаревший); «CRAM-MD5»; «DIGEST-MD5»; «NTLM»; «GSSAPI»; GateKeeper (& GateKeeperPassport), разработана Microsoft для MSN Chat; «KERBEROS IV» (устаревший). Семья механизмов GS2 поддерживает произвольные GSSAPI механизмы в SASL. Это сейчас стандартизовано в RFC 5801.
ЛИТЕРАТУРА 1. Компьютерные сети: Принципы, технологии, протоколы: Учебное пособие для вузов/ В. Г. Олифер, Н. А. Олифер. - 3-е изд.. - СПб.: Питер, 2008. - 957[3] с.: ил.. 2. Компьютерные сети: Пер. с англ. / Э. Таненбаум; пер.: В. Шрага. - 4-е изд. - СПб.: Питер, 2007. - 991[1] с.: ил. - (Классика Computer Science). - Библиогр.: с. 941-970. 3. Современные беспроводные сети: состояние и перспективы развития / И. А. Гепко [и др.]; ред. В. Ф. Олейник. - Киев: ЕКМО, 2009. - 671 с. 4. Беспроводные сети Wi-Fi: учебное пособие / А. В. Пролетарский [и др.]. -М.: Интернет-Университет Информационных Технологий, 2007; М.: БИНОМ. Лаборатория знаний, 2007. - 215 с. 5. Сети. Беспроводные технологии: пер. с англ. / П. Беделл; пер. Р. М. Евтеев. - М.: НТ Пресс, 2008. -441 с. 6. Основы программирования на JAVA: Учебное пособие/ Р. В. Юдахин; - Томск: ТУСУР, 2004. - 195 с.:
|
||
|
Последнее изменение этой страницы: 2016-08-10; просмотров: 872; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.236 (0.009 с.) |