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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
arcgis-web-shell — خدمة المعالجة الجغرافية ArcGIS Enterprise التي تنشر صندوق أدوات Python لتنفيذ الأوامر. | Kitploit
أدوات/GitHubGitHub/ryanpohlner/arcgis-web-shell
تصعيد الامتيازاتالاستغلالاستغلال تطبيقات الويبما بعد الاستغلالاختبار الاختراقالفريق الأحمرأداة الوصول عن بعدتطوير الحمولات
GitHubryanpohlner/arcgis-web-shell

arcgis-web-shell

خدمة المعالجة الجغرافية ArcGIS Enterprise التي تنشر صندوق أدوات Python لتنفيذ الأوامر.

عرض المستودع
539منذ 4 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

ArcGIS Web Shell عبر خدمة المعالجة الجغرافية

يحتوي هذا المستودع على تعريف خدمة معالجة جغرافية في ArcGIS ينشر صندوق أدوات Python كمهمة تنفيذ أوامر. وهو مخصص لاختبارات الأمان المصرّح بها.

لا تنشر هذه الخدمة أو تستخدمها على أنظمة لا تملك تصريحًا صريحًا بشأنها. تُشغّل خدمة المعالجة الجغرافية شيفرة من جهة الخادم بحساب خدمة ArcGIS Server، لذا يمكن لهذا المشروع إنشاء واجهة شبيهة بـ web-shell للوصول إلى المضيف.

ما هذا

الأثر الرئيسي هو ArcGIS_Shell، وهي مهمة صندوق أدوات Python بمعامل إدخال واحد:

command

عندما تُنفَّذ المهمة، يشغّل الخادم ذلك الأمر عبر صدفة نظام التشغيل ويعيد مخرجات الطرفية العادية عبر نتيجة مهمة ArcGIS.

يتضمن المستودع ملفَّي تعريف خدمة ArcGIS مبنيَّين مسبقًا:

ArcGIS_Shell_10.9.1_and_earlier.sd
ArcGIS_Shell_11_or_later.sd

كما يتضمن مجلدات تعريفات الخدمات المستخرجة:

ArcGIS_Shell_10.9.1_and_earlier/
ArcGIS_Shell_11_or_later/

تحتوي هذه المجلدات على الملفات التي تحزمها ArcGIS في أرشيفات .sd، بما في ذلك ملفات ArcGIS_Shell.pyt المضمّنة. عدّل المجلدات المستخرجة عند تغيير تعريف الخدمة، ثم أعد بناء ملفات .sd باستخدام package_sd.py.

تعريفات الخدمة

تعريف خدمة ArcGIS (.sd) هو حزمة نشر مُغلّفة. يحتوي على بيانات وصفية للخدمة، وإعدادات التكوين، وموارد صندوق الأدوات أو الخريطة، والملفات الداعمة التي يحتاجها ArcGIS Server لنشر خدمة.

في هذا المستودع، كل ملف .sd هو أرشيف 7-Zip يستخدم إعدادات ضغط متوافقة مع ArcGIS:

-ms=off
-m0=LZMA:d=14

يختلف مجلدا تعريف الخدمة بشكل أساسي حسب إصدار حزمة ArcGIS:

10.9.1 and earlier: p20 paths, offlineSDVersion10x, ArcGIS 2.9 schema
11 or later:        p30 paths, offlineSDVersion11,  ArcGIS 3.1 schema

منطق صندوق أدوات Python المضمّن هو نفسه في كليهما.

خدمات المعالجة الجغرافية

تُستخدم خدمات المعالجة الجغرافية في ArcGIS عادةً لعرض سير عمل التحليل الجغرافي (GIS) عبر HTTP. سير العمل الشائع هو:

  1. تأليف صندوق أدوات Python أو نموذج أو أداة نصية برمجية في ArcGIS Pro.
  2. نشرها كخدمة معالجة جغرافية.
  3. استدعاء الخدمة من عملاء ArcGIS أو تطبيقات الويب أو عملاء REST.
  4. ترك ArcGIS Server يشغّل الأداة ويعيد النتائج.

