آموزش رایگان دوره CEH همگام با سرفصل‌های بین‌المللی – 28
آموزش CEH (هکر کلاه سفید): ابزارهایی که برای ساخت کانال‌های ارتباطی پنهان استفاده می‌شوند
تونل‌سازی بر مبنای لایه کاربرد یکی از روش‌های رایج به کار گرفته شده توسط هکرها است که اجازه می‌دهد داده‌ها از طریق درگاه‌های مجاز مبادله شوند. به عنوان نمونه، یک هکر ممکن است یک نشست وب روی پورت 80 از طریق پورت 22 پروتکل SSH یا حتا پورت 443 ایجاد کند. از آن‌جایی که درگاه‌های 22 و 443 هر دو از رمزگذاری استفاده می‌کنند، این امکان وجود دارد تا شناسایی و نظارت بر تبادل اطلاعات را مشکل کرده و یک کانال پنهان پیچیده را پیاده‌سازی کرد.

برای مطالعه قسمت قبل آموزش رایگان  دوره CEH اینجا کلیک کنید.

اجازه دهید قبل از آن‌ها به سراغ ابزارهای ویژه ارتباطات پنهان برویم به روش‌های اساسی اشاره کنیم که اجازه دستکاری پینگ را می‌دهند. دستور پینگ لینوکس سوییچ به‌نام -p دارد که به کاربر اجازه می‌دهد داده‌های اختیاری را مشخص کند. بنابراین، یک کاربر می‌تواند تقریباً هر چیزی را که تمایل دارد را درون این فیلد قرار دهد. به‌طور مثال، رشته اسکی زیر را در نظر بگیرید.

[root @ localhost root] # ping -p 2b2b2b415448300 192.168.123.101

در شکل زیر مشاهده می‌کنید که بسته واقعی زمانی که توسط یک برنامه شنود دریافت می‌شود به چه صورتی است.

به بخش اسکی بخش پایین سمت راست شکل دقت کنید. برخی از شما ممکن است این دستور که متعلق به روزهای قدیمی بود که از مودم‌ها استفاده می‌کردیم را به خاطر آورید. +++ATH0 مقدار تعبیه شده در بسته پینگ است. معادل اسکی این دستور 2b2b2b415448300 است. درست است که رشته فوق در گذشته و  زمانی که از مودم‌های قدیمی استفاده می‌کردیم برای حملات استفاده می‌شد، اما نشان می‌دهد که چگونه یک پروتکل توسط دستوراتی همچون پینگ مورد سوء استفاده قرار می‌گیرد. برای افرادی که از مودم استفاده می‌کنند، این رشته می‌تواند برای حمله انکار سرویس استفاده شده و قربانی را وادار کند با رشته +++ATH0 پاسخ دهد. حتی اگر رشته hangup در دیتاگرام آی‌پی باشد، مودم آن‌را مشاهده کرده و اتصال را قطع می‌کند. در این مثال سعی کردیم به شما نشان دهیم که چگونه ICMP می‌تواند برای انتقال سایر انواع داده‌ای استفاده شود. از جمله ابزارهایی که برای تونل‌زنی ICMP استفاده می‌شود به موارد زیر می‌توان اشاره کرد:

■ ICMP backdoor: یک برنامه درب پشتی ICMP است که این مزیت را دارد که فقط از بسته‌های پاسخ پینگ استفاده می‌کند. از آن‌جایی که ابزار فوق پیام‌های بزرگ را نمی‌شکند یا پیام کوتاه استفاده نمی‌کند توسط برخی از سامانه‌های تشخیص نفوذ ردگیری می‌شود. در نتیجه سامانه‌های تشخیص نفوذ قادر هستند ترافیک بسته‌های ICMP که واقعی نیستند را تشخیص دهند. Loki ابزار مشابه دیگری است که یک چنین عملکردی دارد.

■ 007Shell: نمونه‌ای از یک برنامه برقراری ارتباط پنهان ICMP است که برای جمع‌آوری بسته‌ها استفاده می‌شود.

■ ICMPSend: یک برنامه برقراری ارتباط پنهان مبتنی بر ICMP است که از بسته‌های پینگ برای استخراج داده‌های نهان استفاده می‌کند.

تونل‌زنی از طریق لایه انتقال

