تصمیم گرفتم واسه پروژه کارشناسی برنامه Packet Sniffer رو بنویسم (دلفی 7) از دوستان عزیز احیانا اگه کسی مطلبی، منبعی داره ... خواهشا دریغ نکنه
متشکرم، افشین
Printable View
تصمیم گرفتم واسه پروژه کارشناسی برنامه Packet Sniffer رو بنویسم (دلفی 7) از دوستان عزیز احیانا اگه کسی مطلبی، منبعی داره ... خواهشا دریغ نکنه
متشکرم، افشین
من یه سری Component سراغ دارم
یک راه استفاده از امکانات درونی WinSock 2 است ؛ و راه دیگه استفاده از Packet Driver ها جانبی ، مانند WinPCap که امکان دسترسی مستقیم به بسته ها رو فراهم میکنند ؛ اسنیفر معروفی مانند Ethereal با استفاده از همین کتابخانه توسعه داده شده
متاسفانه WinpCap برای محصولات بورلند ساخته نشده ... هرچند چند شرکت ابزارهایی برای این منظور نوشته بودند ولی اکثرا با اشکالاتی همراه بود
برنامه ای دانلود کردم که در اون با تعریف یک Event در WinSock (دلفی7) و Bind شدن به پورت 2000 ، پکت ها رو میدزدید ولی درست کار نکرد! ... به خاطر درگیر نشدن با درایور و Kernel دنبال SDK یا ابزار جانبی هستم
لازم نیست WinPCap برای محصولات بورلند ساخته شده باشه تا بتونی ازش استفاده کنی ؛ کافیه از کامپوننتها یا هدرهای توسعه داده شده به درستی استفاده کنی ، قبلا" با WinPCap و دلفی چند تا ماژول نوشته ام و اتفاقا" خوب هم جواب داد . به مثالهای همراهش دقت کن .
توسعه درایور کار ساده ای نیست و عموما" تا وقتی یک راه حل قابل استفاده سطح کاربر وجود داره ، کسی به درایور فکر نمیکنه ، مطمئنم اگر جستجو کنم لااقل سه تا اسنیفر سورس آزاد که با دلفی نوشته شده اند پیدا میکنم ، بهتره قبل از انتخاب راه حل ، به راههائی که دیگران رفته اند دقت کنی ، تا هزینه ای که قبلا" پرداخت شده ، دوباره از جیبت نره . استفاده از WinPCap تقریبا" بهترین گزینه است .
موفق باشی
اگه درایوری مثلی winPcap برای توسعه از درایورهای مثلی
NDIS-Hooking Filter Driver
NDIS Intermediate (IM) Driver
Windows 2000 Filter-Hook Driver
برای hook یا filter کردن استفاده میکنن پس چرا نمی تونن مثل firewall بسته ها رو drop کنن ؟
WinPCap بصورت یک Protocol Stack پیاده سازی شده و Hook و Filtering رو انجام نمیده ( اگر به عنوان تاپیک یعنی سوال خودت دقت کنی ، میبینی که پکت کپچر و اسنیفر هم ارتباطی با هوک و فیلترینگ سطح کرنل ندارند ) ؛ معمولا از NDIS یا توابع لایهء TDI برای توسعهء فایروال یا Packet Midificator استفاده میشه ؛ برای نوشتن یک اسنیفر ، استفاده از امثال WinPCap کافیه .
من هنوز تفاوتهای "کپچر" ، "اسنیفر" ، "هوک" و "فیلترینگ" رو نمیدونم میشه یه توضیح کوتاهی در مورد هر کدومشون بدین
کپچر : دریافت ترافیک ورودی/خروجی مختص به کارت
اسنیف : دریافت تمام ترافیک قابل دریافت توسط کارت ، بدون توجه به مالکیت
هوک ( اینجا ) : قطع کردن کانکشنهای شبکه ، احتمالا" دستکاری مشخصه های سوکتها و باز-تولید سوکت یا بسته های جدید
فیلتر : دستکاری بسته ها ، حذف بسته های ارسالی/دریافتی
مرسی عالی بود
آیا نوشتن کدی که منجر به دریافت اطلاعات کلیه پکتها بشه راحته و براحتی میشه محتویات رو تغییر داد و راه جلوگیری این کدها چیه ؟
اصلا اطلاعات پکتها تو این سطح قابل درکه ؟ فرض کنید العان یه نفر داره یه فایلی رو از رو شبکه کپی میکنه آیا بااین ابزار میشه این فایل رو دریافت کرد (حتی با عدم وجود دسترسی در شبکه منظورم اینه که شخص هکر اجازه رویت اون فایل از رو شبکه رو نداره ولی دسترسی عادی به شبکه رو داره)؟
آیا میشه با این کدهای احتمالی رمزهای رو شبکه رو دزدید؟
موفق باشید
برای راحتی و دشواری معیار کلی وجود نداره ؛ از نظر من کار ساده و ابتدائی است ؛ اسنیفرهای خوبی مثل Ethereal همین حالا امکان دیکد کردن پروتکلهای مختلف رو دارن که میتونه برای اهداف مخرب هم ازش استفاده بشه ، رمزهای در حال عبور ، ایمیلها ، فایلهای در حال مبادله ، چت ها و ... عموما" قابل دریافت هستند اگر از پروتکلهای امنی مانند SSL و امثال اون - بسته به مورد - استفاده نشه .
با تشکر از راهنمایی های جناب استاد اینپرایز
اگه مغایر قوانین سایت نیست میتونم خواهش کنم یه نمونه کد ساده رو معرفی کنید
باز هم ممنون
چون جدیدا به مباحث امنیت علاقمند شدم یادگیری تو این زمینه رو آغاز کردم(البته چون در تاپیکهای قبلی نتونستم نقطه شروع این گونه مباحث رو پیدا کنم فلبداهه به خوندن چند کتاب در زمینه هک و امنیت روی آوردم) از مطالعه اولیه این نکته دستگیرم شده که اگه در لایه شبکه از ipsec استفاده بشه دیگه امکان استراق و یا تغییر وجود نداره البته این مورد رو میخواستم مطمئن بشم که آیا واقعا اینطوریه یعنی اگه همه رو ملزم به استفاده از ipsec در لایه دوم کنیم تمام بحث امنیت حله؟؟؟؟؟؟؟؟(من که اینطور تصور نمیکنم!!!!)
در مورد ipsec اطلاع چندانی ندارم ولی عزیزی در فوروم خارجی سوال کرده بود که آیا می توان وجود Sniffer رو در شبکه تشخیص داد یا خیر؟ و جواب داده شده بود : خیر
طبق فرمایش اینپرایز به نظر من , بهترین کار همان Encrypt کردن پکت ها است آنهم به صورت polymorphism یا استفاده از SSL که شاید بتواند سرقت محتوای درون پکت ها رو غیرممکن سازد
در مورد کتاب هم : نفوذ گری در شبکه و روشهای مقابله نوشته احسان ملکیان می تونه شروع خوبی برات باشه
خوش باشی
الف. یکی از موضوعات مطرح تو امنیت شبکه Interception یا شنود است ، به معنای دریافت غیر مجاز ترافیک در حال عبور روی رسانه های شبکه . بسته به نوع رسانه و ابزار اتصال و روش شنود همیشه راه حلهای مقابله ای مختلفی وجود داشته که رمز نگاری ترافیک یکی از اونهاست . IPSec هم با مجموعه قواعدی ترافیک شبکه رو بصورت رمز منتقل میکنه که باعث میشه شنود غیر مجاز واقعا" دشوار باشه ، اگر نشه گفت غیر ممکن .
ب. بسته به نوع اسنیف ، ممکنه در حالاتی بشه از وجود یک اسنیفر مطلع شد . اسنیفرها رو میشه به دو دسته کلی تقسیم کرد . Active و Passive . اسنیفرهای فعال از رابطهای شبکه استاندارد و فعال برای دریافت ترافیک استفاده میکنن : قرار دادن یک کارت شبکه در وضعیت PQ و دریافت تمام ترافیک ارسال شده به هاب یا سوئیچ ؛ و اسنیفرهای غیر فعال پس از استخراج ترافیک از شبکه بدون استفاده از رابطهای استاندارد ، اون رو بررسی میکنند : کپی ترافیک در حال عبور بوسیلهء TAP و ارسال کپی ترافیک به اسنیفر Passive . روشهای متعددی برای کشف وجود اسنیفر فعال روی شبکه وجود داره ، اما عموما" نمیشه اسنیفرهای غیر فعال رو کشف کرد ، مگر روی شبکه های مبتنی بر فیبر و با استفاده موج سنجهای پیچیده و گرانقیمت که نصب اونها تو دو طرف فیبر و اندازه گیری پارامترهای مختلف موج نوری ارسال-دریافتی میتونه منجر به شناسائی TAP و احتمالا" اسنیفر غیر فعال بشه . مبحث اسنیف بحث مفصل و جالبیه که بهتره جای دیگه مطرح بشه ، نه ذیل یه تاپیک دیگه که چندان به این ماجرا مربوط نیست و سوالش چیز دیگه ای بوده .
خوش باشید
ممنونم
اگه ممکنه یه تاپیکی ایجاد بفرمایید و در مورد ماهیت و چگونگی انجام اسنیف یا ... تا جایی که مغایر با قوانین سایت نیست جلو بریم
من شدیدا به این مبحث علاقه مندم و راهنمایی های شما در مرحله اول میتونه شروع قدرتمندی رو نوید بده:)
از Afshin_Zavar هم بخاطر معرفی کتاب ممنونم چند ساعت پیش این کتاب رو خریدم و دارم مطالعه میکنم
اگه ممکنه منابع دیگه ای هم معرفی بشه
باز هم تشکر
نقل قول : یکی از موضوعات مطرح تو امنیت شبکه Interception یا شنود است
--
جدا" از بابت این راهنمایی ممنونم ... این مطالب کمک زیادی به پر کردن نواقص معلومات و پر بار کردن Document پروژه خواهد کرد
نقل قول : اگه ممکنه منابع دیگه ای هم معرفی بشه
--
کتاب با ارزش Hacking Exposed
متاسفانه مایکروسافت توانایی sniff کردن پاکتهای ارسالی (پاکتهای دریافتی نه، البته تا حالا) رو که قبلا با استفاده از کتابخانه winsock ممکن بود، در نسخه های جدید windows از کار انداخته. در حال حاضر تنها راه استفاده از درایورهاست.
آنچه اتفاق افتاده اضافه شدن محدودیت ارسال بسته های TCP روی Raw Socket هاست ، و این ربطی به انتقال کارت به promiscuous mode و دریافت ترافیک شبکه نداره ؛ اسنیفرهائی که از WinSock2 استفاده میکردند هنوز هم کار میکنند ؛ هر چند بهر حال توصیهء بهتر همان استفاده از درایور است .
As I mentioned yesterday in another thread here, rawsock on XP works fine for SP1, and for SP2 RC1 (release candidate 1)
But m$ deliberately broke the outgoing side of rawsock under SP2 RC2 and higher, because according to them the ONLY use for forging packet headers is making attack tools.. go figure.
I am happy to report that the incoming side of rawsock works fine under RC2 and higher, it seems it's not evil to listen...
قبلا چون حداقل توی بعضی از نسخه های ویندوز، sniffer ای که توسعه داده بودم، به مشکل بالا برمی خورد، پیگیر این مساله بودم. و توی بعضی از سایتها به توضیحاتی از این قبیل برخوردم و چاره ای جز قانع شدن نداشتم. اما امروز روی windows sp2 که به تازگی نصب کردم باز تست کردم و با کمال تعجب به خوبی کار کرد. ولی شکی نیست که اون مشکل واقعی بود و صرفا یه تصور غلط نبود. دلیل تفاوت عملکردها رو نمی دونم.
ولی به هر حال بهترین راه حل، مطمئن ترین راه حله و در این مورد خاص درایورها بهترین راه حل به حساب میان.
قاعدتا" کدی که نوشتی مشکل داشته ؛ چون محدودیت اضافه شده اصولا" هیچ ارتباطی با انتقال کارت به مود مذکور و دریافت تمام ترافیک نداره ؛ وقتی مود کارت تغییر میکنه ، فیلترینگ مک آدرس تو لایهء فیزیکی حذف میشه و ترافیک دریافتی - هر چند ترافیک تمام شبکه است اما - تفاوتی با ترافیک دریافتی در حالت عادی نداره ، فلذا تغییر و تحول Raw Socket ها حائز اهمیت نیست .
کد مشکلی نداشت چون همون کد بدون هیچ تغییری، روی این نسخه از ویندوز، هم ترافیک ورودی و هم خروجی رو دریافت می کنه. باید مساله چیز دیگه ای باشه.
چیزی که مشخصه اینه که دریافت ترافیک مزبور مطلقا" ربطی به تغییرات اخیر یا سایر تغییرات نداره چون اصولا" به هم مربوط نیستند ؛ فلذا مسئله هر چی که باشه به یک جائی از کد یا نحوهء پیاده سازی اون مربوطه . کدی که قبل از SP2 کار میکرده بدون تغییر حالا هم کار میکنه بدون اینکه نگران تغییر باشه ، چون به حیطه کاری او مربوط نیست .
از مشکلات نوشتن این نوع برنامه ها اینه که تمام نویسندگانش از زبان C استفاده کرده اند؛ MSDN هم که به همین زبان توضیح داده
عجیب اینجاست که C برای هر چیزی یه DataType داره و تبدیل آنها به دلفی و استفاده از Header فایلها در دلفی و غرق شدن در دریای اشاره گرها ... واقعا خسته کننده است