loading...

لذت برنامه نویسی

بازدید : 6
پنجشنبه 14 دی 1402 زمان : 0:15

پس از گرفتن دسترسی غیرمجاز از سمت یک کامپيوتر نیاز است که داده های مربوط به سیستم را از آن استخراج کنیم که این امر را به عنوان Data exfiltration میشناسیم. به واسطه فرآيند Data exfiltration ما توانایی استخراج داده های موجود در یک سیستم را داریم که این امر می‌تواند استخراج داده ها از سمت یک سیستم با دسترسی فیزیکی ما باشد و حتی میتواند یک سیستم و یا یک شبکه بزرگ آلوده شده به بد افزار باشد.

پس از گرفتن دسترسی غیرمجاز از سمت یک کامپيوتر نیاز است که داده های مربوط به سیستم را از آن استخراج کنیم که این امر را به عنوان Data exfiltration میشناسیم. به واسطه فرآيند Data exfiltration ما توانایی استخراج داده های موجود در یک سیستم را داریم که این امر می‌تواند استخراج داده ها از سمت یک سیستم با دسترسی فیزیکی ما باشد و حتی میتواند یک سیستم و یا یک شبکه بزرگ آلوده شده به بد افزار باشد.

سرفصل های این مطلب
  1. مفهوم DNS Exfiltration چیست؟
  2. پیاده سازی حمله DNS Exfiltration به صورت اتوماتیک
  3. پیاده سازی حمله DNS Exfiltration به روش دستی
    1. آماده سازی سیستم جهت حمله DNS Exfiltration
    2. ساخت یک DNS Exfiltration Listener

طبق گزارش های که سالیانه ارائه میشود پروتکل DNS و Port 53 پرچم‌دار در حملات Data Exfiltration میباشند و به واسطه این پروتکل این حمله و این فرآيند استخراج داده ها از سازمان بسیار مورد توجه هکرها و بدافزارها قرار میگیرد زیرا که تجهیزات مدرن مانند NGFW ها ( فایروال های نسل بعدی )، IDS/IPS ها ( سیستم های تشخیص و جلوگیری از نفوذ ) تمرکز عمیقی بر روی این پروتکل ندارند و این پروتکل دراغلب موارد به صورت پیش فرض مجاز میباشد و ارتباطش کاملا باز است اما از این جهت تیم های امنیتی امروزی باید نگاه خود را بیشتر بر روی این پروتکل و اطلاعات آن قرار دهند. ما در این مقاله قصد داریم که بررسی کنیم مفهوم DNS Exfiltration چیست و چگونه پیاده سازی میشود.

مفهوم DNS Exfiltration چیست؟

تا به جای اینجا ما متوجه شدیم که فرآيند Data Exfiltration چیست اما این فرآيند بیشتر یک Tactic میباشد و DNS Exfiltration یک Technique جهت پیاده سازی کردن حمله و فرآيند Data Exfiltration جهت استخراج کردن داده ها از سمت سازمان یا کامپیوتر آسیب دیده

پیاده سازی این فرآيند بسیار ساده اما در عین حال خطرناک میباشد برای مثال یک بار واسطه حمله Dependency Confusion شرکت های بزرگ از حمله Apple و Microsoft و Adobe تحت تاثیر حملات سایبری قرار گرفته بودند و فرد هکر جهت اینکه بتواند اطلاعات و داده های حساس را استخراج کند از حمله DNS Exfiltration استفاده کرده بوده است.

پیاده سازی حمله DNS Exfiltration به صورت اتوماتیک

یکی از ابزارهای پرکاربرد در بحث DNS Exfiltration ابزار DNSteal میباشد که به نوعی میشود گفت یکی از ساده ترین روش ها جهت پیاده سازی DNS Exfiltration است که تمامی مراحل اتوماتیک انجام میشود.
برای استفاده از این ابزار ابتدا آن را از Github این ابزار دانلود میکنیم

git clone https://github.com/m57/dnsteal

پس از دانلود این ابزار آن را اجرا سازی میکنیم