لایه انتقال به هکرها اجازه می‌دهد از دو پروتکل TCP و UDP استفاده کنند. TCP فیلد‌های مختلفی را ارائه می‌دهد که می‌تواند توسط یک هکر استفاده ود. فیلد TCP Options در سرآیند TCP و فیلد TCP Flag از جمله این موارد است. با یک چنین طراحی، TCP یک پروتکل اتصال‌گرا است که ارتباطات محکمی را برقرار می‌کند. مراحل زیر شامل فرآیندهای زیر است:

1. دست‌دهی سه مرحله‌ای: تضمین می‌کند که هر دو سیستم آماده برقراری ارتباط هستند.

2. تبادل اطلاعات کنترلی: در هنگام تنظیم و پیکربندی، اطلاعات در حداکثر اندازه سگمنت تعیین شده مبادله می‌شوند.

3. شماره‌های دنباله‌دار: مقدار و موقعیت داده‌ها ارسال شده را نشان می‌دهد.

4. Acknowledgements: این فیلد بایت بعدی که قرار است دریافت شود را مشخص می‌کند.

5- قطع ارتباط چهار مرحله‌ای: یک فرایند رسمی برای پایان یک جلسه است که اجازه خاموش کردن عادی را فراهم می‌کند. اگرچه بسته‌های SYN فقط در ابتدای یک نشست ارسال می‌شوند، اما ACKها می‌توانند هزاران مرتبه مبادله شوند. آن‌ها تأیید می‌کنند که داده‌ها دریافت شده‌اند. شکل زیر این موضوع را نشان می‌دهد.

به همین دلیل دستگاه‌های فیلتر کننده بسته‌ها قواعد خاص خود را در ارتباط با سگمنت‌های SYN به‌کار می‌گیرند. این خط‌مشی‌ها از جانب مدیر شبکه که وظیفه پیکربندی دیوارآتش را بر عهده دارد انجام می‌شود که ACK تنها به عنوان بخشی از یک نشست انتشار یافته ارسال شود. پیکربندی این‌کار ساده است و مانع از به وجود آمدن باراضافی می‌شود. برای دور زدن قواعد مسدود کردن SYN، یک هکر ممکن است سعی کند از بسته‌های TCP ACK به عنوان کانال ارتباطی مخفی استفاده کند. ابزارهایی مانند AckCmd برای این منظور طراحی شده‌اند. UDP بدون حالت است و به همین ترتیب ممکن است در اتصالات دیوارآتش وارد نشود. برخی از برنامه‌های مبتنی بر UDP مانند DNS معمولاً توسط دیوارآتش مجاز شناخته می‌شوند و ممکن است توسط سرپرست شبکه و دیوارآتش به‌طور دقیق رهگیری نشوند. برنامه‌های تونل‌زنی UDP معمولاً در قالب کلاینت/سرور عمل می‌کنند. همچنین برخی از درگاه‌های UDP شبیه به 53  در بیشتر موارد باز هستند. این بدان معنا است که برای مهاجمین می‌توانند به عنوان ابزاری بالقوه برای استخراج داده‌ها از آن استفاده کنند. از مهم‌ترین ابزارهای تونل‌زنی UDP که باید در مورد آن‌ها و عملکرد آن‌ها اطلاع داشته باشید به موارد زیر می‌توان اشاره کرد:

■ UDP Tunnel: ابزار فوق همچنین برای تونل‌زنی ترافیک TCP از طریق اتصال UDP استفاده می‌شود. ابزار فوق در آدرس زیر قرار دارد. https://code.google.com/p/udptunnel/

■ dnscat: گزینه دیگری برای تونل‌زنی داده‌ها از طریق اتصال DNS باز است. نسخه فعلی dnscat2 را می‌توانید از آدرس زیر دریافت کنید.

 https://github.com/iagox86/

تونل‌زنی از طریق لایه کاربرد

تونل‌سازی بر مبنای لایه کاربرد یکی از روش‌های رایج به کار گرفته شده توسط هکرها است که اجازه می‌دهد داده‌ها از طریق درگاه‌های مجاز مبادله شوند. به عنوان نمونه، یک هکر ممکن است یک نشست وب روی پورت 80 از طریق پورت 22 پروتکل SSH یا حتا پورت 443 ایجاد کند. از آن‌جایی که درگاه‌های 22 و 443 هر دو از رمزگذاری استفاده می‌کنند، این امکان وجود دارد تا شناسایی و نظارت بر تبادل اطلاعات را مشکل کرده و یک کانال پنهان پیچیده را پیاده‌سازی کرد.

