Vol-Alchevsk
Ucoz.net


Меню сайта
Реклама
вложение денег в акции
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Для того, чтобы узнать IP адрес из письма почты мэйл email, нужно для начала установить и получить письмо любой почтовой программой - любым почтовым клиентом: MS Outlook, The Bat!....Как настроить MS Outlook читай ниже. Когда получили письмо надо просто посмотреть код письма. Там в заголовке письма указан IP адрес отправителя.  В Outlook открываем письмо и жмем Файл, затем Свойства и выбираем закладку Подробности. В The Bat! делается так: Открываем письмо, жмём Просмотр и выбираем Служебная информация после этого вверху прибавляется заголовок письма. Во многих почтовых системах с web-интерфейсом тоже есть возможность посмотреть заголовок письма...  

 

Пример (заголовок)

From vasyap@mail.ru Sat Mar 27 12:16:35 2000...................от кого и дата
Envelope-to: xxx@mail.ru.
Delivery-date: Sat, 27 Mar 2000 12:16:35 +0300.....................дата и время
Received: from mail by f8.mail.ru with local (Exim 3.14 #43)
id Рк4eК5е-0554нq7-00
for xxxx@mail.ru; Sat, 27 Mar 2000 12:16:35 +0300............это наш адрес
Received: from [208.46.44.12] by koi.mail.port.ru with HTTP;
Sat, 27 Mar 2000 09:16:35 +0000 (GMT)
From: "Vasya Pupkin" <vasyap@mail.ru>..
To: XXX@mail.ru..............................................кому
Subject: Hi Beavis...............................................................Тема письма
Mime-Version: 1.0
X-Mailer: The But!...............................................................прога которой посылали
X-Originating-IP: unknown via proxy [xxx.yyy.zzz.xxx].......IP отправителя
Reply-To: "Vasya Pupkin" <vasyap@mail.ru>......................кому ответить(от кого)
Content-Type: text/plain; charset=koi8-r...............................кодировка письма
Content-Transfer-Encoding: 8bit
Message-Id: <Рк4eК5е-0554нq7-00@f8.mail.ru>
Date: Sat, 27 Mar 2000 12:16:35 +0300

Важно

В письме может быть несколько IP адресов, самый нижний и есть IP адрес пользователя отправителя

Скрытие своего IP-адреса

О том как скрыть свой IP отправляя письмо я вам скажу просто: пользуйтесь анонимайзерами для отправки электронной почты, другими словами анонимная электронная почта это называется,в Интернет их сейчас много, также поискать можете на этой странице ПОИСК, там форма поиска приспособлена специально для поиска по этому немаленькому сайту или в Интернет, зависит от того где поставить галочку.



Если у Вас возникли вопросы или пожелания то добро пожаловать на форум, там Вы можете задать все вопросы, связанные с задачей как вычислить пользователя по IP-адресу а также дать свои рекомендации и советы. Регистрируйтесь и общайтесь на тему перехвата траффика.
Подробнее о снифферах под Win32 имеется несколько разделов:

Снифферы - это программы, которые перехватывают весь сетевой трафик. Снифферы полезны для диагностики сети (для админов) и для перехвата паролей (понятно для кого). Например, если ты получил доступ к одной сетевой машине и установил там сниффер, то скоро все пароли от их подсети будут твои. Снифферы ставят сетевую карту в прослушивающий режим (PROMISC).То есть они получают все пакеты. В локальной сети можно перехватывать все отправляемые пакеты со всех машин (если вы не разделены всякими хабами), так как там практикуется широковещание. Снифферы могут перехватывать все пакеты (что очень неудобно, ужасно быстро переполняется лог файл, зато для более детального анализа сети самое оно) или только первые байты от всяких ftp, telnet, pop3 и т.д. Снифферов сейчас развелось много... Множество снифферов есть как под Unix, так и под Windows (даже под DOS есть). Снифферы могут поддерживать только определенную операционную систему (например, linux_sniffer.c, который поддерживает Linux), либо несколько (например, Sniffit, работает с BSD, Linux, Solaris). Снифферы так разжились из-за того, что пароли передаются по сети открытым текстом. Таких служб уйма. Это telnet, ftp, pop3, www и т.д. Этими службами пользуется уйма народу. После бума снифферов начали появляться различные алгоритмы шифрования этих протоколов. Появился SSH (альтернатива telnet, поддерживающий шифрование), SSL(Secure Socket Layer - разработка Netscape, способная зашифровать www сеанс). Появились всякие Kerberous, VPN(Virtual Private Network). Заюзались некие AntiSniff'ы, ifstatus'ы и т.д. Но это в корне не изменило положения. Службы, которые используют передачу пароля plain text'ом, используются вовсю, поэтому сниффать еще долго будут.

Windows-реализации снифферов

CommView - Разработчик: TamoSoft, Inc.
Довольно продвинутый сниффер производства TamoSoft Inc., скачать можно на сайте. Можно установить свои правила на сниффинг (например, игнорировать ICMP, а TCP сниффать, также кроме интернет-протоколов имеется поддержка ethernet-протоколов, таких как ARP, SNMP, NOVELL и т.д.). Можно, например, сниффать только входящие пакеты, а остальные игнорировать, можно указать лог-файл для всех пакетов с лимитов размера в мегабайтах. Имеет две утилиты - Packet Generator и NIC Vendor Indentifier. Можно посмотреть все подробности посланных/полученных пакетов (например, в TCP-пакете можно просмотреть Source Port, Destination Port, Data length, Checksum, Sequence, Window, Ack, Flags, Urgent). Радует еще то, что она автоматически устанавливает capture-драйвер. В общем утилита очень полезная для снифа, рекомендую всем.

SpyNet - packetstorm.securify.com
Довольно известный сниффер производства Laurentiu Nicula 2000. Обычные функции - перехват/декодинг пакетов. Хотя декодинг развит прикольно (можно, например, по пакетам воссоздавать странички, на которых побывал пользователь). В общем, на любителя.

Analyzer - neworder.box.sk
Analyzer требует установку специального драйвера, вложенного в пакет (packet.inf, packet.sys). Можно посмотреть всю информацию о вашей сетевой карте. Также Analyzer поддерживает работу с командной строкой. Он прекрасно работает с локальной сетью. Имеет несколько утилит: ConvDump,GnuPlot,FlowsDet,Analisys Engine. Ничего выдающегося.

Iris Network Traffic Analyzer - Разработчик: eEye Digital Security
IRIS продукт известной фирмы eEye скачать можно на сайте. Сниффер не дешевый, но очень функциональный. Представляет обширные возможности по фильтрации. Меня в нем сильно порадовало три фишки:
1.Protocol Distribution
2.Top hosts
3.Size Distribution
Также имеется Packet Decoder, скачать который можно на сайте. Он поддерживает развитую систему логов. А доступные возможности фильтрации превосходят все снифферы обзора. Это Hardware Filter, который может ловить либо все пакеты (Promiscious), либо с различными ограничениями (например, захватывать только multicast пакеты или broadcast пакеты, либо только Mac-фреймы). Можно фильтровать по определенным MAC/IP адресам, по портам, по пакетам, содержащим определенные символы. В общем, неплохой сниффер. Требует 50comupd.dll.

WinDUMP
Аналог TCPdump for Unix. Этот сниффер действует через командную строку и представляет минимальные возможности по конфигурации и еще требует библиотеку WinPcap. Мне не очень...

SniffitNT
Тоже требует WinPcap. Работа только как командной строкой, так и в интерактивном режиме. Со сложными опциями. Мне не очень.

ButtSniff
Обычный пакетный сниффер, созданный известнейшей группой CDC (Cult of the Dead Cow). Фишка в том, что его можно использовать, как плагин к BO (очень полезно). Работа из командной строки.

Shadow IM Sniffer - Разработчик: SAFETY-LAB
Описание: Shadow IM Sniffer - программа перехвата сообщений IM клиентов в пределах ЛВС. Поддержка различных IM клиентов и различных форматов сообщений - делает снифер уникальным продуктом. Все перехваченные сообщения сохраняются в базы SQL(MSSQL,MySQL). Возможность работы снифера как в обычном режиме так и в режиме сервиса.
Существуют еще множество снифферов, таких как NatasX, NetXRay, CooperSniffer, LanExplorer, Net Analyzer и т.д. Пойдем дальше...

Unix'овые снифферы

Все снифферы данного обзора можно найти на packetstorm.securify.com.

linsniffer
Это простой сниффер для перехвата логинов/паролей. Стандартная компиляция (gcc -o linsniffer linsniffer.c). Логи пишет в tcp.log.

linux_sniffer
Linux_sniffer требуется тогда, когда вы хотите детально изучить сеть. Стандартная компиляция. Выдает всякую "шнягу" дополнительно, типа isn, ack, syn, echo_request (ping) и т.д.

Sniffit
Sniffit - продвинутая модель сниффера написанная Brecht Claerhout. Install (нужна libcap):

#./configure #make Теперь запускаем сниффер: #./sniffit usage: ./sniffit [-xdabvnN] [-P proto] [-A char] [-p port] [(-r|-R) recordfile] [-l sniflen] [-L logparam] [-F snifdevice] [-M plugin] [-D tty] (-t&lt;Target IP&gt; | -s&lt;Source IP&gt;) | (-i|-I) | -c&lt;config file&gt;] Plugins Available: 0 -- Dummy Plugin 1 -- DNS Plugin Как видите, сниффит поддерживает множество опций. Можно использовать сниффер в интерактивном режиме. Сниффит хоть и довольно полезная программа, но я ей не пользуюсь. Почему? Потому что у Sniffit большие проблемы с защитой. Для Sniffit'a уже вышли ремоутный рут и дос для Linuxл. Не каждый сниффер себе такое позволяет.

HUNT
Это мой любимый сниффер. Он очень прост в обращении, поддерживает много прикольных фишек и на данный момент не имеет проблем с безопасностью. Плюс не особо требователен к библиотекам (как, например, linsniffer и Linux_sniffer). Он может в реальном времени перехватывать текущие соединения и под чистую "дампить" с удаленного терминала. В общем, Hijack rulezzz. Рекомендую всем для усиленного использования.

Install: #make Run: #hunt -i [interface]

READSMB
Сниффер READSMB вырезан из LophtCrack и портирован под Unix (как ни странно). Readsmb перехватывает SMB пакеты.

TCPDUMP
tcpdump - довольно известный анализатор пакетов, написанный еще более известным человекомм - Вэн Якобсоном, который придумал VJ-сжатие для PPP и написал программу traceroute (и кто знает что еще?). Требует библиотеку Libpcap.

Install: #./configure #make

Теперь запускаем ее:

#tcpdump tcpdump: listening on ppp0 Все твои коннекты выводит на терминал. Вот пример вывода на пинг ftp.technotronic.com: 02:03:08.918959 195.170.212.151.1039 &gt; 195.170.212.77.domain: 60946+ A? ftp.technotronic.com. (38) 02:03:09.456780 195.170.212.77.domain &gt; 195.170.212.151.1039: 60946* 1/3/3 (165) 02:03:09.459421 195.170.212.151 &gt; 209.100.46.7: icmp: echo request 02:03:09.996780 209.100.46.7 &gt; 195.170.212.151: icmp: echo reply 02:03:10.456864 195.170.212.151 &gt; 209.100.46.7: icmp: echo request 02:03:10.906779 209.100.46.7 &gt; 195.170.212.151: icmp: echo reply 02:03:11.456846 195.170.212.151 &gt; 209.100.46.7: icmp: echo request 02:03:11.966786 209.100.46.7 &gt; 195.170.212.151: icmp: echo reply В общем, сниффер полезен для отладки сетей, нахождения неисправностей и т.д.

Dsniff
Dsniff требует libpcap, ibnet, libnids и OpenSSH. Записывает только введенные команды, что очень удобно. Вот пример лога коннекта на unix-shells.com:

02/18/01 03:58:04 tcp my.ip.1501 -&gt; handi4-145-253-158-170.arcor-ip.net.23 (telnet) stalsen asdqwe123 ls pwd who last exit Вот dsniff перехватил логин с паролем (stalsen/asdqwe123). Install: #./configure #make #make install

Защита от снифферов

Самый верный способ защиты от снифферов - использовать шифрование (SSH, Kerberous, VPN, S/Key, S/MIME, SHTTP, SSL и т.д.). Ну, а если не охота отказываться от plain text служб и установления дополнительных пакетов? Тогда пора использовать антиснифферские пакеты...

AntiSniff for Windows
Этот продукт выпустила известная группа Lopht. Это был первый продукт в своем роде. AntiSniff, как сказано в описании: "AntiSniff is a Graphical User Interface (GUI) driven tool for detecting promiscuous Network Interface Cards (NICs) on your local network segment". В общем, ловит карты в promisc режиме. Поддерживает огромное количество тестов (DNS test, ARP test, Ping Test, ICMP Time Delta Test, Echo Test, PingDrop test). Можно сканировать как одну машину, так и сетку. Здесь имеется поддержка логов. AntiSniff работает под Windows 95/98/NT/2000, хотя рекомендуемая платформа Windows NT. Но царствование его было недолгим, и уже в скором времени появился сниффер под названием AntiAntiSniffer, написанный Майком Перри (Mike Perry) (найти его можно по адресу www.void.ru/news/9908/snoof.txt).Он основан на LinSniffer (рассмотренный далее).

Unix sniffer detect
Сниффер можно обнаружить командой:

#ifconfig -a lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:2373 errors:0 dropped:0 overruns:0 frame:0 TX packets:2373 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 ppp0 Link encap:Point-to-Point Protocol inet addr:195.170.y.x P-t-P:195.170.y.x Mask:255.255.255.255 UP POINTOPOINT PROMISC RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:3281 errors:74 dropped:0 overruns:0 frame:74 TX packets:3398 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 Как видите, интерфейс ppp0 стоит в PROMISC mode. Либо оператор загрузил сниффер для проверки сети, либо вас уже "имеют"... Но помните, что ifconfig можно спокойно подменить, поэтому используйте tripwire для обнаружения изменений и всяческие программы для проверки на сниффы.

AntiSniff for Unix.
Работает на BSD, Solaris и Linux. Поддерживает ping/icmp time test, arp test, echo test, dns test, etherping test, в общем, аналог AntiSniff'а для Win, только для Unix.

Install: #make linux-all Sentinel Тоже полезная программа для отлова снифферов. Поддерживает множество тестов, проста в использовании. Install : #make #./sentinel ./sentinel [method] [-t &lt;target ip&gt;] [options] Methods: [ -a ARP test ] [ -d DNS test ] [ -i ICMP Ping Latency test ] [ -e ICMP Etherping test ] Options: [ -f &lt;non-existant host&gt; ] [ -v Show version and exit ] [ -n &lt;number of packets/seconds&gt; ] [ -I &lt;device&gt; ]

Опции настолько просты, что нет комментариев. 

 

Сниффер – это программа, которая позволяет перехватывать сетевой трафик. Когда говорят о снифферах, то обычно проводят аналогию с прослушиванием телефонных разговоров. Подключившись к телефонной сети, можно перехватить беседу людей. Примерно также в компьютерных сетях можно перехватывать информацию, которой обмениваются компьютеры. Прослушивание возможно благодаря особенности архитектуры сети Ethernet (IEEE 802.3). Архитектура большинства локальных сетей основана на технологии Ethernet (ether – эфир, network – сеть), в которой все устройства подключены к одной среде передачи данных и совместно её используют. Топология сети Ethernet – линейная или звездообразная, а скорость передачи данных 10, 100 и 1000 Мбит/сек. Ethernet – это широковещательная сеть, в которой все узлы могут принимать все сообщения через единую магистраль. Используя эту особенность Ethernet, отпадает необходимость несанкционированного подключения к сегменту сети, т.е. не требуется резать кабели. Компьютер, с которого предполагается прослушивать, уже подключен к некоторому сегменту сети.

ПРИМЕЧАНИЕ

Sniff (англ.) – нюхать, фыркать, втягивать носом.

Слово sniffer предприимчивые американцы из фирмы Network Associates зарегистрировали. Оно является торговой маркой, под которой распространяется программа-анализатор работы компьютерной сети.

Сниффер может анализировать только то, что проходит через его сетевую карту. Внутри одного сегмента сети Ethernet все пакеты рассылаются всем машинам, из-за этого возможно перехватывать чужую информацию. Использование коммутаторов (switch, switch-hub) и их грамотная конфигурация уже является защитой от прослушивания. Между сегментами информация передаётся через коммутаторы. Коммутация пакетов – форма передачи, при которой данные, разбитые на отдельные пакеты, могут пересылаться из исходного пункта в пункт назначения разными маршрутами. Так что если кто-то в другом сегменте посылает внутри его какие-либо пакеты, то в ваш сегмент коммутатор эти данные не отправит.

Прослушивающие программы или пакетные анализаторы скачать которые можно на сайте, относятся к классу утилит двойного назначения. С одной стороны снифферы – мощное оружие, с помощью которого можно осуществить пассивную сетевую атаку. Эти программы могут представлять собой серьезную угрозу, поскольку могут перехватывать и расшифровывать имена и пароли пользователей, конфиденциальную информацию, нарушать работу отдельных компьютеров и сети в целом. Известно, что в большинстве протоколов передачи данных (FTP, POP, HTTP, telnet) секретная информация между клиентом и сервером передаётся открытым текстом. Поэтому злоумышленнику не составляет большого труда получить доступ к чужой информации. Достаточно раздобыть программу-сниффер, настроить её фильтры и ждать, когда жертва будет подключаться к серверу. С другой стороны снифферы помогают системным администраторам осуществлять диагностику сети и отслеживать атаки компьютерных хулиганов. Кроме того, они служат для проверки и детального анализа правильности конфигурации сетевого программного обеспечения. Иными словами – щит и меч.

Если посмотреть на сниффер с точки зрения программиста, то окажется, что это мощное средство для отладки и диагностики программ. В первую очередь это касается сетевого программного обеспечения, распределённых информационных систем и приложений типа клиент-сервер. Эта статья адресована программистам и начинающим хэкерам – исследователям мира сетевых технологий. Для компьютерных хулиганов будет намного проще выкачать с какого-нибудь сервера уже готовый программный продукт.

Информация передаётся по сети, и получает её каждое устройство этой сети. По умолчанию сетевая плата компьютера видит только то, что предназначено именно для неё. Однако прослушивающие программы устанавливают её в режим приёма всех пакетов – promiscuous mode, прослушивают сеть и заставляют сетевую плату принимать все кадры, вне зависимости от того, кому они адресованы в сети.

ПРИМЕЧАНИЕ

Promiscuous (англ.) – неразборчивый, смешанный.

В основе многих снифферов были и есть сетевые драйверы и библиотеки (libpcap, libnet), которые осуществляют большую часть работы. Дело в том, что для переключения сетевой платы в promiscuous mode требуется низкоуровневое программирование её портов. В многозадачной ОС такую работу могут выполнить только драйверы уровня ядра системы (kernel-mode drivers). Первые программы такого типа были созданы для операционных систем Unix. Для установки вручную сетевого интерфейса в "неразборчивый" режим необходимо включить флаг PROMISC:

$ifconfig eth0 promisc;

для отключения promiscuous mode:

$ifconfig eth0 –promisc.

Вскоре снифферы перебрались в популярную ОС Windows, но их работа в этой системе также требовала сетевого драйвера, который переключал сетевую плату (NIC – network interface card) в специальный режим. До недавнего времени создание программ-снифферов было уделом квалифицированных специалистов. С появлением Windows2000 создать программу для прослушивания сегмента сети стало совсем просто.

Однако прежде чем приступить к созданию прослушивающей программы необходимо понять основы передачи данных в сети, ведь работа сниффера как раз связана с особенностью функционирования сети Ethernet. Машины в отличие от людей общаются между собой в соответствии с определёнными правилами – протоколами.

 

Основы передачи данных в сети Ethernet.

Каждому устройству в сети Ethernet соответствует уникальный шестибайтовый MAC-адрес (Media Access Control). Единицей передачи данных в такой сети является кадр (frame), который имеет определённую структуру и несёт в себе информацию о получателе, отправителе и сами данные.

struct ETHERNET_FRAME
{
 unsigned char dest[6];// MAC-адрес получателя
 unsigned char src[6]; // MAC-адрес отправителя
 unsigned short type; // версия: IPv4 0x0800, IPv6 0x86DD, ARP 0x0806
 unsigned char data[]; // данные
};

Кадр может иметь размер от 60 до 1514 байт, из которых первые 14 байт являются служебными. Когда требуется передать большее количество данных, они разбиваются на фрагменты и последовательно направляются в сеть. Кадр передаётся по сети, и получает его каждое устройство этой сети. Значение поля структуры с именем type определяет тип и версию "полезного груза" в кадре. Завершающая секция кадра служит для проверки целостности передаваемых данных и использует код циклического контроля (CRC32 – cyclic redundancy check). Значение этого кода вычисляется с помощью специальной хэш-функции для выявления искажённости числовых данных. Обычно она аппаратно реализована в сетевой плате.

Теперь обратим внимание на полезный груз, который несёт кадр, а именно поле структуры data[]. Чаще всего в качестве данных может быть IP-пакет или ARP-пакет. ARP (address resolution protocol) – это служебный вспомогательный протокол, который осуществляет динамическую трансляцию физических MAC-адресов в логические IP-адреса на основе широковещательной рассылки запросов.

struct ETHERNET_ARP
{
 unsigned short hrd; // Тип аппаратуры (Ethernet), 0x0001.
 unsigned short pro; // Протокол (IP), 0x0800.
 unsigned char hln; // Длина аппаратного адреса (MAC), 6 байт.
 unsigned char pln; // Длина адреса протокола IP, 4 байта.
 unsigned short op; // Вид операции {Запрос, Ответ} = {1, 2}.
 unsigned char sha[6];// Аппаратный адрес (MAC) отправителя.
 unsigned char spa[4];// IP-адрес отправителя.
 unsigned char tha[6];// Аппаратный адрес (MAC) получателя.
 unsigned char tpa[4];// IP-адрес получателя.
};

Для доставки пакетов в сети нужно определить физический адрес узла назначения. Именно для этого существует ARP – протокол автоматического определения физических адресов (IP <=> MAC). Когда одному компьютеру нужно начать обмен данными с другим, он ищет MAC-адрес получателя соответствующий запрашиваемому IP-адресу в своей ARP-таблице. Если для нужного IP-адреса не найден соответствующий MAC-адрес, то посылается широковещательный запрос ARP, содержащий искомый IP-адрес назначения, а MAC-адрес для широковещательной рассылки заполнен единицами FF:FF:FF:FF:FF:FF. Целевой хост узнает свой IP-адрес, обрабатывает запрос и посылает ответ. Система готова к пересылке данных по локальной сети.

Для нас особый интерес представляют IP-пакеты, предназначенные для передачи информации. Это более высокий уровень сетевой OSI-модели данных. Сейчас повсеместно распространена четвертая версия IP. Однако постепенно начинает делать первые шаги шестая версия этого протокола передачи данных. Новая версия интернет-протокола значительно расширит диапазон адресов, упростит автоматическое конфигурирование IP-сетей. Немаловажно, что следующая версия IP располагает исключительными средствами обеспечения безопасности и шифрации трафика.

struct IP6Header
{
 unsigned long ver:4; // Версия IP-протокола
 unsigned long tclass:8;// Класс трафика
 unsigned long label:20;// Метка потока
 unsigned short length; // Длина пакета
 unsigned char next; // Next header (опции)
 unsigned char hop; // Hop-limit.
 unsigned char src[16]; // 128-битный адрес отправителя
 unsigned char dst[16]; // 128-битный адрес получателя
};

Далее в статье будут рассматриваться только IP-пакеты самой распространённой четвёртой версии. Пакет состоит из заголовка, служебной информации (options) и данных. На языке С этот заголовок выглядит в виде вот такой структуры:

typedef struct _IPHeader
{
 unsigned char verlen; // версия и длина заголовка
 unsigned char tos; // тип сервиса 
 unsigned short length; // длина всего пакета 
 unsigned short id; // Id 
 unsigned short offset; // флаги и смещения 
 unsigned char ttl; // время жизни 
 unsigned char protocol; // протокол 
 unsigned short xsum; // контрольная сумма 
 unsigned long src; // IP-адрес отправителя 
 unsigned long dest; // IP-адрес назначения 
}IPHeader;
ПРИМЕЧАНИЕ

Следует помнить, что порядок байт при передаче данных в сети отличается от порядка (старшинства) байт в числах на процессорах семейства x86. В этих процессорах архитектура памяти организована таким образом, что байты в 16-ти и 32-битных числах переставлены в обратном порядке. Это так называемая "little-endian" адресация. Для корректной работы с числами следует использовать функции htons() и htonl(). В драйверах для этой цели следует использовать функции RtlUshortByteSwap(), RtlUlongByteSwap().

Подробно IP протокол описан в RFC за номером 791. Для нас особый интерес представляют поля заголовка protocol,src и dest. Два последних поля – это хорошо известные IP-адреса отправителя и получателя пакета. Например, шестнадцатеричное значение адреса 0x0000140A соответствует 10.20.0.0.

Поскольку в сети постоянно циркулирует огромное количество пакетов, то их лучше отфильтровывать. Критериями фильтрации могут быть IP-адреса, тип вышестоящего протокола (TCP, UDP, ICMP, PUP), а также содержимое пакета. Функции фильтрации весьма полезны, так как не только ограничивают собираемую программой информацию действительно нужной, но и просто обеспечивают её нормальную работу. Вполне возможно, что при интенсивной загрузке локальной сети компьютер и программа-сниффер будут не способны обработать всю поступающую информацию.

ПРИМЕЧАНИЕ

Посчитаем, сколько потребуется времени для заполнения жёсткого диска объёмом 80 Гбайт при перехвате всего трафика с сети 100 Мбит/сек. В секунду будет передано примерно 10 Мбайт. 80 Гбайт / 10 Мбайт/сек = 2,5 часа. Немного…

Отсутствие критериев для фильтрации или задание слишком большого числа вариантов для IP приводит к тому, что программа-перехватчик не успевает обрабатывать все пакеты. А если ещё записывать все пакеты на жёсткий диск, то последний может переполниться в считанные минуты. На этом факте основаны некоторые программы для борьбы с прослушиванием. Они посылают в сеть множество пакетов с поддельной информацией о паролях и т.д. В результате снифферы "захлёбываются" в огромном потоке дезинформации.

Драйвер сетевой платы (NIC) занимается приёмом и передачей кадров в сеть Ethernet. Максимальный размер IP-пакета, включая служебные данные, составляет 64 килобайта, а максимальный размер данных в кадре, как вы уже знаете, 1500 байт. При необходимости драйвер осуществляет фрагментацию и сборку IP-пакетов. Сетевая подсистема в ОС Windows основана на многоуровневой архитектуре, которую в 1978 году одобрила международная организация стандартов (см. врезку). Таким образом, NIC-драйвер взаимодействует с драйверами вышестоящих протоколов.

Программа для прослушивания сегмента сети работает именно с IP-пакетами. Она использует библиотеку Windows Sockets версии 2.2 и функционирует под управлением Windows 2000 и более поздних систем. Программирование "сырых" сокетов (raw sockets) в системе Windows предыдущих версий было почти невозможно. Неудивительно, что долгое время программы такого типа создавались только под системы Unix и DOS. В таблице 1 перечислены версии WinSock и их возможности.

  WinSock 1.1 Windows 98WinSock 2.x WinNT 4.0WinSock 2.0 Windows 2000WinSock 2.2
Raw ICMP нет да да да
Raw IP нет нет нет да
Raw TCP|UDP нет нет нет нет

Таблица 1.

ПРИМЕЧАНИЕ

До недавнего времени многие программы, особенно для MS-DOS, имели монолитную архитектуру. Внутри программы находился код для низкоуровневой работы с аппаратурой (модемом, сетевой платой), а также весь остальной код для отображения информации и др. Изменение аппаратной части ЭВМ вынуждало модернизировать такие программы.

Современная архитектура сетевого программного обеспечения основана на семиуровневой модели OSI (Open Systems Interconnection). В основе модели лежит принцип абстракции, когда каждый компонент выполняет свои функции и предоставляет некоторый сервис вышестоящему уровню.

Слой (Layer) Описание
ApplicationПриложение В этом слое находятся прикладные программы – приложения. К этим программам относятся браузеры, почтовые программы, WWW- и FTP-серверы и клиенты. Они обычно не зависят ни от среды передачи данных, ни от способа передачи данных.
PresentationПредставление Слой п
Вход на сайт
Реклама
Меню 2
Copyright MyCorp © 2024Бесплатный хостинг uCoz