APT28
0x00 前言
最初,“高階持續威脅”指的是那些使用非常規木馬,攻擊特定目標和網路的攻擊活動。這類攻擊活動的目的是為了長期或秘密地竊取敏感資料。在近幾年,APT開始指代由外國政府發動的長期攻擊活動,而安全公司或受害者政府會由於懼怕經濟制裁或政治壓力,不願意指認這些攻擊者。另外一點原因是,由於網際網路的開放特性,攻擊者可以利用技術把罪名嫁禍給他人,從而也難以確定他們的真實身份。
為了確定攻擊活動與其幕後國家之間的聯絡,Bitdefender這樣的企業希望能在APT程式碼或通訊基礎設施中找到切實的證據。下面的這份報告詳細地分析了APT28小組使用的有效載荷技術,透過這些資訊我們發現了他們與幕後主事之間的關聯。
0x01 目標受害者
近期,我們在分析了Sofacy行動後發現,這個網路小組相當活躍,並且有明確的地區傾向。APT28的主要目標都分佈在這幾個國家中,包括,烏克蘭,西班牙,俄羅斯,羅馬尼亞,美國和加拿大。
我們發現,APT28對烏克蘭特別有興趣。在2015年2月10日到14日,APT28小組掃描了8,536,272個IP來尋找可能的漏洞。
巧合的是,在這期間,白俄羅斯、俄羅斯、德國、法國和烏克蘭的政治領導們正好在明斯克參加會議,討論是否停止在烏克蘭東部頓巴斯地區的交火行動。
2月14日之後,APT28小組把目標轉向了西班牙。圖1中是標出的就是受到影響的國家。
目前,我們尚不清楚APT28會根據什麼標準來選擇目標,但是我們研究發現,他們會從預先準備好的IP地址中挑選出有漏洞的幾個來進行攻擊。同時,我們還發現,這些目標涉及到了各個行業:政治類、電子犯罪服務類、電信服務或航空行業。
更多受害者資訊可以在附錄1中找到。
圖1
0x02 歸屬判斷
我們有理由相信,APT28的管理者是俄羅斯人,或者是會講俄語的鄰國公民。在分析中,我們發現了很多證據都能證明我們的猜測。
我們第一次分析相關檔案的時候,統計了在各個時區下從週一到週五每天8:00-18:00這段時間中編譯的二進位制數量,結果最突出的就是UTC+4時區,有88%的檔案是在這個時區下的工作時間編譯的。在這個時區下的國家中(俄羅斯,喬治亞,亞塞拜然),只有俄羅斯有能力和資源來執行這種攻擊行動。
在下圖中(圖2),我們根據編譯時間,對樣本進行了分組(UTC+4)。從圖中可以看到,大部分樣本是在8:00-18:00編譯的。
圖2
另一條線索是從一個用於獲取系統許可權的駭客工具中找到的。這條線索也能證明我們的假設-木馬作者來自一個說俄語的國家。我們在查詢相關的APT28檔案時,發現了這個工具。檔案的標頭叫做xp.exe (78450806E56B1F224D00455EFCD04CE3),這個檔案很特別的地方是,在除錯檔案中硬編碼了一個路徑xp.exe (78450806E56B1F224D00455EFCD04CE3)。字串Пользователь就是為俄羅斯的使用者準備的。
我們有理由相信,這個檔案也是APT28開發的,因為這個檔案的修改/建立日期被更改為了14/04/2008, 16:00,與APT28在攻擊活動中使用的其他檔案相同。所有在攻擊中使用的檔案都是在2013年後編寫的。攻擊者修改檔案的日期是為了防止受害者在系統上發現新檔案,避免引起使用者的懷疑。
0x03 搜尋新目標
我們發現,有些伺服器的主要目的就是為了自動搜尋新的受害者。這是透過大規模的掃描和刺探預先確定好的IP地址範圍實現的。服務端應用包括4個主要元件,如下:
- 一個Python指令碼(gen_ip.py),用於隨機生成符合特定類的IP地址
- 一個資料庫(shodb),用於集中所有掃描到的資料並篩選潛在受害者
- 一個Django(sho)應用,用於管理bot和報告
APT沒有采取“亂槍打鳥”的方法,而是挑選受害者。這個Python指令碼中硬編碼了一些IP類;指令碼會遍歷所有的子網,並隨機生成符合範圍的IP地址。如果攻擊者掃描範圍內的所有IP,這樣會增加引起使用者注意的機率。在隨機生成了IP後,這些IP就會被新增到資料庫。然後每個IP地址會給定一個優先順序等級。
截止我們撰寫報告時,資料庫中總共包含了58,624個相關的IP,具體參考附錄1。所有這些IP的優先順序都設定為了1。
掃描bot都是相互獨立的系統,分佈在不同的網路中。我們猜測,這種方法能讓掃描過程看起來不是那麼可疑。如果是來自同一個網路的一個或多個IP來掃描整個子網,可能會引起使用者的懷疑,或觸發入侵檢測系統。
為了完成掃描任務,每個bot會透過cookie來認證伺服器。認證成功後,掃描bot每次請求最多可以接收到16個IP。然後,bot會使用nmap工具(附錄1)掃描每個IP的特定埠。如果找到了開放的埠,bot就會聯絡伺服器,並把nmap獲取到的資訊儲存到資料庫中。接著,相應的IP地址就會被標註上“有漏洞”。圖3中描述的就是這一過程:
圖3
掃描bot的位置分佈如下:美國3個,英國3個,保加利亞3個(圖5):
圖5
0x04 攻擊流程
APT28主要依賴3種不同的攻擊途徑來感染他們的目標:用惡意Word和Excel文件作為附件的釣魚郵件,釣魚網站,會導致Java和Flash 0-day漏洞的惡意iFrame。
客戶端通常是因為訪問了掛載著漏洞工具的URL,才被感染 。在成功感染後,第一階段的dropper(在我們這裡是runrun.exe)會寫到磁碟上。這個dropper的主要目的是為了投放一個檔案(api-ms-win-downlevel-profile-l1-1-0.dll),並使用rundll32.exe執行這個檔案。這樣做是為了聯絡CC伺服器,並下載第二階段的木馬。
第二階段的元件會使用和上面相同的方法來安裝到客戶端上。首先,執行一個dropper(winloat.exe),dropper會把一個關鍵元件(advstoreshell.dll)和一個配置檔案(msd)寫到磁碟上。這個配置檔案中包含有一些關鍵資訊,比如後門會嘗試聯絡的三個伺服器(win*********ore.net ,micro********er.com和1***.net
),請求間隔,以及是否啟動鍵盤記錄功能的旗幟。
此時,攻擊者就已經控制了受害者的機器,並且部署了不同的工具和元件。在我們分析的例子中,攻擊者下載了3個攻擊工具:
- 一個用於轉儲登入使用者密碼的工具(run.exe)
- 一個利用許可權提升漏洞(CVE-2014-4076)獲取系統許可權的工具(xp.exe)
- 一個用作代理,即使路由器系統,也能允許攻擊者與系統取得聯絡的工具(svehost.exe)
另外還有一個元件也是透過下載獲取的(pr.dll),這是一個模組化元件,用於把竊取到的資料上傳到CC伺服器。
圖6
攻擊流程如圖6:
在部署了有效載荷後,攻擊者會把第二階段dropper下載的檔案都修改成在14/04/2008, 16:00編寫的。透過這種技術,攻擊者可以隱藏惡意檔案,避免受害者發現磁碟上寫入了新檔案從而起疑。
下表中列出了各個檔案的編譯日期和建立日期。
表1
最近的建立日期是13/05/2015,可能是攻擊活動開始的日期。鑑於從第一階段downloader到第二階段downloader寫入到磁碟上大約有1小時的間隔,我們懷疑這個過程是人工操作的。在所有的檔案中,只有一個不是在攻擊之前編譯完成的。“%allusersappdata%\ Pr.dll”是唯一一個在攻擊活動開始了5小時後才編寫的。由此來看,這個檔案是針對目標特意製作的。
0x05 遭到攻擊的受害者
我們發現,遭到攻擊的受害者屬於不同的行業和部門。研究表明,受害者主要是政治人物、政府機構、電信和電子犯罪服務,以及德國、烏克蘭、俄羅斯和羅馬尼亞的航空航天公司。
有些受害者是我們透過分析中心伺服器上的資訊確定的。在這些資訊中,包括失竊郵件的蹤跡。有一部分是我們的內部系統上報的。
透過在中心伺服器上發現的郵件,我們確定了前兩類受害者。
政治人物
在2015年5月13日,兩個.pst檔案‘C:\ProgramData\backup.pst’
和‘C:\ProgramData\backup2.pst’
複製到了伺服器上。
航空航天業
在2015年7月9日,14個文件複製到了伺服器上。在這之中,有兩個.dbx (Outlook Express資料庫)檔案。
在7月18日,“F:\Outlook Express\AC_VTS_ÐÊÒ.dbx”
傳輸到了中心伺服器。
同樣是在7月18日,“F:\Outlook Express\Kydla.dbx”
也傳輸到了中心伺服器。
所有這些受害者似乎都與航天業或飛行器研究專案有關聯。透過上下文,也能看出攻擊者可能來自俄羅斯,考慮到媒體也在大量報導俄羅斯的PAK FA T-50戰鬥機和美國的F-35戰鬥機。
我們的內部系統也標記了大量遭到攻擊的計算機。在羅馬尼亞,這些標記出來的計算機有一部分屬於政府基礎設施或與羅馬尼亞政府有密切關聯。
0x06 附錄1(目標活動)
透過分析APT28的CC伺服器,我們發現了兩起尋找新目標的活動。
在這個過程中,攻擊者根據從資料庫中獲取的IP地址,掃描了大量IP的埠。埠掃描過程是透過一個免費工具“nmap”實現的。如果找到了開放的埠,這個IP就會被標記為“有漏洞的”,並且會儲存相應的資訊。探測命令都包括在下圖中:
圖7
其中:
- T5:在很短的時間內對映一個主機,前提是你的網路要夠快,或者是不介意丟失部分資訊。
- p:掃描特定的埠
- sV:檢測遠端服務(伺服器/守護程式)的版本號
- O:識別一個遠端主機apps和
- version-light:啟動精簡模式,加速掃描過程,但是識別服務的能力會稍微降低
- script=banner: 顯示ftp banner 響應
- script=http-headers:透過一條HEAD請求web伺服器的根資料夾(“/”),並顯示返回的HTTP標頭
- oX:把掃描結果記錄成XML形式,儲存到引數指定的檔案
- iL:根據配置檔案而不是命令列來讀取目標規範;在配置檔案中會包含有主機列表和網路表達
在2015年2月10日,我們發現了攻擊者的首次嘗試,掃描了8.762.102的一些IP。在這之中,1.712.363 IP被標記為了“有漏洞”。這次探測活動一直持續到了2月14日。大多數IP都是來自烏克蘭(掃描了8.536.272,1.704.837是有漏洞的)。
被掃描的IP數量很龐大,幾乎相當於烏克蘭的總IP數量。透過搜尋在這段時間內發生的與烏克蘭相關的重大事件,我們意識到,這次探測過程是在明斯克峰會期間進行的,在這次峰會上主要討論了烏克蘭歐諾個不頓巴斯地區的衝突問題。在2月11日,白俄羅斯,俄羅斯,德國,法國和烏克蘭的領導人在一起協商新一輪的和平協議,這一協議於2月12日釋出,在2月15日簽署。
在下表中(表2),列出了這些活動的目標國家:
表2
在2月14日,一個資料庫備份儲存到了一個檔案(file.csv)中,並且攻擊者的關注焦點從烏克蘭轉向了西班牙。
在2月16日,攻擊者又開始嘗試尋找新的受害者。新的資料庫載入了58,624個新的IP地址,在這之中,有6,146個是有漏洞的。表3中列出了這次活動的目標國家:
表3
在第二次嘗試中,掃描的IP範圍很小,我們猜測這次攻擊活動可能是有具體的目標機構。透過分析目標IP範圍,我們確定了一些受害者。
我們尚不清楚,攻擊者是根據什麼標準來確定目標,但是我們猜測攻擊目標是人工確定對的,而不是透過自動方式完成。
0x07 附錄2-探測過程
目標篩選過程是透過中心CC伺服器管理的多個bot完成的。行動流程可以分為下面的幾個過程:
生成新受害者
潛在受害者是透過掃描不同子網的IP埠來確定的。這些IP列表是透過指令碼gen_ip.py生成的,這個指令碼會透過IP類別或隨機選擇IP來探測其埠。在寫報告時,這個指令碼硬編碼了11個IP類,所以,我們認為受害者組織是人工選擇的。
這個指令碼會隨機生成整數數字,這些數字代表了屬於不同類的IP。事實上,這個指令碼不會遍歷所有的IP,這就表明,攻擊者採取了預防措施,避免觸發受害者的入侵檢測系統-因為掃描一個子網的所有IP可能會引起受害者的懷疑。
所有生成的IP都會新增到中心伺服器上的一個資料庫中。大多數IP是屬於西班牙和一些政治機構,電信公司和公共事務機構。
集中所有資訊
這個CC伺服器最重要的資產是shodb資料庫。在恢復了資料庫中,我們發現了下面的關係(圖9):
圖9
sho_bot表中包含有與活動bot相關的資訊(表5)
表4
這裡有9個bot,每個bot都是透過一個cookie(uid)識別的。bot會使用這個cookie來註冊到主要伺服器上。如果伺服器有這個cookie的引用,過程就會繼續。所有bot的優先順序(code_id)都設定為了1。所有專案的info一欄都是空白的。
sho_cookie表中包含有與bot活動相關的資訊(表6)
cookie欄表示的是認證程式碼,last_activity欄代表是bot聯絡伺服器的最後時間,ip_addr一欄代表的是bot的IP地址,get_num欄表示的是bot與中心伺服器之間的連線數量。
這次研究表明,有些bot是重複的,而cookie有兩類:一種使用了字母和數字,一種只是使用了數字。第一種cookie的活動非常少(每個cookie有3個連線),由此我們認為有兩個版本的bot和外掛在並行。另外,根據第一類cookie不在sho_bot表中出現,也能證明這一點。
- sho_ip表中包含有
gen_ip.py
指令碼生成的IP列表 - sho_plugin表中包含的是程式碼而不是資料。這裡儲存了指令碼
plugin-nmap-0.43.py
。這個指令碼的主要作用是獲取目標IP(每次請求最多16個IP)並執行掃描命令(圖10)。
圖10
在解析了nmap結果後,資料會傳送回伺服器並儲存到sho_ip表中的資料庫。
- sho_code表中包含的是程式碼,而不是資料。這裡儲存著
scan-bot-03.py
指令碼。這個指令碼負責描述系統的行為。Bot會連線到伺服器並使用一個cookie來註冊自己。一旦透過認證,bot就會從sho_code表(更新機制)中請求最新的程式碼和外掛(sho_plugin)版本。在更新後,bot就會啟動一系列的執行緒,使用最新的外掛掃描目標IP。 - sho_log表是空的
- sho_setting表是空的
伺服器上還執行著一個Django應用。這個應用是一個管理和報告介面,用於管理bot和目標。下圖中就是(圖11)admin皮膚。這個介面允許攻擊者檢視統計資料,新增和刪除使用者、目標和bot。
圖11
這個介面很簡單,只是對資料庫簡單的包裝了一下(圖12:新增使用者【上】,新增目標【下】):
圖12
1.bot
用於掃描潛在受害者的機器也是不同的。這樣便於攻擊者隱藏這些IP的掃描活動是不是屬於同一次行動的。下表中是我們在資料庫中發現的IP(表7):
表7
- sho_ip表中包含有
0x08 附錄3-與APT28相關的工具
代理工具(svehost.exe)
這個可執行檔案要麼使用了透過命令列傳遞的引數,要麼就沒有使用引數。當沒有引數執行時,檔案會嘗試聯絡IP地址:埠443上的176.**.***.10
。
也可以啟動下面的命令列:
#!bash
svehost.exe start <ipaddress> <port>
這個檔案使用了一箇舊版的OpenSSL庫(OpenSSL 1.0.1e)。實際上,這個檔案之所以有1038kb,就是因為包含了這個OpenSSL庫。
這個工具的主要目的是允許攻擊者聯絡路由器後的系統,如果沒有這個工具,系統就無法從網路外訪問。
許可權提升工具(xp.exe)
這個工具是圍繞一個在2014年發現的漏洞(CVE-2014-4076)建立的,透過使用函式DeviceIoControl向\\.\\ TCP
裝置傳送一個特殊的資料包來執行。在2014年末,這個漏洞就被修復了。
這個工具會接收一個可執行檔案作為引數。然後,使用系統許可權執行這個可執行檔案。
這個檔案是根據除錯配置編譯的。因此,檔案中還硬編碼了一個pdb檔案的路徑。這個路徑引用了C:\Users\Пользователь\Desktop\cve-2014-4076\cve-19abdba\Debug\CVE-2014-4076.pdb
字串Пользователь在俄語中的意思是“使用者”。這也是我們懷疑木馬作者是俄語使用者的原因。
木馬轉儲工具(run.exe)
這個木馬轉儲工具似乎是根據mimikatz來建立的,這個公共工具會透過LSASS轉儲WDigest中的密碼。更多關於這個工具的資訊可以訪問http://blog.gentilkiwi.com/mimikatz。
這個檔案是在05/05/2013編譯的,並且不包含任何版本資訊。也就是說,這個檔案是作者自己編譯的。這個工具會接收一個檔案作為引數,然後,獲取到的密碼會轉儲到檔案中,作為引數傳遞。
0x09 附錄4(第一階段元件)
在感染後,這是第一個安裝到受害者計算機上的元件。這個元件的目的是聯絡CC伺服器並要求接下來的指令。
第一階段的有效載荷包含兩個部分:一個dopper和第一階段的後門。我們遇到的dropper-runrun.exe,在資料節內嵌了檔案api-ms-win-downlevel-profile-l1-1-0.dll。dopper使用了大量的自定義加密演算法來避免逆向。
下面的演算法(演算法1)是用於解密其API:
演算法1:
有效載荷(api-ms-win-downlevel-profile-l1-1-0.dll) 使用了RTL和自定義加密演算法進行了加密,使用了一個10位元組秘鑰。
演算法2:
投放的檔案是一個downloader,這個檔案會聯絡CC伺服器獲取第二階段的元件。Downloader聯絡的域名是:_www.msc****vw.com_
,IP地址是:91.***.**.249
。
使用的請求是透過GET over HTTP。每個請求1-5組隨機的1到6的數字。透過斜線來分組,下面就是一個請求:
#!bash
/ue/VHghm/ihXAIK/qpi/1c9.xml/?XK1=VrLYQndXGXwzURh9RBE=
上面的xml擴充套件實際是從4個可用的擴充套件的選擇的(xml, **pdf,html, zip**)。最後的引數是一個加密秘鑰,downloader可能會利用這個秘鑰來透過伺服器認證。
這個檔案是一個基礎的後門,具有下面可用的命令:
- 下載
- 執行
- 刪除檔案
因為需要1個多小時第二階段的元件才能下載到受感染的系統上,所以我們猜測是手動下載的。
0x0A 附錄5-(第二階段元件)
第二階段元件的目的是開啟後門,允許攻擊者訪問目標裝置,並下載另外的元件。
a. Dropper:
作為的第一階段元件,重要檔案都是使用dropper安裝的。(winloat.exe)
Dropper的主要操作包括:
- 解密(包括後門:advstoreshell.dll和配置檔案:msd)
- 將有效載荷寫入磁碟上
- 呼叫advstoreshell.dll的InitW方法
b. 配置檔案:
為了加密/解密配置檔案和advstoreshell.dll使用的API,攻擊者使用了一個6位元組長度的自定義流密碼。下面的函式是為了獲取相應的位元組,用於異或緩衝區中的一個索引。
演算法3:
配置檔案(msd)就是使用了上面介紹的演算法,使用了122位元組的秘鑰。配置檔案中包含有下列資訊:
其中:
- Timeout1 = 60000 ; 代表在聯絡CC時,直到超時的毫秒數
- Timeout2 = 60000 ; 代表在使用加密聯絡CC時,直到超時的毫秒數
- Computer name = DAE13WS01204030501 ; 受感染計算機的名稱
- DomainName1=
micro**********ter.info
- DomainName2=
dri********te.info
- Campaign id = rhbp ; 我們還在調查這個欄位的含義,但是,這可能是一個活動識別符號
- ? = 1000 ; 我們仍然在調查這個欄位的角色,但是一些資訊讓我們認為這是一個計數器
- ? = 600000; 我們仍然在調查這個欄位的含義,但是很可能是另一個超時值
- Keylogging flag = 1; 這個欄位指示著後門是否應該攔截鍵盤輸入,並將輸入傳送到CC伺服器
- Main domain name =
1***.net
; 這是木馬嘗試聯絡的第一個域名
c. 後門元件:
APT28最重要的元件是後門,在我們的例子中,這個檔案叫做advstoreshell.dll。這個檔案會讀取配置檔案(msd),並聯系配置檔案中的CC伺服器。並且配置檔案也可以儲存到登錄檔中。在登錄檔中儲存的配置檔案可能是從某個CC伺服器上的更新獲取的。
在我們分析過的系統上,有2個配置檔案:
- 第一個是msd檔案,與advstoreshell.dll在相同的路徑下
- 第二個在登錄檔中(
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Path
)。這個檔案中的資料與msd檔案基本相同,除了前兩個域名更改為了…ore.net和micr…er.com。
只有這個元件會在啟動時執行。這是透過在HKCU\ Software\Microsoft\Windows\CurrentVersion\Run
中建立AdvancedStorageShell實現的,寫入的內容是:
#!bash
"RUNDLL32.EXE "C:\Documents and Settings\<user-name>\Local Settings\Application Data\Microsoft Help\advstorshell.dll", InitW"
這個後門很先進,支援26種命令。我們分析了一些命令,其他的一些命令仍在分析過程中。
在使用cmd/c
選項執行命令時,輸出會儲存到一個叫做tmp.dat的檔案中。
這個元件與CC伺服器之間的通訊是透過HTTP埠443實現的。如果可行,這個元件會嘗試連線埠80。在有些情況下,通訊會使用3DES和RSA加密。
這個後門的一個重要功能就是能載入外部元件。這是透過呼叫dll的init函式實現的。s外掛也是這樣載入的。
0x0B 附錄6-額外模組
APT28最後安裝的元件是一個叫做pr.dll的模組。這個檔案是在系統遭到入侵的5小時後編譯的。這種時間上的偏差讓我們懷疑這個檔案是根據每個目標系統單獨製作的。
這個檔案似乎是一個模組化框架,能相容不同的模組。這個檔案的配置儲存在一個加密格式中,並儲存在登錄檔鍵值中“HKU\S-1-5-19_Classes\Software\Microsoft\MediaPlayer\{some_clsid}\chnnl”
一旦執行,木馬會檢查一個互斥量(XSQWERSystemCriticalSection_for_1232321)是不是存在,從而確保只有一個例項在執行。然後,木馬會聯絡伺服器(IP: 198.[redacted].74,或域名sec[…]win. com)。在初始通訊階段,後門會向CC伺服器傳送一個加密的buffer,包含有一個RC4秘鑰和外掛的ID。下面就是一個buffer:
03 33 02 03 33 23 03 21 23 06 21 23 3A 66 95 64 4B 56 FF 22 4D 81 4F
我們使用下列在buffer中的ID識別出外掛:0x3302, 0x3303, 0x2103, 0x2106\
很有趣的是,pr.dll會建立兩個管道,可能是用於收集其他程式傳送的資料。
pr.dll似乎是在伺服器上發現的一個Windows版Linux檔案。在伺服器上有4個elf檔案,有兩個是x86架構(075b6695ab63f36af65f7ffd45cccd39, f3bf929a35c3f198226b88537d9ccb1a),兩個是x64架構(2683624eacc490238e98c449bddbb573, 5bf524a4860f3c33e3ad77b6b625db37)。這個elf檔案使用了SQLite3來儲存其配置,而不是登錄檔。My_BD資料庫包含有兩個變數chnnl和prms。
這些檔案會透過構建隨機請求,嘗試聯絡伺服器。每個請求都有一個動作watch/
,search/
,results/
,search/
,close
) 和2-9個變數(選擇:text=
,from=
,itwm=
,ags=
,oe=
,aq=
,btnG=
,oprnd=
,utm=
,channel=
)。引數值是隨機生成的。
下面是一個請求:
h[tt]p://198.***.***.74/watch/?aq=JTfJRp-s&oprnd=Dwtee&itwm=niKMuGE9Mp9Md9vHdggZMS16YlSTx&btnG=t&oprnd=FbLtw&AVVAT=m 8I2tN
elf檔案中包含有下列模組:
- AgentModule
- KernelProvider
- AgentKernel
- ChannelController
- Cryptor
- LocalStorage (sqlite3) 7. ReserverApi
- AgentChannel
- HttpChannel
- FSModule
- RemoteShell
- RemoteKeylogger
如上所述,每個架構都有兩個版本。唯一區別就是有一個版本中不會包含最後的兩個模組。