البته هکرها ممکن است از HTTP نیز استفاده کنند. Netcat ابزاری است که می‌تواند برای راه‌اندازی یک تونل برای استخراج و انتقال داده‌ها بر مبنای پروتکل HTTP استفاده شود. اگر HTTPS پروتکل تبادل اطلاعات باشد، برای مدیر شبکه به سختی این امکان فراهم می‌شود که روی داده‌های خروجی نظارت کند. Cryptcat  به نشانی http://cryptcat.sourceforge. Net  می‌تواند برای ارسال داده‌ها از طریق HTTPS استفاده شود در نهایت سامانه نام دامنه DNS می‌تواند در جهت تونل‌زنی روی لایه کاربرد استفاده شود. DNS یک پروتکل درخواست/پاسخ است. پرس‌و‌جوهای آن شامل یک سرآیند با اندازه 12 بایت ثابت است که همراه با آن یک یا چند سوال/درخواست همراه می‌شود. یک پاسخ DNS به روش تقریبا یکسانی با سرآیند قالب‌بندی می‌شود که همراه با آن درخواست اصلی آماده و در ادامه به‌طور معمول یک رکورد منبع به عنوان جواب بازگردانده می‌شود. ساده‌ترین راه برای دستکاری DNS به‌کارگیری همین درخواست / پاسخ است.

ابزارهای ارتباطی مخفی متعددی در اختیار هکرها قرار دارد. مهم نیست هکر از چه ابزاری استفاده می‌کند، اصل مهم این است که هکر شناسایی نشود. در ادامه با چند نمونه مهم از این ابزارها آشنا می‌شویم.

■ Loki: در سال 1996 توسط مجله زیرزمینی Phrak منتشر شد. Loki یک ابزار اثبات مفهومی بود که نشان می‌داد ترافیک ICMP غیر قابل اطمینان بوده و خطرناک است. ابزار فوق به اندازه‌ای قدرتمد بود که هکرها لقب Norse god را به آن دادند. البته دقت کنید لوکی به عنوان ابزار تخریب‌گر طراحی نشده بود. عملکرد اصلی ابزار فوق در ساخت کانال‌های پنهان و درب‌های پشتی بود. ابزاری که اجازه می‌داد مهاجمان بتوانند روشی برای انتقال پنهان اطلاعات از یک سیستم به سیستم دیگر را پیاده‌سازی کنند.

بسته به دستورات اجرا شده توسط هکر، به‌طور معمول درخواست‌های ICMP فراتر از پاسخ‌ها هستند. به‌طور معمول، برای هر درخواست پینگ باید یک پاسخ پینگ وجود داشته باشد. هر فردی که متوجه تعداد زیاد بسته‌های ICMP شود، قادر است یک مورد غیر طبیعی همچون شنود را تشخیص دهد. هرچند سامانه‌های تشخیص نفوذ به ردیابی تعداد توالی ICMP که همواره به صورت ایستا هستند این موضوع را تشخیص می‌دهند. مسدود کردن دسترسی به پروتکل ICMP در دیوارآتش سیستم می‌شود ابزار Loki نتواند از ICMP استفاده کند.

■ ICMP backdoor: برخلاف Loki، برنامه درب پشتی ICMP یک مزیت بزرگ دارد که تنها از بسته‌های پاسخ پینگ استفاده می‌کند. از آن‌جایی ابزار فوق قابلیتی برای کوتاه کردن پیام‌ها یا شکستن پیام‌ها به قطعات کوچک‌تر ندارد، برخی از سامانه‌های تشخیص نفوذ می‌توانند به راحتی ترافیک غیر واقعی تولید شده توسط این ابزار را تشخیص دهند.

■ 007Shell: یکی دیگر از برنامه‌هایی است که برای پیاده‌سازی ارتباطات پنهانی بر مبنای پروتکل ICMP استفاده می‌شود. لبته برای این‌که فرآیند برقراری ارتباط به شکل درستی انجام شود بر مبنای یک مرحله اضافی سعی می‌کند ارسال و دریافت بسته‌ها را در قالب یک بسته پینگ عادی نشان دهد.

■ ICMPSend : این برنامه برقراری کانال پنهان نیز از پروتکل ICMP برای این منظور استفاده کرده تا بسته‌های پینگ را برای استخراج پنهانی اطلاعات استفاده کند.

