windows - تحميل - run the application with admin rights pes 2018




ما الذي يفعله بالضبط "تشغيل كمسؤول"؟ (6)

في Windows 7 ، لدي برنامج سطر أوامر يفشل بسبب أخطاء في أذونات كتابة الملف ، UAC مربعات حوار UAC المزعجة في كل مرة أقوم بتشغيل برامج سطر الأوامر من "ناشر غير معروف".

ومع ذلك ، إذا قمت بتشغيل وحدة التحكم الخاصة بي بالنقر بزر الماوس الأيمن واختيار "تشغيل كمسؤول" ، فإن عملية التثبيت تعمل بشكل جيد ، حتى إذا كانت مربعات حوار UAC لا تزال موجودة.

المستخدم الخاص بي هو بالفعل عضو في مجموعة "المشرفين" ، لذا فماذا يفعل "كمسؤول" على وجه التحديد يفعل ذلك الذي يجعل عملية التثبيت الخاصة بي تعمل؟

سؤالي المحدد هو بالضبط: ماذا يفعل "تشغيل كمسؤول"؟ لا الإجابة على هذا السؤال حتى الآن. (على سبيل المثال ، هل تقوم بتشغيل العملية الجديدة كمستخدم "المسؤول" أم أنها تقوم بتشغيل العملية كمستخدم حالي ، ولكن مع امتيازات مرتفعة؟ إذا كان الأمر كذلك ، فما هي الامتيازات؟ كيف يختلف ذلك عن الامتيازات التي أحصل عليها من المستخدم في مجموعة "المسؤولين"؟

(على وجه التحديد ، أنا أستخدم "Console" من SourceForge ، وليس نافذة CMD عادية ، لكنني لا أعتقد أن هذا مهم. هذا كله أثناء تثبيت حزمة توزيع Python من خلال تشغيل 'python distribute_setup.py' على Python3 MSI الذي تم تثبيته حديثًا من python.org وهو بيثون 32 بت على Windows 64 بت. راجع تثبيت Python وتوزيعه على Windows 7 يعطي "الكتابة فشلت ... تم رفض الإذن" )


أشياء مثل "يرفع الامتيازات" ، "تقييد الوصول المميز" ، "امتياز المسؤول" ... ما هي هي امتياز المسؤول على أي حال؟ هراء.

إليك ACCESS_TOKEN لعملية يتم تشغيلها عادةً من مستخدم ينتمي إلى مجموعة المسؤولين.

0: kd> !process 0 1 test.exe
PROCESS 87065030  SessionId: 1  Cid: 0d60    Peb: 7ffdf000  ParentCid: 0618
    DirBase: 2f22e1e0  ObjectTable: a0c8a088  HandleCount:   6.
    Image: test.exe
    VadRoot 8720ef50 Vads 18 Clone 0 Private 83. Modified 0. Locked 0.
    DeviceMap 8936e560
    Token                             935c98e0
0: kd> !token -n 935c98e0
_TOKEN 935c98e0
TS Session ID: 0x1
User: S-1-5-21-2452432034-249115698-1235866470-1000 (no name mapped)
User Groups: 
 00 S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
    Attributes - Mandatory Default Enabled 
 01 S-1-1-0 (Well Known Group: localhost\Everyone)
    Attributes - Mandatory Default Enabled 
 02 S-1-5-32-544 (Alias: BUILTIN\Administrators)
    Attributes - Mandatory Default Enabled Owner 
 03 S-1-5-32-545 (Alias: BUILTIN\Users)
    Attributes - Mandatory Default Enabled 
 04 S-1-5-4 (Well Known Group: NT AUTHORITY\INTERACTIVE)
    Attributes - Mandatory Default Enabled 
 05 S-1-2-1 (Well Known Group: localhost\CONSOLE LOGON)
    Attributes - Mandatory Default Enabled 
 06 S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
    Attributes - Mandatory Default Enabled 
 07 S-1-5-15 (Well Known Group: NT AUTHORITY\This Organization)
    Attributes - Mandatory Default Enabled 
 08 S-1-5-5-0-85516 (no name mapped)
    Attributes - Mandatory Default Enabled LogonId 
 09 S-1-2-0 (Well Known Group: localhost\LOCAL)
    Attributes - Mandatory Default Enabled 
 10 S-1-5-64-10 (Well Known Group: NT AUTHORITY\NTLM Authentication)
    Attributes - Mandatory Default Enabled 
 11 S-1-16-12288 (Label: Mandatory Label\High Mandatory Level)
    Attributes - GroupIntegrity GroupIntegrityEnabled 
Primary Group: S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Privs: 
 05 0x000000005 SeIncreaseQuotaPrivilege          Attributes - 
 08 0x000000008 SeSecurityPrivilege               Attributes - 
 09 0x000000009 SeTakeOwnershipPrivilege          Attributes - 
 10 0x00000000a SeLoadDriverPrivilege             Attributes - 
 11 0x00000000b SeSystemProfilePrivilege          Attributes - 
 12 0x00000000c SeSystemtimePrivilege             Attributes - 
 13 0x00000000d SeProfileSingleProcessPrivilege   Attributes - 
 14 0x00000000e SeIncreaseBasePriorityPrivilege   Attributes - 
 15 0x00000000f SeCreatePagefilePrivilege         Attributes - 
 17 0x000000011 SeBackupPrivilege                 Attributes - 
 18 0x000000012 SeRestorePrivilege                Attributes - 
 19 0x000000013 SeShutdownPrivilege               Attributes - 
 20 0x000000014 SeDebugPrivilege                  Attributes - 
 22 0x000000016 SeSystemEnvironmentPrivilege      Attributes - 
 23 0x000000017 SeChangeNotifyPrivilege           Attributes - Enabled Default 
 24 0x000000018 SeRemoteShutdownPrivilege         Attributes - 
 25 0x000000019 SeUndockPrivilege                 Attributes - 
 28 0x00000001c SeManageVolumePrivilege           Attributes - 
 29 0x00000001d SeImpersonatePrivilege            Attributes - Enabled Default 
 30 0x00000001e SeCreateGlobalPrivilege           Attributes - Enabled Default 
 33 0x000000021 SeIncreaseWorkingSetPrivilege     Attributes - 
 34 0x000000022 SeTimeZonePrivilege               Attributes - 
 35 0x000000023 SeCreateSymbolicLinkPrivilege     Attributes - 
Authentication ID:         (0,14e4c)
Impersonation Level:       Anonymous
TokenType:                 Primary
Source: User32             TokenFlags: 0x2000 ( Token in use )
Token ID: d166b            ParentToken ID: 0
Modified ID:               (0, d052f)
RestrictedSidCount: 0      RestrictedSids: 00000000
OriginatingLogonSession: 3e7

... هنا هو ACCESS_TOKEN لعملية يتم تشغيلها عادة بواسطة نفس المستخدم مع "تشغيل كمسؤول".

TS Session ID: 0x1
User: S-1-5-21-2452432034-249115698-1235866470-1000 (no name mapped)
User Groups: 
 00 S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
    Attributes - Mandatory Default Enabled 
 01 S-1-1-0 (Well Known Group: localhost\Everyone)
    Attributes - Mandatory Default Enabled 
 02 S-1-5-32-544 (Alias: BUILTIN\Administrators)
    Attributes - Mandatory Default Enabled Owner 
 03 S-1-5-32-545 (Alias: BUILTIN\Users)
    Attributes - Mandatory Default Enabled 
 04 S-1-5-4 (Well Known Group: NT AUTHORITY\INTERACTIVE)
    Attributes - Mandatory Default Enabled 
 05 S-1-2-1 (Well Known Group: localhost\CONSOLE LOGON)
    Attributes - Mandatory Default Enabled 
 06 S-1-5-11 (Well Known Group: NT AUTHORITY\Authenticated Users)
    Attributes - Mandatory Default Enabled 
 07 S-1-5-15 (Well Known Group: NT AUTHORITY\This Organization)
    Attributes - Mandatory Default Enabled 
 08 S-1-5-5-0-85516 (no name mapped)
    Attributes - Mandatory Default Enabled LogonId 
 09 S-1-2-0 (Well Known Group: localhost\LOCAL)
    Attributes - Mandatory Default Enabled 
 10 S-1-5-64-10 (Well Known Group: NT AUTHORITY\NTLM Authentication)
    Attributes - Mandatory Default Enabled 
 11 S-1-16-12288 (Label: Mandatory Label\High Mandatory Level)
    Attributes - GroupIntegrity GroupIntegrityEnabled 
Primary Group: S-1-5-21-2452432034-249115698-1235866470-513 (no name mapped)
Privs: 
 05 0x000000005 SeIncreaseQuotaPrivilege          Attributes - 
 08 0x000000008 SeSecurityPrivilege               Attributes - 
 09 0x000000009 SeTakeOwnershipPrivilege          Attributes - 
 10 0x00000000a SeLoadDriverPrivilege             Attributes - 
 11 0x00000000b SeSystemProfilePrivilege          Attributes - 
 12 0x00000000c SeSystemtimePrivilege             Attributes - 
 13 0x00000000d SeProfileSingleProcessPrivilege   Attributes - 
 14 0x00000000e SeIncreaseBasePriorityPrivilege   Attributes - 
 15 0x00000000f SeCreatePagefilePrivilege         Attributes - 
 17 0x000000011 SeBackupPrivilege                 Attributes - 
 18 0x000000012 SeRestorePrivilege                Attributes - 
 19 0x000000013 SeShutdownPrivilege               Attributes - 
 20 0x000000014 SeDebugPrivilege                  Attributes - 
 22 0x000000016 SeSystemEnvironmentPrivilege      Attributes - 
 23 0x000000017 SeChangeNotifyPrivilege           Attributes - Enabled Default 
 24 0x000000018 SeRemoteShutdownPrivilege         Attributes - 
 25 0x000000019 SeUndockPrivilege                 Attributes - 
 28 0x00000001c SeManageVolumePrivilege           Attributes - 
 29 0x00000001d SeImpersonatePrivilege            Attributes - Enabled Default 
 30 0x00000001e SeCreateGlobalPrivilege           Attributes - Enabled Default 
 33 0x000000021 SeIncreaseWorkingSetPrivilege     Attributes - 
 34 0x000000022 SeTimeZonePrivilege               Attributes - 
 35 0x000000023 SeCreateSymbolicLinkPrivilege     Attributes - 
Authentication ID:         (0,14e4c)
Impersonation Level:       Anonymous
TokenType:                 Primary
Source: User32             TokenFlags: 0x2000 ( Token in use )
Token ID: ce282            ParentToken ID: 0
Modified ID:               (0, cddbd)
RestrictedSidCount: 0      RestrictedSids: 00000000
OriginatingLogonSession: 3e7

كما ترى ، الاختلاف الوحيد هو معرف الرمز المميز:

Token ID: d166b            ParentToken ID: 0
Modified ID:               (0, d052f)

ضد

Token ID: ce282            ParentToken ID: 0
Modified ID:               (0, cddbd)

عذرًا ، لا يمكنني إضافة الكثير من الضوء لهذا ، لكنني لا أزال أحفر.


أوضح قليلا ... إن البرنامج الذي يحتوي على الوصول إلى وضع kernel لديه وصول كامل إلى كافة بيانات الكمبيوتر والأجهزة الخاصة به.

منذ Windows Vista توقفت Microsoft عن كافة عمليات الإدخال / الإخراج من الوصول إلى kernel (الحلقة 0) مباشرة مرة أخرى. أقرب ما نحصل عليه هو مجلد تم إنشاؤه كقسم الوصول إلى kernel الظاهري ، ولكن من الناحية الفنية لا يمكن الوصول إلى kernel نفسه ؛ النواة تجتمع في منتصف الطريق.

ويرجع ذلك إلى أن البرنامج نفسه يفرض رمزًا مميزًا لاستخدامه ، لذا إذا طلب رمز وصول للمسؤول ، بدلاً من السماح فقط بالاتصالات مع النواة مثل Windows XP ، فستتم مطالبتك بالسماح بالوصول إلى kernel ، في كل مرة. يمكن أن يؤدي تغيير UAC إلى تقليل المطالبات ، ولكن لا يتم مطالبات النواة مطلقًا.

حتى عندما تقوم بتسجيل الدخول كمسؤول ، تقوم بتشغيل العمليات كمستخدم قياسي حتى تتم مطالبتك برفع الحقوق التي لديك. أعتقد أن دخولك كمسؤول يحفظك من إدخال بيانات الاعتماد. لكنه يكتب أيضا إلى بنية مجلد المستخدمين المسؤول.

الوصول إلى Kernel يشبه الوصول إلى الجذر في Linux. عندما تقوم بترقية أذوناتك فأنت تقوم بعزل نفسك من جذر C: \ وأيًا كانت متغيرات البيئة الجميلة موجودة داخلها.

إذا كنت تتذكر الموت الزرقاء ، فقد كان هذا هو نظام التشغيل الذي تم إيقافه عندما اعتقد أن الإدخال / الإخراج السيئ وصل إلى النواة.


عند تسجيل الدخول Windows بإنشاء رمز وصول. هذا يحدد لك ، المجموعات التي أنت عضو فيها وامتيازاتك. ولاحظ أن ما إذا كان المستخدم مسؤولاً أم لا يتم تحديده إذا ما كان المستخدم عضوًا في مجموعة المسؤولين.

بدون UAC ، عند تشغيل البرنامج ، فإنه يحصل على نسخة من رمز الدخول ، ويتحكم هذا في ما يمكن للبرنامج الوصول إليه.

باستخدام UAC ، عند تشغيل برنامج ، يحصل على رمز وصول مقيد. هذا هو الرمز المميز الأصلي للوصول مع "المسؤولين" الذي تمت إزالته من قائمة المجموعات (وبعض التغييرات الأخرى). على الرغم من أن المستخدم الخاص بك هو عضو في مجموعة المسؤولين ، لا يمكن للبرنامج استخدام امتيازات المسؤول.

عند تحديد "تشغيل كمسؤول" ويكون المستخدم مسؤولاً ، يتم تشغيل البرنامج باستخدام رمز الوصول الأصلي غير المقيد. إذا لم يكن المستخدم مسؤولاً ، فستتم مطالبتك بحساب مسؤول ، ويتم تشغيل البرنامج ضمن هذا الحساب.


لذلك ... المزيد من الحفر ، مع النتيجة. يبدو أنه على الرغم من أنني قمت بتشغيل عملية واحدة عادية وواحدة "كمسؤول" ، فقد أوقفت UAC. تحويل UAC إلى وسيط سمح لي بمشاهدة نتائج مختلفة. أساسا ، كل ذلك يتلخص في مستويات النزاهة ، والتي هي 5.

على سبيل المثال ، يتم تشغيل المستعرضات في المستوى المنخفض (1) ، بينما يتم تشغيل الخدمات (مستخدم النظام) على مستوى النظام (4). تم شرح كل شيء بشكل جيد في تصميم آلية Windows Integrity . عندما يتم تمكين UAC ، يتم إنشاء العمليات مع مستوى متوسط ​​(SID S-1-16-8192 AKA 0x2000 يضاف) بينما عندما "تشغيل كمسؤول" ، يتم إنشاء العملية مع مستوى عال (SID S-1-16-12288 الملقب 0x3000).

وبالتالي ، يعتبر ACCESS_TOKEN الصحيح لمستخدم عادي (مستوى تكامل متوسط) هو:

0:000:x86> !token
Thread is not impersonating. Using process token...
TS Session ID: 0x1
User: S-1-5-21-1542574918-171588570-488469355-1000
Groups:
 00 S-1-5-21-1542574918-171588570-488469355-513
    Attributes - Mandatory Default Enabled
 01 S-1-1-0
    Attributes - Mandatory Default Enabled
 02 S-1-5-32-544
    Attributes - DenyOnly
 03 S-1-5-32-545
    Attributes - Mandatory Default Enabled
 04 S-1-5-4
    Attributes - Mandatory Default Enabled
 05 S-1-2-1
    Attributes - Mandatory Default Enabled
 06 S-1-5-11
    Attributes - Mandatory Default Enabled
 07 S-1-5-15
    Attributes - Mandatory Default Enabled
 08 S-1-5-5-0-1908477
    Attributes - Mandatory Default Enabled LogonId
 09 S-1-2-0
    Attributes - Mandatory Default Enabled
 10 S-1-5-64-10
    Attributes - Mandatory Default Enabled
 11 S-1-16-8192
    Attributes - GroupIntegrity GroupIntegrityEnabled
Primary Group:   LocadDumpSid failed to dump Sid at addr 000000000266b458, 0xC0000078; try own SID dump.
s-1-0x515000000
Privs:
 00 0x000000013 SeShutdownPrivilege               Attributes -
 01 0x000000017 SeChangeNotifyPrivilege           Attributes - Enabled Default
 02 0x000000019 SeUndockPrivilege                 Attributes -
 03 0x000000021 SeIncreaseWorkingSetPrivilege     Attributes -
 04 0x000000022 SeTimeZonePrivilege               Attributes -
Auth ID: 0:1d1f65
Impersonation Level: Anonymous
TokenType: Primary
Is restricted token: no.

الآن ، الاختلافات كالتالي:

S-1-5-32-544
Attributes - Mandatory Default Enabled Owner

لـ "كمسؤول" ، بينما

S-1-5-32-544
Attributes - DenyOnly

لغير المشرف.

لاحظ أن S-1-5-32-544 هو BUILTIN \ Administrators. أيضًا ، هناك امتيازات أقل ، وأهم شيء يجب ملاحظته:

مشرف:

S-1-16-12288
Attributes - GroupIntegrity GroupIntegrityEnabled

بينما بالنسبة لغير المشرف:

S-1-16-8192
Attributes - GroupIntegrity GroupIntegrityEnabled

آمل أن يساعد هذا.

مزيد من القراءة: http://www.blackfishsoftware.com/blog/don/creating_processes_sessions_integrity_levels


يقوم الأمر Run as * Anything بحفظك من تسجيل الخروج وتسجيل الدخول باسم المستخدم الذي تستخدم أمر runas من أجله.

بدأت برامج السبب لهذا الامتياز المرتفع مع Black Comb ومجلد Panther. يوجد 0 وصول إلى Kernel في الإطارات إلا من خلال موجه المسؤول ومن ثم فهي فقط علاقة ظاهرية مع نواة O / S.

Hoorah لأن!


تحديث

"Run as Aministrator" هو مجرد أمر ، يمكِّن البرنامج من متابعة بعض العمليات التي تتطلب امتيازات المسؤول ، دون عرض تنبيهات UAC.

حتى إذا كان المستخدم الخاص بك عضوًا في مجموعة المسؤولين ، فإن بعض التطبيقات مثل مستخدميك تحتاج إلى امتيازات المسؤول لمتابعة تشغيلها ، نظرًا لأن التطبيق يعتبر غير آمن ، إذا كان يقوم ببعض العمليات الخاصة ، مثل تحرير ملف نظام أو شيء آخر. هذا هو السبب في حاجة Windows إلى امتياز المسؤول لتنفيذ التطبيق وإعلامك بتنبيه UAC. لا تحتاج جميع التطبيقات إلى تشغيل حساب Amnistrator ، وتحتاج بعض التطبيقات ، مثل تطبيقاتك ، إلى امتيازات المسؤول.

إذا قمت بتنفيذ التطبيق باستخدام الأمر "تشغيل كمسؤول" ، فأنت تقوم بإخطار النظام بأن تطبيقك آمن ويقوم بعمل شيء يتطلب امتيازات المسؤول ، مع تأكيدك.

إذا كنت ترغب في تجنب ذلك ، فما عليك سوى تعطيل UAC في لوحة التحكم.

إذا كنت ترغب في الذهاب أبعد من ذلك ، فاقرأ السؤال الفرق بين "تشغيل كمسؤول" ومجموعة Windows 7 Administrators على منتدى Microsoft أو سؤال SuperUser this .







runas