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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
malcom — Malcom - محلل اتصالات البرمجيات الخبيثة | Kitploit
أدوات/GitHubGitHub/tomchop/malcom
تحليل الشبكة الجنائيتحليل البرمجيات الخبيثةاستخبارات التهديدات
GitHubtomchop/malcom

malcom

Malcom - محلل اتصالات البرمجيات الخبيثة

عرض المستودع
1.2k2161منذ 8 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

Malcom - محلل اتصالات البرامج الضارة

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

  • ما هو Malcom؟
  • دليل سريع
  • التثبيت
  • خيارات التكوين
  • مثيل Docker
  • ملاحظة سريعة حول اعتراض TLS
  • البيئة
  • المغذيات
  • المواصفات التقنية
  • خريطة الطريق
  • إخلاء مسؤولية
  • الترخيص

ما هو Malcom؟

يمكن لـ Malcom مساعدتك في:

  • اكتشاف خوادم القيادة والتحكم (C&C) المركزية
  • فهم شبكات الند للند (P2P)
  • مراقبة بنى DNS سريعة التغير (DNS fast-flux)
  • تحديد ما إذا كان أثر الشبكة معروفًا بأنه ضار بسرعة

هدف Malcom هو تسريع تحليل البرامج الضارة وجمع المعلومات الاستخباراتية من خلال تقديم نسخة قابلة للقراءة البشرية من حركة مرور الشبكة الصادرة من مضيف معين أو شبكة معينة. تحويل معلومات حركة مرور الشبكة إلى معلومات استخباراتية قابلة للتنفيذ بشكل أسرع.

تفقد الويكي لدليل البدء السريع مع بعض لقطات الشاشة الجميلة ودرس تعليمي حول كيفية إضافة مغذياتك الخاصة.

