Discord
https://pbs.twimg.com/media/GMH1yP1aEAAjQqd.png
1. 點選左上角伺服器名稱
2. 找到編輯伺服器個人資料
3. 在伺服器暱稱欄位中修改
1. 執行可疑程式
「請幫我測試我正在開發的遊戲」騙局
2. 於可疑頁面輸入帳號密碼
即使輸入錯誤的帳號密碼,偽造的前端頁面也會放行使用者?
會誘使使用者輸入二次驗證碼以取得權限?
3. 執行可疑JavaScript程式碼
攻擊者會
透過Discord Webhook取得使用者的token
透過WebSocket取得使用者的cookie
4. Discord授權頁面?
Discord API的OAuth2無法取得發送使用者訊息的權限
大部分調查的邏輯在discord_voice.node裡
用於處理影音串流的模組
為了穩定雙向通話,Discord客戶端實際上會和4個伺服器進行互動
使用discord API透過HTTPS認證
https://discordapp.com
從後續伺服器取得多個token(或祕密金鑰),用於保持與最終伺服器的信任鏈 wss://gateway.discord.gg、wss://us-west/###.discord.media
最終伺服器負責處理加密的通話/影音資料串流
RTP封包
加密聲音資料
Salsa20加密
驗證tag、封包序列號碼
解密payload部份
聲音使用Opus編碼
最小的discord客戶端mock
Discord會檢查使用者流量
流量會在伺服器端進行解密,並重新封裝後再傳送給客戶端
實測
製作一個異常的聲音封包,與其他既有聲音封包一同傳送
只有異常的聲音封包被丟棄
傳送一個帶有有效的RTP 1 byte擴充header的Opus聲音資料至遠端Discord客戶端
在debugger中可看到該封包被遠端Discord客戶端接受後進行解密
回到mock修改header中的長度字串byte,改為超過預期最大值
傳送至遠端客戶端之後,debugger則無顯示
代表Discord伺服器會進行一些MITM解密、驗證和丟棄的操作
Discord可能基於有效的設計驅動原因檢查聲音/影像流量
伺服器可能在驗證通話品質,或是確保執行內容指南以保護使用者
Discord每天同時有250萬語音使用者
Discord的用戶隱私政策提到可能會擷取「即時VoIP資料」
Information we collect may include but not be limited to username, email address, and any messages, images, transient VOIP data (to enable communication delivery only) or other content you send via the chat feature.
現在似乎又不一樣?kujakujira.icon
@DiscordPreviews: Discord has been using machine learning models to determine the gender and age group of some of its users since at least August 2022. The data can be found in the "activity/analytics/events-....json" file of some Discord data packages, though the exact requirements are unknown. https://pbs.twimg.com/media/GNeWWRwXQAAYyf3.png