ตรวจสอบว่าผู้ใช้ที่ให้มีสิทธิ์ที่กำหนด


16

ให้คู่ของผู้ใช้และสิทธิ์ฉันต้องตรวจสอบว่าผู้ใช้มีสิทธิ์บนเซิร์ฟเวอร์ ต่อไปนี้เป็นจริงในการตั้งค่าของฉัน:

  • เซิร์ฟเวอร์เป็นส่วนหนึ่งของโดเมน แต่ไม่ใช่ตัวควบคุมโดเมน
  • มีหลายโดเมนที่มีความสัมพันธ์ที่เชื่อถือได้ในโครงสร้างพื้นฐาน
  • บางครั้งผู้ใช้ (โลคอลโดเมนหรือจากโดเมนอื่น) สามารถอยู่ในกลุ่มท้องถิ่นโดยได้รับประโยชน์จากพวกเขาอยู่ในกลุ่มอื่น ๆ (โดเมนหรือท้องถิ่น) ที่อยู่ในกลุ่มท้องถิ่นเมื่อเทียบกับที่เป็นของกลุ่มโดยตรง

ตัวอย่างสถานการณ์สำหรับจุดสุดท้าย:

  • User1 เป็นของกลุ่ม TeamA ใน DomainA
  • DomaimA \ TeamA เป็นสมาชิกของ DomainB \ SpecialAccess
  • DomainB \ SpecialAccess เป็นสมาชิกของ DomainB \ DomainAdmins
  • ในที่สุด DomainB \ DomainAdmins อยู่ในกลุ่มผู้ดูแลระบบท้องถิ่น
  • กลุ่มผู้ดูแลระบบในท้องถิ่นมี SeRemoteInteractiveLogonRight privelege

ตอนนี้ถ้าฉันมีการป้อนข้อมูล DomainA \ User1 และ SeRemoteInteractiveLogonRight ฉันต้องมาถึงใช่หรือไม่ตอบ ดังนั้นฉันจึงเปิดนโยบายท้องถิ่นบนเครื่องสังเกตว่ากลุ่มใดที่อยู่ในรายการด้านขวาที่ฉันสนใจจากนั้นไปที่ผู้จัดการเซิร์ฟเวอร์และดูสิ่งที่สมาชิกกลุ่มและจากนั้นฉันต้องดูว่าสมาชิกของกลุ่มใดในกลุ่มเหล่านี้ และอื่น ๆ

ฉันมีความรู้สึกว่ามันง่ายขึ้น ฉันตื่นเต้นมากเมื่อพบว่าAccessChkใช้งานได้นานทั้งสามนาทีซึ่งทำให้ฉันค้นพบว่ามีเพียงรายการความสัมพันธ์โดยตรงดังนั้นผู้ใช้ภายในกลุ่มจะไม่ถูกแสดงรายการ

ตอนนี้ฉันเดาว่ามันจะเป็นไปได้ที่จะรวมผลลัพธ์จาก AccessChk บางอย่างเพื่อให้ฉันสามารถตรวจสอบว่าผู้ใช้อยู่ในกลุ่มใด ๆ ที่ AccessChk ส่งคืนหรือไม่ แต่ระบุว่าไม่ใช่โดเมนเดียว แต่พวกเขาหลายคน ไม่แน่ใจว่าจะเข้าใกล้เรื่องนี้อย่างไร นอกจากนี้เอาต์พุต AccessChk ดูเหมือนจะไม่แยกความแตกต่างระหว่างกลุ่มและผู้ใช้

แก้ไข : ในจิตวิญญาณของการไม่ตกหลุมพรางปัญหา XY สิ่งที่ฉันต้องทำจริงๆคือเพื่อให้แน่ใจว่าในกลุ่มเซิร์ฟเวอร์ไม่มีบัญชีผู้ใช้เฉพาะที่ใช้เป็นข้อมูลประจำตัวพูลโปรแกรมประยุกต์ IIS มีสิทธิ์ SeInteractiveLogonRight หรือ SeRemoteInteractiveLogonRight ฉันไม่มีปัญหากับส่วน IIS แต่ขั้นตอนสุดท้ายของการตรวจสอบบัญชีกับสิทธิ์เป็นสิ่งที่ฉันพยายามค้นหาวิธีที่ตรงไปตรงมาในการตรวจสอบ ฉันต้องการตรวจสอบอัตโนมัติเพราะนี่เป็นสิ่งที่จะต้องทำอย่างสม่ำเสมอ


