Комп'ютери та сучасні гаджети

Informatie (ENG):
SmartSniff є мережа monitoring utility, що дозволяє вам отримати TCP/IP пакети, які проходять через вашу мережу adapter, і перегляду повідомлених даних як кінець conversations між клієнтами і серверами. Ви можете переглядати TCP/IP сеанси в режимі Ascii (для текстових даних протоколів, як HTTP, SMTP, POP3 і FTP.) або hex dump. (для non-text base protocols, як DNS)
SmartSniff забезпечує 3 методи для отримання TCP/IP пакетів:
Raw Sockets (Тільки для Windows 2000/XP або greater): Ви можете скористатися TCP/IP пакетами на вашій мережі без налагодження візерунок. Цей метод має деякі обмеження і проблеми.
WinPcap Capture Driver: Ви можете отримувати TCP/IP пакети на всіх операційних системах Windows. (Windows 98/ME/NT/2000/XP/2003/Vista) В комплекті для використання, ви повинні додати і налаштувати WinPcap Capture Driver від цього веб-сайту. (WinPcap is a free open-source capture driver.)
Цей метод є в основному preferred way to capture TCP/IP пакети з SmartSniff, і його робіти більше, ніж Raw Sockets метод.
Microsoft Network Monitor Driver (Только для Windows 2000/XP/2003): Microsoft забезпечує безкоштовний візерунок driver під Windows 2000/XP/2003, що може бути використаний за допомогою SmartSniff, але цей driver не буде налаштовано заздалегідь, і ви повинні використовувати його автоматично it, by using one of the following options:
Option 1: Install it from the CD-ROM of Windows 2000/XP підтримує інструкції в Microsoft Web site
Option 2 (XP Only) : Download and install Windows XP Service Pack 2 Support Tools. Один інструмент у цьому пакеті є netcap.exe. Якщо ви збираєтеся цього інструменту в першу чергу, Network Monitor Driver буде автоматично бути налаштованим на вашій системі.
Microsoft Network Monitor Driver 3: Microsoft забезпечує нову версію Microsoft Network Monitor driver (3.x), яка також підтримується під Windows 7/Vista/2008. Starting from version 1.60, SmartSniff може використовувати цей driver до capture the network traffic.
Нова версія Microsoft Network Monitor (3.x) доступна для download from Microsoft Web site.

System Requirements
SmartSniff може отримати TCP/IP пакети на будь-якій версії операційної системи Windows (Windows 98/ME/NT/2000/XP/2003/2008/Vista/7/8) як тривалий вікно WinPcap capture driver installed and works properly with your network adapter.

Ви можете використовувати SmartSniff з візерунок driver of Microsoft Network Monitor, якщо він налаштований на вашій системі.
Під Windows 2000/XP (або greater), SmartSniff також дозволяє вам отримати TCP/IP пакети без налагодження будь-якого візуального driver, використовуючи 'Raw Sockets' метод. However, this capture method has some limitations and problems:
* Outgoing UDP і ICMP пакети не captured.
* На Windows XP SP1 outgoing packets не є надісланими all all – Що стосується Microsoft's bug that appeared in SP1 update… Це було fixed on SP2 update, але під Vista, Microsoft returned back the outgoing packets bug of XP/SP.
* На Windows Vista/7/8: Be aware that Raw Sockets method не має працювати над усіма системами. It's not a bug в SmartSniff, а в API of Windows operating system. Якщо ви тільки збираєтеся трафіку, намагайтеся перейти до Windows Firewall, або додати SMS-файл.

Сніффер не завжди є шкідливим. Насправді даний тип ПЗ часто використовується для аналізу мережного трафіку з метою виявлення та усунення відхилень і забезпечення безперебійної роботи. Однак сніффер може бути використаний із недобрим наміром. Сніфери аналізують все, що через них проходить, включаючи незашифровані паролі та облікові дані, тому хакери, які мають доступ до сніфера, можуть оволодіти особистою інформацією користувачів. Крім того, сніффер може бути встановлений на будь-якому комп'ютері, підключеному до локальної мережі, без необхідності його обов'язкової установки на самому пристрої - інакше кажучи, його неможливо виявити протягом усього часу підключення.

Звідки з'являються сніфери?

Хакери використовують сніфери для крадіжки цінних даних шляхом відстеження мережевої активності та збирання персональної інформації про користувачів. Як правило, зловмисники найбільше зацікавлені в паролях та облікових даних користувачів, щоб з їх застосуванням отримати доступ до онлайн-банкінгу та облікових записів онлайн-магазинів. Найчастіше хакери встановлюють сніфери у місцях поширення незахищеного підключення Wi-Fi, наприклад, у кафе, готелях та аеропортах. Сніфери можуть маскуватися під підключений до мережі пристрій у рамках так званої спуфінгу атаки з метою викрадення цінних даних.

