การใช้ PowerShell เพื่อยกระดับสิทธิ์ของบัญชีท้องถิ่น

การใช้ PowerShell เพื่อยกระดับสิทธิ์ของบัญชีท้องถิ่น

การเพิ่มระดับสิทธิพิเศษคือการใช้สิทธิ์บัญชีปัจจุบันของผู้โจมตีเพื่อรับสิทธิ์ในการเข้าถึงระบบเพิ่มเติม ซึ่งโดยปกติจะสูงกว่า แม้ว่าการยกระดับสิทธิ์อาจเป็นผลมาจากการโจมตีแบบ Zero-day แฮกเกอร์หลักที่เริ่มการโจมตีแบบกำหนดเป้าหมาย หรือมัลแวร์ที่ปลอมตัวอย่างชาญฉลาด แต่ส่วนใหญ่มักเกิดขึ้นเนื่องจากการกำหนดค่าคอมพิวเตอร์หรือบัญชีไม่ถูกต้อง การพัฒนาการโจมตีเพิ่มเติม ผู้โจมตีจะใช้ประโยชน์จากช่องโหว่จำนวนหนึ่ง ซึ่งเมื่อรวมกันแล้วอาจนำไปสู่ภัยพิบัติของข้อมูลรั่วไหลได้

เหตุใดผู้ใช้จึงไม่ควรมีสิทธิ์ของผู้ดูแลระบบภายใน

หากคุณเป็นผู้เชี่ยวชาญด้านความปลอดภัย อาจดูเหมือนชัดเจนว่าผู้ใช้ไม่ควรมีสิทธิ์ของผู้ดูแลระบบภายใน เนื่องจาก:

  • ทำให้บัญชีของพวกเขาเสี่ยงต่อการโจมตีต่างๆ
  • ทำให้การโจมตีแบบเดียวกันนี้รุนแรงยิ่งขึ้น

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

ขั้นตอนที่ 1: ย้อนกลับการแก้ไขชื่อ DNS โดยใช้ PowerShell

ตามค่าเริ่มต้น PowerShell จะถูกติดตั้งบนเวิร์กสเตชันภายในเครื่องจำนวนมากและบนเซิร์ฟเวอร์ Windows ส่วนใหญ่ และแม้ว่าจะไม่ได้เกินจริงไปมากนัก แต่ก็ถือว่าเป็นเครื่องมืออัตโนมัติและการควบคุมที่มีประโยชน์อย่างเหลือเชื่อ แต่ก็สามารถเปลี่ยนให้กลายเป็นสิ่งที่แทบจะมองไม่เห็นได้เท่าเทียมกัน มัลแวร์ที่ไม่มีไฟล์ (โปรแกรมแฮ็คที่ไม่ทิ้งร่องรอยการโจมตี)

ในกรณีของเรา ผู้โจมตีเริ่มดำเนินการสำรวจเครือข่ายโดยใช้สคริปต์ PowerShell โดยวนซ้ำตามลำดับผ่านพื้นที่ที่อยู่ IP ของเครือข่าย พยายามตรวจสอบว่า IP ที่ระบุสามารถแปลงเป็นโฮสต์ได้หรือไม่ และหากเป็นเช่นนั้น ชื่อเครือข่ายของโฮสต์นั้นคืออะไร
มีหลายวิธีในการทำงานนี้ให้สำเร็จ แต่ใช้ cmdlet รับ -ADComputer เป็นตัวเลือกที่เชื่อถือได้เนื่องจากจะส่งคืนชุดข้อมูลที่สมบูรณ์เกี่ยวกับแต่ละโหนด:

 import-module activedirectory Get-ADComputer -property * -filter { ipv4address -eq ‘10.10.10.10’}

หากความเร็วบนเครือข่ายขนาดใหญ่เป็นปัญหา คุณสามารถใช้การเรียกระบบ DNS แบบย้อนกลับได้:

[System.Net.Dns]::GetHostEntry(‘10.10.10.10’).HostName

การใช้ PowerShell เพื่อยกระดับสิทธิ์ของบัญชีท้องถิ่น

วิธีการแจงนับโฮสต์บนเครือข่ายนี้ได้รับความนิยมอย่างมาก เนื่องจากเครือข่ายส่วนใหญ่ไม่ได้ใช้โมเดลความปลอดภัยแบบ Zero Trust และไม่ตรวจสอบการสืบค้น DNS ภายในเพื่อหากิจกรรมที่น่าสงสัย

ขั้นตอนที่ 2: เลือกเป้าหมาย

