ค้นหาเว็บไซต์

วิธีรีเซ็ตรหัสผ่านผู้ดูแลระบบโดเมน Active Directory


ในบทความนี้ เราจะดูสถานการณ์การรีเซ็ตรหัสผ่านของผู้ดูแลระบบโดเมน Active Directory คุณอาจต้องใช้ในกรณีที่สิทธิ์ของผู้ดูแลระบบโดเมนสูญเสียไปเนื่องจากการหลงลืมหรือการก่อวินาศกรรมโดยเจตนาโดยผู้ดูแลระบบที่เกษียณอายุ การโจมตีของแฮ็กเกอร์ ฯลฯ หากต้องการรีเซ็ตรหัสผ่านผู้ดูแลระบบโดเมนให้สำเร็จ คุณต้องมีการเข้าถึงทางกายภาพหรือระยะไกลไปยังตัวควบคุมโดเมน AD คอนโซล (คอนโซล iLO, iDRAC หรือ VMware vSphere/Hyper-V/Proxmox เมื่อใช้ DC เสมือน)

ในตัวอย่างนี้ เราจะรีเซ็ตรหัสผ่านผู้ดูแลระบบบนตัวควบคุมโดเมนที่ใช้ Windows Server 2019 หากมีตัวควบคุมโดเมนมากกว่าหนึ่งตัวบนเครือข่าย คุณสามารถรีเซ็ตรหัสผ่านผู้ดูแลระบบโดเมนบนตัวควบคุมใดก็ได้

ในการรีเซ็ตรหัสผ่านผู้ดูแลระบบโดเมน คุณต้องเข้าถึงโหมดการคืนค่าบริการไดเรกทอรี (DSRM) โดยใช้รหัสผ่านผู้ดูแลระบบ DSRM (ตั้งค่าเมื่อ Windows Server เลื่อนระดับเป็นตัวควบคุมโดเมน) อันที่จริงแล้ว เป็นบัญชีผู้ดูแลระบบภายในที่จัดเก็บไว้ในฐานข้อมูล SAM ภายในเครื่องบนตัวควบคุมโดเมน ใช้วิธีที่ 1 หรือ 2 หากคุณไม่ทราบรหัสผ่าน DSRM

วิธีรีเซ็ตรหัสผ่านผู้ดูแลระบบโดเมนที่สูญหายหากคุณไม่ทราบรหัสผ่าน DSRM

บูตเซิร์ฟเวอร์ของคุณจากสื่อการติดตั้ง Windows ใดก็ได้ (อาจเป็นแท่ง USB สำหรับติดตั้ง Windows หรืออิมเมจ ISO):

  1. กด

    Shift+F10

    เพื่อเปิดพรอมต์คำสั่งบนหน้าจอการตั้งค่า Windows

  2. ตอนนี้คุณต้องรู้ตัวอักษรที่กำหนดให้กับพาร์ติชั่นที่ติดตั้ง Windows Server ของคุณ เรียกใช้คำสั่ง:

    wmic logicaldisk get volumename,name

    ในตัวอย่างของฉัน คุณจะเห็นว่าอิมเมจ Windows Server แบบออฟไลน์ของฉันอยู่บน C: นี่คืออักษรชื่อไดรฟ์ที่เราจะใช้ในคำสั่งต่อไปนี้

    คุณยังสามารถระบุดิสก์ใน Windows โดยใช้ diskpart:

    diskpart

    ->

    list disk

    ->

    list vol

  3. สำรองไฟล์ utilman.exe ดั้งเดิม:

    copy C:\windows\system32\utilman.exe C:\windows\system32\utilman.exebak
  4. จากนั้นแทนที่ไฟล์ utilman.exe ด้วย cmd.exe:

    copy c:\windows\system32\cmd.exe c:\windows\system32\utilman.exe /y

  5. แยกอิมเมจสำหรับบูต (USB/ISO) และรีบูตโฮสต์ของคุณ:

    wpeutil reboot
  6. หลังจากบูทตัวควบคุมโดเมนแล้ว ให้คลิกปุ่ม 'เข้าถึงง่าย' บนหน้าจอเข้าสู่ระบบ นี่จะเป็นการเปิดพรอมต์คำสั่ง

  7. เรียกใช้

    whoami

    เพื่อให้แน่ใจว่าพรอมต์คำสั่งทำงานเป็น NT Authority\SYSTEM

  8. รายการข้อมูลเกี่ยวกับบัญชีผู้ดูแลระบบ:

    net user administrator

  9. ในตัวอย่างนี้ คุณจะเห็นว่าผู้ใช้รายนี้เป็นสมาชิกของกลุ่มผู้ดูแลโดเมนและขณะนี้ถูกปิดใช้งาน:

    Account active: No
  10. เปิดใช้งานบัญชีผู้ดูแลโดเมน:

    net user administrator /active:yes
  11. ตอนนี้คุณสามารถรีเซ็ตรหัสผ่านผู้ดูแลระบบโดเมนของคุณ:

    net user administrator *

    ตั้งรหัสผ่านผู้ดูแลระบบใหม่ (รหัสผ่านใหม่ต้องตรงกับนโยบายรหัสผ่านของโดเมน)

  12. บูตเซิร์ฟเวอร์ของคุณจากสื่อการติดตั้งอีกครั้ง และแทนที่ utilman.exe ด้วยไฟล์ต้นฉบับ (เพื่อหลีกเลี่ยงช่องโหว่ด้านความปลอดภัยในเซิร์ฟเวอร์):

    copy c:\windows\system32\utilman.exebak c:\windows\system32\utilman.exe /y
  13. รีสตาร์ทตัวควบคุมโดเมนของคุณในโหมดปกติ และตรวจสอบให้แน่ใจว่าตอนนี้คุณสามารถเข้าสู่ระบบ DC ของคุณโดยใช้รหัสผ่านผู้ดูแลระบบโดเมนใหม่

