利用WhatsApp漏洞傳播垃圾郵件和假消息
WhatsApp擁有用戶15億,有超過10億個群組,每天發送消息超過650億。因為WhatsApp廣泛應用於企業、政府機構和個人用戶,所以攻擊者也將其視為潛在的垃圾郵件發送方式之一。在大量的用戶和消息規模下,出現垃圾郵件、謠言、虛假消息的概率也很大。
近日,Check Point研究人員發現WhatsApp存在漏洞,攻擊者利用漏洞可以攔截和修改群組和私聊消息。漏洞會導致三種可能的攻擊形式:
·在群組聊天中修改發送者身份,偽造回復消息來模仿另一個群組人員,即使發送者不是群組成員;
·攻擊者能以其他人的口吻發送消息以達到修改聊天的目的。這樣,就可以模仿他人或完成欺騙交易。
·可以修改群組中的特定成員,在群聊中發送私聊信息,當接收者回復給消息時,整個群成員都可以看到回復的內容。
攻擊實例:
攻擊詳解
研究人員在攻擊模擬中使用了Burp Suit Extension。
攻擊1:在群組聊天中修改發送者身份,即使發送者不是群組成員
在這種攻擊中,可以偽造回復消息來模仿另一個群組人員,即使該群組成員並不存在。
為模仿群組中的人,攻擊者需要抓取這樣的加密流量:
圖1 加密的WhatsApp通信
一旦獲取流量後,就可以發送給擴展,擴展會解密流量:
圖2 使用Extension解密的WhatsApp消息
使用extension時應注意以下參數:
·Conversation,發送的真實內容;
·participant,消息的真實發送者;
·fromMe,該參數表明是否是我發送的數據;
·remoteJid,表明數據發送的目的群組;
·id,數據的id,手機的資料庫中也會保存系統的id。
了解了這些參數之後就可以偽造會話消息了。
圖3 偽造的Reply消息
因為資料庫中已經存在該id了,所以參數id也要進行修改。
為了讓每個人都看到偽造的信息,攻擊者需要回復他偽造的消息,引用並修改原始消息(將原始消息修改為其他),然後發送給群里的其他人。
如下圖所示,研究人員創建了一個沒有消息記錄的新群組,然後使用上面的方法創建了假的回復:
圖4 原始會話
參數participant可以是文本或不在群中的某人的手機號,這會讓群人員認為這真的是該成員發送的消息。比如:
圖5 使用調試工具修改消息內容
修改後的結果:
圖6 回復來自群外人員的消息
攻擊2:以發送者的口吻修改回復
攻擊者能以其他人的口吻發送消息以達到修改聊天的目的。
為了偽造消息,必須修改消息的fromMe參數,表示在個人會話中發送消息。
從web端發送的消息在發送到Burp suite之前對其進行分析。可以在aesCbcEncrypt函數上設置一個斷點,從a參數出獲取獲取。
圖7 OutGoing消息修改
然後複製數據到Burp擴展中,選擇outgoing direction,然後解密數據:
圖8 解密Outgoing Message
在將其改為false,然後加密後,得到下面的結果:
圖9 Outgoing Message加密
然後要修改瀏覽器的a參數,結果是含有內容的推送通知。這樣甚至可以欺騙整個會話。
圖10 發送消息給自己
如果是其他人的話,整個會話應該是這樣的:
圖11 發送消息給自己,別人看到的結果
攻擊3:在群聊中發送私聊消息,但接收者回復時,整個群都可以看到回復內容
在這種攻擊下,可以修改群組中的特定成員,在群聊中發送私聊信息,當接收者回復給消息時,整個群成員都可以看到回復的內容。
研究人員通過逆向安卓APP發現了攻擊向量。在該實例中,研究人員發現如果攻擊者在群中修改了一個消息,那麼就會在資料庫/data/data/com.whatsapp/databases/msgstore.db中看到該消息。
圖12 在群聊中發送私聊消息保存在/data/data/com.whatsapp/databases/msgstore.db資料庫中
可以使用sqlite3客戶端使用下面的命令打開會話:
可以看到下面的數據:
圖13 修改後的資料庫
為了在群中發送消息,但限制消息只能某個特定群成員才能看到,因此要設定remote_resource參數。
這裡的使用的方法就是將key_from_me參數從0修改為1。
完成這些動作後,運行下面的命令,更新key_from_me和數據:
攻擊者需要重啟WhatsApp客戶端來強制引用發送新消息。之後的結果就是:
只有特定的受害者接收到了消息。
如果受害者寫消息回應(writes something as a response),那麼群組內的所有人都可以看到;但如果受害者直接回復(reply to)消息的話,只有他自己可以看到回復的內容,但其他人就可以看到原始消息。
更多技術細節參考https://research.checkpoint.com/fakesapp-a-vulnerability-in-whatsapp/
如何繼續防護?
因為目前還沒有安全產品能夠保護用戶防止此類攻擊,那麼唯一的辦法就是留心虛假消息、陰謀論、垃圾郵件等。
如果聽起來太好的事情,大概率就不是真的。同樣,很不好的事情,也大概率不是真的。
假消息傳播的更快。看似來自不同源的相同消息,並不意味著是真的。
驗證真相。在社交媒體上交叉驗證來驗證消息的真實性。最好不要從社交媒體網站獲取信息。
POC視頻
https://www.youtube.com/embed/rtSFaHPA0C4
※CSS2018為你揭秘數字時代安全行業新風口
※攻擊者從台灣科技公司竊取證書用於Plead惡意軟體活動
TAG:嘶吼RoarTalk |