هذه الصفحة ترجمة. النسخة الإنجليزية هي النص المعتمد. اقرأه بالإنجليزية
threat-actor · litellm · agentic-ai · credential-theft · china-nexus
keyHunter: عملية لجمع مفاتيح وكلاء نماذج اللغة سرّبت مجموعة أدواتها بنفسها
مشغّل ناطق بالصينية يمسح FOFA بحثاً عن لوحات وكلاء الذكاء الاصطناعي المكشوفة، ويتحقق منها بشيفرة مزوّدة باختبارات وحدة مبنية للتعرّف على مصائد العسل، ثم يصدّر مفاتيح واجهات البرمجة. نشر وكيله 283 مساراً لملفات من مضيفه إلى إحدى مصائدنا، إلى جانب حصيلة المسح وسجل محادثة WeChat ومجلد نتائج يحتوي ملفات استغلال تحمل أسماء ست ثغرات CVE من عام 2026، منها تجاوز لـ Stripe-webhook في New-API.
بقلم Davis Zheng·
TLP:CLEAR. مُصرَّح بالنشر العام. كل ما يلي تقريباً هو مادة المشغّل نفسه، استُرجعت من مخرجات نشرها وكيل المشغّل إلى إحدى مصائد العسل الخاصة بنا. المؤشرات منزوعة الأنياب، أي أن عناوين المهاجم مكتوبة بصورة تمنع النقر عليها أو تحليلها عن غير قصد. حُجبت أهداف المسح، ومضيف واحد تابع لطرف ثالث أشار إليه المشغّل، ومفتاح FOFA الخاص به بكامله.
الملخص التنفيذي
- 27,173مضيفاً مرشّحاً مسحها FOFA
- 194منها أدرجت نموذجاً
- 17مفتاح واجهة برمجة مُصدَّراً
- 6ثغرات CVE من عام 2026، حسب أسماء الملفات
مسح مشغّل ناطق بالصينية 27,173 مضيفاً في ثماني دول بحثاً عن هدف واحد: لوحات وكلاء الذكاء الاصطناعي المكشوفة التي تقف خلفها مفاتيح فعّالة. لوحة وكيل الذكاء الاصطناعي هي البرمجية التي تضعها الفرق بين تطبيقاتها ومزوّدي النماذج المدفوعة كي يتسنى تقاسم مجموعة واحدة من مفاتيح المزوّد، مثل LiteLLM وOne-API ونسختها المتفرّعة New-API وSub2API وChat2API. اتركْ واحدة منها على الإنترنت بلا كلمة مرور، ويصبح كل ما يقف خلفها قابلاً للإنفاق من جانب الغرباء. يجد المشغّل هذه اللوحات عبر FOFA، وهو محرك بحث يعمل على مسح متواصل لكامل الإنترنت ويمثّل النظير الصيني لـ Shodan، ثم يتحقق من أي اللوحات لا يزال يستجيب، ويصدّر المفاتيح.
هذه الأرقام هي أرقام المشغّل نفسه، مأخوذة من ملفات نتائجه لا مقدّرة من جانبنا. من بين تلك المضيفات البالغة 27,173، أدرج 194 منها نموذجاً، ووصل 17 مفتاحاً إلى ملف التصدير. تشغيل الولايات المتحدة هو أوضح حالة منفردة: 10,447 هدفاً في المدخل، و64 سرداً للنماذج في المخرج، أي معدل إصابة 0.61%، وكان وكيله نفسه قادراً على تفسير السبب. فوجود نسخ LiteLLM مكشوفة علناً وقابلة للاستدعاء فعلياً أمر نادر، كما أن خللاً في بناء عناوين URL داخل ماسحه كان يسجّل مضيفات حيّة على أنها ميتة.
- هذه عملية مقرّها الصين، وتُدار بالصينية، على بنية تحتية صينية بحتة. كل طابع زمني مستعاد للملفات هو
+0800، ولغة العمل في كل موضع هي الصينية، والمضيفات الثلاثة هي Alibaba Cloud وTencent Cloud وآلة مسح افتراضية على Huawei Cloud. ثقة عالية. - الأدوات مخصّصة ومزوّدة باختبارات وحدة، وليست جاهزة من السوق. يأتي
litellm_verifier.pyمع ثلاثة ملفات اختبار، ويحمل مجلد النسخ الاحتياطيةSHA256SUMS، والعمل منظّم في جولات مرقّمة. هذا الانتظام الهندسي غير معتاد في مسح بيانات الاعتماد. ثقة عالية، مستندة إلى قوائم ملفات المشغّل نفسه. - يدمجون مواجهة التضليل في بنية أدواتهم، وهي تعمل. يرفض مدقّقهم احتساب سرد
/v1/modelsنجاحاً، ويطالب بإتمام محادثة حقيقية لكل نموذج، ويقيّم ما إذا كان الجواب يطابق المزوّد الذي يدّعيه، وصنّف 20 من 41 مدخل نموذج مُختبَراً في إحدى الجولات على أنهاhoneypot_or_unusable. ثقة عالية. - مجموعة الاستغلال كلها من نوع n-day. تتقابل أسماء ملفات نتائجهم مع ستة تنبيهات أمنية من عام 2026 ضد LiteLLM وSub2API وNew-API، أحدها مدرج في قائمة CISA للثغرات المستغلّة المعروفة. ولا شيء يشير إلى بحث أصلي في الثغرات. ثقة عالية بشأن المنتجات والتقنيات، ومتوسطة بشأن الثغرة المحدّدة في أربع من الست، وهي مستنتجة من أسماء الملفات لا مرصودة.
- إطار المسابقة لا يصمد أمام مواجهة مجلد النتائج. يخبرون وكيلهم بأن النطاق يقتصر على بيانات الاعتماد الافتراضية، غير أن أسماء ملفات المجلد تسمّي تنفيذ شيفرة عن بعد، وحقن SQL، وحقن القوالب، وتزوير الطلبات من جهة الخادم، وتسريب الرموز، وتجاوز الحصة، وتجاوزاً لـ Stripe-webhook. نملك القائمة لا متون الملفات، لذا تبقى النوايا مسألة مفتوحة، لكن المشغّل بنى تلك الأدوات وشغّلها في كلتا القراءتين. ثقة عالية بشأن الآثار المستعادة، ومتوسطة بشأن أي قراءة للنوايا هي الصحيحة.
حول الاسم
نتابع هذا النشاط باسم keyHunter، نسبةً إلى /root/keyHunter-skill/، وهو مجلد مشروع المشغّل نفسه.
إطار الوكيل الذي يشغّلونه يُسمى Hermes، وHermes مشروع مفتوح المصدر حقيقي من Nous Research. تسمية الفاعل باسمه تُحمّل أداة مشروعة مسؤولية ما فعله بها شخص آخر، ولذلك لا نفعل ذلك. وينطبق الأمر نفسه على OpenClaw، وهو إطار الوكيل الثاني على الجهاز. كلاهما برمجية عادية ثبّتها المشغّل ووجّهها إلى بنية تحتية تابعة لآخرين.
المشغّل
يعمل المشغّل من ثلاثة مضيفات، كلها على سحابات صينية، والعمل موزّع بينها. المضيف 39.98.82[.]200 على Alibaba Cloud (AS37963) يشغّل بوابة الوكيل، ونفّذ معظم الاستطلاع الذي رأيناه. والمضيف 101.43.41[.]72 على Tencent Cloud (AS45090) هو مُرحِّل، يقدّم نقطة نهاية متوافقة مع OpenAI على المنفذ 8087 يستدعيها الوكيل للحصول على سعة نماذج. يتشاركان بصمة JA4H واحدة هي po11nn070000_ebbca96fac43، وهي بصمة تصف طريقة تجميع العميل لطلبات HTTP الخاصة به وتبقى ثابتة عبر تغيّر العنوان، إلى جانب وكيلي مستخدم مخصّصين هما Hermes-Agent/0.18.0 وHermes-Panel/1.0 ومعرّف جلسة محادثة واحد مشترك. مجتمعةً، تضع هذه العناصر العقدتين تحت مشغّل واحد. وتلك البصمة ليست أثراً من عملية رصد واحدة: فهي تتكرر على امتداد نشاط 16 إلى 20 أغسطس، في المسح ذاته المدفوع بـ FOFA.
أما المسح فيجري في مكان آخر. من مضيف Alibaba يصلون إلى آلة افتراضية على Huawei Cloud عبر تمرير محلي:
ssh -o ServerAliveInterval=20 -i /root/.ssh/hw_vm_key -p 8888 developer@127.0.0.1 \
'cd /home/developer && /home/developer/.venv-us30/bin/python litellm_scan_us_30d_optimized.py'
كان ذلك الجهاز قيد التشغيل منذ أربعة أيام وتسع ساعات، ويملك 7.5 غيغابايت من الذاكرة وأربعة أنوية، ويشغّل عمّال المسح. وفصل المسح الصاخب عن واجهة الوكيل الأمامية خيار متعمّد، واسم hw_vm_key يوضح أن المشغّل يفكر فيه على أنه جهاز Huawei.
تجري السيطرة عبر WeChat. تصف خدمة البوابة نفسها بأنها “Hermes Agent Gateway, Messaging Platform Integration”، ويكلّف المشغّل الوكيل بالمهام عبر محادثته في خيط WeChat. ذاكرة الوكيل طويلة المدى هي تلك المحادثة: فهو يبحث في سجل محادثته الخاص ليتذكر ما يعمل عليه. ويظهر الإطار الثاني النمط نفسه، مع جلسة تُسمى openclaw-weixin. تطبيق مراسلة استهلاكي يوفّر قناة سيطرة رخيصة: فحركته مشفّرة افتراضياً وتنتقل إلى Tencent جنباً إلى جنب مع حركة كل مستخدم آخر لـ WeChat، ولذلك لا تُطلق شيئاً من الرصد المضبوط على إشارات القيادة والتحكم.
محرك الاستدلال الذي يقف خلف كل ذلك هو github_copilot/gpt-5.6-sol، وهو مساعد برمجي تجاري يُوصَل إليه عبر مُرحِّل. كما تربط إعداداتهم مفاتيح اختيارية لعدد من المزوّدين الآخرين. الشيفرة الهجومية بايثون مخصّصة؛ أما نموذج الاستدلال وإطار الوكيل وقناة السيطرة عبر WeChat من تحتها فكلها منتجات استهلاكية جاهزة.
خط العمل
تصف مهارتهم الرئيسية العملية بأكملها في سطر واحد: “اكتشاف لوحات وكلاء واجهات برمجة الذكاء الاصطناعي المكشوفة علناً (LiteLLM، Sub2API، New-API، One-API) ومسحها والتحقق منها وأرشفتها باستخدام FOFA + keyHunter + سكربتات تحقق مخصّصة.”
FOFA search, per country
-> dedupe and normalise targets
-> light HTTP fingerprint
-> /v1/models listing
-> real chat completion per model
-> honeypot classification
-> weak-credential panel login, key extraction
-> export keys and accounts, archive
الاكتشاف استعلام FOFA واحد، يُعاد لكل دولة:
(title="LiteLLM" || body="LiteLLM") && country="{cc}" && org!="AMAZON-AES"
الشرط المهم هو استثناء AWS. يستبعد المشغّل Amazon من كل عملية مسح قبل النظر إلى مضيف واحد. وحجب نطاقات Shodan وCensys على حدود شبكتك لا يجدي شيئاً أمام خط عمل مبني على بيانات مسح يملكها طرف آخر.
يحتفظون بسكربتات منفصلة لكل دولة: litellm_scan_hw.py للولايات المتحدة، وlitellm_scan_gb_hw.py، وlitellm_scan_it_hw.py، وlitellm_scan_us_30d_optimized.py ببيئته الافتراضية الخاصة، ومجموعة أخرى تحت keyHunter-skill/ تغطي أستراليا والبرازيل وكندا وفرنسا والهند وهولندا وسنغافورة. وتوجد ملفات نتائج لأربع عشرة دولة. التوازي مضبوط على 48 عاملاً خفيفاً و12 عاملاً عميقاً، مع تراجع زمني عند استجابات 429 من FOFA، وإزالة تكرار لنقاط النهاية مفتاحها البروتوكول والمضيف والمنفذ.
مفتاح واجهة برمجة FOFA مكتوب بشكل ثابت في مصدر الماسح، وهكذا حصلنا عليه. ويعمل الماسح عبر مرآة غير رسمية لـ FOFA على hamal.cc[.]cd، ويخرج عبر وكيل Squid محلي.
ما تعيده عملية المسح فعلياً
| الدولة | أهداف FOFA | نماذج مُدرجة | معدل الإصابة |
|---|---|---|---|
| الولايات المتحدة | 10,447 | 64 | 0.61% |
| الصين | 6,329 | 83 | 1.31% |
| كوريا الجنوبية | 1,772 | 10 | 0.56% |
| المملكة المتحدة | 1,422 | 18 | 1.27% |
| إيطاليا | 1,130 | 9 | 0.80% |
| أستراليا والهند والبرازيل | 6,073 | 10، تحقّق من 4 منها | 0.16% |
إحدى الجولات المرصودة: 2,255 صفاً خاماً من FOFA، و1,130 نقطة نهاية فريدة بعد إزالة التكرار، و9 مواقع أدرجت نماذج، و8 منها تحقّقت، وعلى مستوى الطلبات 41 نجاحاً للنماذج مقابل 8 حالات فشل.
يبيّن جرد عناوين FOFA الذي جمعوه كيف تبدو الفئة المكشوفة. يعيد LiteLLM API - Swagger UI عدد 7,630 نتيجة. ويعيد OmniRoute عدد 171، وSillyTavern عدد 170، وLiteLLM Dashboard عدد 156، وClaude Code Hub عدد 131، وAivar AI Gateway عدد 11. معظم هذه المساحة منتج واحد، ومعظم نسخ ذلك المنتج المكشوفة هي صفحة توثيق واجهة البرمجة المولّدة آلياً.
نقدّر أن الحصيلة في الطرف الأخير منخفضة بالقيم المطلقة. يسجّل litellm_extracted_keys.json عدد 43 نسخة و3 مفاتيح مستخرجة عبر 23 نموذجاً. ويحتوي exported_keys.json على 17. عشرات آلاف المضيفات مسحت للحصول على سبعة عشر مفتاحاً، وهو إما مردود ضعيف على الجهد المبذول أو حجة على أن الجهد رخيص لأن وكيلاً هو من ينفّذه.
مواجهة التضليل: يطاردون مصائد العسل
يظهر الجانب الهندسي بأوضح صورة في ملف واحد، litellm_verifier.py.
حجمه عشرة كيلوبايت، ومعه حزمة اختبارات وحدة. يرسل إتمام محادثة حقيقياً بالحد الأدنى إلى كل نموذج تعلنه لوحة، ولا يسجّل نجاحاً إلا عند استجابة صحيحة بهيئة OpenAI على شكل choices/message/content أو رد تدفّقي مشروع يحمل علامة انتهاء. قاعدتهم الخاصة، بكلماتهم: نجاح مجرد لـ /models لا يُحتسب أبداً. وأسماء الاختبارات تشفّر ذلك، ومنها اختبار يُسمى test_models_listing_alone_is_not_success. كتب أحدهم اختبار انحدار ليمنع أدواته من الكذب عليه بشأن مفتاح مسروق.
أعداد الأحكام من جولة واحدة:
verdict_counts: honeypot_or_unusable 20 · trusted_pass 5 · unavailable 16
formatted_false_success_model_hits 29
non_chinese_evidence_count 13
total_questions 205
formatted_false_success يعني جواباً معلّباً أو مردّداً، وهذا أسلوب رد الفخ الساذج. وnon_chinese_evidence يقيّم ما إذا كان النموذج يتصرف كالمزوّد الذي يدّعي أنه هو. كما يشغّلون استجواباً من خمسة أسئلة، 蜜罐五题测试، وفي النافذة المرصودة استخدموه للإشارة إلى مضيف في نطاق AWS في لندن على أنه مصيدة عسل. نحجب ذلك العنوان، لأنه مستشعر يملكه طرف آخر، وتسميته تحرقه.
مشتري الاستنتاج المسروق يفترض الآن أن نقطة النهاية قد تكون فخاً ويختبر ذلك. والفحص المضاد الذي يكشفهم يجري الاختبار نفسه بالعكس: أي عميل يطلب من بوابتك أن تثبت أي نموذج تشغّل فعلاً، خلافاً لمُعامل واجهة البرمجة، هو عميل يتحقق من سلعة.
ترسانة الاستغلال: ثغرات n-day بالكامل
لم تصلنا محتويات ملفات نتائج الاستغلال. وصلت أسماء الملفات، وأهدافها منتجات مفتوحة المصدر لها تنبيهات أمنية عامة، ولذلك يمكن استرجاع طرق الاستغلال من تلك التنبيهات.
| ملف النتائج على مضيفهم | CVE | الثغرة | الأساس |
|---|---|---|---|
litellm_host_header_bypass_results.json (568 KB) | CVE-2026-49468 | تجاوز المصادقة في LiteLLM عبر حقن ترويسة Host، بدرجة CVSS 9.8، قبل الإصدار 1.84.0. يفصل المصادقة عن التوجيه، ما يتيح استدعاء /key/generate و/user/new دون مصادقة | مؤكَّد بشكل مستقل: وصلت استدعاءات مستوى الإدارة نفسها إلى مستشعرنا، وقدّمت وكيل مستخدم CVE-2026-49468-Scanner |
litellm_sqli_apikey_results.json (517 KB)، litellm_sqli_models.json | CVE-2026-42208 | حقن SQL قبل المصادقة في مسار مصادقة LiteLLM | مؤكَّد بشكل مستقل: أرسلوا ' OR '1'='1 كمفتاح تسع عشرة مرة |
litellm_rce_exploit.json، litellm_mcp_rce_results.json | CVE-2026-42271 | حقن أوامر وتنفيذ شيفرة عن بعد في LiteLLM، بدرجة CVSS 8.7، مدرجة في قائمة CISA للثغرات المستغلّة المعروفة، من 1.74.2 إلى 1.83.6، بما يشمل ناقل حقن عبر MCP | مستنتج من اسم الملف والمنتج |
sub2api_cve_exploit.json وثلاث مراحل لاحقة | CVE-2026-27812 | تسميم إعادة تعيين كلمة المرور في Sub2API عبر ترويسات Host وForwarded الموثوقة، بما يؤدي إلى الاستيلاء على الحساب. مستغلّة في الواقع، قبل الإصدار 0.1.85 | مستنتج |
newapi_stripe_bypass_results.json، newapi_stripe_exploited.json، newapi_quota_overflow_results.json | CVE-2026-41432 | تجاوز توقيع Stripe webhook في New-API عبر سر فارغ، ما يمنح حصة غير محدودة دون دفع، قبل الإصدار 0.12.10 | مستنتج |
newapi_user_token_leak_results.json، oneapi_user_token_leak_results.json، newapi_ssrf_bypass_results.json | CVE-2026-30886 | مرجع مباشر غير آمن للكائنات وتجاوز مصادقة في New-API على نقطة نهاية وكيل الفيديو، ما يكشف محتوى مستخدمين آخرين ويتيح للمهاجم إنفاق بيانات اعتماد الضحية لدى المزوّد | مستنتج |
litellm_ssti_prompts_results.json | لا يوجد تنبيه واحد محدّد | حقن قوالب من جهة الخادم بـ Jinja2 ضد نقاط نهاية المطالبات والقوالب | مستنتج |
لم تصلنا محتويات أي ملف؛ كل صف يستند إلى اسم الملف. وفي اثنين منها رصدنا التقنية بشكل مستقل وهي تصل إلى مستشعرنا، وهما تجاوز ترويسة Host وحقن SQL في المصادقة، وهذا يؤكّد التقنية لا الملف. أما الأربعة الأخرى فتستند إلى اسم الملف مضافاً إليه التنبيه المعروف للمنتج، وقد أُشير إلى ذلك.
النمط في الست كلها واحد. كل تنبيه من عام 2026، وعدد منها من الربع نفسه، ولا شيء منها بحث أصلي. تُصنّع keyHunter على نطاق واسع استغلال ثغرات عالية الخطورة كُشف عنها حديثاً في منظومة وكلاء نماذج اللغة المفتوحة المصدر لحظة ظهورها. تلك نافذة زمنية قصيرة، على صنف من البرمجيات كثيراً ما يثبّته مطوّر واحد ثم يُترك وحده.
النوايا: رواية المسابقة في مقابل مجلد النتائج
يصف المشغّل هذا العمل لوكيله بأنه مشاركة في مسابقة. والمعجم متسق في المحادثة المستعادة: 比赛项目 (مشروع مسابقة)، 评委 (حكّام)، 答辩材料 (مواد المناقشة الشفوية)، ومجلد contest-kit، وعمل منظّم في 第一轮 و第二轮، أي الجولتين الأولى والثانية.
وعند سؤاله عن النطاق، يكون المشغّل صريحاً في أن الهدف هو بيانات الاعتماد الافتراضية، بالنص الأصلي:
llm 的主要就是那几个默认密码为主流,用自己的 sk 那种没办法抓到啊
بالنسبة لنماذج اللغة، الغالب هو تلك الكلمات السرية الافتراضية القليلة؛ أما التي تستخدم مفاتيح
sk-*الخاصة بها، فلا سبيل إلى الحصول عليها.
يوافق الوكيل، ويؤكّد أن محاولات المصادقة تنحصر في ثلاث حالات: بلا مصادقة، وsk-test، وsk-1234، والأخير هو المفتاح المستخدم في توثيق البدء السريع الخاص بـ LiteLLM نفسه.
ثم هناك /root/keyHunter-skill/results/. تسمّي قائمته ملفات لتنفيذ شيفرة عن بعد، وحقن SQL، وحقن القوالب، وتزوير الطلبات من جهة الخادم، واختطاف الجلسات ضد Sub2API، ورشّ بيانات الاعتماد، وتسريب رموز المستخدمين، وتجاوز الحصة، وملفين لتجاوز Stripe-webhook، أحدهما newapi_stripe_exploited.json. نملك الأسماء، وفي بعض الملفات الأحجام؛ نتائج تجاوز Stripe تبلغ 2.4 ميغابايت، مع أن محتوياتها لم تصلنا. العبارة التي يمكن الدفاع عنها هي أن المشغّل بنى وشغّل أدوات لتجاوز الدفع بحصة غير محدودة ضد New-API، وأن CVE-2026-41432 ثغرة حقيقية من هذا النوع بالتحديد. أما ما إذا كانت الـ 2.4 ميغابايت من السجلات عمليات تعبئة مالية احتيالية مكتملة أم مجرد محاولات، فذلك خارج نطاق ما نراه. كلمة _exploited في اسم الملف هي وصف المشغّل نفسه؛ ونحن لم نقرأ السجلات.
نُبقي القراءتين مفتوحتين. قد تكون المسابقة حقيقية، ويكون الاستغلال مسار عمل منفصلاً لا يناقشه المشغّل مع وكيل يحفظ السجلات؛ أو قد تكون المسابقة غطاءً لعملية سرقة. ونقدّر أن هذا التمييز غير ذي أثر على المدافعين: فالقدرة والخطر على لوحة مكشوفة متطابقان في كلتا القراءتين.
ثغرة في أسلوب العمل: وكيل المشغّل نفسه دقّق مجموعة الأدوات
أنفع مقطع في المحادثة المستعادة هو مراجعة شيفرة. سأل المشغّل وكيله عن سبب انخفاض معدل إصابة المسح إلى هذا الحد، فمرّ الوكيل على الماسح سطراً سطراً.
جواب الوكيل، مكثّفاً إلى ما يمكن أن يستفيد منه مدافع: يضيف الماسح بروتوكولاً في مقدمة حقل host الوارد من FOFA وهو حقل يحمل بروتوكولاً في كثير من الأحيان، فتنتج عناوين بالشكل https://https://<target>، ومن ثم كانت مضيفات حيّة تُسجَّل ميتة. وتجمّع حزمة الخيوط النتائج بترتيب إنشائها لا بترتيب اكتمالها، فيُعيق طلب بطيء واحد كل ما يقف خلفه. وCONCURRENCY=200 على جهاز رباعي الأنوية يصنع مهلاته الزمنية بنفسه. وإزالة التكرار حسب عنوان IP تُهمل منافذ صحيحة أخرى على العنوان ذاته. وتثبيت temperature يجعل خطأ توافق يُقرأ على أنه فشل.
وبشأن كشفهم لمصائد العسل كان الوكيل صريحاً: فهو يحكم أساساً بما إذا كان الرد مطابقاً أو أقصر من خمسة أحرف، وهذا يقتل النماذج العادية ويُفلت الأفخاخ الجيدة. ورغم أن المشغّل طلب منه تحديد المستجيبين غير الصينيين، لم تتضمن الشيفرة أي منطق لكشف اللغة على الإطلاق.
كما أشار إلى ممارساتهم الأمنية: مفتاح FOFA مكتوب بشكل ثابت في السكربت، ومسارات مطلقة مكتوبة لـ /root بينما المستخدم الفعلي هو /home/developer، وexcept: pass يبتلع كل سبب فشل، ونسخة منفصلة من السكربت لكل دولة، وملفات نتائج تحتوي أهدافاً وطرق مصادقة بلا أي تحكم في الوصول ولا حجب للبيانات.
هذه النقطة الأخيرة تعيد تأطير مسار فرز النتائج. فمعدل الإصابة البالغ 0.61% في الولايات المتحدة يقيس الكشف عبر ماسح بأخطاء معروفة، ومن ثم فإن المعدل الحقيقي لنسخ LiteLLM المكشوفة أعلى مما تظهره نتائج المشغّل نفسه. وهم يملكون الآن وكيلاً سيواصل إصلاح تلك الأخطاء.
بنية تحقيق الدخل
المضيف نفسه يشغّل نسخة New-API خاصة به: calciumion/new-api:latest في Docker، منشورة على المنفذ 8901، وبياناتها موصولة على القرص بجانب نتائج المسح. وحولها يوجد newapi_watchdog.py، وملف نسخة احتياطية للقنوات، ونسخة مضغوطة من المنظومة بأكملها.
New-API لوحة تجميع. تأخذ كومة من مفاتيح المزوّدين وتعرضها كواجهة برمجة واحدة لها حسابات مستخدمين وحصص خاصة بها. وإقامة ذلك بجوار خط عمل لجمع المفاتيح لها غرض واضح: تصبح المفاتيح المجموعة قنوات في لوحة، وتصبح اللوحة وصولاً قابلاً للبيع. لم نرصد إعادة بيع ولا نزعم وقوعها؛ لكن التجهيزات اللازمة لها مثبّتة وقيد التشغيل.
تتداول أصلاً مئات من المُوجِّهات المجانية المشابهة المبنية على قوالب sub2api وnew-api، وkeyHunter عملية واحدة داخل تلك المنظومة.
ارتباطات العنقود
تربط بصمات العملاء هذين المضيفين بمجموعة فضفاضة من مضيفات أخرى تعمل على المساحة نفسها: مضيف تايواني يشغّل مسحاً للثغرات وتوليداً للمفاتيح، ومضيف في هونغ كونغ يرمي حقن SQL ذاته، وعلى مسافة قفزة إضافية، صيّاد لوحات نماذج لغة ومستغلّ للوحة Ray، وقع اندفاعهما في يوم واحد لكل منهما في 15 و21 أغسطس، بفارق ستة أيام. وتجري التقاطعات في بعض المواضع على حِزم عملاء عامة، ولذلك يُقرأ هذا على أنه أدوات مشتركة وساحة مشتركة لا يد واحدة على لوحة مفاتيح واحدة. تعامل معه كمجتمع مرتبط بالصين يتقاسم أدوات ملاحقة وكلاء نماذج اللغة. ولا يربطه أي مؤشر بمجموعة APT مُسمّاة، ولذلك نتابعه كعنقود نشاط.
مؤشرات الاختراق
الشبكة والبنية التحتية، منزوعة الأنياب:
| المؤشر | الدور |
|---|---|
39.98.82[.]200 | بوابة الوكيل، والاستطلاع، وحقن SQL (Alibaba Cloud، AS37963، CN) |
101.43.41[.]72 | نقطة نهاية مُرحِّلة على المنفذ 8087، وعامل وكيل فرعي مُفوَّض (Tencent Cloud، AS45090، CN) |
hamal.cc[.]cd | مرآة FOFA غير الرسمية التي يستعلمها الماسح |
cae332848db5… | مفتاح واجهة برمجة FOFA الخاص بالمشغّل، مكتوب بشكل ثابت في litellm_scan_hw.py. مقطوع هنا؛ احتُفظ بالقيمة الكاملة لإبلاغ FOFA بها بدلاً من نشرها |
بصمات العملاء ووكلاء المستخدم:
po11nn070000_ebbca96fac43_00000000 shared across both nodes
Hermes-Agent/0.18.0
Hermes-Panel/1.0
Mozilla/5.0 (CVE-2026-49468-Scanner)
آثار على المضيفات. هذه مسارات على أجهزة المشغّل، مفيدة في ملاحقة مضيف شبيه أو نشر ثانٍ:
/home/developer/litellm_verifier.py real-chat verifier and honeypot classifier
/home/developer/test_litellm_verifier.py unit tests
/home/developer/litellm_endpoint.py endpoint normalise and dedupe
/home/developer/litellm_scan_hw.py FOFA scanner, US, AWS excluded
/home/developer/litellm_scan_gb_hw.py
/home/developer/litellm_scan_it_hw.py
/home/developer/litellm_scan_us_30d_optimized.py
/home/developer/contest-kit/keyHunter-skill/
/home/developer/backups/litellm_verifier_round2_<ts>/SHA256SUMS
/root/keyHunter-skill/results/
/root/keyHunter-skill/{honeypot_test.py, verify_country_models.py, add_to_panel.py, report.py}
/root/.ssh/hw_vm_key key to the scanning VM, developer@127.0.0.1:8888
/opt/hermes-simple-panel/app.py config panel, port 9120
/root/new-api.tar.gz, /root/newapi_watchdog.py
أسماء المهارات والمشاريع، وهي أقوى محاور الارتكاز أحادية السلسلة:
keyhunter / keyHunter
contest-kit
ai-proxy-panel-audit
fofa-panel-recon
delegation-orchestration
سلوكية:
FOFA: (title="LiteLLM" || body="LiteLLM") && country="XX" && org!="AMAZON-AES"
auth: no credential, then sk-test, then sk-1234
SQLi: ' OR '1'='1 in the API key field
verify: a real chat completion per advertised model; a /models listing alone is rejected
verdict strings: honeypot_or_unusable, trusted_pass, unavailable,
formatted_false_success, non_chinese_evidence
services on actor infra: new-api :8901, config panel :9120, agent gateway
الكشف
إذا كنت تشغّل وكيل نماذج لغة قابلاً للوصول من الإنترنت، فالتتابع بأكمله ظاهر في سجلات البوابة نفسها. بصيغة Sigma، وهي صيغة القواعد المحايدة تجاه المورّدين التي يمكن لمعظم منصات SIEM استيرادها:
title: AI proxy panel enumeration consistent with keyHunter
id: 2c6f9a41-8e07-4b53-9f1a-7d0c4b62ae35
status: experimental
description: >
The keyHunter discovery and verification sequence against an exposed LLM
proxy: an unauthenticated model listing followed by per-model chat
completions from the same source, or one of the cluster's user agents.
references:
- https://kinryu.sh/reports/keyhunter-llm-proxy-key-harvesting/
logsource:
category: webserver
detection:
model_listing:
cs-uri-stem|endswith:
- '/v1/models'
- '/models'
admin_paths:
cs-uri-stem|startswith:
- '/key/'
- '/user/'
- '/organization/'
cluster_agents:
c-useragent|contains:
- 'Hermes-Agent'
- 'Hermes-Panel'
- 'CVE-2026-49468-Scanner'
admin_allowlist:
c-ip|cidr: '10.0.0.0/8' # replace with your own admin range
condition: (((model_listing or admin_paths) and not admin_allowlist) or cluster_agents)
falsepositives:
- Client libraries that legitimately call /v1/models on startup from allow-listed ranges
level: high
سجل وصول الويب لا يدوّن ترويسة Authorization، ولذلك يجب رصد محاولات بيانات الاعتماد الافتراضية والحقن في تدوين الطلبات الخاص بالوكيل نفسه: النص الحرفي sk-1234 وsk-test، وغياب بيانات الاعتماد، و' OR '1'='1 في حقل المفتاح.
ثلاث عمليات ملاحقة سلوكية لا تحتاج محرك قواعد:
- ابحث عن مصدر واحد يسرد نماذجك ثم يرسل إتمام محادثة قصيراً واحداً بالضبط إلى كل منها بالتوالي. تلك جولة التحقق هي بصمة العملية، ويصعب تمويهها.
- أطلق تنبيهاً على المطالبات التي تسأل النموذج أن يعلن هويته الحقيقية خلافاً لمُعامل واجهة البرمجة، وهو الفحص الذي يجريه المشتري قبل أن يثق بوصول مسروق.
- قارن قائمة قنوات لوحتك وجدول المستخدمين فيها بشكل دوري. استخراج المفاتيح وتصدير الحسابات يتركان اللوحة تعمل بشكل طبيعي، ولذلك لن يخبرك شيء آخر.
ما يجب فعله
اعتبر أي وكيل نماذج لغة مكشوف على الإنترنت مخترقاً بمجرد كشفه. تمسح keyHunter دولة في يوم واحد، وتستغل ثغرات CVE المنشورة في غضون أسابيع من الإعلان عنها.
- ضع LiteLLM وOne-API وNew-API وSub2API وأي شيء مشابه خلف وكيل عكسي يفرض المصادقة، أو على شبكة خاصة. لا يأتي أي منها بإعداد افتراضي قابل للدفاع عنه عند الكشف على الإنترنت.
- حدّث إلى الإصدارات الحالية. من التنبيهات الستة أعلاه، تنفيذ الشيفرة عن بعد في LiteLLM مدرج في قائمة CISA للثغرات المستغلّة المعروفة، والاستيلاء على الحساب في Sub2API مؤكّد استغلاله في الواقع.
- غيّر المفتاح الرئيسي.
sk-1234هو القيمة الواردة في دليل البدء السريع الخاص بـ LiteLLM، وهو واحد من ثلاثة بيانات اعتماد فقط يتكبّد هذا المشغّل عناء تجربتها. - قيّد الوصول إلى
/openapi.jsonو/docs. لا ينبغي أن يتمكن عميل مجهول من تنزيل مساحة واجهة البرمجة الإدارية لديك. - ضع سقفاً مالياً ونطاقاً محدداً لكل مفتاح افتراضي، بحيث لا ينتج الاستخراج شيئاً يستحق إعادة البيع.
- إذا كنت تتلقى مدفوعات Stripe عبر New-API، فتحقق من أن سر توقيع الـ webhook مضبوط فعلاً. السر الفارغ هو جوهر CVE-2026-41432 بأكمله.
- دوّر كل مفتاح مزوّد مرّ في أي لوحة لا يمكنك إثبات أنها لم تُكشف قطّ.
المقابلة مع MITRE ATT&CK
| التكتيك | التقنية |
|---|---|
| الاستطلاع | T1596.005 البحث في قواعد البيانات التقنية المفتوحة: قواعد بيانات المسح (FOFA، لكل دولة، باستثناء AWS)؛ T1595.002 المسح النشط: مسح الثغرات (سبر HTTP خفيف وعميق) |
| تطوير الموارد | T1583.003 الحصول على بنية تحتية: خادم خاص افتراضي (Alibaba، Tencent، Huawei)؛ T1588.002 الحصول على قدرات: أداة (Hermes Agent، OpenClaw، اشتراك FOFA، وgithub_copilot/gpt-5.6-sol كمحرك استدلال) |
| الوصول الأولي | T1190 استغلال تطبيق مواجه للعامة (تجاوز المصادقة بترويسة Host، وحقن SQL قبل المصادقة، وحقن الأوامر، وSSTI، وSSRF ضد LiteLLM وSub2API وNew-API) |
| التهرب من الدفاعات | T1480 ضوابط التنفيذ (تصنيف مصائد العسل، وتقييم non_chinese_evidence، وترشيح org!="AMAZON-AES") |
| الوصول إلى بيانات الاعتماد | T1078.001 حسابات صحيحة: الحسابات الافتراضية (بلا بيانات اعتماد، sk-test، sk-1234)؛ T1552.001 بيانات اعتماد غير مؤمّنة: بيانات اعتماد في ملفات (استخراج المفاتيح إلى exported_keys.json) |
| الاستكشاف | T1518 استكشاف البرمجيات (سرد النماذج والتحقق لكل نموذج)؛ T1087 استكشاف الحسابات (تعداد المستخدمين على مستوى الإدارة) |
| الجمع | T1213 بيانات من مستودعات المعلومات (تصدير الحسابات وتوحيدها وأرشفتها) |
| القيادة والتحكم | T1102 خدمة ويب (خيط WeChat كقناة تكليف) |
| الأثر | T1657 السرقة المالية (تجاوز Stripe webhook، وتجاوز الحصة)؛ T1496 اختطاف الموارد (تجهيزات إعادة بيع الاستنتاج المجموع) |
المنهجية وملاحظات المحلّل
كل ما سبق تقريباً هو مخرجات نشرها وكيل المشغّل نفسه إلى إحدى مصائد العسل الخاصة بنا بين 16 و20 أغسطس 2026: 283 مساراً مميزاً لملفات، وقوائم خدمات وحاويات، وملخصات نتائج مسح، وعمليات بحث أجراها الوكيل في ذاكرته على WeChat.
وما نملكه هو بالتالي مجموعة فرعية من نظامهم الحقيقي، محدودة بما تصادف أن عدّه وكيلهم. لم تصلنا محتويات أي ملف؛ لدينا الأسماء والأحجام والطوابع الزمنية من قوائم مجلدات المشغّل نفسه. وحصائل المسح وأعداد الأحكام هي أرقام المشغّل نفسه، أوردتها أدواته، ولم نتحقق من أي منها بشكل مستقل. وقد وجد وكيلهم أخطاءً حقيقية في ماسحهم، ولذلك ينبغي قراءة معدلات الإصابة كحد أدنى للكشف لا كقياس له.
المحادثة الصينية مترجمة. أما السلاسل التقنية والمسارات والمعرّفات فقد تُركت حرفياً في هذا التقرير وفي الترجمة معاً.
أربعة حدود لما يدعمه هذا العمل. يتوقف العزو عند عنقود نشاط على بنية تحتية مقرّها الصين تستخدم الصينية في كل موضع؛ ولا صلة له بمجموعة مُسمّاة، ونحن لا نعرض أي صلة. والنوايا ملتبسة فعلاً بين مشاركة في مسابقة وعملية سرقة. ولم تصلنا محتويات أي ملف استغلال، ومن ثم فإن مقابلات ثغرات CVE الست كلها تستند إلى أسماء الملفات؛ وفي اثنتين منها رُصدت التقنية بشكل مستقل وهي تصل إلى مستشعرنا، وهذا يؤكّد التقنية لا الملف. وما إذا كان مفتاح مسروق قد أُنفق لاحقاً فغير معلوم: مخرجات المشغّل تعطي أعداداً فقط، 3 مستخرجة و17 مُصدَّراً، ولا قيمة مفتاح يمكن تتبّعها.
حُجبت عناوين الأطراف الثالثة التي لمسها ماسحهم، ومنها المضيف الذي أشاروا إليه بأنفسهم كمصيدة عسل، وهو يعود إلى بحث يملكه طرف آخر. ومفتاح واجهة برمجة FOFA الخاص بهم مقطوع هنا.
مجموعات المؤشرات الكاملة وعمليات الرصد الأساسية متاحة للباحثين عند الطلب: contact@kinryu.sh.