การรีเซ็ตรหัสผ่านผู้ดูแลโดเมนบน Virtualized Domain Controller

หากคุณมีตัวควบคุมโดเมนเสมือนจริงที่ทำงานบนไฮเปอร์ไวเซอร์ใดๆ (ESXi, Hyper-V, Proxmox) คุณสามารถใช้โมดูล PowerShell DSInternals เพื่อรีเซ็ตรหัสผ่านผู้ดูแลระบบ
โดยทำดังนี้

  1. ปิด VM ที่เรียกใช้บทบาท AD DS (ตัวควบคุมโดเมน) และเชื่อมต่อไดรฟ์เสมือน (vhdx, vmdk ฯลฯ) กับ VM อื่น ๆ ที่ใช้ Windows กำหนดอักษรระบุไดรฟ์ เช่น

    E:

    ;

  2. ติดตั้งโมดูล DSInternals จาก PowerShell Gallery:

    Install-Module DSInternals -Force

    สามารถติดตั้งโมดูล PowerShell แบบออฟไลน์เมื่อไม่มีการเชื่อมต่ออินเทอร์เน็ต

  3. รับรหัสสำหรับบูตที่ใช้เพื่อเข้ารหัสแฮชรหัสผ่านในฐานข้อมูล AD ของคุณ (ntds.dit):

    $bootkey= Get-BootKey -SystemHiveFilePath "E:\Windows\System32\config\SYSTEM"
  4. ขณะนี้ คุณสามารถรับข้อมูลเกี่ยวกับบัญชีผู้ใช้ใดๆ ในฐานข้อมูล AD:

    Get-ADDBAccount -SamAccountName 'Administrator' -DBPath "E:\Windows\NTDS\ntds.dit" -BootKey $bootkey
  5. หากบัญชีผู้ดูแลระบบโดเมนถูกปิดใช้งาน ให้เปิดใช้งานและตั้งรหัสผ่านใหม่:

    Enable-ADDBAccount -SamAccountName 'Administrator' -DBPath "E:\Windows\NTDS\ntds.dit"
    Set-ADDBAccountPassword -SamAccountName 'administrator' -DBPath "E:\Windows\NTDS\ntds.dit" -BootKey $bootkey

  6. ตัดการเชื่อมต่อไดรฟ์เสมือน เชื่อมต่อใหม่กับ VM ต้นทาง และเปิดตัวควบคุมโดเมน

  7. หลังจากนั้น รหัสผ่านผู้ดูแลระบบโดเมนใหม่จะถูกจำลองไปยัง DC ทั้งหมด

รีเซ็ตรหัสผ่านผู้ดูแลโดเมนจาก DSRM

