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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
prometheus-bearer-redirect — بروميثيوس v3.15.0 - عالي - عن بُعد - تسريب بيانات الاعتماد - remote_write google_iam/azuread يمرر Bearer عبر مضيفين مختلفين عند 3xx | Kitploit
أدوات/GitHubGitHub/abraxas/prometheus-bearer-redirect
تحليل الثغرات الأمنيةالاستغلالالمحاكاة الافتراضية للأمانأمن الويبمختبرات وتدريب عملي
GitHubabraxas/prometheus-bearer-redirect

prometheus-bearer-redirect

بروميثيوس v3.15.0 - عالي - عن بُعد - تسريب بيانات الاعتماد - remote_write google_iam/azuread يمرر Bearer عبر مضيفين مختلفين عند 3xx

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - prometheus-bearer-redirect

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  prometheus-bearer-redirect

المقال التقني: https://abraxaslabs.tech/research/prometheus-bearer-redirect

prometheus-bearer-redirect

الفئة: تسريب بيانات اعتماد النطاق: عن بُعد

Prometheus v3.15.0 (5241a27) - CNCF / Prometheus

تقوم prometheus/common v0.71.0 بالفعل بإزالة بيانات اعتماد scrape / HTTPClientConfig عند إعادة التوجيه بين المضيفين المختلفين (isCrossHostRedirect، #901). يبني NewWriteClient ذلك العميل أولاً، ثم يغلّف azuread.NewAzureADRoundTripper أو googleiam.NewRoundTripper خارج طبقة الإزالة. لا يزال follow_redirects افتراضيًا true.

إذا أعاد عنوان URL المُهيَّأ لـ remote_write توجيه 301/302/307 إلى مضيف آخر، فإن Prometheus يرسل Authorization: Bearer بالإضافة إلى رمز monitoring.write الخاص بـ Azure AD أو GCP إلى ذلك المضيف. لقد أسقط Go بالفعل الترويسة المنسوخة. لكن هذه الـ RoundTrippers تعيد تعيينها مرة أخرى.

ليست CVE-2026-42151 (تفريغ client_secret على /-/config). ملف prometheus.yml الافتراضي لا يحتوي على remote_write. هذا مشروط بوجود azuread: أو google_iam:.

المعرّفلا يوجد CVE بعد
الفئةتسريب بيانات اعتماد (Bearer الخاص بـ remote_write عند 3xx بين المضيفين)
النطاقعن بُعد (صادر من Prometheus إلى هدف 3xx)
CWECWE-201
CVSSعالٍ: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
المنتجPrometheus
المتأثرv3.15.0 (5241a27fe3c6983549fccc32f6e65917408c63cd)، الصورة prom/prometheus:v3.15.0
المصادقةremote_write مشروط بالإعداد مع azuread: أو google_iam:
الترخيصGNU Affero GPL v3.0
المختبر127.0.0.1 فقط

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

لدى المشغّل remote_write مع azuread: أو google_iam:. عنوان URL الخاص بـ RW، أو أي قفزة يعيد توجيهها 3xx، هو مضيف يتحكم به المهاجم.

الصلاحيةالطريقة / الهدفمُثبت مختبريًا أو مُستنتج
قراءة Bearer الحيّ الخاص بـ GCP monitoring.write عند 3xx بين المضيفينPOST الخاص بـ google_iam remote_write، 307 إلى مضيف آخرمُثبت مختبريًا. تلقّى Oracle POST /write القيمة Authorization: Bearer lab-gcp-PROMETHEUS-BEARER-REDIRECT-WITNESS
التسريب نفسه لـ azureadazureADRoundTripper.RoundTrip دائمًا Header.Set("Authorization", "Bearer "+token) دون isCrossHostRedirectمُستنتج من مصدر التثبيت. موقع التغليف نفسه في NewWriteClient. استخدم المختبر google_iam لذا لم يستدعِ Azure
إعادة استخدام ذلك الرمز ضد Azure Monitor / GCP Monitoring بصفته تلك الهويةالرمز بيانات اعتماد سحابية حقيقية عند تهيئة كتل المصادقة تلكمُستنتج. أنشأ المختبر رمزًا وهميًا؛ لم يستدعِ Azure أو GCP
scrape / oauth2 / basic / bearer على التثبيت نفسهRoundTrippers الخاصة بـ HTTPClientConfig من common v0.71.0مُثبت مختبريًا مغلق. اتبع GET الخاص بـ oauth2 scrape إعادة توجيه 302 إلى الـ oracle نفسه دون Authorization
OSS الافتراضيremote_write فارغمغلق
ضبط remote_write.headers لـ Authorizationمرفوضمغلق
تفريغ /-/config لـ client_secretCVE-2026-42151؛ الحقل مُعرَّف من النوع Secret على هذا التثبيتمغلق
مسؤول Prometheus / دورة الحياةالأعلام معطّلة افتراضيًامغلق
RCE / صدفةليس هذه البقايامغلق

كيف وجدته

ثبّتت وسم prometheus/prometheus v3.15.0 بعد موجة تنقيح الأسرار في 3.11/3.12 وموجة حد snappy. تسع عشرة عملية بحث. OSS الافتراضي: واجهة admin API، وlifecycle HTTP، ومستقبل remote-write، ومستقبل OTLP معطّلة. Common #901 موجود في v0.71.0. البقايا هي الغلافان الخاصان بـ remote_write اللذان يقعان خارج ذلك العميل.

func (rt *azureADRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
	accessToken, err := rt.tokenProvider.getAccessToken(req.Context())
	// ...
	req.Header.Set("Authorization", bearerAccessToken)
	return rt.next.RoundTrip(req)
}

googleiam.NewRoundTripper هو google.golang.org/api/transport/http -> oauth2.Transport، والذي يقوم بـ SetAuthHeaders في كل قفزة.

المنعطفات الخاطئة المسجلة بالفعل: إعادة تقديم CVE-2026-42151؛ التعامل مع scrape oauth2 على أنه لا يزال يسرب (وهو ليس كذلك)؛ وصف هذا بأنه High في التثبيت الافتراضي (وهو ليس كذلك - remote_write فارغ حتى تقوم بتفعيله). مسرحيات: reverse shell. الحكم الحاسم هو Bearer على POST المُعاد توجيهه.

المختبر

python3 prometheus-bearer-redirect-Abraxas-Labs.py

أو

cd lab
./run.sh

الاسترجاع المحلي فقط: Prometheus على http://127.0.0.1:19380، وoracle على http://127.0.0.1:19381. الصورة prom/prometheus:v3.15.0. يكتب run.sh ملف مختبري gcp-sa.json يحتوي على token_uri: http://hop:8080/token بحيث لا يتواصل google_iam مع Google أبدًا.

SUCCESS prometheus-bearer-redirect how=live rw-method=POST rw-bearer=yes token-has-witness=yes scrape-method=GET scrape-bearer=no PROMETHEUS-BEARER-REDIRECT-WITNESS

الإصلاح

تخطَّ إرفاق Azure AD / Google IAM Bearer عند تحقق isCrossHostRedirect(req)، على غرار common #901. لا تُعِد تعيين Authorization بعد أن أسقطه Go عند إعادة توجيه 3xx عبر مضيفين مختلفين.

المراجع

  • github.com/prometheus/prometheus وسم v3.15.0 (5241a27fe3c6983549fccc32f6e65917408c63cd)
  • storage/remote/client.go · storage/remote/azuread/azuread.go · storage/remote/googleiam/googleiam.go
  • prometheus/common #901
  • قريب مُرقَّع (ليس هذا الغلاف): CVE-2026-42151
  • CWE-201

الترخيص

GNU Affero GPL v3.0. راجع LICENSE. مختبر loopback فقط. دون أي ضمان.

تنزيل الأداة