Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
signal-server-dropwizard-admin — Signal-Server v20261007.0.0 - عالي - عن بُعد - صلاحيات متبقية - وصول غير مُصادق إلى Dropwizard admin :8081 | Kitploit
أدوات/GitHubGitHub/abraxas/signal-server-dropwizard-admin
أدوات دفاعيةالاستطلاعتحليل الثغرات الأمنيةتدقيق التكوينجمع المعلوماتأمن الويباختبار الاختراقسوء التكوين

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
GitHub
abraxas/signal-server-dropwizard-admin

signal-server-dropwizard-admin

Signal-Server v20261007.0.0 - عالي - عن بُعد - صلاحيات متبقية - وصول غير مُصادق إلى Dropwizard admin :8081

عرض المستودع
724منذ 9 أياملم تتم المراجعة بعد
مشاركة

Abraxas Labs - signal-server-dropwizard-admin

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  signal-server-dropwizard-admin

التقرير: https://abraxaslabs.tech/research/signal-server-dropwizard-admin

signal-server-dropwizard-admin

الفئة: صلاحية متبقية الوصول: عن بُعد

Signal-Server v20261007.0.0 (a15d5cd) - Signal Messenger, LLC

يُصدر DefaultServerFactory في Dropwizard 5.0.2 موصّل إدارة HTTP على المنفذ 8081 مع ترك bindHost غير مضبوط (جميع الواجهات) ودون مصادقة إدارية. لا يتجاوز Signal-Server ذلك أبدًا. لا يحتوي service/config/sample.yml على كتلة server:. ملف YAML يسرد فقط applicationConnectors الخاصة بـ TLS لا يزال يرث المنفذ 8081 بنص صريح على 0.0.0.0. يبدأ server مع العاملين الثلاثة ServerCommand تشغيله. ExternalRequestFilter موجود على سياق التطبيق فقط.

HTTP غير مُصادَق إلى :8081 هو مستوى الإدارة التشغيلي. ليس RCE. ليس استيلاءً على الحساب. ليس قراءةً للرسائل المختومة.

المعرّفلا يوجد CVE بعد
الفئةصلاحية متبقية (إدارة Dropwizard غير مُصادَقة)
الوصولعن بُعد (:8081 على جميع الواجهات، دون مصادقة)
CWECWE-306، CWE-1188
CVSSعالٍ: 7.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
المنتجSignal-Server
المتأثرv20261007.0.0 (a15d5cd) Dropwizard 5.0.2. العيّنة داخل الشجرة / adminConnectors المحذوفة.
المصادقةلا شيء على موصّل الإدارة
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

ما يمكن للمهاجم فعله

أي شخص يستطيع فتح TCP إلى منفذ الإدارة (الافتراضي 0.0.0.0:8081، دون إعداد إضافي، ودون ترويسة Authorization) يحصل على كل servlet إدارة Dropwizard 5 القياسي بالإضافة إلى مهمة Signal الإضافية. هذه هي مجموعة الصلاحيات الكاملة. لا شيء في هذه القائمة يمثل RCE أو ATO أو قراءةً لنصوص الرسائل المختومة.

الاستطلاع وبيانات العملية (GET، دون مصادقة)

الطريقةالمسارالصلاحية
GET/pingتأكيد أن مستمع الإدارة يعمل. النص هو pong.
GET/metricsقراءة سجل Codahale الكامل بصيغة JSON: ذاكرة JVM المُخصَّصة وغير المُخصَّصة، عدد مرات GC، عدد الخيوط، عدّادات موصّل Jetty، مقاييس 4xx/5xx، المؤقتات. استخدم هذا لبصم العملية وتقدير الحمل ومراقبة تأثير المهام اللاحقة.
GET/threadsتفريغ كامل لخيوط JVM: كل اسم خيط ومعرّفه وحالته وإطارات المكدس. في المختبر أظهر هذا dw-admin-* بالإضافة إلى إطارات nio في java.base. على عقدة Signal حية قد يتضمن التفريغ نفسه أسماء الفئات وأسماء المسجّلات وأي سلسلة تصادف وجودها على المكدس (مسارات الملفات، أسماء المضيفين، toString للوسائط قيد التنفيذ). إنه ليس تفريغًا للذاكرة وليس تفريغًا لقائمة انتظار الرسائل.
GET/healthcheckتشغيل فحوصات الصحة المسجّلة. لا تسجّل هذه الشجرة أي إضافات أبدًا، لذا يكون النص هو فحص الجمود الافتراضي (deadlocks.healthy). تخبرك استجابة 200 مقابل 500 بما إذا كانت JVM تعتقد أنها في حالة جمود.
GET/tasksسرد مهام الإدارة. على هذا الإصدار المثبّت: gc، log-level، set-request-logging-enabled.

سلامة التسجيل وجمع القمامة (POST، دون مصادقة)

