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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
roca — ROCA: ثغرة مفتاح RSA من Infineon | Kitploit
أدوات/GitHubGitHub/crocs-muni/roca
التحليل الثابتتحليل الثغرات الأمنيةالتشفير
GitHubcrocs-muni/roca

roca

ROCA: ثغرة مفتاح RSA من Infineon

عرض المستودعالموقع الإلكتروني
49596منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

أداة الكشف عن ROCA

Build Status

ترتبط هذه الأداة بـ ورقة مؤتمر ACM CCS 2017 رقم 124 "عودة هجوم كوبرسميث: التحليل العملي لوحدات RSA المستخدمة على نطاق واسع".

تتيح لك اختبار مفاتيح RSA العامة للتأكد من وجود الثغرة الموصوفة.

تحديث 4.11.2017: تم دعم Python 2.7، 3.4+.

تحديث 30.10.2017: الورقة البحثية للهجوم متاحة بالفعل على الإنترنت، نسخة ACM.

تحديث 30.10.2017: تم تنفيذ كاشف اللوغاريتم المتقطع في Python ويُستخدم ككاشف افتراضي. يكتشف البنية في الأعداد الأولية التي تستغلها خوارزمية التحليل.

تدعم الأداة حاليًا تنسيقات المفاتيح التالية:

  • شهادة X509، مشفرة بصيغة DER، شهادة واحدة لكل ملف، *.der، *.crt
  • شهادة X509، مشفرة بصيغة PEM، عدة شهادات لكل ملف، *.pem
  • طلب توقيع شهادة X509، مشفر بصيغة PEM، عدة طلبات لكل ملف، *.pem
  • مفتاح خاص RSA بصيغة PEM، مفتاح عام، عدة مفاتيح لكل ملف، *.pem (يجب أن يحتوي على الترويسة الصحيحة -----BEGIN RSA...)
  • مفتاح عام SSH، *.pub، يبدأ بـ "ssh-rsa"، مفتاح واحد لكل سطر
  • مفتاح PGP مشفر بصيغة ASC، *.pgp، *.asc. عدة مفاتيح لكل ملف، يجب أن يحتوي على الترويسة الصحيحة -----BEGIN PGP...
  • تطبيق Android بصيغة APK، *.apk
  • ملف نصي يحتوي على معامل واحد لكل سطر *.txt، يمكن أن يكون المعامل أ) رقمًا مشفرًا بصيغة base64، ب) رقمًا مشفرًا بصيغة hex، ج) رقمًا مشفرًا بصيغة عشرية
  • ملف JSON يحتوي على معاملات، سجل واحد لكل سطر، السجل الذي يحتوي على معامل له مفتاح "mod" (مدعوم: int, base64, hex, dec) شهادة (شهادات) بمفتاح "cert" / مصفوفة من الشهادات بمفتاح "certs" مدعومة، بصيغة DER مشفرة base64.
  • ملف LDIFF - تفريغ قاعدة بيانات LDAP. أي حقل ينتهي بـ ;binary:: يتم محاولة فك تشفيره كشهادة X509
  • ملف Java Key Store (JKS). يحاول استخدام كلمة مرور فارغة وبعض الكلمات الشائعة، يمكن تحديد المزيد باستخدام --jks-pass-file
  • توقيع PKCS7 مع شهادة المستخدم

أداة الكشف هي تطبيق في ملف واحد بقصد سهولة التكامل / التعامل.

نتائج إيجابية خاطئة

معدلات الكشف الإيجابي الخاطئ:

  • كاشف المعاملات: 2^-27
  • كاشف اللوغاريتم المتقطع: 2^-154

كاشف اللوغاريتم المتقطع مُنفَّذ فقط في كود Python، ويُستخدم كطريقة الكشف الافتراضية.

إصدارات Java و C# غير مدعومة منذ النشر الأصلي ولا نخطط لترقية هذه الكاشفات إلى الطريقة الأكثر دقة. لكن المساهمات الخارجية مرحب بها!

فاحص عبر الإنترنت

https://keychest.net/roca

