Multiple Ways to Attack MetaMask

Pornsook Kornkitichai
INCOGNITO LAB
Published in
2 min readMar 2, 2021

MetaMask เป็น Crypto Wallet ประเภทหนึ่ง จัดเป็น hot wallet ในลักษณะของ software ไว้เชื่อมต่อกับ BlockChain Network โดยสิ่งสำคัญที่สุดของ MetaMask ก็คือ mnemonic phrase หรือ seed phrase ซึ่งหากเราทำหายไปหรือถูก Hacker ขโมยไปได้ก็เกมโอเวอร์ บทความนี้เขียนขึ้นเพื่อให้ผู้อ่านทุกท่านได้เห็นแนวความคิดและเทคนิคของ attacker ว่าถ้าจะโจมตี MetaMask จะมีวิธีไหนกันบ้าง

  1. Vault Access ผ่าน browser extension

ในที่นี้ลองทดสอบกับ chrome ให้เปิด console จากนั้นให้ดึงค่า vault data ออกมา ด้วย

chrome.storage.local.get(‘data’, result => {
var vault = result.data.KeyringController.vault
console.log(vault)
})
ดึงข้อมูล Vault ผ่าน DevTools

จากนั้นให้ copy output ทั้งหมดไป decrypt ด้วย MetaMask Vault Decryptor ดังรูป
*วิธีการนี้ต้องใช้ password

2. Vault Access ผ่าน local file

ไปยัง path ของ MetaMask โดยเครื่องที่ใช้ในการทดสอบอยู่ที่ C:\Users\[username]\AppData\Local\Google\Chrome\User Data\Default\Local Extension Settings\nkbihfbeogaeaoehlefnkodbefgpgknn จากนั้นให้ไปที่ file .ldb (Microsoft Access Lock Information File)

ให้เปิด file .ldb ให้ได้ โดยอาจจะใช้ HxD หา text string คำว่า “Keyring” ก็จะพบชุดข้อมูลของ Vault data ที่เราจะต้องไป decrypt ต่อ
*วิธีการนี้ต้องใช้ password

ใช้ HxD เพื่อเปิด file .ldb

3. โจมตีด้วย Man-in-the-browser

MitB attack จะทำการ intercept input/output ทุกอย่างบน browser ทำให้ attacker สามารถเปลี่ยนแปลงการแสดงผล หรือดักจับข้อมูลทุกอย่างบน browser ได้ หาก attacker เอามาใช้ดัก password หรือ seed phrase ก็ย่อมทำได้ซึ่งวิธีการนี้เป็นที่นิยมใช้โจมตี application พวก Internet Banking มาเกินกว่า 10 ปีแล้ว
https://www.fireeye.com/blog/threat-research/2010/02/man-in-the-browser.html

4. โจมตีด้วย malware

การใช้ malware สามารถพลิกแพลงได้หลากหลาย เช่นใช้ keylogger ดักจับการกด keystroke logging เพื่อขโมย password เอาไป decrypt ข้อมูล vault ต่อหรือจะทำ memory scraping attack ที่จะ dump ข้อมูลใน memory โดยได้ลองทดสอบ idea การโจมตีดังกล่าวในรายการ Incognito Mode Ep1 นาทีที่ 15

ใช้ processhacker dump ข้อมูล string จาก memory ของ chrome process

สำหรับ memory scraping attack ไม่ใช่ท่าใหม่แต่อย่างใด attacker ชอบนำมาใช้กับการโจมตีระบบ PoS อยู่แล้ว สามารถดูรายละเอียดเพิ่มเติมได้จาก https://www.wired.com/wp-content/uploads/2014/09/wp-pos-ram-scraper-malware.pdf

5. ทำ extension ปลอม หลอกล่อให้คนติดตั้ง https://ciphertrace.com/alert-malicious-crypto-browser-extension-masked-metamask/

6. โจมตีด้วย phishing หลอกล่อขโมย password หรือ private key

แล้วจะป้องกันอย่างไร

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

--

--

Pornsook Kornkitichai
INCOGNITO LAB

I am a security engineer, Alice, and co-founder of Incognito Lab.