หากบุคคลมีการเข้าถึงรูทไปยังเครื่อง RHEL บางเครื่องพวกเขาจะสามารถเรียกคืนรหัสผ่านของผู้ใช้รายอื่นได้หรือไม่?
หากบุคคลมีการเข้าถึงรูทไปยังเครื่อง RHEL บางเครื่องพวกเขาจะสามารถเรียกคืนรหัสผ่านของผู้ใช้รายอื่นได้หรือไม่?
คำตอบ:
TL; DR: ไม่รหัสผ่านถูกเก็บเป็นแฮชซึ่งไม่สามารถกู้คืนได้ (โดยทั่วไป)
ลินุกซ์จะไม่จัดเก็บรหัสผ่านข้อความธรรมดาได้ทุกที่โดยค่าเริ่มต้น พวกเขาถูกแฮชหรือเข้ารหัสอย่างอื่นผ่านอัลกอริทึมที่หลากหลาย ดังนั้นโดยทั่วไปไม่เป็นไปไม่ได้กับข้อมูลที่เก็บไว้
หากคุณมีรหัสผ่านที่จัดเก็บไว้ที่อื่นนอกเหนือจาก/etc/passwd
ฐานข้อมูลรหัสผ่านอาจถูกจัดเก็บในลักษณะที่อนุญาตให้ทำได้ htpasswd
ไฟล์สามารถมีรหัสผ่านที่เข้ารหัส Wealy และแอปพลิเคชันอื่น ๆ อาจเก็บแฮชที่อ่อนแอลงหรือรหัสผ่านแบบข้อความล้วนด้วยเหตุผลต่างๆ
นอกจากนี้ไฟล์การกำหนดค่าของผู้ใช้อาจมีรหัสผ่านที่ไม่ได้เข้ารหัสหรือรหัสผ่านที่ป้องกันอย่างอ่อนด้วยเหตุผลต่างๆเช่น fetchmail ที่ดึงเนื้อหาจากบริการอื่น.netrc
หรือสิ่งอัตโนมัติอาจรวมถึงรหัสผ่านโดยอัตโนมัติ
หากรหัสผ่านถูกแฮชหรือเข้ารหัสด้วยอัลกอริธึมที่อ่อนแอและเก่ากว่า (3DES, MD5) มันจะเป็นไปได้ที่จะทำงานอย่างมีประสิทธิภาพพอสมควร / ถูกว่ารหัสผ่านคืออะไร - แม้ว่าจะผ่านการโจมตีข้อมูล (เช่น: สิ่งต่างๆเช่นhttp://project-rainbowcrack.com/หรือhttp://www.openwall.com/john/ )
เนื่องจากคุณเป็นรูทจึงเป็นไปได้ที่จะโจมตีรหัสผ่านผู้ใช้ในระดับอื่น - แทนที่ไบนารีล็อกอินหรือ sudo หรือส่วนหนึ่งของ PAM ฯลฯ ด้วยสิ่งที่จะจับรหัสผ่านเมื่อมีการป้อน
ดังนั้นโดยเฉพาะอย่างยิ่งไม่ใช่ แต่โดยทั่วไปแล้วการเข้าถึงรูทนั้นจะทำให้ได้รับรายละเอียดของผู้ใช้ผ่านช่องทางด้านต่าง ๆ ได้ง่ายขึ้น
ตรงกันข้ามกับคำตอบอื่น ๆ ที่นี่ฉันจะบอกว่าคำตอบง่าย ๆ สำหรับคำถามนี้และคำถามอื่น ๆ อีกมากมายที่ลงท้ายด้วย "ถ้าคุณมีราก" คือใช่
โดยพื้นฐานแล้วรูทสามารถทำทุกอย่างบนเครื่องที่ระบบสามารถทำได้ ระบบสามารถยอมรับรหัสผ่านของคุณได้ดังนั้นรูทสามารถยอมรับรหัสผ่านของคุณหรือรหัสผ่านของคุณเองได้โดยใช้ความพยายามอย่างเพียงพอ ที่สำคัญเขาสามารถเปลี่ยนรหัสผ่านของคุณหรือกลายเป็นคุณ
โดยเฉพาะรหัสผ่านจะถูกเข้ารหัส นี่คืออัลกอริทึม "one-way" ซึ่งจะสร้างหมายเลข (แฮช) ซึ่งสามารถใช้ตรวจสอบรหัสผ่านได้ แต่โดยทั่วไปแล้วจะไม่ย้อนกลับจำนวนและรับรหัสผ่านอีก ดังนั้นไม่ใช่เรื่องของการอ่านไฟล์เพื่อรับรหัสผ่านของใครบางคน
ที่กล่าวว่าคุณสามารถอ่านประวัติเชลล์ของพวกเขาและประวัติการเข้าสู่ระบบที่พวกเขามักพิมพ์รหัสผ่านแทนชื่อผู้ใช้ของพวกเขาในบางจุดหรือพิมพ์ในเชลล์แทนการแจ้งรหัสผ่าน ในกรณีนั้นมันจะเป็นข้อความธรรมดา สิ่งนี้เป็นสิ่งที่พบเห็นได้ทั่วไปในเทอร์มินัลที่ใช้ข้อความโดยไม่มีวิธีแก้ปัญหาที่ดีที่ฉันรู้
อย่างไรก็ตามแม้การตั้งค่าปัญหานั้นการเข้ารหัส "ทางเดียว" ไม่ใช่วิธีเดียว มีเครื่องมือมากมายรอบตัวที่จะผ่านชุดข้อความวลีมากมายเข้ารหัสพวกเขาด้วยกระบวนการทางเดียวจนกว่าคุณจะพบคนที่ตรงกัน จากนั้นพวกเขารู้รหัสผ่านที่จะเข้าถึง (แม้ว่าจะเป็นรูทพวกเขาจะมีสิทธิ์เข้าถึงบนเครื่องนั้น)
ที่แย่กว่านั้นคือมีเรนโบว์เทเบิลซึ่งคำตอบที่คำนวณไว้ล่วงหน้าสำหรับกระบวนการข้างต้น: ผู้คนได้สร้างรหัสผ่านดั้งเดิมที่มาจากรหัสผ่านที่เข้ารหัสไว้แล้ว การใช้สิ่งเหล่านี้เป็นการค้นหาที่ง่ายไม่ต้องใช้ความพยายามในการแคร็ก
อีกครั้งการเข้าถึงระดับรากเป็นสิ่งที่ต้องปกป้อง ด้วยการทำลายที่ทำให้ทั้งเครื่องและทุกอย่างที่อยู่ในนั้นถูกบุกรุก ถึงเวลาที่จะเริ่มต้นใหม่รวมถึงแจ้งผู้ใช้ของคุณว่าธุรกิจของคุณไม่สามารถเชื่อถือได้เพื่อปกป้องความเป็นส่วนตัวของพวกเขาอีกต่อไป และใช่นั่นอาจหมายถึงการออกไปทำธุรกิจ
หากคุณมีroot
แล้วคุณสามารถเรียกใช้ cracker รหัสผ่านต่อต้าน/etc/shadow
(สมมติว่ารหัสผ่านท้องถิ่นและไม่ LDAP หรือ Kerberos ฯลฯ ) สิ่งนี้อาจไม่ได้ผลหากพวกเขาเลือกรหัสผ่านที่ดีและระบบได้รับการกำหนดค่าให้ใช้การแฮชรหัสผ่านที่คาดเดายาก แต่รหัสผ่านระบบจะไม่ถูกจัดเก็บในธรรมดา root
รหัสผ่านที่ไม่สามารถใช้ได้โดยตรงแม้กระทั่งการ
รหัสผ่านทั้งหมดจะถูกเก็บไว้ใน/etc/shadow
ไฟล์ คุณสามารถเปิดไฟล์นี้โดยใช้การเข้าถึงรูทและดูhash value
รหัสผ่านเหล่านี้สำหรับผู้ใช้แต่ละคน (แม้แต่ผู้ใช้รูท)
หากคุณไม่มีซอฟต์แวร์ถอดรหัสรหัสผ่านใด ๆ คุณจะไม่สามารถแปลงค่าแฮชเหล่านี้กลับเป็นข้อความปกติได้
แต่ถ้าคุณมีสิทธิ์เข้าถึงผู้ใช้รูทคุณสามารถเปลี่ยนรหัสผ่านของผู้ใช้ปกติโดยใช้คำสั่งต่อไปนี้และเข้าถึงบัญชีของพวกเขา
root@localhost$ passwd pradeep
นี้จะขอให้คุณสำหรับ passwd pradeep
ใหม่ที่คุณต้องการตั้งค่าสำหรับผู้ใช้ วิธีนี้คุณสามารถเปลี่ยนรหัสผ่านสำหรับ pradeep ได้
ตอนนี้คุณสามารถเข้าถึงได้จากบัญชีของเขาโดย:
root@localhost$ su pradeep
สิ่งนี้จะส่งผลให้เปลี่ยนไปใช้ผู้ใช้ที่มีการควบคุมล่วงหน้าและคุณจะได้รับเครื่องเช่นนี้:
pradeep@localhost$