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

วิธีตรวจสอบว่าใครเป็นผู้รีเซ็ตรหัสผ่านของผู้ใช้ใน Active Directory


มาดูวิธีติดตามว่าใครเป็นผู้รีเซ็ตรหัสผ่านของบัญชีผู้ใช้เฉพาะใน Active Directory โดยใช้บันทึกการรักษาความปลอดภัยของตัวควบคุมโดเมน

คุณสามารถติดตามเหตุการณ์การรีเซ็ตรหัสผ่านได้โดยใช้นโยบายการตรวจสอบ ก่อนอื่น คุณต้องเปิดใช้งานนโยบายการจัดการบัญชีการตรวจสอบในโดเมน AD ของคุณ ที่จะทำ:

  1. เปิดคอนโซล การจัดการนโยบายกลุ่ม (gpmc.msc) และแก้ไข นโยบายโดเมนเริ่มต้น

  2. จากนั้นในตัวแก้ไขนโยบายกลุ่ม ให้ไปที่ การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> การตั้งค่า Windows -> การตั้งค่าความปลอดภัย -> นโยบายท้องถิ่น -> นโยบายการตรวจสอบ

  3. ค้นหานโยบาย ตรวจสอบการจัดการบัญชีผู้ใช้ และเปิดใช้งาน (หากคุณต้องการบันทึกความพยายามในการเปลี่ยนรหัสผ่านที่สำเร็จและล้มเหลว ให้เลือก สำเร็จ และ ล้มเหลว) .

    หมายเหตุ คุณสามารถเปิดใช้นโยบายนี้ได้ในส่วนนโยบายการตรวจสอบขั้นสูงเช่นกัน (การกำหนดค่าคอมพิวเตอร์ -> นโยบาย -> การตั้งค่า Windows -> การตั้งค่าความปลอดภัย -> การกำหนดค่านโยบายการตรวจสอบขั้นสูง)

  4. หลังจากใช้ GPO กับไคลเอ็นต์แล้ว คุณสามารถลองเปลี่ยนรหัสผ่านของผู้ใช้ AD รายใดก็ได้

  5. จากนั้นเปิด ตัวแสดงเหตุการณ์ บนตัวควบคุมโดเมนของคุณ และไปที่ ตัวแสดงเหตุการณ์ -> บันทึกของ Windows -> ความปลอดภัย คลิกขวาที่บันทึกแล้วเลือก กรองบันทึกปัจจุบัน

  6. ในพารามิเตอร์ตัวกรอง ให้ระบุว่าคุณต้องแสดงเหตุการณ์ที่มีรหัสเหตุการณ์ 4724 เท่านั้น

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

เคล็ดลับ หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับเหตุการณ์การเปลี่ยนรหัสผ่านของผู้ใช้ ให้เพิ่ม EventIDs ต่อไปนี้ในตัวกรอง:

  1. 4724 (628 ใน Windows Server รุ่นก่อนหน้า) - มีการพยายามรีเซ็ตรหัสผ่านของบัญชี (ผู้ดูแลระบบรีเซ็ตรหัสผ่านผู้ใช้)

  2. 4723 (627 ใน Windows Server รุ่นก่อนหน้า) - มีการพยายามเปลี่ยนรหัสผ่านของบัญชี (ผู้ใช้เปลี่ยนรหัสผ่านเอง)

คุณสามารถรับข้อมูลเกี่ยวกับเหตุการณ์นี้จากตัวควบคุมโดเมน Active Directory ทั้งหมด โดยใช้ Get-ADComputer และ Get-WinEvent PowerShell cmdlets:

(Get-ADComputer -SearchBase ‘OU=Domain Controllers,DC=a-d,DC=com’ -Filter *).Name | foreach {
Get-WinEvent -ComputerName $_ -FilterHashtable @{LogName="Security";ID=4724 }| Foreach {
$event = [xml]$_.ToXml()
if($event)
{
$Time = Get-Date $_.TimeCreated -UFormat "%Y-%d-%m %H:%M:%S"
$AdmUser = $event.Event.EventData.Data[4]."#text"
$User = $event.Event.EventData.Data[0]."#text"
$dc = $event.Event.System.computer
write-host “Admin ” $AdmUser “ resets password to ” $User “ on ” $dc “ “ $Time
}
}
}

หากจำเป็น คุณสามารถบันทึกข้อมูลนี้ได้โดยตรงจาก PowerShell ไปยังฐานข้อมูล MySQL ภายนอกโดยใช้ MySQL .NET Connector ตามสคริปต์ที่คล้ายกันที่อธิบายไว้ในบทความ วิธีตรวจหาว่าใครลบไฟล์ออกจากโฟลเดอร์ที่ใช้ร่วมกันของ Windows

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