إذا كنت بحاجة إلى مساعدة، أو تريد المساهمة، لا تتردد في الانضمام إلى القائمة البريدية أو حاول العثور على شخص ما على IRC (#malcom على freenode.net، إنه هادئ جدًا ولكن يوجد دائمًا شخص ما حولك). يمكنك أيضًا التواصل معي على تويتر @tomchop_

فيما يلي مثال على رسم بياني للمضيف tomchop.me nodes-tomchop.png

عرض مجموعة البيانات (مصفى لإظهار عناوين IP فقط) dataset-view.png

دليل سريع

  • قم بالتثبيت
  • تأكد من تشغيل mongodb و redis-server
  • ارفع صلاحياتك إلى الجذر (نعم، أعرف، انظر إخلاء المسؤولية)
  • ابدأ خادم الويب باستخدام التكوين الافتراضي مع ./malcom.py -c malcom.conf (أو راجع الخيارات مع ./malcom.py --help) ** للحصول على ملف تكوين مثال، يمكنك نسخ malcom.conf.example إلى malcom.conf ** المنفذ الافتراضي هو 8080 ** بدلاً من ذلك، قم بتشغيل المغذيات من celery. راجع قسم المغذيات للحصول على تفاصيل حول كيفية القيام بذلك.

التثبيت

Malcom مكتوب بلغة python. بشرط توفر المكتبات اللازمة، يجب أن تكون قادرًا على تشغيله على أي منصة. أوصي بشدة باستخدام البيئات الافتراضية python (virtualenv) حتى لا تفسد مكتبات النظام لديك.

تم اختبار ما يلي على Ubuntu server 14.04 LTS:

  • قم بتثبيت git و python و libevent libs و mongodb و redis وغيرها من التبعيات

    root@kitploit:~
      $ sudo apt-get install build-essential git python-dev libevent-dev mongodb libxml2-dev libxslt-dev zlib1g-dev redis-server libffi-dev libssl-dev python-virtualenv
    
  • استنساخ مستودع Git:

    root@kitploit:~
      $ git clone https://github.com/tomchop/malcom.git malcom
    
  • قم بإنشاء بيئتك الافتراضية وتفعيلها:

    root@kitploit:~
      $ cd malcom
      $ virtualenv env-malcom
      $ source env-malcom/bin/activate
    
  • احصل على scapy وقم بتثبيته:

    root@kitploit:~
      $ cd .. 
      $ wget http://www.secdev.org/projects/scapy/files/scapy-latest.tar.gz
      $ tar xvzf scapy-latest.tar.gz
      $ cd scapy-2.1.0
      $ python setup.py install
    
  • لا تزال من البيئة الافتراضية الخاصة بك، قم بتثبيت حزم python اللازمة من ملف :

خيارات التكوين

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

افتراضيًا، سيحاول Malcom الاتصال بمثيل mongodb محلي وإنشاء قاعدة البيانات الخاصة به، المسماة malcom. إذا كان هذا مناسبًا لك، يمكنك تخطي الخطوات التالية. خلاف ذلك، تحتاج إلى تحرير قسم database في ملف malcom.conf.

تعيين اسم آخر لقاعدة بيانات Malcom الخاصة بك

افتراضياً، سيستخدم Malcom قاعدة بيانات باسم malcom. يمكنك تغيير هذا السلوك عن طريق تحرير ملف malcom.conf وتعيين التوجيه name من قسم database كما تريد.

root@kitploit:~
    [database]
    ...
    name = my_malcom_database
    ...
قاعدة (قواعد) بيانات عن بعد

افتراضيًا، سيحاول Malcom الاتصال بـ localhost، ولكن قد تكون قاعدة البيانات الخاصة بك على خادم آخر. لتغيير ذلك، فقط قم بتعيين التوجيه hosts. يمكنك استخدام أسماء المضيفين أو عناوين IPv4/v6 (فقط تذكر وضع عناوين IPv6 الخاصة بك بين [ و ]، على سبيل المثال [::1]).

إذا كنت ترغب في استخدام قاعدة بيانات مستقلة على المضيف my.mongo.server، فقط قم بتعيين:

root@kitploit:~
    [database]
    ...
    hosts = my.mongo.server
    ...

يمكنك أيضًا تحديد المنفذ الذي يستمع عليه mongod عن طريق تحديده بعد اسم/عنوان الخادم الخاص بك، مفصولاً بـ ::

root@kitploit:~
    [database]
    ...
    hosts = localhost:27008
    ...

وإذا كنت تستخدم ReplicaSet يعيد تجميع my.mongo1.server و my.mongo2.server، فقط قم بتعيين:

root@kitploit:~
    [database]
    ...
    hosts = my.mongo1.server,my.mongo2.server
    ...
استخدام المصادقة

ربما قمت بتكوين مثيلات mongod الخاصة بك لفرض اتصالات مصادق عليها. في هذه الحالة، عليك تعيين اسم المستخدم الذي سيتعين على السائق استخدامه للاتصال بمثيل mongod الخاص بك. للقيام بذلك، فقط أضف توجيه username إلى قسم database في ملف malcom.conf. قد تضطر أيضًا إلى تعيين كلمة المرور مع التوجيه password. إذا لم يكن لدى المستخدم كلمة مرور، فقط تجاهل (أي علق) التوجيه password.

root@kitploit:~
    [database]
    ...
    username = my_user
    password = change_me
    ...

إذا لم يكن المستخدم مرتبطًا بقاعدة بيانات malcom ولكن بقاعدة بيانات أخرى (على سبيل المثال قاعدة بيانات admin لمستخدم مسؤول)، ستحتاج إلى تعيين التوجيه authentication_database باسم تلك القاعدة.

root@kitploit:~
    [database]
    ...
    authentication_database = some_other_database
    ...
حالة مجموعة النسخ المتماثلة (Replica Set)

عند استخدام مجموعة نسخ متماثلة، قد تحتاج إلى التأكد من أنك متصل بالمجموعة الصحيحة. لهذا، فقط أضف التوجيه replset لإجبار سائق mongo على التحقق من اسم مجموعة النسخ المتماثلة.

root@kitploit:~
    [database]
    ...
    replset = my_mongo_replica
    ...

افتراضيًا، سيحاول Malcom الاتصال بالعقدة الأساسية لمجموعة النسخ المتماثلة. قد تحتاج/ترغب في تغيير ذلك. لتغيير هذا السلوك، فقط قم بتعيين التوجيه read_preference. راجع توثيق mongo لمزيد من المعلومات.

root@kitploit:~
    [database]
    ...
    read_preference = NEAREST
    ...

تفضيلات القراءة المدعومة هي:

  • PRIMARY
  • PRIMARY_PREFERRED
  • SECONDARY
  • SECONDARY_PREFERRED
  • NEAREST

مثيل Docker

أسرع طريقة لبدء العمل هي سحب صورة Docker من مستودع Docker العام. لسحب إصدارات Docker الأقدم والأكثر استقرارًا، استخدم tomchop/malcom بدلاً من tomchop/malcom-automatic.

root@kitploit:~
    $ sudo docker pull tomchop/malcom-automatic
    $ sudo docker run -p 8080:8080 -d --name malcom tomchop/malcom-automatic

الاتصال بـ http://<docker_host>:8080/ يجب أن يبدأ العمل.

ملاحظة سريعة حول اعتراض TLS

يدعم Malcom الآن اعتراض TLS. لكي يعمل هذا، تحتاج إلى إنشاء بعض المفاتيح في دليل malcom/networking/tlsproxy/keys. راجع ملف KEYS.md هناك لمزيد من المعلومات حول كيفية القيام بذلك.

تأكد أيضًا من أن لديك IPtables (يجب أن يكون لديك بالفعل) وأذونات للقيام ببعض إعادة توجيه المنافذ باستخدامه (تحتاج عادةً إلى أن تكون جذرًا لذلك). يمكنك القيام بذلك باستخدام السكريبت المناسب forward_port.sh. على سبيل المثال، لاعتراض جميع اتصالات TLS المتجهة إلى المنفذ 443، استخدم forward_port.sh 443 9999. ستحتاج بعد ذلك إلى إخبار malcom بتشغيل وكيل اعتراض على المنفذ 9999.

توقع أن تتم أتمتة هذه العملية في الإصدارات المستقبلية.

البيئة

تم تصميم Malcom واختباره على جهاز افتراضي Ubuntu Server 14.04 LTS.

إذا كنت معتادًا على تحليل البرامج الضارة، فربما لديك بالفعل الكثير من الأجهزة الافتراضية التي تعمل على نظام تشغيل مضيف. فقط قم بتثبيت Malcom على جهاز افتراضي جديد، وقم بتوجيه اتصالات أجهزتك الافتراضية الأخرى عبر Malcom. استخدم enable_routing.sh لتفعيل التوجيه / NAT على الجهاز الظاهري الذي يعمل عليه Malcom. ستحتاج إلى إضافة بطاقة شبكة إضافية إلى نظام التشغيل الضيف.

طالما أنه يحصل على بيانات الشبكة من الطبقة 3، يمكن نشر Malcom في أي مكان. على الرغم من أنه لا يُنصح باستخدامه على شبكات ذات توفر عالٍ (لم يتم تصميمه ليكون سريعًا، راجع إخلاء المسؤولية)، يمكنك تشغيله في نهاية منفذ المرآة للمحول أو على بوابتك.

المغذيات

لتشغيل مثيل من Malcom يقوم فقط بجلب المعلومات من المغذيات، قم بتشغيل Malcom مع خيار --feeds أو قم بتعديل ملف التكوين.

يجب أن يتم ملء قاعدة البيانات الخاصة بك تلقائيًا. إذا كان بإمكانك التعمق في الكود، فإن إضافة المغذيات أمر بسيط إلى حد ما (بافتراض أنك تقوم بإنشاء كائنات Evil). يمكنك العثور على مثال لمغذي في /feeds/zeustracker. هناك درس تعليمي أكثر تفصيلاً متاح هنا.

يمكنك أيضًا استخدام celery لتشغيل المغذيات. تأكد من تثبيت celery عن طريق تشغيل $ pip install celery من البيئة الافتراضية الخاصة بك. يمكنك بعد ذلك استخدام celery worker -E --config=celeryconfig --loglevel=DEBUG --concurrency=12 لتشغيل عملية التغذية مع 12 عاملاً متزامنًا.

المواصفات التقنية

تمت كتابة Malcom في الغالب من الصفر، بلغة Python. يستخدم الأطر التالية للعمل:

  • flask - إطار عمل ويب خفيف الوزن بلغة Python
  • mongodb - قاعدة بيانات NoSQL. تتصل بـ Python عبر pymongo
  • redis - مخزن قيم-مفاتيح متقدم في الذاكرة
  • d3js - مكتبة JavaScript تنتج رسومات بيانية رائعة تعتمد على القوى (https://github.com/mbostock/d3/wiki/Gallery)
  • bootstrap - إطار عمل CSS الذي سيقتل في النهاية تصميم الويب، لكنه يجعل من السهل للغاية "تحويل" التطبيقات التي كانت ستعمل فقط عبر موجه الأوامر إلى تطبيقات ويب بسرعة.

خريطة الطريق

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

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

بمجرد أن يصبح التعاون والتوسع جاهزين للعمل، أعتقد أن هذا سيكون مفيدًا لأكثر من مستجيب للحوادث هناك. :-)

إخلاء مسؤولية

تمت برمجة هذه الأداة خلال وقت فراغي. مثل عدد كبير من الأدوات التي نقوم بتنزيلها واستخدامها يوميًا، لا أوصي باستخدامها في بيئة إنتاج حيث تكون استقرار البيانات وموثوقيتها أمرًا لا بد منه.

  • قد تكون معطلة، أو بها ثغرات أمنية (تشغيلها كجذر في بيئات غير خاضعة للرقابة ربما ليس فكرة جيدة)، أو لا تعمل على الإطلاق.
  • إنها مكتوبة بلغة python، لذا لا تتوقع أن تكون فائقة السرعة أو تتعامل مع كميات هائلة من البيانات بسهولة.
  • أنا لست مبرمجًا، لذا لا تتوقع رؤية كود python جميل في كل مكان تنظر إليه. أو الكثير من التعليقات.

إنها في مراحل مبكرة من التطوير، مما يعني "إنها تعمل بالنسبة لي". أنت حر في مشاركتها، تحسينها، طلب سحب التغييرات.

الترخيص

Malcom - محلل اتصالات البرامج الضارة حقوق النشر (C) 2013 Thomas Chopitea

هذا البرنامج هو برنامج مجاني: يمكنك إعادة توزيعه و/أو تعديله بموجب شروط رخصة GNU العامة العامة كما نشرتها مؤسسة البرمجيات الحرة، إما الإصدار 3 من الرخصة، أو (حسب اختيارك) أي إصدار لاحق.

يتم توزيع هذا البرنامج على أمل أن يكون مفيدًا، ولكن دون أي ضمان؛ حتى دون الضمان الضمني للتسويق أو الملاءمة لغرض معين. راجع رخصة GNU العامة العامة لمزيد من التفاصيل.

يجب أن تكون قد تلقيت نسخة من رخصة GNU العامة العامة مع هذا البرنامج. إذا لم يكن الأمر كذلك، فانظر http://www.gnu.org/licenses/.

يرجى ملاحظة أن Redis و MongoDB و d3js و Maximind و Bootstrap (وغيرها من مكتبات الطرف الثالث المضمنة في Malcom) قد يكون لها تراخيصها الخاصة المتوافقة مع GPL.

تنزيل الأداة
requirements.txt
root@kitploit:~
  $ cd ../malcom
  $ pip install -r requirements.txt
  • لكي يعمل تحديد الموقع الجغرافي IP، تحتاج إلى تنزيل قاعدة بيانات Maxmind واستخراج الملف إلى دليل malcom/Malcom/auxiliary/geoIP. يمكنك الحصول على قاعدة البيانات المجانية (وبالتالي أكثر أو أقل دقة) من Maxmind من الرابط التالي: http://dev.maxmind.com/geoip/geoip2/geolite2/:

    root@kitploit:~
      $ cd Malcom/auxiliary/geoIP
      $ wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
      $ gunzip -d GeoLite2-City.mmdb.gz
      $ mv GeoLite2-City.mmdb GeoIP2-City.mmdb
    
  • قم بتشغيل خادم الويب من دليل malcom باستخدام ./malcom.py. تحقق من ./malcom.py --help لواجهة الاستماع والمنافذ.

    • للمبتدئين، يمكنك نسخ ملف malcom.conf.example إلى malcom.conf وتشغيل ./malcom.py -c malcom.conf