Kompyuterlar va zamonaviy gadjetlar

Ma'lumot (ENG):
SmartSniff - tarmoq adapteringiz orqali o'tadigan TCP/IP paketlarini yozib olish va olingan ma'lumotlarni mijozlar va serverlar o'rtasidagi suhbatlar ketma-ketligi sifatida ko'rish imkonini beruvchi tarmoq monitoringi yordam dasturi. Siz TCP/IP suhbatlarini Ascii rejimida (HTTP, SMTP, POP3 va FTP kabi matnga asoslangan protokollar uchun) yoki hex dump sifatida ko'rishingiz mumkin. (DNS kabi matnli bo'lmagan asosiy protokollar uchun)
SmartSniff TCP/IP paketlarini yozib olishning 3 usulini taqdim etadi:
Raw sockets (faqat Windows 2000/XP yoki undan yuqori versiyalar uchun): tortishish drayverini o'rnatmasdan tarmoqdagi TCP/IP paketlarini yozib olish imkonini beradi. Ushbu usul ba'zi cheklovlar va muammolarga ega.
WinPcap Capture Driver: Barcha Windows operatsion tizimlarida TCP/IP paketlarini yozib olish imkonini beradi. (Windows 98/ME/NT/2000/XP/2003/Vista) Uni ishlatish uchun ushbu veb-saytdan WinPcap Capture Driver-ni yuklab olishingiz va o'rnatishingiz kerak. (WinPcap bepul ochiq manbali suratga olish drayveridir.)
Bu usul odatda SmartSniff yordamida TCP/IP paketlarini olishning afzal usuli hisoblanadi va u Raw Sockets usulidan yaxshiroq ishlaydi.
Microsoft tarmoq monitori drayveri (faqat Windows 2000/XP/2003 uchun): Microsoft SmartSniff tomonidan ishlatilishi mumkin bo'lgan Windows 2000/XP/2003 ostida bepul suratga olish drayverini taqdim etadi, ammo bu drayver sukut bo'yicha o'rnatilmagan va siz qo'lda o'rnatishingiz kerak. quyidagi variantlardan birini qo'llash orqali:
Variant 1: Microsoft veb-saytidagi ko'rsatmalarga muvofiq uni Windows 2000/XP CD-ROMidan o'rnating.
Variant 2 (faqat XP): Windows XP Service Pack 2 qo'llab-quvvatlash vositalarini yuklab oling va o'rnating. Ushbu paketdagi vositalardan biri netcap.exe hisoblanadi. Ushbu vositani birinchi marta ishga tushirganingizda, tarmoq monitori drayveri tizimingizga avtomatik ravishda o'rnatiladi.
Microsoft Network Monitor Driver 3: Microsoft Windows 7/Vista/2008 da qo'llab-quvvatlanadigan Microsoft Network Monitor drayverining (3.x) yangi versiyasini taqdim etadi. 1.60 versiyasidan boshlab SmartSniff ushbu drayverdan tarmoq trafigini yozib olish uchun foydalanishi mumkin.
Microsoft Network Monitor (3.x) yangi versiyasini Microsoft veb-saytidan yuklab olish mumkin.

Tizim talablari
SmartSniff TCP/IP paketlarini Windows operatsion tizimining istalgan versiyasida (Windows 98/ME/NT/2000/XP/2003/2008/Vista/7/8) yozib olishi mumkin, agar WinPcap drayveri o'rnatilgan bo'lsa va sizning tarmog'ingiz bilan to'g'ri ishlaydi. adapter

SmartSniff-dan, agar tizimingizda o'rnatilgan bo'lsa, Microsoft Network Monitor-ning yozib olish drayveri bilan ham foydalanishingiz mumkin.
Windows 2000/XP (yoki undan yuqori) da SmartSniff sizga “Raw Sockets” usulidan foydalanib, hech qanday drayvni o'rnatmasdan TCP/IP paketlarini suratga olish imkonini beradi. Biroq, ushbu qo'lga olish usuli ba'zi cheklovlar va muammolarga ega:
* Chiquvchi UDP va ICMP paketlari yozib olinmaydi.
* Windows XP SP1 da chiquvchi paketlar umuman yozib olinmaydi – SP1 yangilanishida paydo bo‘lgan Microsoft xatosi tufayli… Bu xato SP2 yangilanishida tuzatildi, ammo Vista’da Microsoft XP/SP1’ning chiquvchi paketlar xatosini qaytardi.
* Windows Vista/7/8 da: Shuni yodda tutingki, Raw Sockets usuli barcha tizimlarda to'g'ri ishlamaydi. Bu SmartSniff-dagi xato emas, balki Windows operatsion tizimining API-da. Agar siz faqat chiquvchi trafikni ko'rsangiz, Windows xavfsizlik devorini o'chirib ko'ring yoki smsniff.exe faylini Windows xavfsizlik devorining ruxsat etilgan dasturlari ro'yxatiga qo'shing.