به منظور کارکردن با این ابزار باید از دستور زیر جهت ساخت قرار دادن آدرس خودمان درحالت Listen استفاده کنیم و همچنین از سوییچ -z به منظور اینکه فایل ها از حالت Zip خارج شوند زیرا که به صورت پیش فرض در حالت Zip میباشند.

در بالا میبینیم که دستوراتی برای ما تولید شده است و ما به شکل زیر میتوانیم این دستورات را در سیستم هدف اجرا سازی کنیم و فایل را بر روی سیستم خودمان دریافت کنیم. برای مثال فایلی که قرار است دریافت کنیم TOSINSO.txt میباشد و حاوی رمز عبور 12345 است.

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

و حالا بر روی سیستم امنیتی خودمان بررسی میکنیم که آیا فایل TOSINSO.txt دریافت شده است یا خیر درصورت دریافت شدن از کنترل C به منظور ذخیره شدن آن استفاده میکنم و فایل را بازمیکنیم مانند تصویر زیر و مقدار 12345 را به راحتی دریافت میکنیم

پیاده سازی حمله DNS Exfiltration به روش دستی

در این روش تمامی فرآيندها و مراحل به صورت کاملا دستی انجام میشود و شما در اینجا نیاز به دو چیز دارید:

  • یک نام دامنه ( میتوانید از دامنه های رایگان استفاده کنید )
  • یک آدرس IP Static ( میتوانید از یک VPS استفاده کنید و از آدرس IP Public آن استفاده کنید )

در ابتدا ما به سراغ ایجاد و ثبت یک نام دامنه رایگان در وب سایت Freenom.com میرویم و مراحل را به شکل زیر دنبال میکنیم:

  • مرحله دوم

  • مرحله سوم

  • مرحله چهارم


  • مرحله پنجم (نهایی)

در تصویر بالا ( تصویر آخر ) میبینید که اینجا ما یک نام دامنه با عنوان exfi.tk را ایجاد کردیم و به صورت فعال میباشد. حالا باید برویم سراغ متصل کردن آدرس IP یا به نوعی Route کردن تمامی درخواست های DNS مربوط به این دامنه به سمت آدرس IP خودمان که اینکار را به واسطه CloudFlare انجام میدهیم و با ساخت یک اکانت رایگان در CloudFlare میتوانیم این موضوع را طی کنیم. دلیل استفاده ما از CloudFlare این میباشد که بقیه سرویس دهنده های رایگان DNS اغلب امکان استفاده و ایجاد NS Record در آنها وجود ندارد.

به همین دلیل ما به سراغ CloudFlare میرویم که با یک حساب رایگان میتوانیم فرآيندمان را به راحتی انجام دهیم و دامنه خودمان را پس ساخت اکانت CloudFlare مانند تصویر زیر ثبت کنیم

  • نکته: CloudFlare پس از دریافت نام دامنه به منظور بررسی کردن دامنه و اطمینان از این موضوع که دامنه کاملا به ثبت رسیده است از چند دقیقه تا 24 ساعت زمان لازم دارد پس باید صبور باشید تا CloudFlare این دامنه را تایید کند.

حال قسمت رایگان CloudFlare را انتخاب میکنیم و روی گزینه Continue کلیک میکنیم

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

پس از این فرآيند وارد قسمت Management Tools میشویم

در بخش NameServer و NameServer های CloudFlare را از صفحه باز شده کپی و در قسمت NameServer پیست میکنیم و بر روی گزینه Change NameServer میزنیم

تکمیل شدن این فرآيند چند دقیقه تا 24 ساعت زمان میبرد.

حالا برای تایید این موضوع که NameServer ها تغییر کرده اند میتوانیم از ابزار dig استفاده کنیم و اگر خروجی به شکل زیر بود متوجه میشویم که ماجرا به انجام رسیده است

$ dig @8.8.8.8 +short NS exfi.tk

dawn.ns.cloudflare.com.