تشمل الأمثلة المشروعة قصّ المعالم، وتشغيل تحليل الشبكات، ومعالجة البيانات النقطية (raster)، وإنشاء التقارير، وتنفيذ تحويلات GIS الدفعية.

الخاصية الأمنية المهمة هي أن مهام المعالجة الجغرافية تنفّذ Python على جانب الخادم. إذا قبلت مهمة منشورة مدخلات يتحكم بها المستخدم ومرّرتها إلى عناصر أولية خطرة مثل subprocess.run(..., shell=True)، فإن مهمة المعالجة الجغرافية تصبح واجهة لتنفيذ الأوامر. وهذا ما يوضّحه هذا المشروع.

لماذا يمكن إساءة استخدام هذا

تقبل مهمة Shell معامل نصيًا باسم command. يشغّل صندوق أدوات Python ذلك الأمر على مضيف ArcGIS Server ويعيد stdout/stderr في نتيجة المهمة.

وهذا يعني أن مشغّلًا يملك صلاحية نشر خدمات المعالجة الجغرافية في ArcGIS أو إدارتها يمكنه إنشاء خدمة شبيهة بـ web-shell عبر وظائف ArcGIS العادية. يعمل الأمر في سياق الأمان الخاص بحساب عملية ArcGIS Server.

كما تمكّن الخدمة قدرة Uploads في ArcGIS. وهذا يعرّض نقاط نهاية الرفع الخاصة بالخدمة:

/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads
/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads/upload

تُخزَّن الملفات المرفوعة بواسطة ArcGIS Server في دليل نظام الموقع، عادةً ضمن مسار مثل:

<arcgisserver>/directories/arcgissystem/arcgisuploads/<itemID>

المسار الدقيق يعتمد على تكوين دليل ArcGIS Server. يمكن للمسؤولين عرض العناصر المرفوعة من خلال:

https://<server>/arcgis/admin/uploads?f=pjson

لا تعدّل أو تحذف الملفات يدويًا في arcgissystem. احذف عناصر التحميل عبر REST أو دليل المسؤول (Administrator Directory).

النشر عبر ArcGIS Server Manager

استخدم ملف .sd المطابق لإصدار ArcGIS المستهدف:

ArcGIS_Shell_10.9.1_and_earlier.sd
ArcGIS_Shell_11_or_later.sd

تدفق Server Manager النموذجي:

  1. افتح ArcGIS Server Manager:

    https://<server>/arcgis/manager
    
  2. سجّل الدخول باستخدام حساب مُصرَّح له بنشر الخدمات. يتضمن ذلك عادةً portaladmin.

  3. انتقل إلى Services.

  4. انقر على Publish Service.

  5. ارفع ملف .sd المناسب لإصدار ArcGIS. انقر على Next.

  6. في صفحة "Specify properties for your new service"، عدّل اسم الخدمة إذا رغبت. انقر على Next.

  7. في صفحة "Share your services with"، لا تحتاج إلى تحديد أي مربعات. انقر على Publish.

  8. تبدأ الخدمة تلقائيًا. انقر على اسم الخدمة، ثم Capabilities، ثم REST URL.

لحذف الخدمة، انقر على "X" بجوار اسم الخدمة.

تتضمن ملفات .sd المُعدّة مسبقًا بالفعل:

"capabilities": "Uploads"

كما تتضمن إعدادات رفع واسعة النطاق للاختبار:

"maxUploadFileSize": "2048",
"allowedUploadFileTypes": "<broad explicit extension list>"

maxUploadFileSize بوحدة الميغابايت. قائمة الامتدادات واسعة عمدًا لأعمال التقييم، لكنها لا تزال قائمة سماح صريحة، وليست حرف بدل حقيقيًا "يسمح بكل شيء".

استخدام واجهة الويب REST GUI

بعد النشر، افتح الخدمة في دليل خدمات ArcGIS REST:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer

إذا كانت الخدمة منشورة داخل مجلد، فأدرج اسم المجلد:

https://<server>/arcgis/rest/services/<folder>/ArcGIS_Shell/GPServer

افتح المهمة:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/Shell

انقر على Execute Task.

عيّن أمرك وأرسل النموذج. يجب أن تحتوي نتيجة المهمة على مخرجات الأمر.

المخرجات بتنسيق JSON، لذا تُهرَّب الأسطر الجديدة (\r\n). ستحتاج إلى معالجة المخرجات متعددة الأسطر لاحقًا.

نظرًا لأن المهمة تستخدم صدفة نظام التشغيل، فإن أوامر الصدفة المدمجة تعمل:

dir
echo test
whoami /groups

على أهداف Linux، استخدم أوامر Linux:

id
uname -a
pwd

رفع الملفات

افتح مورد الرفع:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads

انقر على Upload Item، أو انتقل مباشرةً إلى:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads/upload

يجب أن تعرض واجهة الويب REST منتقي ملفات إذا كانت عمليات الرفع مفعّلة.

استخدم النموذج لاختيار ملف وإرسال الرفع. تتضمن الاستجابة itemID.

افحص العنصر المرفوع باستخدام:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads/<itemID>

احذف العنصر المرفوع باستخدام:

https://<server>/arcgis/rest/services/ArcGIS_Shell/GPServer/uploads/<itemID>/delete

استخدم نموذج الويب REST الموجود في تلك الصفحة لإرسال عملية الحذف.

تخضع الملفات المرفوعة أيضًا لسياسة تنظيف دليل نظام ArcGIS Server. عادةً ما تكون مدة التنظيف الافتراضية لدليل النظام 24 ساعة، لكن يمكن للمسؤولين تغييرها.

العثور على الملفات المرفوعة على القرص

يخزّن ArcGIS عمليات رفع الخدمات في دليل نظام موقع ArcGIS Server، وليس في مجلد الخدمة ولا داخل حزمة .sd. الموقع المعتاد هو:

<server-directories-root>/arcgissystem/arcgisuploads/<itemID>/

تخطيط Windows الشائع:

C:\arcgisserver\directories\arcgissystem\arcgisuploads\<itemID>\

التخطيط الشائع في لينكس:

/arcgis/server/usr/directories/arcgissystem/arcgisuploads/<itemID>/

هذه مجرد أمثلة. يعتمد المسار الدقيق على كيفية تكوين أدلة موقع ArcGIS Server.

للعثور على مسار القرص الدقيق، افتح دليل المسؤول (Administrator Directory):

https://<server>/arcgis/admin/uploads?f=pjson

ابحث عن itemID الخاص بالعنصر المرفوع. يجب أن يتضمن الإدخال حقولًا مشابهة لما يلي:

{
  "itemID": "if4582d33-f10a-41fe-85bc-cf2e2880c46e",
  "itemName": "authorized_test_binary.exe",
  "pathOnServer": "c:\\arcgisserver\\directories\\arcgissystem\\arcgisuploads\\if4582d33-f10a-41fe-85bc-cf2e2880c46e",
  "committed": true
}

pathOnServer هو دليل عنصر الرفع. يكون الملف المرفوع عادةً داخل ذلك الدليل باستخدام itemName، لذا يكون مسار الملف الكامل عادةً:

<pathOnServer>\<itemName>

للمثال أعلاه:

C:\arcgisserver\directories\arcgissystem\arcgisuploads\if4582d33-f10a-41fe-85bc-cf2e2880c46e\authorized_test_binary.exe

على Linux:

/arcgis/server/usr/directories/arcgissystem/arcgisuploads/if4582d33-f10a-41fe-85bc-cf2e2880c46e/authorized_test_binary
تنزيل الأداة