หากคุณทราบรหัสผ่านของผู้ดูแลระบบ DSRM คุณสามารถบูต DC เป็น DSRM ได้โดยเลือกตัวเลือกที่เหมาะสมจากเมนูตัวเลือกการบูตขั้นสูง

ป้อนชื่อผู้ใช้ภายใน (ผู้ดูแลระบบ) และรหัสผ่าน (รหัสผ่าน DSRM) บนหน้าจอเข้าสู่ระบบ

ในตัวอย่างนี้ ชื่อตัวควบคุมโดเมนคือ DC01
เรามาตรวจสอบว่าผู้ใช้รายใดเข้าสู่ระบบด้วยการเรียกใช้คำสั่ง:

whoami /user
USER INFORMATION
----------------
User Name          SID
================== ============================================
dc01\administrator S-1-5-21-3244332244-312345677-2454632109-500

อย่างที่คุณเห็น เราเข้าสู่ระบบในฐานะผู้ดูแลระบบภายใน

ขั้นตอนต่อไปคือเปลี่ยนรหัสผ่านผู้ดูแลระบบ Active Directory (ตามค่าเริ่มต้น บัญชีจะเรียกอีกอย่างว่า ผู้ดูแลระบบ) หากต้องการรีเซ็ตรหัสผ่านของผู้ดูแลระบบโดเมน เราจะสร้างบริการที่จะรีเซ็ตรหัสผ่านของบัญชีผู้ดูแลระบบภายใต้ระบบ:

sc create ResetADPass binPath= "%ComSpec% /k net user administrator P1SSsw0rd21!" start= auto

หมายเหตุ โปรดทราบว่าต้องมีการเว้นวรรคระหว่างเครื่องหมาย '=' และค่าเมื่อตั้งค่าพาธในตัวแปร binPath นอกจากนี้ รหัสผ่านใหม่จะต้องเป็นไปตามข้อกำหนดของโดเมนในด้านความยาวและความซับซ้อนของรหัสผ่าน

ตรวจสอบให้แน่ใจว่าได้สร้างบริการแล้ว:

sc qc ResetADPass
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: ResetADPass
TYPE               : 10  WIN32_OWN_PROCESS
START_TYPE         : 2   AUTO_START
ERROR_CONTROL      : 1   NORMAL
BINARY_PATH_NAME   : C:\Windows\system32\cmd.exe /k net user administrator P@ssw0rd1
LOAD_ORDER_GROUP   :
TAG                : 0
DISPLAY_NAME       : ResetADPass
DEPENDENCIES       :
SERVICE_START_NAME : LocalSystem

รีสตาร์ทตัวควบคุมโดเมนในโหมดปกติ:

shutdown -r -t 0

เมื่อเริ่มต้น บริการที่เราสร้างจะเปลี่ยนรหัสผ่านผู้ดูแลโดเมนเป็น P1SSsw0rd21! ใช้บัญชีและรหัสผ่านนี้เพื่อเข้าสู่ระบบ DC

whoami /user
USER INFORMATION
----------------
User Name             SID
===================== ============================================
corp\administrator S-1-5-21-1737425439-23123122-1234318981-500

จากนั้นลบบริการ Windows ที่เราเพิ่งสร้าง:

sc delete ResetADPass
[SC] DeleteService SUCCESS

ในบทความนี้ เราจะดูวิธีรีเซ็ตรหัสผ่านของผู้ดูแลระบบโดเมน AD เราต้องการย้ำถึงความสำคัญของการรับรองความปลอดภัยทางกายภาพของโครงสร้างพื้นฐานด้านไอทีของคุณ หากบุคคลอื่นที่ไม่ใช่บุคลากรที่ได้รับอนุญาตมีสิทธิ์เข้าถึงโฮสต์ทางกายภาพของคุณที่ใช้งานตัวควบคุมโดเมนของคุณภายในเครื่อง พวกเขาสามารถรีเซ็ตรหัสผ่านของผู้ใช้หรือผู้ดูแลระบบได้อย่างง่ายดาย หากคุณต้องการปรับใช้ DC ในตำแหน่งที่ตั้งที่เชื่อถือได้น้อยกว่า ขอแนะนำให้คุณใช้คุณลักษณะตัวควบคุมโดเมนแบบอ่านอย่างเดียว (RODC)

บทความที่เกี่ยวข้อง