مبحث یکم : مقدمه و تاریخچه
مبحث دوم: مراحل نفوذ کردن / جلوگیری از نفوذ
مبحث سوم: حملات شبکه ای
مبحث چهارم - کار عملی
مبحث پنجم - DHCP
مبحث ششم - وب و حملات مطرح در آن
مبحث هفتم - حملات DoS
مبحث هشتم - سیستم عامل
مبحث نهم - مهندسی اجتماعی
مبحث دهم - Vulnerability (آسیب پذیری)

مشکلات امنیتی Wireless (802.11)

به طور کلی هر تکنولوژی جدیدی که ارائه می شود (حتی در سال 2012) دارای مشکلاتی است. تا هم اکنون پروتکل هایی که وجود دارند (سال 2012 ) قابلیت شکسته شدن را دارند از  enterprise WAP2 گرفته تا …

به عنوان نمونه شکسته شدن تکنولوژی WEP را بررسی می کنیم. می بینیم که WPA و WPA2 تقریباً مبتنی بر تجزیه و تحلیل آماری هستند که می توان با آن یک نفوذ را انجام داد.

می خواهیم شبکه linksys را config کنیم و به آن connect شویم. پیکربندی تجهیزات شبکه، وایرلس و … خود بحث های زیادی و دوره های آموزشی خاص خود را دارند. WEP در دو مود کار می کند:

1-  Shared Key Authentication

2- Open System Authentication

در مود Open یعنی احراز اصالت خاصی انجام نمی شود. هر دستگاهی که درخواست برقراری ارتباط به (AP) Access Point را بدهد می توان به آن وصل شود. استفاده آن برای مثال در جاهای عمومی است که شاید نیاز به پسورد نباشد. فقط کافی است اسم ( BSSID، MAD Address بود) SSID که یکتا است مثلاً liatecnet را بدانیم. بعد از برقراری ارتباط داده با روش هایی رمز شده ارسال می شود (تا به راحتی sniff انجام نشود). یعنی احراز اصالت را یک فاز در نظر گرفتند و انتقال اطلاعات را فاز دیگر. بحث احراز اصالت shared key یعنی باید یک کلیدی را بدانیم این کلید در AP هم set شده است. سپس آن کلید را باید وارد کرد. انتقال اطلاعات بر مبنای کلید انجام می شود. کسی این کلید را نداند نمی تواند وصل شود. یعنی احراز اصالتش fail می شود کسی که احراز اصالت نکند هم از آن جایی که داده به صورت broad cast  است می تواند آن را شنود، dump و تحلیل کند. پس صرفاً با رمزنگاری نمی توان امنیت را برقرار کرد چون رسانه (media)، هدایت نشده undetected است یعنی همه آن را می بینند. مثلاً شما در لپ تاپ های خود لیست شبکه های وایرلس را می بینید که البته وقتی درخواست اتصال را می دهید می تواند وصل یا fail شود. کسی می تواند به درستی بسته های از نوع دیتا را به AP انتقال دهد و AP هم به مقصد ارسال کند که کلید مناسب داشته باشد. قبل از انجام احراز اصالت، باید خالی بودن کانال بررسی شود که این کار با بسته های کنترلی انجام می شود. بعد نیاز است تا با استفاده از بسته های مدیریتی، کارهای مربوط به احراز اصالت انجام شود و سپس بسته های نوع داده برای انتقال داده ها به کار می روند. تقریباً تمام مشکلاتی که در وایرلس است به خاطر پیاده سازی ضعیف secret key و الگوریتم های ارتباطی است. تفاوت WEP، WPA و … در امن کردن همین مسائل است. مثلاً طول کلید را در WEP افزایش دادند تا امن تر شود. از الگوریتم رمزنگاری مختلف هم بهره برده شده است (RC4 ، AES ، DES و …)

کارت شبکه باید قابلیت تغییر MAC Adders و … را برای تغییر MAC Adders داشته باشد. و یا قابلیت رفتن به مود مانیتور (مثل مودی که در LAN داشتیم و به همه بسته ها گوش می داد) (monitor mode) را داشته باشد. ممکن است یک کارت شبکه این قابلیت ها را داشته باشد یا نداشته باشد. وجود قابلیت packet injection است که می تواند بسته را به دلخواه خودش بسازد. بدون وجود یک سری از این قابلیت ها، کار نفوذگر سخت تر و زمان گیر تر می شود. کارت شبکه آلفا مدل (AWVS036H) از قابلیت  packet injection پشتیبانی می کند.