يستخدم الفاحص عبر الإنترنت خوارزمية كاشف اللوغاريتم المتقطع.

التثبيت باستخدام pip

قم بتثبيت مكتبة الكاشف + الأداة باستخدام pip (يقوم بتثبيت جميع التبعيات):

root@kitploit:~
pip install roca-detect

التثبيت محليًا

نفّذ في المجلد الجذر للحزمة:

root@kitploit:~
pip install --upgrade --find-links=. .

التبعيات

قد يكون من الضروري تثبيت تبعيات إضافية حتى يتمكن pip من تثبيت حزمة التشفير مثلاً.

CentOS / RHEL:

root@kitploit:~
sudo yum install python-devel python-pip gcc gcc-c++ make automake autoreconf libtool openssl-devel libffi-devel dialog

Ubuntu:

root@kitploit:~
sudo apt-get install python-pip python-dev build-essential libssl-dev libffi-dev swig

الاستخدام

لطباعة الاستخدام الأساسي:

root@kitploit:~
# إذا تم التثبيت باستخدام pip / يدويًا
roca-detect --help

# بدون تثبيت (قد تفتقر إلى التبعيات)
python roca/detect.py

تقبل أداة الاختبار أسماء ملفات / أدلة متعددة كوسيط إدخال. تقوم بإرجاع تقرير يوضح عدد الملفات التي تم أخذ بصمتها (وأيها هي).

مثال (لم يتم العثور على ثغرات):

التشغيل التكراري على جميع مفاتيح SSH الخاصة بي وملف known_hosts:

root@kitploit:~
$> roca-detect ~/.ssh
2017-10-16 13:39:21 [51272] INFO ### الملخص ####################
2017-10-16 13:39:21 [51272] INFO السجلات المختبرة: 92
2017-10-16 13:39:21 [51272] INFO .. شهادات PEM: . . . 0
2017-10-16 13:39:21 [51272] INFO .. شهادات DER: . . . 0
2017-10-16 13:39:21 [51272] INFO .. ملفات مفاتيح RSA: . 16
2017-10-16 13:39:21 [51272] INFO .. مفاتيح PGP الرئيسية: 0
2017-10-16 13:39:21 [51272] INFO .. إجمالي مفاتيح PGP:  0
2017-10-16 13:39:21 [51272] INFO .. مفاتيح SSH:  . . . 76
2017-10-16 13:39:21 [51272] INFO .. مفاتيح APK:  . . . 0
2017-10-16 13:39:21 [51272] INFO .. مفاتيح JSON: . . . 0
2017-10-16 13:39:21 [51272] INFO .. شهادات LDIFF: . . 0
2017-10-16 13:39:21 [51272] INFO .. شهادات JKS: . . . 0
2017-10-16 13:39:21 [51272] INFO .. PKCS7: . . . . . 0
2017-10-16 13:39:21 [51272] INFO لم يتم العثور على مفاتيح ذات بصمة (حسنًا)
2017-10-16 13:39:21 [51272] INFO ################################

مثال (تم العثور على ثغرات):

التشغيل التكراري على جميع مفاتيح SSH الخاصة بي وملف known_hosts:

root@kitploit:~
$> roca-detect ~/.ssh
<b>2017-10-16 13:39:21 [51272] WARNING تم العثور على بصمة في الشهادة</b>
...
2017-10-16 13:39:21 [51272] INFO ### الملخص ####################
2017-10-16 13:39:21 [51272] INFO السجلات المختبرة: 92
2017-10-16 13:39:21 [51272] INFO .. شهادات PEM: . . . 0
2017-10-16 13:39:21 [51272] INFO .. شهادات DER: . . . 0
2017-10-16 13:39:21 [51272] INFO .. ملفات مفاتيح RSA: . 16
2017-10-16 13:39:21 [51272] INFO .. مفاتيح PGP الرئيسية: 0
2017-10-16 13:39:21 [51272] INFO .. إجمالي مفاتيح PGP:  0
2017-10-16 13:39:21 [51272] INFO .. مفاتيح SSH:  . . . 76
2017-10-16 13:39:21 [51272] INFO .. مفاتيح APK:  . . . 0
2017-10-16 13:39:21 [51272] INFO .. مفاتيح JSON: . . . 0
2017-10-16 13:39:21 [51272] INFO .. شهادات LDIFF: . . 0
2017-10-16 13:39:21 [51272] INFO .. شهادات JKS: . . . 0
2017-10-16 13:39:21 [51272] INFO .. PKCS7: . . . . . 0
2017-10-16 13:39:21 [51272] INFO تم العثور على مفاتيح ذات بصمة: 1
2017-10-16 13:39:21 [51272] INFO تحذير: ثغرة محتملة
2017-10-16 13:39:21 [51272] INFO ################################

