มีโปรแกรมบรรทัดคำสั่งที่คุณสามารถใช้ได้หรือไม่?
มีโปรแกรมบรรทัดคำสั่งที่คุณสามารถใช้ได้หรือไม่?
คำตอบ:
ฉันคิดว่าคำถามควรจะบิดบนหัวของมัน Active Directory รองรับทั้ง Kerberos และ NTLM Windows จะลองใช้ Kerberos ก่อนและหากไม่เป็นไปตามข้อกำหนดทั้งหมดจะย้อนกลับไปที่ NTLM
ฉันจะยกตัวอย่างให้คุณการเข้าถึงการแชร์ไฟล์โดยใช้ชื่อเช่น \ server1 \ share จะเรียกใช้ Kerberos และควรได้รับการอนุญาตที่เหมาะสม แต่การเข้าถึงไฟล์เดียวกันโดยใช้ที่อยู่ IP จะเรียกใช้ Kerberos ก่อนและล้มเหลว (เนื่องจากไม่มี SPN สำหรับที่อยู่ IP) จากนั้นจึงล้มเหลวที่ NTLM
ดังนั้นตรวจสอบว่าโปรแกรมของคุณพยายามตรวจสอบสิทธิ์กับ AD อย่างไรและควรแจ้งให้คุณทราบว่ามีการใช้โปรโตคอลใด
ฉันอยากรู้อยากเห็นสิ่งที่กระตุ้นให้ถามคำถามนี้
คุณควรตรวจสอบเหตุการณ์การเข้าสู่ระบบจริง ๆ ว่าคอมพิวเตอร์เป็นเซิร์ฟเวอร์หรือเวิร์กสเตชัน การพิจารณาว่าผู้ใช้รายใดเข้าถึงระบบของคุณและแก้ไขปัญหาเกี่ยวกับความปลอดภัย
คุณสามารถปรับเปลี่ยนนโยบายการตรวจสอบของคุณด้วยนโยบายกลุ่ม: เริ่ม ... รัน ... gpedit.msc ... การกำหนดค่าคอมพิวเตอร์, การตั้งค่า Windows, การตั้งค่าความปลอดภัย, นโยบายท้องถิ่น, นโยบายการตรวจสอบ, "เหตุการณ์การเข้าสู่ระบบการตรวจสอบ" ทำเครื่องหมายที่ช่อง "สำเร็จ" และ "ล้มเหลว" ลองออกจากระบบและเข้าสู่ระบบเพื่อดูเหตุการณ์ 540 ทั่วไปในบันทึกเหตุการณ์ความปลอดภัยของ Windows ของคุณ
Netstat แสดงการเชื่อมต่อ TCP และ UDP ที่รับฟังทั้งหมด ใช้ตัวเลือก -na สำหรับการเชื่อมต่อทั้งหมดและไม่มีการแก้ไขชื่อหรือพอร์ต ตัวเลือก 'b' คือการแสดงโปรแกรมที่มีส่วนร่วม หากใช้ DNS อาจแสดงการเชื่อมต่ออื่น ๆ จำนวนมากดังนั้นคุณอาจต้องการระบุ TCP ด้วย
Kerberos ทำงานอย่างแน่นอนที่สุดหากมีการปรับใช้ Active Directory Domain Controller
netstat -nab
The requested operation requires elevation.
สมมติว่าคุณกำลังตรวจสอบเหตุการณ์การเข้าสู่ระบบให้ตรวจสอบบันทึกเหตุการณ์การรักษาความปลอดภัยและค้นหา 540 กิจกรรม พวกเขาจะบอกคุณว่ามีการตรวจสอบสิทธิ์เฉพาะกับ Kerberos หรือ NTLM
public string FindAllUsers()
{
string strReturn="";
try
{
DirectoryEntry directoryEntry = new DirectoryEntry("WinNT://" + Environment.UserDomainName);
string userNames = "";
string authenticationType = "";
foreach (DirectoryEntry child in directoryEntry.Children)
{
if (child.SchemaClassName == "User")
{
userNames += child.Name + Environment.NewLine; //Iterates and binds all user using a newline
authenticationType += child.Username + Environment.NewLine;
}
}
strReturn = userNames + "\n\n" + authenticationType;
//Console.WriteLine("************************Users************************");
//Console.WriteLine(userNames);
//Console.WriteLine("*****************Authentication Type*****************");
//Console.WriteLine(authenticationType);
}
catch (Exception)
{
Console.WriteLine("Network error occured.");
strReturn = "";
}
return strReturn;
}
คุณสามารถลองใช้เครื่องมือนี้ http://blog.michelbarneveld.nl/media/p/33.aspx
นี่เป็นเครื่องมือสำหรับทดสอบการรับรองความถูกต้องบนเว็บไซต์ มันจะแสดงประเภทการรับรองความถูกต้องที่ใช้: Kerberos, NTLM, พื้นฐาน, ไม่มี แต่มันยังแสดงข้อมูลอื่น ๆ เช่น: ใช้ SPN, ส่วนหัว HTTP, ถอดรหัสส่วนหัวการอนุญาต NTLM และ Kerberos และมันยังสามารถแสดงและลบตั๋ว Kerberos ของคุณ
ขึ้นอยู่กับไคลเอนต์ / เซิร์ฟเวอร์ที่เกี่ยวข้อง ตัวอย่างเช่นมีหน้าเว็บ (ขออภัยไม่มีเวลาค้นหาเลย) คุณสามารถใส่เว็บไซต์ที่จะบอกคุณได้ว่ามีการใช้ kerberos หรือ NTLM หรือไม่ อย่างไรก็ตามฉันรู้ว่าไม่มีวิธีใดที่จะบอกได้ว่าวิธีการรับรองความถูกต้องเซิร์ฟเวอร์ SQL นั้นใช้อะไร แม้ว่าดังที่เคยเป็นมาก่อนหน้านี้บันทึกความปลอดภัยอาจบอกคุณ
ทำไมคุณถึงพยายามค้นหา?