
أداة WinRM shell المثلى للاختراق/اختبار الاختراق
الصدفة المثلى لـ WinRM للاختراق/الاختبار الأمني

هذه الصدفة هي الصدفة المثلى لـ WinRM للاختراق/الاختبار الأمني.
WinRM (الإدارة عن بُعد لنظام ويندوز) هو تطبيق مايكروسوفت لبروتوكول WS-Management. وهو بروتوكول قياسي يعتمد على SOAP يسمح للأجهزة وأنظمة التشغيل من بائعين مختلفين بالتفاعل مع بعضها البعض. أدرجته مايكروسوفت في أنظمة تشغيلها لتسهيل حياة مسؤولي الأنظمة.
يمكن استخدام هذا البرنامج على أي خوادم ويندوز من مايكروسوفت مع تفعيل هذه الميزة (عادةً على المنفذ 5985)، بالطبع فقط إذا كانت لديك بيانات اعتماد وصلاحيات لاستخدامه. لذا يمكننا القول إنه يمكن استخدامه في مرحلة ما بعد الاستغلال في الاختراق/الاختبار الأمني. الغرض من هذا البرنامج هو توفير ميزات سهلة ومريحة للاختراق. يمكن استخدامه أيضًا لأغراض مشروعة من قبل مسؤولي الأنظمة، لكن معظم ميزاته تركز على أمور الاختراق/الاختبار الأمني.
يعتمد بشكل أساسي على مكتبة WinRM الخاصة بـ Ruby والتي غيّرت طريقة عملها منذ إصدارها 2.0. الآن بدلاً من استخدام بروتوكول WinRM، يستخدم PSRP (بروتوكول الاتصال عن بُعد لـ Powershell) لتهيئة مجموعات runspace بالإضافة إلى إنشاء ومعالجة خطوط الأنابيب.
Usage: evil-winrm -i IP -u USER [-s SCRIPTS_PATH] [-e EXES_PATH] [-P PORT] [-a USERAGENT] [-p PASS] [-H HASH] [-U URL] [-S] [-c PUBLIC_KEY_PATH ] [-k PRIVATE_KEY_PATH ] [-r REALM] [-K TICKET_FILE] [--spn SPN_PREFIX] [-l] -S, --ssl Enable ssl -c, --pub-key PUBLIC_KEY_PATH Local path to public key certificate -k, --priv-key PRIVATE_KEY_PATH Local path to private key certificate -r, --realm DOMAIN Kerberos auth, it has to be set also in /etc/krb5.conf file using this format -> CONTOSO.COM = { kdc = fooserver.contoso.com } -K, --ccache TICKET_FILE Path to Kerberos ticket file (ccache or kirbi format, auto-detected) -s, --scripts PS_SCRIPTS_PATH Powershell scripts local path --spn SPN_PREFIX SPN prefix for Kerberos auth (default HTTP) -e, --executables EXES_PATH C# executables local path -i, --ip IP Remote host IP or hostname. FQDN for Kerberos auth (required) -U, --url URL Remote url endpoint (default /wsman) -u, --user USER Username (required if not using kerberos) -p, --password PASS Password -H, --hash HASH NTHash -P, --port PORT Remote host port (default 5985) -a, --user-agent Specify connection user-agent (default Microsoft WinRM Client) -V, --version Show version -n, --no-colors Disable colors -N, --no-rpath-completion Disable remote path completion -l, --log Log the WinRM session -h, --help Display this help message
## المتطلبات
يلزم توفر Ruby 2.3 أو إصدار أحدث. كما يلزم توفر بعض حِزم ruby gems: `winrm >=2.3.7`, `winrm-fs >=1.3.2`, `stringio >=0.0.2`, `logger >= 1.4.3`, `fileutils >= 0.7.2`, `readline ~> 0.0.4`, `readline-ext ~> 0.2.0`.
اعتمادًا على طريقة التثبيت لديك (4 طرق متاحة)، قد يلزم تثبيتها يدويًا.
من المتطلبات المهمة الأخرى المستخدمة فقط لمصادقة Kerberos هو تثبيت حزمة Kerberos المستخدمة للمصادقة عبر الشبكة.
بالنسبة لبعض توزيعات Linux القائمة على Debian (مثل Kali وParrot وغيرها)، تُسمى `krb5-user`. أما بالنسبة لـ BlackArch فتُسمى `krb5`، وقد تُسمى بطريقة مختلفة في توزيعات Linux الأخرى.
تتطلب ميزة إكمال المسار البعيد ربط `readline-ext` الأصلي، والذي يتم تثبيته تلقائيًا كاعتماد لـ Evil-WinRM. تتطلب بعض الأنظمة حزم تطوير إضافية لتجميعه. راجع [القسم أدناه](#Remote-path-completion) لمزيد من المعلومات.
## التثبيت والبدء السريع (4 طرق)
### الطريقة 1. التثبيت مباشرة كـ ruby gem (سيتم تثبيت الاعتماديات تلقائيًا على نظامك)
- الخطوة 1. قم بتثبيته (سيقوم تلقائيًا بتثبيت الاعتماديات): ```gem install evil-winrm```
- الخطوة 2. انتهيت. فقط قم بتشغيله!```
evil-winrm -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'
sudo gem install winrm winrm-fs stringio logger fileutils readline readline-extgit clone https://github.com/Hackplayers/evil-winrm.git### الطريقة 3. استخدام bundler (لن يتم تثبيت التبعيات على نظامك، فقط لاستخدام evil-winrm)
- الخطوة 1. تثبيت bundler: `gem install bundler`
- الخطوة 2. استنساخ المستودع: `git clone https://github.com/Hackplayers/evil-winrm.git`
- الخطوة 3. تثبيت التبعيات باستخدام bundler: `cd evil-winrm && bundle install --path vendor/bundle`
- الخطوة 4. تشغيله باستخدام bundler:```
bundle exec evil-winrm.rb -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'
## التوثيق
### كلمة المرور كنص واضح
إذا كنت لا تريد وضع كلمة المرور كنص واضح، يمكنك اختيارياً تجنب تعيين الوسيط `-p` وسيُطلب منك إدخال كلمة المرور دون إظهارها.
### Ipv6
لاستخدام IPv6، يجب إضافة العنوان إلى ملف /etc/hosts. فقط ضع اسم المضيف المُحدد مسبقاً بعد الوسيط `-i` بدلاً من عنوان IP.
### الأوامر الأساسية
- **upload**: يمكن إكمال الملفات المحلية تلقائياً باستخدام مفتاح tab.
- الاستخدام: `upload local_filename` أو `upload local_filename destination_filename`
- **download**:
- الاستخدام: `download remote_filename` أو `download remote_filename destination_filename`
__ملاحظات حول المسارات (upload/download)__:
لا يُسمح باستخدام المسارات النسبية في download/upload. استخدم أسماء الملفات في الدليل الحالي أو المسار المطلق.
إذا كنت تستخدم Evil-WinRM في بيئة docker، ضع في اعتبارك أن جميع المسارات المحلية يجب أن تكون في `/data` وتأكد تماماً من أنك قمت بتعيينها كوحدة تخزين (volume) لتتمكن من الوصول إلى الملفات التي تم تنزيلها أو لتتمكن من رفع الملفات من نظام التشغيل المحلي لديك.