How to login SSH by using the attacker’s private key – Metasploitable2

บทนำ (Overview)

เราสามารถสรุปการใช้ “Private Key” ของบริการ “SSH” ในการพิสูจน์ตัวตนแทน (Authentication) แทนรหัสผ่าน (Password) ได้ดังนี้

  • “Brute-force” เพื่อค้นหา “Private Key” เนื่องจากตัว “OpenSSH” มีช่องโหว่ (How to exploit Predictable PRNG Bruteforce OpenSSH – Metasploitable2)
  • ค้นหา “Private key” ของเหยื่อจากช่องโหว่อื่น ๆ นำมาติดไว้ที่เครื่องเราเพื่อใช้งาน “Authentication” ผ่าน “Private key” (How to login SSH using private key – Metasploitable2)
  • ผู้โจมตีสร้าง “Private Key” และ “Public Key” ขึ้นมา และนำ “Public Key” ไปวางไว้ที่เครื่องเหยื่อ (อาศัยช่องโหว่อื่นประกอบ จนทำให้มีสิทธิในการ “Write File” ของ “Public Key” ได้) จากนั้น “Authentication”  ผ่าน “Private Key” คู่ของมัน

ขั้นตอน (Steps)

  1. จากบทความ How to mount Network File System (NFS) – Metasploitable2 กล่าวถึงวิธีการ “Mount” ระบบไฟล์เหยื่อ และติดตามบทความ How to login SSH using private key – Metasploitable2 เพื่อเข้าถึง “.ssh” โฟลเดอร์ Metasploitable2-ssh-pk-07
  2. ก่อนอื่นเราทดลองเข้าใช้งาน “SSH” ผ่าน “Terminal” เสียก่อน เนื่องจากบทความก่อนหน้าทำให้เราทราบว่า มี “Home” ไดเรกทอรีชื่อ “msfadmin”
    ssh msfadmin@192.168.1.57
    

    Metasploitable2-ssh-atpk-01

  3. จากคำสั่งข้างต้นพบว่าระบบต้องรหัสผ่าน ที่นี้ถ้าเราเอา “Public Key” ไปวางที่ “authorized_keys” ของ “SSH” จะเกิดอะไรขึ้น (สามารถติดตามวิธีการสร้าง “Key” ได้จากบทความ How to generate SSH key in Kali linux)
    cat ~/.ssh/id_rsa.pub >> /tmp/mount/home/msfadmin/.ssh/authorized_keys
    
  4. จากคำสั่งข้างต้นเราเอา “Public Key” ของเรา (Kali) ทำสำเนาโดยต่อท้ายจาก “Key” ก่อนหน้าในไฟล์ “authorized_keys” ที่เครื่องเหยื่อ ผลลัพธ์ที่ได้จะมีลักษณะดังนี้ Metasploitable2-ssh-atpk-02
  5. ที่นี้เราลอง “Login” อีกครั้ง เราจะพบว่าสามารถเข้าถึงได้ทันทีโดยไม่ต้องใส่ “Password” หรือ “Private Key” อีกแล้ว Metasploitable2-ssh-atpk-03

ใส่ความเห็น