jack.ns.cloudflare.com.
  • نکته: درصورتی که اروری مبندی وجود نداشتن دستور dig‌ گرفتید ( Dig: Command Not Found ) از دستور apt install dig جهت نصب آن استفاده کنید ( برای سیستم های Debian Based )

آماده سازی سیستم جهت حمله DNS Exfiltration

برای این موضوع ابتدا بررسی میکنیم که Port 53 متعلق به DNS Server آزاد میباشد یا خیر که اینکار را به واسطه دستور lsof به شکل زیر انجام میدهیم

$ sudo sof -i :53

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

systemd-r 722 systemd-resolve 12u IPv4 15755 0t0 UDP localhost:domain

systemd-r 722 systemd-resolve 13u IPv4 15756 0t0 TCP localhost:domain (LISTEN)

بعد از این ماجرا وارد مسیر زیر میشویم و به دنبال بخش Resolve میگردیم

$ sudo nano /etc/systemd/resolved.conf

پس از پیدا کردن بخش Resolve مقدار DNSStubListener برابر با no میگذاریم (مانند تصویر و زیر)

DNSStubListener=no

بعد از این ماجرا وارد Resolve.conf میشویم و NameServer متعلق به CloudFlare را اضافه میکنیم (8.8.8.8).

$ sudo nano /etc/resolv.conf
nameserver 8.8.8.8

ساخت یک DNS Exfiltration Listener

حالا فقط کافیست یک DNS Exfiltration Listener ساده به زبان پایتون برای پیاده سازی حمله خودمان ایجاد کنیم به شکل زیر:

این کد نویسی را در قالب فایل .py قرار میدهیم و بر روی سیستم اجرا سازی میکنیم و بر روی سیستم مقابل میرویم و داده های که قصد داریم انتقال دهیم را بر روی دامنه ای که ثبت کردیم انتقال میدهیم و در سمت مقابل دریافت میکنیم

پس از گرفتن دسترسی غیرمجاز از سمت یک کامپيوتر نیاز است که داده های مربوط به سیستم را از آن استخراج کنیم که این امر را به عنوان Data exfiltration میشناسیم. به واسطه فرآيند Data exfiltration ما توانایی استخراج داده های موجود در یک سیستم را داریم که این امر می‌تواند استخراج داده ها از سمت یک سیستم با دسترسی فیزیکی ما باشد و حتی میتواند یک سیستم و یا یک شبکه بزرگ آلوده شده به بد افزار باشد.

پس از گرفتن دسترسی غیرمجاز از سمت یک کامپيوتر نیاز است که داده های مربوط به سیستم را از آن استخراج کنیم که این امر را به عنوان Data exfiltration میشناسیم. به واسطه فرآيند Data exfiltration ما توانایی استخراج داده های موجود در یک سیستم را داریم که این امر می‌تواند استخراج داده ها از سمت یک سیستم با دسترسی فیزیکی ما باشد و حتی میتواند یک سیستم و یا یک شبکه بزرگ آلوده شده به بد افزار باشد.

سرفصل های این مطلب
  1. مفهوم DNS Exfiltration چیست؟
  2. پیاده سازی حمله DNS Exfiltration به صورت اتوماتیک
  3. پیاده سازی حمله DNS Exfiltration به روش دستی
    1. آماده سازی سیستم جهت حمله DNS Exfiltration
    2. ساخت یک DNS Exfiltration Listener

طبق گزارش های که سالیانه ارائه میشود پروتکل DNS و Port 53 پرچم‌دار در حملات Data Exfiltration میباشند و به واسطه این پروتکل این حمله و این فرآيند استخراج داده ها از سازمان بسیار مورد توجه هکرها و بدافزارها قرار میگیرد زیرا که تجهیزات مدرن مانند NGFW ها ( فایروال های نسل بعدی )، IDS/IPS ها ( سیستم های تشخیص و جلوگیری از نفوذ ) تمرکز عمیقی بر روی این پروتکل ندارند و این پروتکل دراغلب موارد به صورت پیش فرض مجاز میباشد و ارتباطش کاملا باز است اما از این جهت تیم های امنیتی امروزی باید نگاه خود را بیشتر بر روی این پروتکل و اطلاعات آن قرار دهند. ما در این مقاله قصد داریم که بررسی کنیم مفهوم DNS Exfiltration چیست و چگونه پیاده سازی میشود.