الطريقةالمسارالصلاحية
POST/tasks/log-level?logger=<name>&level=<LEVEL>تعيين أي مسجّل Logback إلى TRACE أو DEBUG أو INFO أو WARN أو ERROR أو OFF. يمكن لـ TRACE أن يجعل مسجّلات التطبيق تطبع المزيد (بما في ذلك القيم التي سجّلها المطوّر). تعيين OFF على مسجّل أمني أو مسجّل وصول يجعله معتمًا. المهاجم لا يتلقى تدفق السجلات عبر هذا HTTP. بل يغيّر ما تكتبه العملية إلى القرص أو stdout. أداة التحقق المخبرية: اسم المسجّل SIGNAL-SERVER-DROPWIZARD-ADMIN-WITNESS إلى TRACE.
POST/tasks/gcاستدعاء System.gc(). الاستجابة هي Running GC... / Done!. هذا إيماءة إيقاف-العالم (stop-the-world)، وليس موتًا للعملية.
POST/tasks/set-request-logging-enabled?enabled=trueمهمة إشارة فقط مسجّلة في WhisperServerService.run. تُفعّل مرشّح سجل الوصول للطلبات (RequestLogManager). بعد ذلك، يمكن لـ HTTP إلى موصّل التطبيق كتابة الطريقة وURI والترويسات (بما في ذلك Authorization Basic) إلى سجل الوصول على القرص. عميل الإدارة لا يستعيد تلك الأسطر. على message-persister-service / APN / عمّال المهام الخاملة، لا يمتلك منفذ التطبيق أي موارد Signal Jersey، لذا تهم هذه المهمة على server. تعيين enabled=false يوقفها مرة أخرى.

ما لا يمنحه هذا المخلف

  • لا shell، ولا ProcessBuilder، ولا Runtime.exec.
  • لا servlet لتفريغ الكومة (heap-dump). GET /heapdump يعيد 404.
  • لا قراءة للمظاريف المختومة أو المفاتيح المسبقة أو أسرار SVR أو صفوف Dynamo/FDB عبر الإدارة.
  • لا إنشاء/حذف حساب، ولا ربط جهاز، ولا تخطٍّ لقفل التسجيل.
  • لا تغيير في sample.yml أو في عناوين الربط.
  • تفعيل تسجيل الطلبات ليس بحد ذاته سرقة بيانات اعتماد. تحتاج السرقة إلى قراءة لاحقة لملفات السجلات تلك (القرص، أو ناقل السجلات، أو مسجّل TRACE).

وصل حاوية شقيقة على نفس شبكة Docker إلى http://vuln:8081/ping (200 pong) ولم تستطع الوصول إلى http://patched:8081/ping عندما كان bindHost هو 127.0.0.1. هذا هو النصف البعيد (Remote).

كيف وجدته

ثبّتُّ signalapp/Signal-Server v20261007.0.0. ثمانية عشر بحثًا في المصدر. عادت عمليات البحث في الدردشة والمفاتيح والرسائل والنسخ الاحتياطية والتبرعات والاتصال وMFA وحافلة gRPC وHTTP الصادر فارغة عند Critical/High. أما بحث العمّال/الإدارة فلم يعد فارغًا. لا يزال HttpConnectorFactory.admin() في Dropwizard 5.0.2 يستخدم المنفذ 8081 ومضيف ربط فارغًا (null). لا يقوم Signal أبدًا بتعيين adminConnectors. المسؤول الافتراضي في Caddy هو localhost. هذا ليس كذلك.

منعطف خاطئ: محاولة إقلاع Signal-Server الكامل. يمر sample.yml عبر check ولا يزال يحتاج إلى FoundationDB وDynamo وRedis وحزمة أسرار إلى run. المخلف هو موصّل الإطار الذي يبدأه ServerCommand قبل أي من ذلك. المختبر هو Dropwizard 5.0.2 مع نفس YAML الفارغ server: واسم المهمة الإضافي الخاص بـ Signal.

المختبر

cd lab
./run.sh

Loopback 127.0.0.1:19010. مشروع Compose signal-server-dropwizard-admin. الشاهد SIGNAL-SERVER-DROPWIZARD-ADMIN-WITNESS. ملف YAML الخاص بالـ gadget لا يحتوي على كتلة server:. ملف YAML السلبي يضبط bindHost: 127.0.0.1. السطر الأخير:

SUCCESS signal-server-dropwizard-admin how=unauth-admin-8081 ping=200 metrics=200 threads=200 healthcheck=200 tasks=200 log-level=TRACE gc=200 set-log=enabled bind=* remote-vuln=200 remote-patched=fail SIGNAL-SERVER-DROPWIZARD-ADMIN-WITNESS

إصلاح

اربط المشرف بـ 127.0.0.1، أو اضبط adminConnectors: []، أو ضع المصادقة / mTLS على سياق المشرف. لا تُسلِّم ملف YAML يسرد موصلات التطبيق فقط وتفترض أن المنفذ 8081 ظل معطلاً.

التواصل

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

تنزيل الأداة