Sniffer har doim ham yomon niyatli emas. Aslida, ushbu turdagi dasturiy ta'minot ko'pincha anomaliyalarni aniqlash va bartaraf etish va uzluksiz ishlashni ta'minlash uchun tarmoq trafigini tahlil qilish uchun ishlatiladi. Biroq, sniffer yomon niyat bilan ishlatilishi mumkin. Snifferlar ular orqali o'tadigan hamma narsani, shu jumladan shifrlanmagan parollar va hisobga olish ma'lumotlarini tahlil qiladilar, shuning uchun snayferga kirish huquqiga ega bo'lgan xakerlar foydalanuvchilarning shaxsiy ma'lumotlarini olishlari mumkin. Bundan tashqari, snifferni mahalliy tarmoqqa ulangan har qanday kompyuterga o'rnatish mumkin, uni qurilmaning o'ziga o'rnatish kerak emas - boshqacha qilib aytganda, uni butun ulanish vaqtida aniqlab bo'lmaydi.

Snayperlar qayerdan keladi?

Xakerlar tarmoq faolligini kuzatish va foydalanuvchilar haqidagi shaxsiy ma'lumotlarni yig'ish orqali qimmatli ma'lumotlarni o'g'irlash uchun snayferlardan foydalanadilar. Odatda, tajovuzkorlar onlayn-banking va onlayn-do'kon hisoblariga kirish uchun foydalanuvchi parollari va hisob ma'lumotlariga qiziqishadi. Ko'pincha xakerlar snifferlarni xavfsiz Wi-Fi ulanishlari tarqalgan joylarda, masalan, kafelar, mehmonxonalar va aeroportlarda o'rnatadilar. Snifferlar qimmatli ma'lumotlarni o'g'irlash uchun "spoofing" deb ataladigan hujumda tarmoqqa ulangan qurilma sifatida maskarad qilishlari mumkin.

Snifferni qanday tanib olish mumkin?

Ruxsatsiz snifferlarni virtual tanib olish nihoyatda qiyin, chunki ular deyarli hamma joyda o'rnatilishi mumkin, bu esa tarmoq xavfsizligiga juda jiddiy tahdid soladi. Oddiy foydalanuvchilar ko'pincha sniffer ularning tarmoq trafigini kuzatayotganini tan olish imkoniyatiga ega emas. Nazariy jihatdan o'zingizning snifferingizni o'rnatishingiz mumkin, u barcha DNS trafigini boshqa snifferlar mavjudligini nazorat qiladi, ammo oddiy foydalanuvchi uchun anti-sniffer dasturini yoki tarmoq faolligini to'xtatishni o'z ichiga olgan virusga qarshi yechimni o'rnatish ancha oson. har qanday ruxsatsiz bosqinni yoki tarmoq harakatlaringizni yashiring.

Snifferni qanday olib tashlash mumkin

Siz hidlash maqsadida kompyuteringizda o'rnatilgan barcha turdagi zararli dasturlarni aniqlash va o'chirish uchun yuqori samarali antivirusdan foydalanishingiz mumkin. Biroq, snifferni kompyuteringizdan butunlay olib tashlash uchun siz unga tegishli barcha papkalarni va fayllarni mutlaqo o'chirishingiz kerak. Shuningdek, mahalliy tarmoqni zaifliklar uchun sinchkovlik bilan tekshiradigan va agar ular topilsa, keyingi harakatlar haqida ko'rsatma beradigan tarmoq skaneri bilan antivirusdan foydalanish tavsiya etiladi.

