สายชาร์จ Hacker กับความเป็นไปได้ (2/2)

SHA999
3 min readJan 17, 2023

ในส่วนของ Part ที่ 1 เราได้เล่าถึงประวัติศาสตร์ และความเป็นมาของ BadUSB หรือ O.MG Cable ไปคร่าว ๆ แล้ว ถ้าใครยังไม่อ่านสามารถเข้าไปอ่านได้ที่ Link นี้ได้เลยครับ คราวนี้เราจะมาพูดถึงความเป็นไปได้กันบ้างครับ

หลักการทำงานเบื้องต้น

ก่อนที่ผมจะไป Demo หรือสาธิตวิธีการโจมตีให้ดู เรามาทำความเข้าใจกันถึงวิธีการทำงานนิด ๆ หน่อย ๆ กันก่อนดีกว่า

https://null-byte.wonderhowto.com/how-to/make-your-own-bad-usb-0165419/

จริง ๆ แล้วคำว่า BadUSB เนี่ยมันเป็นชื่อช่องโหว่นะครับ ฟังไม่ผิดครับ มันคือช่องโหว่ แล้วช่องโหว่ในที่นี้คือตัว Thumbdrive หรือ Flash drive บางตัวที่ Microcontroller นั้นมีช่องโหว่ทำให้สามารถไปทำการ Flashing Firmware ได้ หรือถ้าพูดให้คนทั่ว ๆ ไปเข้าใจได้ขึ้นก็คือเขียนโปรแกรมทับเข้าไปใหม่ได้นั่นเอง

แล้วเขียนทับเพื่ออะไร?

สิ่งที่ Hacker ทำคือทำให้มันกลายเป็นอุปกรณ์ HID ครับ สำหรับคนที่นึกภาพไม่ออก มันคือ Keyboard หรือพวก Joy stick นั่นแหละครับ

ทีนี้พอรู้วิธีทำให้อุปกรณ์นี้กลายเป็น HID ได้แล้ว ทาง Hacker จะเขียนโปรแกรมให้พิมพ์สิ่งต่าง ๆ ลงในอุปกรณ์ของเหยื่อได้อย่างที่ต้องการ

เกร็ดเพิ่มเติมในส่วนของ O.MG Cable

เนื่องจาก O.MG Cable ไม่ได้ใช้ Flash drive ที่มีช่องโหว่ แต่ O.MG Cable ได้ใช้ชิป Microcontroller ที่สามารถเขียนได้อยู่ข้างใน ตัวที่คล้าย ๆ กันและเป็นที่นิยมคือ ATtiny85 สาเหตุที่ O.MG Cable ไม่ได้ใช้เป็นเพราะเรื่องของขนาด และความจุมันไม่ได้ตามที่เขาต้องการนั่นเอง

https://www.microchip.com/en-us/product/ATtiny85
https://shop.hak5.org/products/omg-cable

ภาพรวมอุปกรณ์

ตัวที่ผมจะนำมา Demo ให้ดูจะเป็นหัว Type-A to Type-C นะครับ จะเห็นได้ว่าแทบไม่ต่างจากสายชาร์จปกติทั่วไป เจ้าหัวแบบนี้ตัวชิปที่สั่งทำงานจะอยู่ตรงฝั่ง Type-A ครับ (หัวใหญ่)

O.MG Cable

Demo เสียบกับ Laptop

Demo นี้จะเปิด notepad ในเครื่อง แล้วพิมพ์ Hello, Thailand ออกมา

Demo เปิด notepad

ถ้าเปิดแบบ Slow จะเห็นได้ว่ามีการพิมพ์อย่างรวดเร็วเกิดขึ้น ที่นี้จะเกิดอะไรขึ้นถ้าเราใช้ภาษาไทย? ลองดู Demo ถัดไปได้เลยครับ

Thai keyboard layout

เกิด Error ขึ้นทันที เพราะอะไร? เป็นเพราะว่าเจ้าตัวอุปกรณ์มันไม่รู้หรอกว่าเราใช้ Keyboard Layout อะไรอยู่ อย่างในตอนนี้เครื่องเหยื่อใช้ Layout ภาษาไทย มันก็ตะบี้ตะบันพิมพ์ของมันไปตาม Keyboard Layout ใช้อยู่นั่นแหละ ซึ่งเป็นหนึ่งในข้อจำกัดเจ้าตัวนี้

Demo เสียบกับ Android