Як розпізнати сніффер?

Несанкціоновані сніфери вкрай складно розпізнати віртуально, оскільки вони можуть бути встановлені практично будь-де, являючи собою дуже серйозну загрозу мережевої безпеки. Звичайні користувачі часто не мають жодного шансу розпізнати відстеження свого мережевого трафіку з ніффером. Теоретично можливо встановити власний сніффер, який відстежував би весь трафік DNS на наявність інших сніферів, проте для рядового користувача набагато простіше встановити анти-сніффінгове ПЗ або антивірусне рішення, що включає захист мережної активності, щоб припинити будь-яке несанкціоноване вторгнення або приховати свої мережеві дії.

Як усунути сніффер

Ви можете скористатися високоефективним антивірусом для виявлення та усунення всіх типів шкідливого ПЗ, встановленого на ваш комп'ютер для сніфінгу. Однак для повного видалення сніфера з комп'ютера необхідно видалити всі папки і файли, що мають до нього відношення. Також настійно рекомендується використовувати антивірус зі сканером мережі, який ретельно перевірить локальну мережу на наявність уразливостей та проінструктує щодо подальших дій у разі їх виявлення.

Як не стати жертвою сніффера
  • Зашифруйте всю інформацію, яку ви відправляєте та приймаєте.
  • Скануйте свою локальну мережу на наявність уразливостей
  • Використовуйте лише перевірені та захищені мережі Wi-Fi.
Убезпечтеся від сніферів

Перше, що користувач може зробити, щоб захиститися від сніферів – скористатися якісним антивірусом, як безкоштовний антивірус Avast, який здатний досконало просканувати всю мережу на наявність проблем із безпекою. Додатковим і високоефективним способом захисту інформації від сніфінгу є шифрування всіх даних, що надсилаються і приймаються онлайн, включаючи листи ел. пошти. Avast SecureLine дозволяє надійно зашифрувати весь обмін даними та здійснювати дії онлайн за умов 100% анонімності.

Програма Wireshark стане чудовим помічником для тих користувачів, кому потрібно зробити детальний аналіз мережевих пакетів, – трафіку комп'ютерної мережі. Сніффер легко взаємодіє з такими поширеними протоколами, як netbios, fddi, nntp, icq, x25, dns, irc, nfs, http, tcp, ipv6та багатьма іншими. Дозволяє при аналізі розділяти мережевий пакет на відповідні складові, згідно з певним протоколом, і видавати на екран легкочитану інформацію в числовому вигляді.
підтримує величезну кількість різноманітних форматів переданої та одержуваної інформації, здатний відкривати файли, які перебувають у користуванні інших утиліт. Принцип роботи у тому, що мережева картка перетворюється на широкомовний режим і починається перехоплення мережевих пакетів, що у зоні її видимості. Вміє працювати як програма для перехоплення пакетів wifi.

Як користуватися wireshark

Програма вивчає вміст інформаційних пакетів, які проходять через мережу. Щоб запустити і скористатися результатами роботи сніфера не потрібно ніяких специфічних знань, просто потрібно відкрити її в "Пуск" меню або клацнути по значку на робочому столі (запуск нічим не відрізняється від будь-якої іншої Windows програми). Особлива функція утиліти дозволяє захоплювати інформаційні пакети, ретельно розшифровувати їх вміст і видавати користувачеві для аналізу.

Запустивши wireshark, Ви побачите на екрані головне меню програми, розташоване у верхній частині вікна. За допомогою нього відбувається управління утилітою. Якщо вам потрібно завантажити файли, які зберігають дані про пакети, спіймані в попередніх сесіях, а також зберегти дані про інші пакети, здобуті в новому сеансі, то для цього вам знадобиться вкладка "File".

Щоб запустити функцію захоплення мережевих пакетів, користувач повинен натиснути на іконку "Capture", потім відшукати спеціальний розділ меню під назвою "Interfaces", за допомогою якого можна відкрити окреме вікно "Wireshark Capture Interfaces", де повинні будуть показані всі доступні мережеві інтерфейси, через які і буде зроблено захоплення потрібних пакетів даних. У тому випадку, коли програма (сніфер) здатна виявити тільки один відповідний інтерфейс, вона видасть на екран всю важливу інформацію про нього.