Sniffer qurboni bo'lishdan qanday qochish kerak
  • Siz yuborgan va qabul qilgan barcha ma'lumotlarni shifrlang
  • Zaifliklar uchun mahalliy tarmoqni skanerlang
  • Faqat tasdiqlangan va xavfsiz Wi-Fi tarmoqlaridan foydalaning
O'zingizni hidlovchilardan himoya qiling

Foydalanuvchi o'zini snifferlardan himoya qilish uchun qila oladigan birinchi narsa, xavfsizlik muammolari uchun butun tarmoqni sinchkovlik bilan tekshirishga qodir bo'lgan bepul Avast antivirusi kabi sifatli antivirusdan foydalanishdir. Axborotni hidlashdan himoya qilishning qo'shimcha va yuqori samarali usuli bu onlayn yuborilgan va qabul qilingan barcha ma'lumotlarni, shu jumladan elektron pochta xabarlarini shifrlashdir. pochta. Avast SecureLine sizga barcha ma'lumotlar almashinuvini xavfsiz shifrlash va 100% anonimlikda onlayn harakatlarni amalga oshirish imkonini beradi.

Wireshark dasturi tarmoq paketlarini - kompyuter tarmog'i trafigini batafsil tahlil qilish kerak bo'lgan foydalanuvchilar uchun ajoyib yordamchi bo'ladi. Sniffer kabi keng tarqalgan protokollar bilan osongina o'zaro ta'sir qiladi netbios, fddi, nntp, icq, x25, dns, irc, nfs, http, tcp, ipv6 va boshqalar. Tahlil paytida u ma'lum bir protokol bo'yicha tarmoq paketini tegishli komponentlarga ajratish va o'qilishi mumkin bo'lgan ma'lumotlarni ekranda raqamli shaklda ko'rsatish imkonini beradi.
uzatiladigan va qabul qilingan ma'lumotlarning juda ko'p turli formatlarini qo'llab-quvvatlaydi va boshqa yordamchi dasturlar tomonidan ishlatiladigan fayllarni ochishga qodir. Ishlash printsipi shundan iboratki, tarmoq kartasi translyatsiya rejimiga o'tadi va uning ko'rinadigan hududida joylashgan tarmoq paketlarini ushlab turishni boshlaydi. Wi-Fi paketlarini tutib olish uchun dastur sifatida ishlashi mumkin.

Wireshark-dan qanday foydalanish kerak

Dastur tarmoq orqali o'tadigan ma'lumot paketlarining mazmunini o'rganadi. Sniffer natijalarini ishga tushirish va ulardan foydalanish uchun sizga hech qanday maxsus bilim kerak emas, uni "Ishga tushirish" menyusida ochishingiz yoki ish stolidagi belgini bosishingiz kerak (uni ishga tushirish boshqa Windows dasturidan farq qilmaydi). . Yordamchi dasturning maxsus funktsiyasi unga ma'lumot paketlarini qo'lga kiritish, ularning mazmunini diqqat bilan ochish va tahlil qilish uchun foydalanuvchiga qaytarish imkonini beradi.

Wiresharkni ishga tushirgandan so'ng, siz dasturning asosiy menyusini ekranda ko'rasiz, u oynaning yuqori qismida joylashgan. U yordam dasturini boshqarish uchun ishlatiladi. Agar oldingi seanslarda ushlangan paketlar haqidagi ma'lumotlarni saqlaydigan fayllarni yuklashingiz, shuningdek, yangi seansda ushlangan boshqa paketlar haqidagi ma'lumotlarni saqlashingiz kerak bo'lsa, buning uchun sizga "Fayl" yorlig'i kerak bo'ladi.

Tarmoq paketini suratga olish funksiyasini ishga tushirish uchun foydalanuvchi “Qo‘lga olish” belgisini bosishi, so‘ng “Interfeyslar” deb nomlangan maxsus menyu bo‘limini topishi kerak, uning yordamida alohida “Wireshark Capture Interfaces” oynasini ochishingiz mumkin, bu yerda barcha mavjud tarmoq interfeyslari bo‘lishi kerak. ko'rsatiladi, bu orqali kerakli ma'lumotlar paketlari olinadi. Agar dastur (sniffer) faqat bitta mos interfeysni aniqlay oladigan bo'lsa, u ekranda u haqidagi barcha muhim ma'lumotlarni ko'rsatadi.