مفهوم DNS Exfiltration چیست؟

تا به جای اینجا ما متوجه شدیم که فرآيند Data Exfiltration چیست اما این فرآيند بیشتر یک Tactic میباشد و DNS Exfiltration یک Technique جهت پیاده سازی کردن حمله و فرآيند Data Exfiltration جهت استخراج کردن داده ها از سمت سازمان یا کامپیوتر آسیب دیده

پیاده سازی این فرآيند بسیار ساده اما در عین حال خطرناک میباشد برای مثال یک بار واسطه حمله Dependency Confusion شرکت های بزرگ از حمله Apple و Microsoft و Adobe تحت تاثیر حملات سایبری قرار گرفته بودند و فرد هکر جهت اینکه بتواند اطلاعات و داده های حساس را استخراج کند از حمله DNS Exfiltration استفاده کرده بوده است.

پیاده سازی حمله DNS Exfiltration به صورت اتوماتیک

یکی از ابزارهای پرکاربرد در بحث DNS Exfiltration ابزار DNSteal میباشد که به نوعی میشود گفت یکی از ساده ترین روش ها جهت پیاده سازی DNS Exfiltration است که تمامی مراحل اتوماتیک انجام میشود.
برای استفاده از این ابزار ابتدا آن را از Github این ابزار دانلود میکنیم

git clone https://github.com/m57/dnsteal

پس از دانلود این ابزار آن را اجرا سازی میکنیم

به منظور کارکردن با این ابزار باید از دستور زیر جهت ساخت قرار دادن آدرس خودمان درحالت Listen استفاده کنیم و همچنین از سوییچ -z به منظور اینکه فایل ها از حالت Zip خارج شوند زیرا که به صورت پیش فرض در حالت Zip میباشند.

در بالا میبینیم که دستوراتی برای ما تولید شده است و ما به شکل زیر میتوانیم این دستورات را در سیستم هدف اجرا سازی کنیم و فایل را بر روی سیستم خودمان دریافت کنیم. برای مثال فایلی که قرار است دریافت کنیم TOSINSO.txt میباشد و حاوی رمز عبور 12345 است.

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

و حالا بر روی سیستم امنیتی خودمان بررسی میکنیم که آیا فایل TOSINSO.txt دریافت شده است یا خیر درصورت دریافت شدن از کنترل C به منظور ذخیره شدن آن استفاده میکنم و فایل را بازمیکنیم مانند تصویر زیر و مقدار 12345 را به راحتی دریافت میکنیم

پیاده سازی حمله DNS Exfiltration به روش دستی

در این روش تمامی فرآيندها و مراحل به صورت کاملا دستی انجام میشود و شما در اینجا نیاز به دو چیز دارید:

  • یک نام دامنه ( میتوانید از دامنه های رایگان استفاده کنید )
  • یک آدرس IP Static ( میتوانید از یک VPS استفاده کنید و از آدرس IP Public آن استفاده کنید )

در ابتدا ما به سراغ ایجاد و ثبت یک نام دامنه رایگان در وب سایت Freenom.com میرویم و مراحل را به شکل زیر دنبال میکنیم:

  • مرحله دوم

  • مرحله سوم

  • مرحله چهارم


  • مرحله پنجم (نهایی)

در تصویر بالا ( تصویر آخر ) میبینید که اینجا ما یک نام دامنه با عنوان exfi.tk را ایجاد کردیم و به صورت فعال میباشد. حالا باید برویم سراغ متصل کردن آدرس IP یا به نوعی Route کردن تمامی درخواست های DNS مربوط به این دامنه به سمت آدرس IP خودمان که اینکار را به واسطه CloudFlare انجام میدهیم و با ساخت یک اکانت رایگان در CloudFlare میتوانیم این موضوع را طی کنیم. دلیل استفاده ما از CloudFlare این میباشد که بقیه سرویس دهنده های رایگان DNS اغلب امکان استفاده و ایجاد NS Record در آنها وجود ندارد.

