TONY HAWK’S PRO STRCPY
ภาพรวม
- โปรเจกต์ที่เริ่มต้นในปี 2016 เพื่อค้นหาบั๊กใหม่สำหรับการแฮ็ก Xbox
- เครื่องเกมคอนโซลช่วงต้นทศวรรษ 2000 มีมาตรการลดความเสี่ยงด้านความปลอดภัยน้อย จึงเหมาะสำหรับการเรียนรู้การแฮ็ก
- วิเคราะห์ไฟล์เซฟของ Tony Hawk’s Pro Skater 4 และค้นพบช่องโหว่บัฟเฟอร์โอเวอร์โฟลว์
Part 1: การเริ่มต้น
- ค้นพบช่องโหว่ผ่านฟีเจอร์ "Create-A-Park" ของ Tony Hawk’s Pro Skater 4
- เกิดบัฟเฟอร์โอเวอร์โฟลว์ระหว่างกระบวนการคัดลอกสตริงชื่อช่องว่างของเกมเซฟด้วยฟังก์ชัน strcpy
- สร้างไฟล์เซฟที่เป็นอันตรายและรันบน Xbox เพื่อให้ได้สิทธิ์ในการรันโค้ด
Part 2: การรันโค้ดระยะไกล
- สำรวจวิธีแฮ็กคอนโซลผ่านเครือข่ายโดยไม่ต้องใช้เมมโมรีการ์ด
- ทดลองวิธีส่งไฟล์เซฟในเกม LAN แบบมัลติเพลเยอร์เพื่อแฮ็กคอนโซลฝั่งไคลเอนต์
- เกิดบัฟเฟอร์โอเวอร์โฟลว์เมื่อคอนโซลไคลเอนต์โหลดไฟล์เซฟที่ส่งมาจากโฮสต์
- เขียนตัวจัดการข้อความเครือข่ายเพื่อส่งไฟล์เพย์โหลดเสริมไปยังคอนโซลไคลเอนต์
การวิเคราะห์ตัวแปร
- พบช่องโหว่ลักษณะคล้ายกันในเกมอื่น ๆ เช่น Tony Hawk’s Pro Skater 3, Tony Hawk’s Underground 1 & 2, Tony Hawk’s American Wasteland
- บางเกมใช้ stack cookie เพื่อป้องกันบัฟเฟอร์โอเวอร์โฟลว์
ผลลัพธ์สุดท้าย
- เมื่อคอนโซลไคลเอนต์เชื่อมต่อกับคอนโซลโฮสต์ จะมีการส่งไฟล์เซฟที่เป็นอันตรายผ่านเครือข่าย
- คอนโซลไคลเอนต์รับและรันไฟล์เพย์โหลดปฏิบัติการ
- การรันโค้ดระยะไกลและการส่งไฟล์แบบอะซิงโครนัสสำเร็จ
สรุปโดย GN⁺
- บทความนี้กล่าวถึงกระบวนการสำรวจและใช้ประโยชน์จากช่องโหว่ความปลอดภัยของเครื่องเกมคอนโซลรุ่นเก่าอย่าง Xbox
- คอนโซลรุ่นเก่ามีมาตรการลดความเสี่ยงด้านความปลอดภัยน้อย จึงเหมาะสำหรับการเรียนรู้การแฮ็ก และสามารถได้สิทธิ์รันโค้ดผ่านบั๊กหลากหลายรูปแบบ
- มีการสำรวจวิธีรันโค้ดระยะไกลผ่านเครือข่าย และนำเสนอวิธีแฮ็กคอนโซลได้โดยไม่ต้องใช้เมมโมรีการ์ด
- มีการค้นพบและวิเคราะห์ช่องโหว่ในเกมอื่นที่มีฟังก์ชันคล้ายกัน ทำให้เรียนรู้เทคนิคการแฮ็กได้หลากหลาย
- บทความนี้ให้ข้อมูลที่เป็นประโยชน์แก่ผู้ที่สนใจการแฮ็กและการวิจัยความปลอดภัย และช่วยให้เข้าใจช่องโหว่ของคอนโซลรุ่นเก่าได้ดีขึ้น
1 ความคิดเห็น
ความเห็นบน Hacker News
โมดูลัสของกุญแจสาธารณะของ habibi ต่างจากกุญแจสาธารณะ Microsoft RSA เพียง 4 ไบต์
จำนวนเต็ม 2048 บิตอาจถูกแยกตัวประกอบได้อย่างค่อนข้างง่าย
การซอฟต์ม็อด Xbox 360 เคยทำได้ผ่านชื่อสวนในเกม Tony Hawk
น่าจะใช้
strncpyแทนstrcpyTony Hawk เป็นนักสเก็ตอาชีพ ไม่ใช่นักวิเคราะห์ความปลอดภัย
สงสัยว่ากุญแจส่วนตัวของ habibi รั่วไหลออกมาเมื่อไร ที่ไหน และอย่างไร
ตอนทำ PSX decompiling เคยเจอกรณีคล้ายกันเยอะ
memmoveจะถูกลิงก์ผ่านไลบรารี SDK แต่strcpyมาจาก BIOSเคยอ่านการวิเคราะห์เอ็กซ์พลอยต์แบบนี้มาหลายครั้งแล้ว และหวังว่าจะได้อ่านอีกเป็นร้อยครั้งต่อจากนี้
เป็นตัวอย่างที่ดีของกรอบความคิดด้านความปลอดภัยที่ผิดพลาดในการพัฒนาคอนโซล
ลองจินตนาการถึงปลั๊กอิน VSCode ที่ตั้งชื่อทริกและให้คะแนนคอมโบจากการกดคีย์ต่อเนื่อง