
در این بخش از دوره آموزشی SEC504 به ادامه معرفی ابزار NC یا NetCat می پردازیم و به نحوه ایجاد دسترسی پایدار و شل معکوس با این ابزار اشاره می کنیم.
دسترسی پایدار با NC
متاسفانه برای نفوذگران، قابلیت Listen Harder تنها در نسخه ویندوزی Netcat ایجاد شده است و در اکثر نسخههای لینوکس گنجانده نشده است. لازم به ذکر است که این ویژگی موجب پایداری دسترسی حتی در هنگام قطع ارتباط میشود.
البته برخی از افراد سعی در تغییر ابزار NC یا NetCat به منظور پشتیبانی از این ویژگی داشته اند که موضوع بحث ما نمی باشد.
با توجه به اینکه در لینوکس قابلیت پایدار سازی Netcat با استفاده از سوییچ -L امکان پذیر نمی باشد، نفوذگر میتواند با ایجاد یک حلقه بوسیله دستور زیر، این مشکل را مرتفع نماید:

هنگام اجرا شدن این دستور، عبارت Started در صفحه چاپ میشود و پورت معرفی شده Listen میگردد و سپس هنگامی که یک ارتباط به این پورت ایجاد شود، shell بازگشت داده میشود. در این حالت هنگامی که از shell خارج شویم، مجدد عبارت Started چاپ شده و پورت دوباره Listen میشود.
به این ترتیب نفوذگر یک ارتباط دائمی و پایدار را در سیستم لینوکس ایجاد نموده است. البته هنوز یک مشکل کوچک وجود دارد. اگر نفوذگر از سیستم خارج شود، Netcat Listener نیز از بین میرود، زیرا کاربری که آن را فراخوانی نموده، ناپدید شده است.
برای از بین بردن این مشکل و ایجاد یک Listener کاملا پایدار، نفوذگر میتواند این دستورات را در داخل فایلی با نام Listener.sh ذخیره نماید. در ادامه نفوذگر میتواند مجوز این فایل را به قابل خواندن و اجرا تغییر دهد، به طوری که بتواند به عنوان یک اسکریپت اجرا شود. با استفاده از دستور زیر مجوزهای لازم به فایل اختصاص داده میشود:
$ chmod 555 listener.sh
سپس با استفاده از فرمان nohup نفوذگر میتواند این حلقه را در پس زمینه اجرا نماید:
$ nohup ./listener.sh &
این دستور موجب میشود تا یک پروسس در پس زمینه اجرا شده و حتی اگر کاربری که آن را فراخوانی نموده از سیستم خارج شود، باز هم این برنامه پایدار بماند.
Reverse Shell
علاوه بر موارد ذکر شده، شما میتوانید از ابزار NC یا NetCat برای انتقال یک جلسه از سمت کلاینت به سرور استفاده نمایید. این تکنیک با نام Reverse Shell شل معکوس یا Shoveling Shell هم نامیده میشود.

در این حالت شما Netcat را در سرور اجرا نموده و منتظر کلاینت میمانید. کلاینت با یک جلسه خروجی به یک پورت از پیش تعریف شده مانند 23، 25، 80 و موارد مشابه، متصل میگردد.
آشنایی با دستورات اولیه ابزار NC یا Netcat
فایروال این ارتباط را با یک اتصال SMTP، Telnet و یا HTTP خروجی اشتباه میگیرد. البته هیچ قالب بندی خاصی نه در سطح پروتکل و نه در سطح اپلیکیشن بر روی داده اعمال نمی شود و تنها دادههای خام با استفاده از Netcat در پورت مورد نظر ارسال میگردد.
در این حالت ابزارهای Packet Filter به راحتی Bypass میشوند. البته فایروالهای پراکسی خوب، این واقعیت را که پروتکل لایه کاربرد مورد استفاده قرار نگرفته است را شناسایی میکند و از بین رفتن یا Drop نمودن ترافیک را درخواست مینمایند.
Netcat بدون سوییچ e
تا به این جا ما در مورد رلههای Netcat صحبت کردیم. نکته ای که حائز اهمیت است عدم پشتیبانی اکثر نسخههای Netcat از سوییچ -e برای ایجاد Backdoor میباشد. در واقع این گزینه در کد منبع Netcat به عنوان “Gaping Security Hole” نامیده میشود، چراکه از آن میتوان برای ایجاد یک Backdoor استفاده نمود.
البته اگر نفوذگر یک نسخه از Netcat که از سوییچ -e پشتیبانی نمیکند را در اختیار داشته باشد، باز هم میتواند از آن برای رله نمودن ترافیک و ایجاد Backdoor استفاده نماید. به دستورات زیر توجه نمایید:

در دستور بالا ابتدا ما یک FIFO با استفاده از دستور mknod ایجاد نمودیم. سپس برای ایجاد Backdoor ما از هدایت رله استفاده میکنیم. توجه داشته باشید که این یک سناریوی Pivot نیست و تنها برای ایجاد یک Backdoor موثر استفاده میشود.
در این دستور ابتدا /bin/bash اجرا میشود و ورودی آن را از backpipe میگیرد (0<backpipe)
خروجی bash به Netcat Listener هدایت میشود (nc -l -p 8080)
سپس خروجی از آن Netcat Listener به backpipe وارد میشود.
در این روش ما یک Backdoor Listener با استفاده از Netcat ایجاد کردیم که از سوییچ -e پشتیبانی نکرده است.
روشهای مقابله با Netcat
برخی از موارد دفاعی در بخشهای دیگر اشاره شده است و ابزار Netcat تنها تمام قابلیتها را در یک ابزار به ارمغان میآورد. دفاع در برابر Netcat بستگی به حالتی دارد که در آن فعالیت میکند. موارد استفاده و راههای مقابله در این ابزار به صورت خلاصه به شرح زیر است:
انتقال داده: بدانید که چه چیزی بر روی سیستم شما اجرا شده است و فرآیندهای آن را که در پورتهای غیرمعمول هستند، متوقف نمایید.
اسکن پورت: تمام پورتهای غیرقابل استفاده را مسدود نمایید.
اسکن آسیبپذیری: وصلها را نصب نموده و سیستم را بروزرسانی نمایید.
اتصال به پورتهای باز: تمام پورتهای غیرقابل استفاده را مسدود نمایید.
Backdoor: بدانید که چه چیزی بر روی سیستم شما اجرا شده است و فرآیندهای آن را که در پورتهای غیرمعمول هستند، متوقف نمایید.
همچنین شبکه خود را با دقت با امنیت لایهای پیکربندی نمایید. استفاده از چندین فایروال در شبکه و اعمال فیلترهای مختلف بر روی آن و همچنین استفاده Private VLAN هم میتواند به تخصیص ترافیک به سیستمهای مجزا کمک نموده و موجب میشود که نفوذگران تنها در یک بخش محدود شوند و امکان ارتباط به بخشهای دیگر وجود نداشته باشد.
برای دانلود ابزار NC یا NetCat می توانید از لینک زیر استفاده نمایید: