
أداة هجوم لإدارة شيفرات المصدر
Source Code Management Attack Toolkit - SCMKit هي مجموعة أدوات يمكن استخدامها لمهاجمة أنظمة إدارة الكود المصدري (SCM). تسمح SCMKit للمستخدم بتحديد نظام SCM ووحدة الهجوم المراد استخدامها، بالإضافة إلى تحديد بيانات اعتماد صالحة (اسم مستخدم/كلمة مرور أو مفتاح API) لنظام SCM المعني. حاليًا، أنظمة SCM التي تدعمها SCMKit هي GitHub Enterprise و GitLab Enterprise و Bitbucket Server. تتضمن وحدات الهجوم المدعومة الاستطلاع ورفع الامتيازات والثبات. تم بناء SCMKit بطريقة نمطية، بحيث يمكن إضافة وحدات وأنظمة SCM جديدة في المستقبل من قبل مجتمع أمن المعلومات.
المكتبات الخارجية التالية تابعة لجهات ثالثة مستخدمة في هذا المشروع.
| المكتبة | الرابط | الترخيص |
|---|---|---|
| Octokit | https://github.com/octokit/octokit.net | MIT License |
| Fody | https://github.com/Fody/Fody | MIT License |
| GitLabApiClient | https://github.com/nmklotas/GitLabApiClient | MIT License |
| Newtonsoft.Json | https://github.com/JamesNK/Newtonsoft.Json | MIT License |
اتبع الخطوات أدناه لإعداد Visual Studio من أجل تجميع المشروع بنفسك. يتطلب هذا مكتبة .NET يمكن تثبيتها من مدير الحزم NuGet.
https://api.nuget.org/v3/index.jsonInstall-Package Costura.Fody -Version 3.3.3Install-Package OctokitInstall-Package GitLabApiClientInstall-Package Newtonsoft.Jsonالجدول أدناه يوضح مكان دعم كل وحدة
| سيناريو الهجوم | الوحدة | يتطلب مسؤولًا؟ | GitHub Enterprise | GitLab Enterprise | Bitbucket Server |
|---|---|---|---|---|---|
| استطلاع | listrepo | لا | X | X | X |
| استطلاع | searchrepo | لا | X | X | X |
| استطلاع | searchcode | لا | X | X | X |
| استطلاع | searchfile | لا | X | X | X |
| استطلاع | listsnippet | لا | X | ||
| استطلاع | listrunner | لا | X | ||
| استطلاع | listgist | لا | X | ||
| استطلاع | listorg | لا | X | ||
| استطلاع | privs | لا | X | X | |
| استطلاع | protection | لا | X | ||
| ثبات | listsshkey | لا | X | X | X |
| ثبات | removesshkey | لا | X | X | X |
| ثبات | createsshkey | لا | X | X | X |
| ثبات | listpat | لا | X | X | |
| ثبات | removepat | لا | X | X | |
| ثبات | createpat | نعم (GitLab Enterprise فقط) | X | X | |
| رفع امتيازات | addadmin | نعم | X | X | X |
| رفع امتيازات | removeadmin | نعم | X | X | X |
| استطلاع | adminstats | نعم | X |
اكتشاف المستودعات المستخدمة في نظام SCM معين
قم بتوفير الوحدة listrepo، بالإضافة إلى أي معلومات مصادقة ذات صلة والرابط. سيؤدي هذا إلى إخراج اسم المستودع والرابط.
سيؤدي هذا إلى سرد جميع المستودعات التي يمكن للمستخدم رؤيتها.
SCMKit.exe -s github -m listrepo -c userName:password -u https://github.something.local
SCMKit.exe -s github -m listrepo -c apiKey -u https://github.something.local
سيؤدي هذا إلى سرد جميع المستودعات التي يمكن للمستخدم رؤيتها.
SCMKit.exe -s gitlab -m listrepo -c userName:password -u https://gitlab.something.local
SCMKit.exe -s gitlab -m listrepo -c apiKey -u https://gitlab.something.local
سيؤدي هذا إلى سرد جميع المستودعات التي يمكن للمستخدم رؤيتها.
SCMKit.exe -s bitbucket -m listrepo -c userName:password -u https://bitbucket.something.local
SCMKit.exe -s bitbucket -m listrepo -c apiKey -u https://bitbucket.something.local
C:>SCMKit.exe -s gitlab -m listrepo -c username:password -u https://gitlab.hogwarts.local
================================================== Module: listrepo System: gitlab Auth Type: Username/Password Options: Target URL: https://gitlab.hogwarts.local