ผลลัพธ์สุดท้ายของขั้นตอนนี้คือการได้รับรายชื่อเซิร์ฟเวอร์และชื่อโฮสต์ของเวิร์กสเตชันที่สามารถใช้เพื่อดำเนินการโจมตีต่อไปได้

การใช้ PowerShell เพื่อยกระดับสิทธิ์ของบัญชีท้องถิ่น

ดูจากชื่อแล้ว เซิร์ฟเวอร์ 'HUB-FILER' ดูเหมือนเป็นเป้าหมายที่คุ้มค่าเพราะ... เมื่อเวลาผ่านไป ไฟล์เซิร์ฟเวอร์มีแนวโน้มที่จะสะสมโฟลเดอร์เครือข่ายจำนวนมากและมีผู้คนจำนวนมากเกินไปเข้าถึงโฟลเดอร์เหล่านั้นได้

การเรียกดูด้วย Windows Explorer ช่วยให้เราสามารถระบุได้ว่ามีโฟลเดอร์แชร์ที่เปิดอยู่ แต่บัญชีปัจจุบันของเราไม่สามารถเข้าถึงได้ (เราอาจมีสิทธิ์ในการแสดงรายการเท่านั้น)

ขั้นตอนที่ 3: การเรียนรู้ ACL

ขณะนี้บนโฮสต์ HUB-FILER และการแชร์เป้าหมายของเรา เราสามารถเรียกใช้สคริปต์ PowerShell เพื่อรับ ACL ได้ เราสามารถทำได้จากเครื่องท้องถิ่น เนื่องจากเรามีสิทธิ์ของผู้ดูแลระบบท้องถิ่นอยู่แล้ว:

(get-acl hub-filershare).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags –auto

ผลการดำเนินการ:

การใช้ PowerShell เพื่อยกระดับสิทธิ์ของบัญชีท้องถิ่น

จากนั้นเราจะเห็นว่ากลุ่มผู้ใช้โดเมนมีสิทธิ์เข้าถึงเฉพาะรายการเท่านั้น แต่กลุ่ม Helpdesk ก็มีสิทธิ์ในการแก้ไขเช่นกัน

ขั้นตอนที่ 4: การระบุบัญชี

ด้วยการวิ่ง รับ-ADGroupMemberเราสามารถรับสมาชิกทั้งหมดของกลุ่มนี้ได้:

Get-ADGroupMember -identity Helpdesk

การใช้ PowerShell เพื่อยกระดับสิทธิ์ของบัญชีท้องถิ่น

ในรายการนี้ เราเห็นบัญชีคอมพิวเตอร์ที่เราได้ระบุและเข้าถึงแล้ว:

การใช้ PowerShell เพื่อยกระดับสิทธิ์ของบัญชีท้องถิ่น

ขั้นตอนที่ 5: ใช้ PSExec เพื่อทำงานภายใต้บัญชีคอมพิวเตอร์

PsExec จาก Microsoft Sysinternals ช่วยให้คุณสามารถรันคำสั่งในบริบทของบัญชีระบบ SYSTEM@HUB-SHAREPOINT ซึ่งเรารู้ว่าเป็นสมาชิกของกลุ่มเป้าหมาย Helpdesk นั่นคือเราแค่ต้องทำ:

PsExec.exe -s -i cmd.exe

ถ้าอย่างนั้นคุณสามารถเข้าถึงโฟลเดอร์เป้าหมาย HUB-FILERshareHR ได้อย่างเต็มที่เนื่องจากคุณทำงานในบริบทของบัญชีคอมพิวเตอร์ HUB-SHAREPOINT และด้วยการเข้าถึงนี้ จะสามารถคัดลอกข้อมูลไปยังอุปกรณ์จัดเก็บข้อมูลแบบพกพาหรือเรียกค้นและถ่ายโอนผ่านเครือข่ายได้

ขั้นตอนที่ 6: การตรวจจับการโจมตีนี้

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

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

ภาพหน้าจอด้านล่างแสดงการแจ้งเตือนแบบกำหนดเองที่จะถูกทริกเกอร์เมื่อใดก็ตามที่บัญชีคอมพิวเตอร์เข้าถึงข้อมูลบนเซิร์ฟเวอร์ที่ได้รับการตรวจสอบ

การใช้ PowerShell เพื่อยกระดับสิทธิ์ของบัญชีท้องถิ่น

ขั้นตอนต่อไปโดยใช้ PowerShell

ต้องการทราบข้อมูลเพิ่มเติม? ใช้รหัสปลดล็อค "บล็อก" เพื่อเข้าถึงตัวเต็มฟรี หลักสูตรวิดีโอ PowerShell และ Active Directory Basics.

ที่มา: will.com

เพิ่มความคิดเห็น