6
ดูเหมือนว่างานสำหรับ ... นโยบายกำหนดผลลัพธ์ (RSoP)! technet.microsoft.com/en-us/library/cc758010%28v=WS.10%29.aspx
Davidw

1
@zespri - คำตอบของฉันคือขยะและฉันลบมัน สิทธิ์ผู้ใช้ SeInteractiveLogonRight และ SeRemoteInteractiveLogonRight มีการจัดการแตกต่างจากสิทธิ์ "ปกติ" และดูเหมือนว่าการรายงานเกี่ยวกับพวกเขาจะเป็นปัญหา ถ้าฉันคิดวิธีแก้ปัญหาสำหรับคุณฉันจะโพสต์คำตอบอื่น แต่ตอนนี้ฉันไม่มีอะไรเลย
Evan Anderson

1
@Davidw - RSoP เป็นปัญหาในการที่ค่าเริ่มต้นนโยบายความปลอดภัยท้องถิ่นจะไม่ปรากฏในผลลัพธ์ ดังนั้นรายการ "ไม่ได้กำหนดค่า" จะปรากฏเป็น "ไม่ได้กำหนดค่า" และคุณจะไม่เห็นว่าผู้ใดได้รับสิทธิ์จากนโยบายความปลอดภัยท้องถิ่น ท้ายที่สุดแม้ว่าคุณจะได้รับรายชื่อผู้บริหารจากนโยบายกลุ่มคุณก็จะยังคงขยายการเป็นสมาชิกกลุ่ม (อาจข้ามโดเมนด้วย) เพื่อจำลองการทำงานของระบบปฏิบัติการ นี่เป็นคำถามที่ท้าทายกว่าที่ฉันคาดไว้
Evan Anderson

1
@EvanAnderson ตรง! เมื่อฉันถูกขอให้ประเมินว่าจะต้องใช้เวลานานแค่ไหนฉันก็ดูเหมือนจะเป็นงานที่ตรงไปตรงมา และหลังจากผ่านไปสองสามวันของ Google และลองสิ่งที่แตกต่าง ... ไม่มีอะไร ขณะนี้แผนของฉันคือ pinvoke GetTokenInformationด้วยโทเค็น TokenPrivileges คลาสข้อมูลโทเค็น แน่นอนฉันต้องคิดก่อนว่าจะได้รับโทเค็นของตัวเองอย่างไร เส้นทางนี้น่าจะเป็นที่คาดหวังมากที่สุดในขณะนี้
Andrew Savinykh

@zespri - NtOpenProcessToken () อาจเป็นวิธีที่ดีที่สุดในการรับโทเค็น (ดูleeholmes.com/blog/2006/07/21/… )
Evan Anderson

คำตอบ:


1

โทเค็นการเข้าถึงไม่มีข้อมูลเกี่ยวกับสิทธิ์เพียงเกี่ยวกับสิทธิ์

สิ่งที่คุณต้องทำคือ:

  • ค้นหากระบวนการของผู้ปฏิบัติงาน IIS ที่สอดคล้องกับกลุ่มแอพของคุณ เนื่องจากคุณทราบถึงข้อมูลประจำตัวของแอพที่ควรจะง่ายโดยระบุกระบวนการทั้งหมดด้วยชื่อกระบวนการของผู้ปฏิบัติงานและกรองรายการที่มีข้อมูลประจำตัว หากมีมากกว่าหนึ่งคุณสามารถใช้ใด ๆ
  • ใช้ GetTokenInformation กับ TokenGroup คลาสข้อมูลไม่ใช่ TokenPrivilege บนโทเค็นกระบวนการ ผลลัพธ์จะให้กลุ่มสกรรมกริยาทั้งหมดที่มีตัวตนอยู่ด้วย นี่หมายถึงแม้แต่ทางอ้อม
  • ตอนนี้คุณสามารถวนลูปผ่านกลุ่มเหล่านี้และโทรLsaEnumerateAccountRightsในแต่ละอันและตรวจสอบข้อมูล สิ่งนี้จะให้สิ่งที่คุณต้องการ

ข้างต้นขึ้นอยู่กับการมีอยู่ของกระบวนการ (และโทเค็น) ที่สอดคล้องกับข้อมูลบัญชี ในสถานการณ์ของคุณสิ่งนี้ไม่ควรเป็นปัญหา ในสถานการณ์เมื่อปัญหานี้เป็นปัญหาที่คุณสามารถลองและใช้ค้นหา Active Directory สำหรับแอตทริบิวต์ Token-กลุ่มคำนวณ บทความนี้แสดงรายการวิธีการบางอย่างในการดึงออก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.