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

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Abraxas Labs - prometheus-bearer-redirect

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  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 بالإضافة إلى رمز Azure AD أو GCP monitoring.write إلى ذلك المضيف. لقد أسقط Go بالفعل الترويسة المنسوخة. لكن هذه الـ RoundTrippers تعيد تعيينها مرة أخرى.

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

المعرّفلا يوجد CVE بعد
الفئةتسريب بيانات اعتماد (remote_write Bearer عند 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، هو مضيف يتحكم به المهاجم.

الصلاحيةالطريقة / الهدفمُثبت مختبريًا أو مُستنتج
قراءة رمز GCP monitoring.write Bearer الحيّ عند 3xx عبر المضيفينgoogle_iam remote_write POST، 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 على نفس الإصدار المثبّتHTTPClientConfig RoundTrippers من common v0.71.0مُثبت مختبريًا كمغلق. تبع oauth2 scrape GET إعادة توجيه 302 إلى نفس الـ oracle بدون Authorization
OSS الافتراضيremote_write فارغمغلق
remote_write.headers مع تعيين Authorizationمرفوضمغلق
/-/config الذي يسرّب client_secretCVE-2026-42151؛ الحقل مُعرّف كـ Secret على هذا الإصدار المثبّتمغلق
Prometheus admin / دورة الحياةالأعلام معطّلة افتراضيًامغلق
RCE / shellليس هذه البقايامغلق

كيف وجدته

ثبّتُ وسم prometheus/prometheus v3.15.0 بعد موجة تنقيح الأسرار في 3.11/3.12 وموجة snappy-cap. تسعة عشر عملية بحث. OSS الافتراضي: admin API، وlifecycle HTTP، وremote-write receiver، وOTLP receiver معطّلة. 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، الذي يقوم بـ SetAuthHeader في كل قفزة.

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

المختبر

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

أو

cd lab
./run.sh

loopback فقط: 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 فقط. بدون ضمان.

تنزيل الأداة