คราวนี้มาลองพวกอุปกรณ์แนวมือถือกันบ้าง อย่างกรณีนี้จะใช้มือถือที่เป็น Android 12 ไม่ได้ทำการ Root ไม่เปิด Debug mode และใช้ Security Patch เวอร์ชันล่าสุด แต่เนื่องจากทางผมไม่มีสายที่เป็น Type-C to Type-C เลยขออนุญาตใช้ Docking Hub เพื่อแปลงหัวนะครับ (ดูเทอะทะหน่อย แต่ทดแทนกันได้)

BadUSB ในสถานการณ์ที่ไม่ล็อคหน้าจอ

จะเห็นได้ว่าลักษณะการโจมตีแทบไม่ต่างจาก Demo ของ Laptop มีหลักการควบคุมเครื่องโดยการพิมพ์เหมือนกัน ซึ่งหากเป็นกระบวนการสั่งให้ไปดาวน์โหลด App ที่ Hacker เป็นคนสร้างเพื่อควบคุมเครื่องเหยื่อ เราจะเห็นคาตาทันทีว่าหน้าจะเรากำลังทำอะไร ในช่วงจังหวะนั้นถ้าเหยื่ออยู่หน้าจอ เหยื่อสามารถแก้เกมด้วยการดึงสายชาร์จก็พอ หรือถ้า Install เสร็จสมบูรณ์แล้วให้ทำการปิดเน็ต แล้วไปสั่ง Uninstall เท่านี้ก็ไม่ได้น่ากลัวอะไรแล้ว เพื่อความชัวร์จะ Restart เครื่องซักรอบก็ได้

BadUSB กรณีล็อคหน้าจอ

ในอีก Demo หนึ่งจะเห็นได้ว่าหากล็อคหน้าจอไว้การโจมตีด้วย BadUSB หรือ O.MG Cable จะไม่มีผลทันที

Demo เสียบกับ iPad

คราวนี้มาลอง iPad กันบ้างนะครับ (ขอใช้ Docking เหมือน Demo ก่อนหน้านะครับ) แน่นอนว่าใช้กับ iPad ก็ได้ผลไม่แตกต่างจาก 2 อันเลย ถ้าอยู่ในสถานการณ์ที่ไม่ล็อคหน้าจอ และไม่ถอดสายจนกว่าจะประมวลผลเสร็จ

BadUSB targeting iPad

แต่ก็อีกนั่นแหละสถานการณ์ที่วิเศษขนาดนี้จะเป็นไปซักแค่ไหนกันเชียว? เดี๋ยววิเคราะห์กันในหัวข้อถัดไป

Demo เสียบที่หัวใจ

หยอก ๆๆๆๆๆ

ข้อจำกัดต่าง ๆ

ต้องยอมรับก่อนว่า BadUSB เป็นเครื่องมือที่ค่อนข้างเป็นประโยชน์กับ Hacker หากอยู่ในสถานการณ์ที่เหมาะสม แต่ถ้าพูดถึงสถานการณ์ที่เป็นข่าวอยู่บ่อย ๆ อย่างเงินหายจากบัญชีโดยไม่รู้ตัว ไม่ว่าจาก Banking หรือพวก Wallet ก็ตาม การพุ่งเป้าไปที่ BadUSB หรือ O.MG Cable เป็นตัวการ ค่อนข้างไม่สมเหตุสมผลอย่างมาก ด้วยเหตุผลดังต่อไปนี้

ปัจจัยทางด้านราคา

เจ้า O.MG Cable อย่างตัวถูกสุดก็อยู่ที่ $119.99 ตีเป็นเงินไทยจะอยู่ที่ราว ๆ 3,900–4,000 บาท (ไม่รวมค่าส่งมาไทย) แถมไม่มีอะไรการันตีด้วยว่าการทิ้งไว้ที่สาธารณะจะมีซักกี่คนที่เอาไปเสียบใช้ เราอาจจะต้องซื้อมาซัก 20–30 ตัว เพื่อเพิ่มโอกาสสำเร็จ แสดงว่าอย่างน้อยตอนนี้เราจะต้องมีทุนไม่ต่ำกว่า 80,000 บาท เป็นทุนตั้งต้นแล้ว

ถ้าทุนตั้งต้นมากขนาดนี้ ไปทำท่าอื่นที่มีโอกาสสำเร็จมากกว่านี้ไม่ดีกว่าเหรอ? อย่างการสร้างเว็บปลอมเนี่ยในความเป็นจริงแล้วควบคุม Budget ได้ง่ายกว่าเยอะเลยนะ เข้าถึงคนได้หลักพันหลักหมื่นคนเลย

