Transmission Bittorrent client เป็น application ตัวหนึ่งที่ได้รับความนิยมในการใช้งานและส่งไฟล์กับผ่าน p2p ล่าสุดพบช่องโหว่โดยหนึ่งในทีมของ Google’s Project Zero ชื่อว่า Tavis Ormanday

ทาง Ormandy ได้ทำการเปิดเผยช่องโหว่นี้หลังจากไป 50 วันแล้วไม่มีการ response ใดๆจากทีม Developer ของ application ดังกล่าว โดย Ormandy ได้ทำการปล่อย PoC สำหรับการโจมตีออกมาด้วย โดยการโจมตีดังกล่าวเกิดในส่วน Transmission function ซึ่งทำให้ Attacker สามารถยึด Bittorent App ได้ผ่าน web browser ได้ ซึ่งทาง Ormandy ทดสอบแล้วว่ามันเวิร์คใน Chrome, Firefox บน Windows และ Linux (Fedora และ Ubuntu) และก็เชื่อว่าก็น่าจะเวิร์คใน Browser อื่นเช่นกัน

ตัว Transmission BitTorrent App นั้นทำงานแบบ server-client architecture, เมื่อ users ติดตั้ง service ใน system จำเป็นต้องมีการเข้าใช้งานผ่าน web-based interface ด้วย browser. Service ที่ติดตั้งในเครื่องนั้นจะกระทำการ download และ upload file ใดๆ ผ่าน browser ด้วย JSON RPC request

ทาง Ormandy พบว่าหากกระทำการโจมตีแบบ DNS Rebinding ได้สำเร็จ ตัว Attacker ก็จะสามารถสั่งการใดๆเครื่อง client ได้ผ่านการช่วยเหลือของ service ของ Transmission BitTorrent service.

คือโดยปกติแล้ว service ใดๆที่มีการใช้งานเป็นแบบ localhost มักจะติดต่อได้ผ่าน localhost เท่านั้น แต่หาก attacker mapping domain นั้นๆไปเป็น localhost ก็จะกลายเป็นว่าสั่งให้ user ทำการเรียกการ request ใดๆไปยัง internal นั่นเอง เช่น

  1. user เข้าเว็บไซด์ของ attacker (www.attacker.com) แล้วในนั้นมี iframe ซึ่งมีการอ้างอิงไปยัง subdomain ของ attacker.com อยู่ เช่น hacked.attacker.com เป็นต้น
  2. เมื่อ client กระทำการ convert hacked.attacker.com ให้เป็น IP Address, ทาง Attacker ได้กำหนดให้ hacked.attacker.com นั้น resolve ออกมาเป็น 127.0.0.1 หรือ 123.123.123.123 พร้อมกับ set ให้ TTL ต่ำๆไว้
  3. เมื่อ browser ทำการ resolve ไปเป็น 123.123.123.123 ก็จะกลายเป็นว่าทาง User เข้าไปยัง HTML ดังกล่าวพร้อมกับรอการ update DNS Entry อีกที (สามารถ force ให้ terminate ได้โดยการใช้ flooding cache ด้วย lookup) จากนั้นจึงมีสิทธิ์ที่จะอ่านและ set header ได้

Source:: Arstechnica