Ethen Tso PRO
Security Defender & Developer。Free and open。ethen@anotherdream.tw
黑魔法防禦術系列講座
Google Chrome擴充套件
今天,我們來講講後門
察覺後門
確認後門
拆解後門
阻止後門
撰寫後門
Security Consultant
Defense / Forensic / Analysis
SOC "Tier All" Engineer
Developer
Free and Open
ethen@anotherdream.tw
每月講座
公開講義
教你如何在黑魔法滿天飛的世界自保
線上講義
goo.gl/gA7KNd
FB
goo.gl/GCpY2y
投影片
goo.gl/P3tDPV
程式碼
goo.gl/q5xtt7
後門是一種惡意程式碼,一旦安裝在系統上,攻擊者便可以繞過正常的安全性存取控制存取系統。
又稱為設陷門。取得程式、線上服務或整個電腦系統的存取權限的非正式方法。建立威脅程式的程式設計師也編寫後門程式碼。通常只有程式設計師知道後門詳細資料。後門是潛在的安全性風險。
取得程式、線上服務或整個電腦系統的存取權限的非正式方法。建立威脅程式的程式設計師也編寫後門程式碼。通常只有程式設計師知道後門詳細資料。後門是潛在的安全性風險。
https://www.symantec.com/zh/tw/security_response/glossary/define.jsp?letter=b&word=backdoor
http://slideplayer.com/slide/5902203/
CnC連線通訊 - 流量分析 / 封包分析
社交工程 - HoneyPot / APT設備 / 內容分析
植入本體 - 鑑識調查 / HostIDS / 防毒軟體
惡意行為 - SOC感知 / HostIDS
動態分析
靜態分析
乾淨的虛擬化環境
好用的文字編輯器
瀏覽器的除錯工具
清醒的腦袋與 JS / 網路知識
https://blog.longwin.com.tw/2014/01/chrome-extensions-plugin-develop-2014/
background.js
background.js : 80
抓取惡意程式碼(選項)
解碼(選項)
觸發Exploit(選項)
執行
aaa.bbb == aaa["bbb"]
aaa.bbb() == aaa["bbb"]()
'\x63\x6f\x64\x65' == "code"
a=1,b=2 == a=1; b=2
a==b && func() ==> if (a==b){ func(); }
return a(),b(); ==> a(); return b();
Function(n)() ==> eval(n)
[]["constructor"]["constructor"](n)()
AAEncode
```
p=document.createElement("canvas2d”);
g=getImageData(0,0,width,height);
data = “”;
foreach (g as char) data+=char;
eval(data);
```
shellcode_js_extract.html
document.defaultView[(typeof r.Ae).charAt(0).toUpperCase() + (typeof r.Ae).slice(1)](n)()
=>
document.defaultView.Function(n)()
=>
eval(n)
=>
Chrome在讀取file://本地html檔案的時候,內部JS無法引用另一個本地file
shellcode_in_promo_jpg.txt
aaa.bbb == aaa["bbb"]
aaa.bbb() == aaa["bbb"]()
'\x63\x6f\x64\x65' == "code"
a=1,b=2 == a=1; b=2
a==b && func() ==> if (a==b){ func(); }
return a(),b(); ==> a(); return b();
Function(n)() ==> eval(n)
[]["constructor"]["constructor"](n)()
parsed_complete.txt
f[ ]:主要變數定義(略為混淆)
g("xxx"):從 f 撈取文字解碼
e({cat, act, lab}):用 n 打一個訊息回CnC
n(url, action):進行XHR操作
t(data, rot):對data進行凱薩密碼混淆
o(json_data):對Server回傳的數據解碼並更新本地儲存
a(data):執行data,檢查結果並回傳給CnC
r( ):安裝到Chrome儲存區 \ 檢查更新
i( ):主要進入點,發送"init"給CnC、更新、執行
c{ }:儲存變數
l { 'get', 'set', 'yJ', 'EE' }:Chrome本地儲存操作
取得遠端更新
https://the-extension.com/?hash=jwtmv6kavksy5cazdf4leg66r
XMLHttpRequest 通知CnC肉雞狀態
https://the-extension.com?hash=jwtmv6kavksy5cazdf4leg66r&eventCategory=eval&eventAction=init&eventLabel=
本地儲存 chrome.storage.local
code: TjPzl8caI41
version: KI10wTwwvF7
CnC_command.txt
察覺後門
確認後門
拆解後門
阻止後門
撰寫後門
取得遠端更新
https://the-extension.com/?hash=jwtmv6kavksy5cazdf4leg66r
XMLHttpRequest 通知CnC肉雞狀態
https://the-extension.com?hash=jwtmv6kavksy5cazdf4leg66r&eventCategory=eval&eventAction=init&eventLabel=
https://uaswitcher.org/splash
本地儲存 chrome.storage.local
code: TjPzl8caI41
version: KI10wTwwvF7
防火牆 / Proxy追蹤連線
如果有留封包,可以追蹤已經外洩了哪些資訊
阻擋 / 改寫連線指令 把肉雞劫走
丟指令給Chrome檢查儲存區
發布資安通報
...
Yup, thats it.
Any question?
Chrome惡意外掛User-Agent Switcher分析
另一個解析
By Ethen Tso
Google Chrome外掛套件User-Agent Switcher後門解析