به همین دلیل ما به سراغ CloudFlare میرویم که با یک حساب رایگان میتوانیم فرآيندمان را به راحتی انجام دهیم و دامنه خودمان را پس ساخت اکانت CloudFlare مانند تصویر زیر ثبت کنیم

  • نکته: CloudFlare پس از دریافت نام دامنه به منظور بررسی کردن دامنه و اطمینان از این موضوع که دامنه کاملا به ثبت رسیده است از چند دقیقه تا 24 ساعت زمان لازم دارد پس باید صبور باشید تا CloudFlare این دامنه را تایید کند.

حال قسمت رایگان CloudFlare را انتخاب میکنیم و روی گزینه Continue کلیک میکنیم

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

پس از این فرآيند وارد قسمت Management Tools میشویم

در بخش NameServer و NameServer های CloudFlare را از صفحه باز شده کپی و در قسمت NameServer پیست میکنیم و بر روی گزینه Change NameServer میزنیم

تکمیل شدن این فرآيند چند دقیقه تا 24 ساعت زمان میبرد.

حالا برای تایید این موضوع که NameServer ها تغییر کرده اند میتوانیم از ابزار dig استفاده کنیم و اگر خروجی به شکل زیر بود متوجه میشویم که ماجرا به انجام رسیده است

$ dig @8.8.8.8 +short NS exfi.tk

dawn.ns.cloudflare.com.

jack.ns.cloudflare.com.
  • نکته: درصورتی که اروری مبندی وجود نداشتن دستور dig‌ گرفتید ( Dig: Command Not Found ) از دستور apt install dig جهت نصب آن استفاده کنید ( برای سیستم های Debian Based )

آماده سازی سیستم جهت حمله DNS Exfiltration

برای این موضوع ابتدا بررسی میکنیم که Port 53 متعلق به DNS Server آزاد میباشد یا خیر که اینکار را به واسطه دستور lsof به شکل زیر انجام میدهیم

$ sudo sof -i :53

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

systemd-r 722 systemd-resolve 12u IPv4 15755 0t0 UDP localhost:domain

systemd-r 722 systemd-resolve 13u IPv4 15756 0t0 TCP localhost:domain (LISTEN)

بعد از این ماجرا وارد مسیر زیر میشویم و به دنبال بخش Resolve میگردیم

$ sudo nano /etc/systemd/resolved.conf

پس از پیدا کردن بخش Resolve مقدار DNSStubListener برابر با no میگذاریم (مانند تصویر و زیر)

DNSStubListener=no

بعد از این ماجرا وارد Resolve.conf میشویم و NameServer متعلق به CloudFlare را اضافه میکنیم (8.8.8.8).

$ sudo nano /etc/resolv.conf
nameserver 8.8.8.8

ساخت یک DNS Exfiltration Listener

حالا فقط کافیست یک DNS Exfiltration Listener ساده به زبان پایتون برای پیاده سازی حمله خودمان ایجاد کنیم به شکل زیر:

این کد نویسی را در قالب فایل .py قرار میدهیم و بر روی سیستم اجرا سازی میکنیم و بر روی سیستم مقابل میرویم و داده های که قصد داریم انتقال دهیم را بر روی دامنه ای که ثبت کردیم انتقال میدهیم و در سمت مقابل دریافت میکنیم

نظرات این مطلب

تعداد صفحات : 12

درباره ما
موضوعات
لینک دوستان
آمار سایت
  • کل مطالب : 129
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • بازدید امروز : 169
  • بازدید کننده امروز : 1
  • باردید دیروز : 8
  • بازدید کننده دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 170
  • بازدید ماه : 288
  • بازدید سال : 947
  • بازدید کلی : 2401
  • <
    پیوندهای روزانه
    آرشیو
    اطلاعات کاربری
    نام کاربری :
    رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    کدهای اختصاصی