مفتاح PGP

من أجل اختبار مفتاح PGP الخاص بك، يمكنك تصديره من عميل البريد الإلكتروني الخاص بك أو تنزيله من خادم مفاتيح PGP مثل https://pgp.mit.edu/

يمكنك أيضًا استخدام أداة سطر الأوامر gpg لتصدير مفتاحك العام:

root@kitploit:~
gpg --armor --export [email protected] > mykey.asc

حالة استخدام متقدمة

تقوم أداة الكشف باستخراج معلومات حول المفتاح يمكن عرضها:

root@kitploit:~
roca-detect.py --dump --flatten --indent  ~/.ssh/

كشف TLS/SSL

يكتشف roca-detect-tls الشهادات من منافذ TLS/SSL البعيدة. قم بتوفير ملف يحتوي على قائمة من إدخالات address:port مفصولة بأسطر جديدة واستخدم هذا الملف كمدخل.

مثال لملف: tls_list.txt

root@kitploit:~
github.com:443
google.com:443
internal.example.com:8080

ثم قم بتشغيل:

roca-detect-tls tls_list.txt

معاملات مزيفة

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

طرق التثبيت المتقدمة

البيئة الافتراضية

يوصى عادةً بإنشاء بيئة Python افتراضية جديدة للمشروع:

root@kitploit:~
virtualenv ~/pyenv
source ~/pyenv/bin/activate
pip install --upgrade pip
pip install --upgrade --find-links=. .

Python منفصل 2.7.13

لقد اختبرنا الأداة مع Python 2.7.12 وهي تعمل (انظر Travis لمزيد من المعلومات). لدينا تقارير تفيد بأن الإصدارات الأقل (<=2.6) لا تعمل بشكل صحيح، لذلك نوصي بشدة باستخدام Python 2.7 محدثة.

استخدم pyenv لتثبيت إصدار Python جديد محليًا إذا لم تتمكن / لا ترغب في تحديث نظام Python. يقوم داخليًا بتنزيل مصادر Python وتثبيتها في ~/.pyenv.

root@kitploit:~
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL
pyenv install 2.7.13
pyenv local 2.7.13

Python 3

تعمل أدوات الكشف أيضًا مع Python 3.4+

حاوية Docker

قم بتشغيل حاوية Docker لتجنب عدم تناسق البيئة. يمكن مراجعة مصدر Dockerfile على https://hub.docker.com/r/unnawut/roca-detect/.

root@kitploit:~
docker run --rm -v /path/to/your/keys:/keys --network none unnawut/roca-detect

تأكد من استخدام علامات --rm و --network none لتعطيل اتصال الشبكة للحاوية وحذف الحاوية بعد التشغيل.

الترخيص

الكود مرخص بموجب ترخيص MIT المتساهل.

نظرًا لوجود طلبات على الترخيص المزدوج بموجب ترخيص Apache 2.0 (بسبب بعض الشكوك حول التوافق)، فإننا نرخص الكود أيضًا بموجب ترخيص Apache 2.0.

اختر الترخيص الذي يناسبك بشكل أفضل، إما MIT أو Apache 2.0.

المنافذ اللغوية

يحتوي هذا القسم على روابط لمستودعات GIT مختلفة تحتوي على منافذ لغوية

  • Go
تنزيل الأداة