Kommunal ish natijalari to'g'ridan-to'g'ri dalildir, hatto foydalanuvchilar mustaqil ravishda (ma'lum bir vaqtda) biron bir ma'lumotni uzatish bilan shug'ullanmasalar ham, tarmoqdagi ma'lumotlar almashinuvi to'xtamaydi. Oxir oqibat, mahalliy tarmoqning ishlash printsipi shundaki, uni ish rejimida ushlab turish uchun uning har bir elementi (kompyuter, kommutator va boshqa qurilmalar) doimiy ravishda bir-biri bilan xizmat ma'lumotlarini almashadi, shuning uchun bunday tarmoq vositalari ularni ushlab turish uchun mo'ljallangan. bunday paketlar.

Linux tizimlari uchun versiya ham mavjud.

Shuni ta'kidlash kerak Sniffer tarmoq ma'murlari uchun juda foydali va kompyuter xavfsizligi xizmatlari, chunki yordamchi dastur potentsial himoyalanmagan tarmoq tugunlarini - xakerlar tomonidan hujumga uchrashi mumkin bo'lgan hududlarni aniqlashga imkon beradi.

To'g'ridan-to'g'ri maqsadiga qo'shimcha ravishda, Wireshark tarmoqning himoyalanmagan hududlariga hujumni tashkil qilish uchun tarmoq trafigini kuzatish va keyingi tahlil qilish vositasi sifatida ishlatilishi mumkin, chunki to'xtatilgan trafik turli maqsadlarga erishish uchun ishlatilishi mumkin.


Ushbu maqolada biz Windows OS uchun oddiy sniffer yaratishni ko'rib chiqamiz.
Kim qiziqsa, mushukka xush kelibsiz.

Kirish

Maqsad: IP protokoli orqali uzatiladigan tarmoq trafigini (Ethernet, WiFi) ushlaydigan dasturni yozing.
Imkoniyatlar: Visual Studio 2005 yoki undan yuqori.
Bu erda tasvirlangan yondashuv shaxsan muallifga tegishli emas va ko'plab tijorat, shuningdek, mutlaqo bepul dasturlarda (salom, GPL) muvaffaqiyatli qo'llaniladi.
Bu ish, birinchi navbatda, tarmoq dasturlash bo'yicha yangi boshlanuvchilar uchun mo'ljallangan, ammo ular umuman rozetkalar va xususan Windows soketlari sohasida kamida asosiy bilimlarga ega. Bu yerda men tez-tez taniqli narsalarni yozaman, chunki mavzu sohasi o'ziga xosdir, agar biror narsani o'tkazib yuborsam, boshim chigal bo'ladi.

Umid qilamanki, sizga qiziqarli bo'ladi.

Nazariya (o'qish shart emas, lekin tavsiya etiladi)

Hozirgi vaqtda zamonaviy axborot tarmoqlarining aksariyati TCP/IP protokoli stekining asosiga asoslangan. TCP/IP protokoli stegi (Transmission Control Protocol/Internet Protocol) tarmoqlarda ishlatiladigan turli darajadagi tarmoq protokollarining umumiy nomidir. Ushbu maqolada bizni asosan IP protokoli qiziqtiradi - bir tarmoq tugunidan ikkinchisiga paketlar deb ataladigan (to'g'riroq atama - datagram) bo'lingan ma'lumotlarni kafolatsiz etkazib berish uchun ishlatiladigan yo'naltirilgan tarmoq protokoli.
Biz uchun ma'lumot uzatish uchun mo'ljallangan IP-paketlar alohida qiziqish uyg'otadi. Bu OSI tarmoq ma'lumotlar modelining juda yuqori darajasi bo'lib, siz o'zingizni qurilmadan va ma'lumot uzatish vositasidan ajratib olishingiz mumkin, faqat mantiqiy tasvir bilan ishlaydi.
Ertami-kechmi tarmoq trafigini ushlab turish, kuzatish, qayd etish va tahlil qilish vositalari paydo bo'lishi mantiqan to'g'ri. Bunday vositalar odatda trafik analizatorlari, paket analizatorlari yoki snifferlar (ingliz tilidan sniff - sniff) deb ataladi. Bu tarmoq trafigi analizatori, boshqa tugunlar uchun mo'ljallangan tarmoq trafigini ushlab turish va keyinchalik tahlil qilish yoki faqat tahlil qilish uchun mo'ljallangan dastur yoki apparat-dasturiy qurilma.

Amaliyot (mohiyatli suhbat)

Hozirgi vaqtda trafikni tinglash uchun juda ko'p dasturiy ta'minot yaratilgan. Ulardan eng mashhuri: Wireshark. Tabiiyki, maqsad uning yutuqlarini yig'ish emas - biz tarmoq interfeysini shunchaki "tinglash" orqali trafikni ushlab turish vazifasi bilan qiziqamiz. Shuni tushunish kerakki, biz xakerlik qilmoqchi emasmiz begona tirbandlik. Biz shunchaki xostimiz orqali o'tadigan trafikni ko'rishimiz va tahlil qilishimiz kerak.

Bu nima uchun kerak bo'lishi mumkin:

  1. Tarmoq ulanishi orqali joriy trafik oqimini ko'ring (kiruvchi/chiqish/jami).
  2. Trafikni keyingi tahlil qilish uchun boshqa xostga yo'naltiring.
  3. Nazariy jihatdan, siz uni WiFi tarmog'ini buzish uchun ishlatishga harakat qilishingiz mumkin (biz buni qilmaymiz, shunday emasmi?).
libpcap/WinPcap kutubxonasiga asoslangan Wiresharkdan farqli o'laroq, bizning analizatorimiz ushbu drayverdan foydalanmaydi. Bundan tashqari, bizda hech qanday haydovchi bo'lmaydi va biz o'z NDISni yozmaymiz (oh dahshat!). Bu haqda ushbu mavzuda o'qishingiz mumkin. U shunchaki foydalanib, passiv kuzatuvchi bo'ladi faqat WinSock kutubxonasi. Bunday holda haydovchidan foydalanish ortiqcha.

Qanaqasiga? Juda oddiy.
Oddiy tarmoq ilovasini tarmoq analizatoriga aylantirishning asosiy bosqichi tarmoq interfeysini promiscuous rejimga o'tkazishdan iborat bo'lib, u tarmoqdagi boshqa interfeyslarga yo'naltirilgan paketlarni qabul qilish imkonini beradi. Ushbu rejim tarmoq kartasini tarmoqdagi kimga qaratilganligidan qat'i nazar, barcha kadrlarni qabul qilishga majbur qiladi.

Windows 2000 (NT 5.0) dan boshlab, tarmoq segmentini tinglash uchun dastur yaratish juda oson bo'ldi, chunki uning tarmoq drayveri barcha paketlarni qabul qilish uchun rozetkani sozlash imkonini beradi.

Promiscuous rejimini yoqish
uzun bayroq = 1; SOCKET rozetkasi; #define SIO_RCVALL 0x98000001 ioctlsocket(soket, SIO_RCVALL, &RS_Flag);
Bizning dasturimiz IP-paketlarda ishlaydi va Windows Sockets kutubxonasining 2.2 versiyasi va xom rozetkalardan foydalanadi. IP-paketga to'g'ridan-to'g'ri kirish uchun rozetkani quyidagicha yaratish kerak:
Xom rozetkani yaratish
s = rozetka (AF_INET, SOCK_RAW, IPPROTO_IP);
Bu erda doimiy o'rniga SOCK_STREAM(TCP protokoli) yoki SOCK_DGRAM(UDP protokoli), biz qiymatdan foydalanamiz SOCK_RAW. Umuman olganda, xom rozetkalar bilan ishlash nafaqat trafikni ushlab turish nuqtai nazaridan qiziq. Aslida, biz paketning shakllanishi ustidan to'liq nazoratni qo'lga kiritamiz. To'g'rirog'i, biz uni qo'lda shakllantiramiz, bu, masalan, ma'lum bir ICMP paketini yuborish imkonini beradi...

Davom etishga ruxsat. Ma'lumki, IP-paket sarlavha, xizmat ma'lumoti va aslida ma'lumotlardan iborat. Bilimingizni yangilash uchun bu yerga qarashingizni maslahat beraman. Keling, IP sarlavhasini tuzilma shaklida tasvirlaymiz (RSDN-dagi ajoyib maqola tufayli):

IP-paket strukturasi tavsifi
typedef struct _IPHeader ( unsigned char ver_len; // sarlavha versiyasi va uzunligi unsigned char tos; // xizmat turi imzolanmagan qisqa uzunlik; // butun paketning uzunligi imzosiz qisqa identifikator; // Id unsigned short flgs_offset; // bayroqlar va ofset imzolanmagan char ttl ; // umr bo'yi imzolanmagan char protokoli; // protokol imzolanmagan qisqa xsum; // nazorat summasi imzolanmagan long src; // jo'natuvchining IP manzili imzolanmagan long dest; // maqsad IP manzili imzosiz qisqa *paramlar; // parametrlar (320 tagacha) bit) unsigned char *ma'lumotlar; // ma'lumotlar (65535 oktetgacha) )IPHeader;
Tinglash algoritmining asosiy funktsiyasi quyidagicha ko'rinadi:
Yagona paketni yozib olish funktsiyasi
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(hisoblash, hdr); qaytaring hdr; ) aks holda 0; )
Bu erda hamma narsa oddiy: biz standart rozetka funktsiyasidan foydalangan holda ma'lumotni olamiz recv, va keyin ularni kabi tuzilishga nusxalash IPHeader.
Va nihoyat, biz cheksiz paketlarni yozib olish tsiklini boshlaymiz:
Keling, tarmoq interfeysimizga kiradigan barcha paketlarni tortib olaylik
while (to'g'ri) (IPHeader* hdr = RS_Sniff(); // agar (hdr) IP paketini qayta ishlash ( // konsolda sarlavhani chop etish) )
Biroz mavzudan tashqari
Bu erda va quyida muallif ba'zi muhim funktsiyalar va o'zgaruvchilar uchun RS_ (Raw Sockets-dan) prefiksini yaratdi. Men loyihani 3-4 yil oldin qildim va menda xom rozetkalar bilan ishlash uchun to'liq huquqli kutubxona yozish g'oyasi bor edi. Ko'pincha bo'lganidek, (muallif uchun) muhim natijalarga erishgandan so'ng, ishtiyoq susaydi va masala mashg'ulot misolidan uzoqqa bormadi.

Asosan, siz oldinga borishingiz va yuqorida joylashgan barcha keyingi protokollarning sarlavhalarini tavsiflashingiz mumkin. Buning uchun maydonni tahlil qilish kerak protokol tuzilishida IPHeader. Misol kodiga qarang (ha, kalit bo'lishi kerak, jin ursin!), bu erda sarlavha paket IP-da qaysi protokolni qamrab olganiga qarab ranglanadi:

/* * Paketni rang bilan ajratib ko'rsatish */ void ColorPacket(const IPHeader *h, const u_long haddr, const u_long whost = 0) ( if (h->xsum) SetConsoleTextColor(0x17); // paket bo'sh bo'lmasa, boshqa SetConsoleTextColor(0x07) ; // bo'sh to'plam agar (haddr == h->src) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_RED | FOREGROUND_INTENSITY); // "dr else=" uchun to'plamni qaytaring (agar = mahalliy" h->dest ) ( SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_GREEN | FOREGROUND_INTENSITY); // "mahalliy" qabul paketi ) agar (h->protocol == PROT_ICMP || h-T=Protocolor) (0x70) ; // ICMP paketi ) else if(h->protocol == PROT_IP || h->protocol == 115) ( SetConsoleTextColor(0x4F); // IP-in-paket, L2TP ) boshqacha if(h) - >protocol == 53 || h->protocol == 56) ( SetConsoleTextColor(0x4C); // TLS, shifrlangan IP ) if(whost == h->dest || whost == h->src) ( SetConsoleTextColor (0x0A); ) )

Biroq, bu ushbu maqola doirasidan sezilarli darajada tashqarida. Bizning o'quv misolimiz uchun, qaysi va qaysi trafik kelayotgan xostlarning IP manzillarini ko'rib chiqish va uning vaqt birligi uchun miqdorini hisoblash kifoya qiladi (tugallangan dastur maqolaning oxirida arxivda joylashgan) .

IP sarlavhasi ma'lumotlarini ko'rsatish uchun siz datagram sarlavhasini (ma'lumotni emas) satrga aylantirish funktsiyasini amalga oshirishingiz kerak. Amalga oshirish misoli sifatida biz quyidagi variantni taklif qilishimiz mumkin:

IP sarlavhasini satrga aylantirish
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 bayroq=0x%X ofset=%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->uzunlik), ntohs(iph->id), IP_FLAGS(ntohs(iph->flgs_offset)), IP_OFFSET (ntohs(iph->flgs_offset)), iph->ttl, iph->protokol, ntohs(iph->xsum), nethost2str(iph->src), nethost2str(iph->dest)); qaytish r; )
Yuqorida keltirilgan asosiy ma'lumotlarga asoslanib, biz IP-trafikni mahalliy tinglashni amalga oshiradigan ushbu kichik dasturni (o'rqinchli nom ss, oddiy sniffer uchun qisqa) olamiz. Uning interfeysi quyidagi rasmda ko'rsatilgan.

Men manba va ikkilik kodni bir necha yil oldin bo'lgani kabi taqdim etaman. Endi men unga qarashdan qo'rqaman va shunga qaramay, u juda o'qilishi mumkin (albatta, o'zingizga bu qadar ishonib bo'lmaydi). Hatto Visual Studio Express 2005 kompilyatsiya qilish uchun etarli bo'ladi.

Biz nima bilan yakunladik:

  • Sniffer foydalanuvchi rejimida ishlaydi, lekin administrator huquqlarini talab qiladi.
  • Paketlar filtrlanmaydi va xuddi shunday ko'rsatiladi (siz maxsus filtrlarni qo'shishingiz mumkin - agar qiziqsangiz, keyingi maqolada ushbu mavzuni batafsil ko'rib chiqishni taklif qilaman).
  • Wi-Fi trafigini ham ushlaydi (hammasi ma'lum bir chip modeliga bog'liq, u siz uchun ishlamasligi mumkin, xuddi men uchun bir necha yil oldin bo'lgani kabi), garchi AirPcap mavjud bo'lsa-da, buni ajoyib qila oladi, lekin pul talab qiladi.
  • Butun datagram oqimi faylga qayd qilinadi (maqolaning oxirida biriktirilgan arxivga qarang).
  • Dastur 2000-portda server sifatida ishlaydi. Siz telnet yordam dasturi yordamida xostga ulanishingiz va trafik oqimlarini kuzatishingiz mumkin. Ulanishlar soni yigirmata bilan cheklangan (kod meniki emas, men uni Internetda topdim va tajribalar uchun ishlatdim; men uni o'chirmadim - achinarli)
E'tiboringiz uchun rahmat, Xabrovsk va Xabrovsk aholisini va barchani Rojdestvo bayrami bilan tabriklayman!

SmartSniff tarmoq trafigini ushlab turish va uning mazmunini ASCII da ko'rsatish imkonini beradi. Dastur tarmoq adapteri orqali o'tadigan paketlarni ushlaydi va paketlarning mazmunini matn shaklida (http, pop3, smtp, ftp protokollari) va o'n oltilik dump sifatida ko'rsatadi. TCP/IP paketlarini yozib olish uchun SmartSniff quyidagi usullardan foydalanadi: xom rozetkalar - RAW soketlari, WinCap Capture Driver va Microsoft Network Monitor Driver. Dastur rus tilini qo'llab-quvvatlaydi va ulardan foydalanish oson.

Paketlarni olish uchun Sniffer dasturi


SmartSniff quyidagi ma'lumotlarni ko'rsatadi: protokol nomi, mahalliy va masofaviy manzil, mahalliy va masofaviy port, mahalliy tugun, xizmat nomi, ma'lumotlar hajmi, umumiy hajmi, tortib olish vaqti va oxirgi paket vaqti, davomiyligi, mahalliy va masofaviy MAC manzili, mamlakatlar va ma'lumotlar paketi tarkibi. Dastur moslashuvchan sozlamalarga ega, u suratga olish filtri funktsiyasini amalga oshiradi, http javoblarini ochish, IP manzillarini o'zgartirish, yordamchi dastur tizim tepsisiga minimallashtiriladi. SmartSniff HTML sahifasi sifatida paketlar oqimi haqida hisobot yaratadi. Dastur TCP/IP oqimlarini eksport qilishi mumkin.

Agar xatolikni sezsangiz, matn qismini tanlang va Ctrl+Enter tugmalarini bosing
UMUSHISH:
Kompyuterlar va zamonaviy gadjetlar