Backtrack  که در VM ware نصب میکنید مستقیماً با کارت شبکه وایرلس نمی تواند ارتباط برقرار کند. Back track قابلیت شبیه سازی کارت شبکه وایرلس را ندارد. اما وقتی به حالت USB اتصال شبکه را تنظیم می کنید می توانید به عنوان یک USB devise آن را به Backtrack معرفی کنید. آن گاه Back track به عنوان یک وایرلس USB با آن کار می کند. که ما همین کار را در اینجا انجام می دهیم.

در مورد open authentication هر کس درخواست authentication را به AP می دهد. پس باید SSID مربوط به AP را داشته باشد. حالا در این جا یک سری از شبکه ها می توانن به صورت hidden باشند که SSID را broadcast نکنند. یعنی به همه نگویند که من یک AP هستم. هر کس که درخواست داد که یک AP وجود دارد یا نه؟ آن گاه جواب داده شود که AP وجود دارد. ولی شبکه hidden هم قابل شناسایی است.

در حالت Shared key، client درخواست احراز اصالت را به AP می دهد. AP براساس آن secret key یک challenge به client می دهد. این challenge رمزنگاری شده نیست یک متن ساده است. AP انتظار دارد که client این متن را با آن secret key که دارد رمزنگاری کند و به AP برگرداند.

AP بررسی می کند که آیا client عبارت را درست برگردانده است یا نه. اگر درست بود می گوید احراز اصالت با موفقیت و اگر نه که خیر. در TCP چیزی به نام 3-way handshaking shaking داشتیم در اینجا به آن 4-way handshaking می گویند. البته برخی از الگوریتم ها مراحل دیگری نیز اضافه کرده اند اما مبنا همین است.

RADIUS و Kerberos پروتکل های احراز اصالت هستند.

مکانیزم رمزنگاری که در WEP انجام می شود مکانیزم قوی نیست.

داشتن challenge بدون رمز و challenge رمز شده، کمک می کند به تحلیل رمزنگاری. در مباحث رمزنگاری به این حالت اصطلاحاً Known Plain Text Attack می گویند یعنی یک متن رمز شده و معادل رمز نشده آن را داشته باشیم. یکی از کارهایی که بعضی اوقات نفوذگر انجام می دهد این است که ارتباط نودی که به شبکه وصل است را قطع می کند تا آن نود مجبور شود دوباره authenticate کند، یعنی دوباره challenge و معادل رمز شده آن مبادله شود تا بتواند آن ها را بشنود. نفوذگر قطع ارتباط را هم می تواند با جا زدن خود به جای AP و inject کردن بسته های deauthenticate و ارسال به user انجام دهد.

رمزنگاری در WEP نیز مشکل دارد. در جایی از الگوریتم نیاز به وجود کلید به صورت hex بوده است اما از آن جایی که حفظ کردن یک پسورد به صورت hex (کاراکترهای hex) دشوار است برخی از vendor ها به کاربر اجازه دادند تا یک عبارت وارد کند (مثلاً laitecpass) و سپس یک متودی قرار دادند که کار تبدیل این عبارت به معادل hex را انجام دهد و به عنوان کلید استفاده شود. حالا همین متودی که کار تبدیل را انجام می دهد، مشکلاتی را به همراه آورد.

وقتی می خواهید با یک شبکه ای ارتباط برقرار کنید رمز عبوری که وارد می کنید در هر بسته عوض می کنید؟ خیر. یک رمز را وارد می کنید و آن ثابت است. این ثابت بودن می تواند منجر به رسیدن به دیتا اصلی (plain text) شود. برای این که این اتفاق بیفتد یک Vector Initialization(IV) هم اضافه کردند. حال کلید برای هر بسته برابر است با کلیلد رمز به اضافه IV . این IV کنار بسته ارسال می شود. نفوذگر که بسته را می بیند با این که IV را دارد باز هم نمی تواند بسته را رمزگشایی کند زیرا کلید رمز را ندارد. پس اگر کاربر دو بسته hello بفرستد، مقدار رمز شده آن دو بسته متفاوت خواهد بود (چیزی شبیه salt در بحث رمزنگاری سیستمی که قبلاً دیدیم).

IV یک عدد تصادفی 24 بیتی است. یعنی فضای حالت آن2 به توان 24 است (یک بیت می تواند 0 یا 1 باشد پس 24 بیت هر کدام دو حالت) حال فکر می کنید در چه مدت این چند میلیون عدد استفاده می شود؟ خیلی زود این چند میلیون عدد برای بسته ها استفاده می شوند. این IV ، ضعیف است که منجر به ایجاد باگ می شود. ترکیب با استفاده از الگوریتم RC4 انجام می شود که روی این الگوریتم و ایمن بوتدن آن بحث است.