Результати роботи утиліти є прямим доказом того, що навіть якщо користувачі самостійно не займаються (в даний момент часу) передачею будь-яких даних, в мережі не припиняється обмін інформацією. Адже принцип роботи локальної мережі полягає в тому, що для підтримки її в робочому режимі кожен її елемент (комп'ютер, комутатор та інші пристрої) безперервно обмінюються один з одним службовою інформацією, тому для перехоплення таких пакетів і призначені подібні мережеві інструменти.

Є версія для Linux систем.

Варто зазначити, що сніффер дуже корисний для мережевих адміністраторіві служби комп'ютерної безпеки, адже утиліта дозволяє визначити потенційно незахищені вузли мережі - ймовірні ділянки, які можуть бути атаковані хакерами.

Крім свого прямого призначення Wireshark може використовуватися як засіб для моніторингу та подальшого аналізу мережного трафіку з метою організації атаки на незахищені ділянки мережі, адже перехоплений трафік можна використовувати для досягнення різних цілей.


У цій статті ми розглянемо створення простого сніфера під Windows.
Кому цікаво, ласкаво просимо під кат.

Вступ

Ціль:написати програму, яка захоплюватиме мережевий трафік (Ethernet, WiFi), що передається за протоколом IP.
Засоби: Visual Studio 2005 та вище.
Підхід, який тут описаний, не належить особисто автору та успішно застосовується у багатьох комерційних, а також категорично безкоштовних програмах (привіт, GPL).
Ця праця призначена насамперед для новачків у мережевому програмуванні, які, однак, мають хоча б базові знання в галузі сокетів взагалі, та windows-сокетів зокрема. Тут я часто писатиму загальновідомі речі, бо предметна область специфічна, якщо щось пропустити – у голові буде каша.

Сподіваюся, що Вам буде цікаво.

Теорія (читати необов'язково, але бажано)

В даний момент переважна більшість сучасних інформаційних мереж базується на фундаменті стеку протоколів TCP/IP. Стек протоколів TCP/IP (англ. Transmission Control Protocol/Internet Protocol) - збірна назва для мережевих протоколів різних рівнів, що у мережах. У цій статті нас буде цікавити в основному протокол IP - маршрутизований мережевий протокол, що використовується для негарантованої доставки даних, що поділяються на так звані пакети (вірніший термін – дейтаграма) від одного вузла мережі до іншого.
Особливий інтерес для нас представляють IP-пакети, призначені передачі інформації. Це досить високий рівень мережної OSI-моделі даних, коли можна абстрагуватися від пристрою та середовища передачі даних, оперуючи лише логічним уявленням.
Цілком логічною є та обставина, що рано чи пізно мали з'явитися інструменти для перехоплення, контролю, обліку та аналізу мережного трафіку. Такі засоби зазвичай називають аналізаторами трафіку, пакетними аналізаторами або сніферами (від англ. to sniff - нюхати). Це - мережний аналізатор трафіку, програма або програмно-апаратний пристрій, призначений для перехоплення та подальшого аналізу, або лише аналізу мережевого трафіку, призначеного для інших вузлів.

Практика (розмова по суті)

На даний момент створено багато програмного забезпечення для прослуховування трафіку. Найбільш відомий з них: Wireshark. Звичайно, пожинати його лаври ціль не варто - нас цікавить завдання перехоплення трафіку шляхом простого «прослуховування» мережного інтерфейсу. Важливо розуміти, що ми не збираємося займатися зломом та перехоплювати чужийтрафік. Потрібно лише переглядати та аналізувати трафік, який проходить через наш хост.

Для чого це може знадобитися:

  1. Дивитися поточний потік трафіку через мережне з'єднання (вхідний/вихідний/всього).
  2. Перенаправляти трафік для подальшого аналізу на інший хост.
  3. Теоретично, можна спробувати застосувати його для злому WiFi-мережі (адже ми не збираємося цим займатися?).
На відміну від Wireshark, що базується на бібліотеці libpcap/WinPcap, наш аналізатор не використовуватиме цей драйвер. Чого там, у нас взагалі не буде драйвера, і свій NDIS(о жах!) ми писати не збираємося. Про це можна прочитати в цьому топіці. Він буде просто пасивним спостерігачем, який використовує тількибібліотеку WinSock. Використання драйвера у разі надмірно.

Як так? Дуже просто.
Ключовим кроком у перетворенні простого мережного додатка в мережевий аналізатор є перемикання мережного інтерфейсу в режим прослуховування (promiscuous mode), що дозволить йому отримувати пакети, адресовані іншим інтерфейсам у мережі. Цей режим примушує мережу приймати всі кадри, незалежно від того, кому вони адресовані в мережі.

Починаючи з Windows 2000 (NT 5.0), створити програму для прослуховування сегмента мережі стало дуже просто, т.к. її мережний драйвер дозволяє перевести сокет у режим прийому всіх пакетів.

Увімкнення нерозбірливого режиму
long flag = 1; SOCKET socket; #define SIO_RCVALL 0x98000001 ioctlsocket(socket, SIO_RCVALL, &RS_Flag);
Наша програма оперує IP-пакетами та використовує бібліотеку Windows Sockets версії 2.2 та «сирі» сокети (raw sockets). Для того щоб отримати прямий доступ до IP-пакету, сокет потрібно створювати так:
Створення сирого сокету
s = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
Тут замість константи SOCK_STREAM(протокол TCP) або SOCK_DGRAM(протокол UDP), ми використовуємо значення SOCK_RAW. Взагалі кажучи, робота з raw sockets цікава не лише з погляду захоплення трафіку. Фактично ми отримуємо повний контроль за формуванням пакету. Точніше, формуємо його вручну, що дозволяє, наприклад, надіслати специфічний ICMP-пакет.

Йдемо далі. Відомо, що IP-пакет складається із заголовка, службової інформації та, власне, даних. Раджу заглянути сюди, щоб освіжити знання. Опишемо у вигляді структури IP-заголовок (спасибі чудової статті на RSDN):

Опис структури IP-пакету
typedef struct _IPHeader ( unsigned char ver_len; // версія та довжина заголовка unsigned char tos; // тип сервісу unsigned short length; // довжина всього пакета unsigned short id; // Id unsigned short flgs_offset; // прапори та зміщення unsigned char ttl // час життя unsigned char protocol; // протокол unsigned short xsum; // контрольна сума unsigned long src; // IP-адреса відправника unsigned long dest; // IP-адреса призначення unsigned short *params; // параметри (до 320 біт) unsigned char *data;// дані (до 65535 октетів) )IPHeader;
Головна функція алгоритму прослуховування виглядатиме так:
Функція захоплення одного пакета
IPHeader* RS_Sniff() ( IPHeader *hdr; int count = 0; count = recv(RS_SSocket, (char*)&RS_Buffer, sizeof(RS_Buffer), 0); if (count >= sizeof(IPHeader)) ( hdr = (LPIPHeader )malloc(MAX_PACKET_SIZE);memcpy(hdr, RS_Buffer, MAX_PACKET_SIZE); RS_UpdateNetStat(count, hdr); return hdr;
Тут все просто: отримуємо порцію даних за допомогою стандартної функції socket-функції recv, а потім копіюємо їх у структуру типу IPHeader.
І, нарешті, запускаємо нескінченний цикл захоплення пакетів:
Захопимо всі пакети, які потраплять на наш мережевий інтерфейс
while (true) ( ​​IPHeader * hdr = RS_Sniff(); // обробка IP-пакета if (hdr) ( // друкуємо заголовок в консолі ) )
Трохи офтопіка
Тут і далі у деяких важливих функцій та змінних автор зробив префкіс RS_ (від Raw Sockets). Проект робив 3-4 роки тому, і була шалена думка написати повноцінну бібліотеку для роботи із сирими сокетами. Як це часто буває, після отримання значних (для автора) результатів, ентузіазм згас, і далі навчального прикладу справа не пойшла.

В принципі, можна піти далі і описати заголовки всіх наступних протоколів, що знаходяться вище. Для цього необхідно аналізувати поле protocolу структурі IPHeader. Подивіться приклад коду (так, там має бути switch, чорт візьми!), де відбувається розфарбовування заголовка залежно від цього, який протокол має пакет, інкапсульований в IP:

/* * Виділення пакету кольором */ void ColorPacket(const IPHeader *h, const u_long haddr, const u_long whost = 0) ( if (h->xsum) SetConsoleTextColor(0x17); // якщо пакет не порожній else SetConsoleTextColor(0x07) // порожній пакет if (haddr == h-> src) ( SetConsoleTextColor (BACKGROUND_BLUE | / * BACKGROUND_INTENSITY | * / FOREGROUND_RED | FOREGROUND_INTENSITY); // "рідний" пакет на віддачу) else if (haddr = = h-> ) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_GREEN | FOREGROUND_INTENSITY); // "рідний" пакет на прийом ) if (h->protocol == PROT_ICMP || h->protocol == PROT_IGMP // ICMP-пакет ) else if(h->protocol == PROT_IP || h->protocol == 115) ( SetConsoleTextColor(0x4F); // IP-in-IP-пакет, L2TP ) else if(h- >protocol == 53 || h->protocol == 56) ( SetConsoleTextColor(0x4C); // TLS, IP with Encryption ) if(whost == h->dest || (0x0A); ) )

Однак це суттєво виходить за межі цієї статті. Для нашого навчального прикладу цілком достатньо буде подивитися ip-адреси хостів, з яких і на які йде трафік, і порахувати його кількість в одиницю часу (готова програма в архіві наприкінці статті).

Щоб відобразити дані IP-заголовка, необхідно реалізувати функцію перетворення заголовка (але не даних) дейтаграми в рядок. Як приклад реалізації можна запропонувати такий варіант:

Перетворення IP-заголовка на рядок
inline char * iph2str (IPHeader * iph) (const int BUF_SIZE = 1024; char * r = (char *) malloc (BUF_SIZE); memset ((void *) r, 0, BUF_SIZE); sprintf (r, "ver = % d hlen=%d tos=%d len=%d id=%d flags=0x%X offset=%d ttl=%dms prot=%d crc=0x%X src=%s dest=%s", BYTE_H (iph->ver_len), BYTE_L(iph->ver_len)*4, iph->tos, ntohs(iph->length), ntohs(iph->id), IP_FLAGS(ntohs(iph->flgs_offset)), IP_OFFSET (ntohs(iph->flgs_offset)), iph->ttl, iph->protocol, ntohs(iph->xsum), nethost2str(iph->src), nethost2str(iph->dest)); return r;
На підставі наведених вище базових відомостей, виходить ось така невелика програма (моторошна назва ss, скор. від англ. simple sniffer), що реалізує локальне прослуховування IP-трафіку. Інтерфейс її наведено нижче на малюнку.

Вихідний та бінарний код надаю як є, таким як він був кілька років тому. Зараз мені на нього страшно дивитися, і все ж таки, він цілком читабельний (звичайно ж, не можна бути таким самовпевненим). Для компіляції буде достатньо навіть Visual Studio Express 2005.

Що в нас вийшло в результаті:

  • Сніффер працює в режимі користувача, проте вимагає привілеї адміністратора.
  • Пакети не фільтруються, відображаючись як є (можна додати фільтри, що настроюються - пропоную докладно розглянути цю тему в наступній статті, якщо цікаво).
  • WiFi трафік теж захоплюється (все залежить від конкретної моделі чіпа, у Вас може і не працювати, як у мене кілька років тому), хоча є AirPcap, яка чудово це вміє робити, але коштує грошей.
  • Весь потік дейтаграм логується файл (див. архів, прикладений наприкінці статті).
  • Програма працює як сервер на порту 2000. Можна підключитися за допомогою утиліти telnet до хоста і провести моніторинг потоків трафіку. Кількість підключень обмежена двадцятьма (код не мій, знайшов на просторах мережі та застосовував для експериментів; видаляти не став – шкода)
Дякую за увагу, вітаю хабровчан і хабрівчанок і всіх-усіх-всіх з Різдвом!

SmartSniffдозволяє перехопити мережевий трафік і відобразити його вміст ASCII. Програма захоплює пакети, що проходять через мережевий адаптер і виводить на екран вміст пакетів у текстовому вигляді (протоколи http, pop3, smtp, ftp) та у вигляді шістнадцяткового дампа. Для захоплення TCP/IP пакетів SmartSniff використовує методики: необроблені сокети – RAW Sockets, WinCap Capture Driver та Microsoft Network Monitor Driver. Програма підтримує російську мову та проста у використанні.

Програма сніффер для захоплення пакетів


SmartSniff відображає таку інформацію: назва протоколу, локальна та віддалена адреса, локальний та віддалений порт, локальний вузол, назва служби, обсяг даних, загальний розмір, час захоплення та час останнього пакета, тривалість, локальна та віддалена МАС адреса, країни та зміст пакету даних . Програма має гнучкі налаштування, в ній реалізована функція фільтра захоплення, розпакування відповідей http, перетворення ip адреси, утиліта згортається в системний трей. SmartSniff формує звіт про потоки пакетів у вигляді HTML сторінки. У програмі можна виконати експорт потоків TCP/IP.

Якщо помітили помилку, виділіть фрагмент тексту та натисніть Ctrl+Enter
ПОДІЛИТИСЯ:
Комп'ютери та сучасні гаджети