เป้าหมายที่ไม่แน่นอน

เราไม่รู้เลยว่าคนที่นำสายเราไปใช้ที่เป็นใคร มีเงินในบัญชีเท่าไหร่ ซึ่งเป้าหมายเป็นผมเงินในบัญชีคงจะมีซัก 20 บาท ไม่น่าจะคุ้มเท่าไหร่นะอิ ๆ

ปัจจัยทางด้านความรู้

อย่างที่เห็นในคลิปต่าง ๆ ในอินเทอร์เน็ต หรือคลิปที่ผมเป็นคน Upload ที่เสียบแล้วใช้ได้เลยเนี่ย สิ่งนั้นไม่ได้สำเร็จรูป ไม่ได้ซื้อมาเสียบแล้วใช้ได้ลยนะครับ ต้องคิดก่อนว่าอยากให้สายนี้ทำอะไร จากนั้นต้องเขียนโค้ดลงในอุปกรณ์

โค้ดที่เขียนไปจำเป็นต้องใช้เวลาเรียนรู้ ถ้ามีพื้นการเขียนโค้ดที่ดีอยู่แล้ว ตรงนี้จะย่นระยะเวลาลงไปได้มาก แต่ในการ Hack จริง แค่ความรู้การเขียนโค้ดนั้นไม่พอ ความรู้อื่น ๆ นั้นก็จำเป็นเช่นกัน เช่นความรู้ Network เป็นต้น

ฉะนั้น “สายดูดข้อมูล” ที่เห็นตามสื่อต่าง ๆ โดยข้อเท็จจริงแล้วมันไม่ได้ทำง่ายขนาดนั้น ผู้ทำจำเป็นศึกษามาให้ดีพอถึงจะทำได้

ปัจจัยทางด้านเทคนิค

อย่างที่เห็นใน Demo ข้อจำกัดทางด้านเทคนิคก็มีเช่นกัน ถ้า Keyboard Layout ตั้งต้นเป็นอื่นที่ไม่ใช่ภาษาอังกฤษไม่ว่าเป้าหมายจะเป็น Laptop หรือมือถือก็ตาม ตัวโค้ดที่ใส่ไปตอนแรกก็จะใช้ไม่ได้ทันที บางคนอาจจะบอกให้ใส่โค้ดเปลี่ยนภาษา แต่ถ้าตัวตั้งต้นของเหยื่อเป็นอังกฤษอยู่แล้ว สิ่งที่ได้ก็จะกลับมาเป็นปัญหาเดิมอีก

เรื่องทางด้านเทคนิคถัดมาคือเราไม่สามารถรู้ได้ว่าเหยื่อจะนำไปเสียบกับอุปกรณ์ประเภทใด ถ้า Hacker ใช้สาย Type-C ที่มีเป้าหมายไปที่ Macbook รุ่นใหม่ ๆ แล้วเหยื่อดันไปเสียบกับ Android เรื่องก็จะเปลี่ยนไปทันที เท่ากับว่าสายนั้น ๆ แทบไม่มีผลกระทบใด ๆ ต่อเครื่องเหยื่อเลย

อีกเรื่องคือการล็อคหน้าจอ ถ้าเหยื่อล็อคหน้าจออยู่ทาง Hacker ก็ทำอะไรไม่ได้เช่นกัน

สรุป

ผมไม่ได้จะสื่อว่าการโจมตีด้วย O.MG Cable หรือ BadUSB มันจะเป็นไปไม่ได้ แต่สถานการณ์ที่มีโอกาสเกิดขึ้นจริง ๆ ที่มีเป้าหมายเพื่อโจมตีในระดับบุคคลทั่วไป มันเป็นไปได้ยากมาก และไม่คุ้มที่จะลงทุนอีกด้วย ทำเว็บปลอมยังคุ้มทุนกว่าอีก

แต่ในทางกลับกันแนวคิดที่ว่าไม่เสียบสายซี้ซั้วนั้นย่อมเป็นความคิดที่ดีอยู่แล้ว หวังว่าบทความนี้จะเป็นประโยชน์กับทุกท่านไม่มากก็น้อย หากมีข้อผิดพลาดประการใดขออภัยมา ณ ที่นี้ด้วย ขอบคุณที่อ่านครับ

--

--

SHA999

Lead Pentester @Cloudsec Asia | GPEN | OSCP | eCXD | Python for Pentesters