IV        24 bit

(بعداً تا 128 بیت گسترش یافت)Secret Key       40 bit

در شکل 5 می توانید مرحله اول این پروتکل را ببینید.

شکل 5

Cyclic redundancy check: CRC

مرحله بعدی در شکل 6 آمده است.

مرحله نهایی در شکل 7 آمده است.

شکل 7

برای آن که client بتواند پیام رمز شده را از حالت رمز خارج کند نیاز به کلید رمز و IV دارد. کلید رمز را که از قبل دارد. پس IV هم برایش فرستاده می شود تا بتواند رمزگشایی را انجام دهد.

همان طور که گفتیم خیلی زود فضای حالت  استفاده می شود پس IV دوباره استفاده می شود (reuse). از آن جایی که secret key ثابت است حال اگر برای دو بسته مقدار IV هم یکسان شود پس کلید تکراری ایجاد می شود. پس می توان با تحلیل تعداد زیادی از بسته ها (با توجه به این که بعد از  تا IV) کلیدها تکراری می شوند، می توان کلید را یافت (دو بسته داریم که با کلید یکسان رمز می شوند چه اتفاقی می افتد؟)

درباره مسأله بالا تحقیق کنید (چگونگی انجام حمله)

نکته: مثلاً سه هارد A ، B و C داریم. اطلاعات هارد A را با اطلاعات هارد B، XOR می کنیم و در هارد C می ریزیم. حال اگر یکی از هاردهای A یا B خراب شد با XOR آن هارد خراب با هارد C، اطلاعات به دست می آیند.

در حمله بالا نفوذگر کارت شبکه خود را در حالت monitor می گذارد و به مدت کافی به شبکه گوش می دهد. آن قدری صبر می کند تا دو IV یکسان به دست آورد سپس عملیات crack را شروع می کند.

شکل 8 حملات ویرالس را نشان می دهد.

شکل 8

برای مثال از TKIP توصیه شده استفاده نشود.

شکل 9 آماری از الگوریتم رمزنگاری  AES

شکل 9

حملاتی که در وایرلس است به همان سبکی که در LAN داشتیم در بستر وایرلس پیاده سازی می شوند. مثلاً حمله SQL Injection را در وب داشتیم در اینجا (وایرلس) هم می توانیم این حمله را داشته باشیم. بستر ارتباطی وایرلس فرقی در حملات لایه های بالاتر ندارد. یعنی لایه  Application کاری ندارد که ما در وایرلس کار می کنیم یا wired، و یا بحث DDoS تحت web (HTTP low post) نیز می تواند در وایرلس انجام پذیرد. اما یک سری حملات که روی بستر LAN (منظور شبکه wired) انجام می شد مثل DoS که روی بستر LAN انجام می شود مثل ARP Poisoning و … برای انجام این نوع حملات باید ببینیم پروتکل هایی که روی شبکه وایرلس استفاده می شود چه هستند و چه آسیب پذیری هایی را دارند. یکی از بحث ها، بحث Jamming (تولید پارازیت تولید اختلال در دستگاه ها) است که یکی از کاربردهای آن در مباحث نظامی است. کاری که انجام می دهد این است که در ارتباطات، اختلال ایجاد می کند. Jammer ها حالت های مختلف و کاربردهای مختلف دارند. مثلاً برای ارتباطات موبایل Jammer وجود دارد. در بعضی از سازمان ها، موبایل کار نمی کند چون Jammer قرار داده اند.

محیط بی سیم، انتقال اطلاعات به وسیله ی امواج الکترومغناطیسی است. این امواج هر کدام دامنه و فرکانسی دارند. با تغیر دامنه و فرکانس، دو موج از یکدیگر تفکیک می شوند. در محیطی که هستیم انواع و اقسام امواج وجود دارند. یک استانداردی برای این امواج وجود دارد. یک سری استانداردها جهانی و یک سری ملی هستند (استاندارد برای محدوده باندهای فرکانسی که مورد استفاده قرار می گیرد). Spectrum یا همان طیف فرکانسی بین کاربرهای مختلف مشخص و تقسیم بندی شده است (کاربردهای تجاری، امدادی، پلیس و …). در این طبقه بندی ها یک سری باند فرکانسی هم اختصاص داده شده است به ارتباطات شبکه های وایرلس. کاری که Jamming Signal ها انجام می دهند این است که با استفاده از یک دستگاه، تمام محدوده های فرکانسی پر می شود. یعنی شروع می کند به ارسال انواع مختلف سیگنال (مثلاً UAV Jammer که هدف آن جلوگیری از شناسایی افراد در محیط های رزمی است). هواپیماهای رادار گریز نیز از Jammer استفاده می کنند. در ارتباطات بی سیم نیز Jammer داریم. نفوذگر Jammer را فعال می کند و آن قدر فرکانس می فرستد که همه چیز مختل شود. Jamming معادل DoS در LAN است. برای حمله، کافی است نفوذگر مراحل زیر را انجام دهد:

1- ابتدا باید وایرلس را شناسایی کند. شناسایی وایرلس نیز با استفاده از Application های مختلف قابل انجام است. مرحله بعد این است که کارت شبکه خود را در حالت (مود) مانیتور (monitor) قرار دهد و سپس BSSID شبکه مورد نظر را شناسایی کند. سپس ترافیک آن شبکه را Dump کند و سپس با استفاده از IV های زیادی که به دست آورده است شروع کند به crack کردن.

برخی از مراحل فعال کردن (شبیه سازی کردن) کارت وایرلس در VMware

  • فعال کردن (start کردن) سرویس طبق شکل 10. سرویس VMware USB Arbitration را start کنید.

شکل 10

  • در VMware، از منوی VM گزینه Removable Devices و بعد انتخاب چیپ ست مورد نظر(مثلاً Ralink 802.11g WLAN) سپس connect کردن آن به backtrack (هدف disconnect کردن UBS از host و وصل کردن آن به backtrack  -که در VMware موجود می باشد- است تا backtrack کارت شبکه وایرلس را بشناسد). اگر با پیغام خطا مواجه شدید یک بار backtrack را reset کنید.

بعد از اتصال، با استفاده از دستور iwconfig می توانید لیستی از کارت های وایرلس را مشاهده کنید (مثل دستور ifconfig).

بردن کارت شبکه به مود monitor. اگر به خروجی دستور iwconfig نگاه کنید در حال حاضر در managed mode است (شکل 11)

شکل 11

با استفاده از دستور زیر می توان این کار را انجام داد (بردن به مود مانیتور)

airman-ng   start   wlan0

حتی ابزارهایی وجود دارند که براساس فرکانسی که می آید موقعیت جغرافیایی Access point را هم اعلام می کنند.

با اجرای دستور بالا می بینیم که wlan0 آغاز (start) می شود (شکل 12)

شکل 12

پیغامMonitor mode  را در پایین شکل 12 می بینید (monitor mode enable on mon0) از این به بعد هم آن را با mon0 می شناسد. یعنی اگر دستور  iwconfigرا بزنید می بینید که یک mon0  (یک device مجازی برای monitor mode ) اضافه کرده است (شکل 13)

شکل 13

      با استفاده از دستور زیر می توان بررسی کرد که کارت شبکهinjection  را پشتیبانی می کند یا نه.

aireplay-ng –9

      از دستور  man aireplay-ng می توانید برای مشاهده توضیحات بیشتر استفاده کنید. خروجی دستور بالا را در شکل 14 مشاهده می کنید؛ که نشان می دهد Injection کار می کند. هم چنین دو Access point نیز پیدا کرده است (Dlink و Linksys)

شکل 14

حال باید listen کرد و بسته های با IV مختلف را به دست آورد.

با استفاده از دستور airodump-ng mon0 روی حالت monitor mode می ماند و هر چیزی که در شبکه پیدا کند نمایش می دهد (شکل 15).

شکل 15

در شکل 15 می بینید که چند رمز نگاری از نوع WEP هستند که می توانید BSSID آنها را مشاهده کنید.

(مراحل را فراموش نکنید! اول قرار دادن کارت شبکه در حالت بی قید، آزمون injection ، گوش دادن به بسته، به دست آوردن IV).

حال می توان یک BSSID را انتخاب کرد. گفتیم که غالباً BSSID را معادل Access Point MAC می گذارند.

حالا که BSSID مشخصی را پیدا کردیم می خواهیم دقیقاً ترافیک های شبکه را تحلیل کنیم. با استفاده از دستور شکل 16 اطلاعات بسته های روی کارت شبکه mon0 برای BSSID مشخص شده و کانال مشخص در فایلی به نام classwep ثبت می شوند (شکل 16)

شکل 16

خروجی دستور بالا در شکل 17 آمده است.

شکل 17

اجرای این دستور فایل هایی را ایجاد می کند که یکی از آن ها فایل classwep-01.cap است (شکل 18)

شکل 18

حال باید فایلی که بسته ها در آن capture می شوند را بدهیم به مؤلفه ای که آن را crack کند (همان مراحل رمزنگاری/گشایی WEP). این کار با استفاده از دستور زیر انجام می شود:

aircrack-ng classwep–01.cap

که classwep-01.cap  فایلی است که در بالا گفته شد.

بعد از اجرای دستور بالا خروجی مانند شکل 19 می بینید.

شکل 19

البته در شکل بالا مثل این که داده ای رد و بدل نمی شود. فرض کنید در یک شبکه واقعی می توان از قابلیت injection استفاده کرد و client ها را deauthenticate کرد.

این کار با دستور شکل 20 انجام می شود (AP BSSIP را باید وارد کنید) این دستور همه client ها را deauthenticate می کند.

شکل 20

اگر بخواهید client خاصی را deauthenticate کنید در ادامه دستور بالا با استفاده از پارامتر -c و بعد آدرس MAC آن client می توانید این کار را انجام دهید.

Manual دستور airepla-ng را بخوانید در آن چند نوع حمله مختلف وجود دارد که با packet injection ، deauthenticate می کند و …

نفوذگران برخی اوقات war driving انجام می دهند (war dialing به شماره گیری و … می پردازد). در war driving با استفاده از یک آنتن وایرلس تقویت شده، یک laptop در محیط حرکت می کند، airmon را اجرا می کند، هر چیزی که وجود دارد را capture می کند. یک GPS هم به لپ تاپ اضافه می کند موقعیت GPS را هم به داده ای که وجود دارد متصل می کند، یعنی دقیقاً مشخص می شود که در این شهر در کدام قسمت کدام شبکه آسیب پذیر است و بعد می توان از این اطلاعات سوء استفاده کرد.

شکل 21

فایلی داریم که در آن packet های داده ضبط شده اند. اجرای دستور aircrack-ng روی آن خروجی شبیه شکل 21 را دارد که می گوید 187 IV به دست آورده است که البته نتیجه ای که داد (شکل 22) fail بود. که این یعنی با این تعداد IV نتوانست crack را انجام دهد. Try بعدی را با 5000 IV انجام می دهد.

شکل 22

فایلی داریم که در آن packet های داده ضبط شده اند. اجرای دستور aircrack-ng بر روی آن خروجی شکل 23 را دارد.

شکل 23

      در WPA هم راه کلی به همین صورت است.

نکته خارج از بحث: در لینوکس هم می تواند ویروس وجود داشته باشد اما این طور نیست که مثل سیستم های ویندوزی به راحتی ویروسی شود و یا دچار worm شود. به ویژه اگر شما مجوزها (permission) را به درستی رعایت کنید.

حتی اگر ویروسی وارد سیستم شود این نیست که به راحتی آزادی عمل برای هر کاری داشته باشد (به خاطر وجود permission های سفت و سخت لینوکس). آنتی ویروس هایی که در لینوکس است مثل AVG،   clamav ) Clam Antivirus) که استفاده آن‌ها بیشتر برای این است که مثلاً شما یک سیستم file sharing راه اندازی کرده اید و سیستم سرور خود را لینوکس گذاشته اید (مثل samba server) و client ها هم با ویندوز خود و یا OSهای دیگر) به آن وصل می شوند و فایل رد و بدل می کنند. این آنتی ویروس‌ها بررسی می کنند که ویندوزها فایل های مخربی کپی نکنند. به اضافه این‌که برخی از ویروس‌های لینوکس را هم با توجه به الگوهای آن ویروس‌ها (signature) شناسایی می کنند.

یکی از کارهای اولیه در انجام نفوذ جمع آوری اطلاعات درباره سیستم هدف است. ابزار nmap این قابلیت را به شما می‌دهد تا بتوانید اطلاعاتی را پیرامون شبکه مورد نظر خود و سیستم‌های موجود در آن به دست آورید. به طور خلاصه nmap یک اسنکر امنیتی رایگان می‌باشد (www.nmap.org(. nmap معادل Network Mapper است.

nmap را بر روی سیستم عامل لینوکس خود نصب کنید و manual آن را بخوانید و با optionهای آن آشنا شوید.

     تمرین: با استفاده از nmap، پورت‌های باز، سرویس و ورژن سرویس‌هایی که روی آن پورت‌های باز در حال اجرا هستند را برای یک سیستم به دست آوردید.

با nessus آشنا شوید.

(Common Internet File System(CIFS همان (Server Message Block (SMB است که برای File Sharing در ویندوز می باشد.

با metasploit frame work آشنا شوید.

در استفاده از اسکنرها باید آن‌ها را طوری config کنید که عملکرد مناسبی را حتی با وجود IDS ها و فایروال‌ها داشته باشند.

اسکرول به بالا