
نسخة C# من أداة WMImplant تستخدم إما CIM أو WMI للاستعلام عن الأنظمة البعيدة.
نسخة C# من WMImplant تستخدم إما CIM أو WMI للاستعلام عن الأنظمة عن بُعد. يمكنها استخدام بيانات اعتماد مقدمة أو جلسة المستخدم الحالية.
ملاحظة: بعض الأوامر ستستخدم PowerShell مع WMI، ويُشار إليها بـ ** في الأمر --show-commands.
CIMplant هي إعادة كتابة بلغة C# وتوسيع لأداة WMImplant الخاصة بـ @christruncer. تسمح لك بجمع بيانات حول نظام عن بُعد، وتنفيذ الأوامر، واستخراج البيانات، والمزيد. تتيح الأداة الاتصالات باستخدام Windows Management Instrumentation، WMI، أو Common Interface Model، CIM؛ وبشكل أكثر دقة Windows Management Infrastructure، MI. تتطلب CIMplant أذونات مدير محلي على النظام المستهدف.
من المحتمل أن يكون من الأسهل استخدام الإصدار المبني ضمن Releases، فقط لاحظ أنه تم تجميعه في وضع Debug. إذا كنت ترغب في بناء الحل بنفسك، اتبع الخطوات أدناه.
CIMplant.exe --help
CIMplant.exe --show-commands
CIMplant.exe --show-examples
CIMplant.exe -s [remote IP address] -c cat -f c:\users\user\desktop\file.txt
CIMplant.exe -s [remote IP address] -u [username] -d [domain] -p [password] -c cat -f c:\users\test\desktop\file.txt
CIMplant.exe -s [remote IP address] -u [username] -d [domain] -p [password] -c command_exec --execute "dir c:\\"
cat - يقرأ محتويات ملف
copy - ينسخ ملف من موقع إلى آخر
download** - ينزل ملفًا من الجهاز المستهدف
ls - يسرد ملفات/دلائل دليل معين
search - يبحث عن ملف على مستخدم
upload** - يرفع ملفًا إلى الجهاز المستهدف
command_exec** - ينفذ أمر سطر أوامر ويستقبل المخرجات. استخدم مع nops flag لتعطيل PowerShell
disable_wdigest - يضبط قيمة التسجيل لـ UseLogonCredential إلى صفر
enable_wdigest - يضيف قيمة التسجيل UseLogonCredential
disable_winrm** - يعطل WinRM على النظام المستهدف
enable_winrm** - يفعل WinRM على النظام المستهدف
reg_mod - يعدل التسجيل على الجهاز المستهدف
reg_create - ينشئ قيمة تسجيل على الجهاز المستهدف
reg_delete - يحذف التسجيل على الجهاز المستهدف
remote_posh** - يشغل سكربت PowerShell على جهاز عن بُعد ويستقبل المخرجات
sched_job - لم يتم تطبيقه بسبب وصول Win32_ScheduledJobs لواجهة برمجة قديمة
service_mod - ينشئ أو يحذف أو يعدل خدمات النظام
process_kill - يقتل عملية عن طريق الاسم أو معرف العملية على الجهاز المستهدف
process_start - يبدأ عملية على الجهاز المستهدف
ps - سرد العمليات
active_users - يسرد مستخدمي المجال ذوي العمليات النشطة على النظام المستهدف
basic_info - يُستخدم لسرد البيانات الوصفية الأساسية حول النظام المستهدف
drive_list - يسرد محركات الأقراص المحلية والشبكية
ifconfig - يتلقى معلومات IP من بطاقات الشبكة ذات الاتصالات النشطة
installed_programs - يتلقى قائمة بالبرامج المثبتة على الجهاز المستهدف
logoff - يسجل خروج المستخدمين من الجهاز المستهدف
reboot (or restart) - يعيد تشغيل الجهاز المستهدف
power_off (or shutdown) - يطفئ الجهاز المستهدف
vacant_system - يحدد إذا كان المستخدم بعيدًا عن النظام
edr_query - يستعلم من النظام المحلي أو عن بُعد عن بائعي EDR
logon_events - يحدد المستخدمين الذين سجلوا الدخول إلى نظام
* يمكن تعطيل كل PowerShell باستخدام العلم --nops، على الرغم من أن بعض الأوامر لن تنفذ (الرفع/التنزيل، تمكين/تعطيل WinRM)
** يشير إلى استخدام PowerShell (إما باستخدام PowerShell Runspace أو عبر طريقة Win32_Process::Create)

أردت برمجة CIMplant بطريقة تسمح باستخدامها عبر execute-assembly بحيث يتم حزم كل شيء في ملف تنفيذي واحد ويتم تحميله بشكل عاكس. يجب أن تكون قادرًا على تشغيل جميع الأوامر عبر beacon دون مشاكل. استمتع!

هذا هو عقل العملية، محرك البرنامج.
هنا يتم إنشاء اتصالات CIM/WMI الأولية وتمريرها لبقية التطبيق
كل شيفرة الوظائف لأوامر WMI
كل شيفرة الوظائف لأوامر CIM (MI)
بالطبع، أول شيء سنريد الانتباه إليه هو الاتصال الأولي بـ WMI أو CIM. بشكل عام، يستخدم WMI بروتوكول DCOM كبروتوكول اتصال بينما يستخدم CIM بروتوكول WSMan (أو WinRM). يمكن تعديل هذا لـ CIM، وقد تم ذلك في CIMplant، لكن دعنا نغطي القيم الافتراضية الآن. بالنسبة لـ DCOM، أول شيء يمكننا فعله هو البحث عن اتصالات TCP الأولية عبر المنفذ 135. بعد ذلك، ستتفق الأنظمة المتصلة والمستقبلة على منفذ جديد وعالي جدًا لاستخدامه، لذا سيختلف ذلك بشكل كبير. بالنسبة لـ WSMan، الاتصال الأولي عبر TCP يكون عبر المنفذ 5985.
بعد ذلك، سترغب في النظر إلى سجل أحداث Microsoft-Windows-WMI-Activity/Trace في عارض الأحداث. ابحث عن معرف الحدث 11 وقم بالتصفية على الخاصية IsLocal إذا أمكن. يمكنك أيضًا البحث عن معرف الحدث 1295 ضمن سجل Microsoft-Windows-WinRM/Analytic.
أخيرًا، سترغب في البحث عن أي تعديلات على خاصية DebugFilePath باستخدام فئة Win32_OSRecoveryConfiguration. يمكن العثور على معلومات أكثر تفصيلاً حول الكشف في الجزء 1 من سلسلة مدوناتنا هنا: CIMplant الجزء 1: كشف تنفيذ C# لـ WMImplant