■ Reverse WWW Tunneling Shell : این برنامه کانال مخفی یک برنامه اثبات مفهومی نوشته شده به زبان Perl است که جزییات مربوط به آن در مقاله Placing Backdoors Through Firewalls درج شده است. برنامه فوق از یک رویکرد ترکیبی استفاده کرده و ترافیک را با یک شل و در ادامه پروکسی‌سرورها پنهان می‌کند. این برنامه هر روز روی کامپیوتر قربانی اجرا می‌شود. سرور داخلی سعی می‌کند به کلاینت خارجی متصل شده و دستورات را دریافت کند. این برنامه از پروتکل HTTP استفاده می‌کند و عملکردی شبیه به یک دستگاه داخلی معمولی دارد که از یک سرور وب درخواست محتوا می‌کند.

■: AckCmd یک برنامه کانال مخفی است که یک شل برای سیستم‌های ویندوزی آماده می‌کند. با استفاده از تنها بخش های TCP ACK ارتباط برقرار می کند.این برنامه تنها از سگمنت‌های TCP ACK برای برقراری ارتباط استفاده می‌کند. به این ترتیب، مؤلفه کلاینت می‌تواند به شکل مستقیم با مولفه سرور و از طریق روترها و فهرست‌های کنترل دسترسی ارتباط برقرار کند.

تغییر پورت

در پاراگرف قبلی ابزارها و تکنیک‌های استخراج داده‌ها مورد بحث قرار گرفتند. تکنیک مفید دیگری که هکرها از آن استفاده می‌کنند تغییر مسیر پورت است. تغییر مسیر پورت به این صورت است که ابزارها یا هکرها به پورت خاصی گوش می‌دهند و در ادامه فرآیند ارسال بسته‌ها به هدف ثانویه را آغاز می‌کنند. از ابزارهای رایجی که برای تغییر مسیر درگاه استفاده می‌شوند باید به مواردی همچونNetcat ، Datapipe و FPipe اشاره کرد. نکته جالب توجهی که در ارتباط با سه ابزار فوق وجود دارد این است که هر سه از پروتکل‌های رایج استفاده می‌کنند. برای ابزارهای فوق مهم نیست که شما در حال انتقال چه چیزی هستید، تغییر مسیر پورت به سادگی نقش لوله‌ای را بازی می‌کند که داده‌ها را از نقطه A به نقطه B انتقال می‌دهد. Netcat یک ابزار خط فرمان است که برای یونیکس و ویندوز نوشته شده است. Netcat می‌تواند اتصالات TCP و UDP را ایجاد و استفاده کند. ابزارهای فوق برای تغییر مسیر پورت و کارهای مختلف دیگری استفاده می‌شوند. این ابزارها مادامی که یک ارتباط باز باشد فرآیند خواندن و نوشتن اطلاعات را دنبال می‌کنند. از سوئیچ‌های رایج به کار گرفته شده توسط ابزار Netcat به موارد زیر می‌توان اشاره کرد.

nc -d برای جدا کردن Netcat از کنسول استفاده می‌شود.

nc -l -p [port] برای ایجاد یک درگاه TCP با هدف گوش دادن ساده استفاده می‌شود. اضافه کردن -u آن‌را در وضعیت UDP قرار می‌دهد.

nc -e [program]  برای تغییر مسیر stdin / stdout از یک برنامه به Netcat استفاده می‌شود.

nc-w [timeout] قبل از اینکه Netcat به‌طور خودکار بسته شود، یک زمان‌بندی برای این منظور تعیین می‌کند.

Program | nc  به عنوان یک مسیر خروجی از برنامه به Netcat استفاده می‌شود.

Nc | program به عنوان یک مسیر خروجی از Netcat به برنامه استفاده می‌شود.

nc -h برای نمایش گزینه‌های راهنما استفاده می‌شود.

nc -v برای قرار دادن Netcat در حالت verbose استفاده می‌شود.

nc-g یا nc -G برای مشخص کردن پرچم‌های مسیریابی منبع استفاده می‌شود. -g مسیریابی منبع گیت‌وی است، در حالی‌که -G مسیریابی منبع عددی است.

nc -o{file} برای ارسال ترافیک hex dump به یک فایل استفاده می‌شود.

nc -z برای پویش پورت استفاده می‌شود.

در شماره آینده مبحث فوق را ادامه می‌دهیم.

برای مطالعه رایگان تمام بخش‌های دوره CEH  روی لینک زیر کلیک کنید:

آموزش رایگان دوره CEH


ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     ثبت اشتراک نسخه آنلاین

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

برچسب: 

مطالب پربازدید

توسعه و پشتیبانی توسط : ایران دروپال
پشتیبانی توسط ایران دروپال