?

Sep 20 2016

解密方程式組織的Unix后門NOPEN

首頁 » 業界見聞 » 解密方程式組織的Unix后門NOPEN   

1.jpg

 

前言

不久之前,黑客組織ShadowBrokers(影子經紀人)曾聲稱他們從EquationGroup(方程式組織)那里竊取來了大量的黑客工具,并且他們還將部分工具放在網上進行拍賣。

近日,Vectra公司的安全研究專家NickBeauchesne對其中的一份泄漏文件進行了分析,并且發現了一個名叫“NOPEN”的Unix遠程管理工具(RAT)。

Nick Beauchesne說到:

“當我在對方程式組織泄漏的文件以及黑客工具進行分析時,我發現了一些非常有意思的東西,而這些東西似乎沒有得到它們應得的關注。雖然很多安全研究專家將他們的注意力全部放在了那些潛在的0day漏洞上,但是我認為我們應該還可以從這些泄漏文件中了解到方程式組織的攻擊手法和操作模式,畢竟這是全世界最危險的黑客組織之一。”

NOPEN-針對Unix系統的遠程管理工具(RAT)

根據NickBeauchesne的描述,在ShadowBrokers所泄漏的黑客工具中,有一款名為“NOPEN”的工具。在此之前,安全研究人員普遍認為這款工具是一種“Post-ExploitationShell”,方程式組織可以用它來感染一臺被入侵的設備,而這款工具將允許攻擊者與被入侵的設備進行持續性地通信。

但是通過深入分析之后Beauchesne發現,“NOPEN”實際上是一款針對Unix操作系統的遠程管理工具(RAT)。各位應該知道,“RAT”這個詞通常形容的是那些針對Windows系統和Android設備的惡意軟件,攻擊者可以利用這些惡意軟件來與受感染的目標主機進行網絡通信。

根據Beauchesne的分析結果,NOPEN毫無疑問是屬于RAT工具這一類的。Beauchesne還表示,這是一款非常復雜的惡意軟件,而且該工具似乎是方程式組織的一款非常重要的黑客工具,因為在泄漏文件(script/ops/doc)中曾多次提到了“NOPEN”的名字。之所以說它非常重要,是因為它既可以作為一個網絡后門來感染目標系統,而且攻擊者還可以用它來監聽數據。

2.jpg

 

首先,方程式組織的黑客需要成功入侵目標系統,然后在系統中安裝NOPEN。安裝成功之后,攻擊者就可以在自己的計算機與被入侵的設備之間建立一條通信鏈接,并開始監聽目標主機中的各種數據。當他們發現并獲取到了他們所要尋找的數據之后,黑客可以立刻刪除NOPEN。NOPEN的主要功能就是在被感染主機與方程式組織的服務器之間建立一條通信隧道,并運行反向shell(命令行接口)。攻擊者運行的是NOPEN的客戶端,而NOPEN的服務器端則安裝在被感染的設備上。

Beauchesne在分析報告中寫到:

“這款工具不僅可以允許攻擊者運行功能強大的shell腳本,而且還為他們提供了通信隧道的支持。需要注意的是,所有的操作信息和通信數據都采用了RC6加密算法來進行保護。但好消息是,盡管NOPEN采用了RC6加密算法來保護其網絡通信數據,但是目前的很多安全解決方案也許能夠在網絡中檢測到NOPEN的存在。”

Linux、FreeBSD、SunOS、Solaris和HP-UX等操作系統也難逃厄運

根據Beauchesne的分析,NOPEN可以在i386、i486、i586、i686、i86pc、i86、SPARC、Alpha、x86_64、以及AMD64等架構的計算機上正常運行。除此之外,安全專家表示,NOPEN還可以在Linux、FreeBSD、SunOS、Solaris和HP-UX等操作系統上運行。

深入分析NOPEN

簡單而言,NOPEN就是一款靜態編譯的后門。這款UnixRAT會對其所有的控制命令和通信隧道數據進行加密保護,并且還允許攻擊者在目標主機中實現提權。接下來,我們會對NOPEN進行深入分析,并且找出可以檢測到NOPEN的安全策略。

 

NOPEN的歡迎界面

再簡單的命令行工具也得有一個歡迎界面才對,NOPEN也不例外,而且NOPEN的歡迎界面還非常的友好。

NOPEN!                             v3.0.5.3

 

sh: 1: scanner: not found

sh: 1: ourtn: not found

sh: 1: scripme: not found

Wed Aug 31 18:07:05 GMT 2016

NHOME: environment variable not set, assuming"NHOME=/root/Firewall/TOOLS/NOPEN/.."

NHOME=/root/Firewall/TOOLS/NOPEN/..

Reading resource file"/root/Firewall/TOOLS/NOPEN/../etc/norc".../root/Firewall/TOOLS/NOPEN/../etc/norc: No such file or directory

TERM=xterm-256color

Entering connect mode

Attempting connection to 127.0.0.1:32754(127.0.0.1:32754)... ok

Initiating RSA key exchange

  Generating randomnumber... ok

  Initializing RC6...ok

  Sending randomnumber... ok

  Receiving randomnumber... ok

  Generating sessionkey... 0x0DE6200E48AB016831720B109B8B2874

  Sending first verifystring... ok

  Receiving secondverify string... ok

  Checking secondverify string... ok

RSA key exchange complete

NOPEN server version... 3.0.5.3

 

Connection

  Bytes In / Out     201/94 (213%C) / 63/4 (1575%C)

  Local Host:Port    localhost:41847 (127.0.0.1:41847)

  RemoteHost:Port   127.0.0.1:32754(127.0.0.1:32754)

  RemoteHost:Port   kali:32754 (127.0.0.1:32754)

Local

  NOPEN client       3.0.5.3

  Date/Time          Wed Aug 31 18:07:05 UTC 2016

  History            

  Command Out        

  CWD                /root/Firewall/TOOLS/NOPEN

  NHOME              /root/Firewall/TOOLS/NOPEN/..

  PID (PPID)         6904 (6896)

Remote

  NOPEN server       3.0.5.3

  WDIR               NOT SET

  OS                 Linux 4.6.0-kali1-amd64 #1 SMPDebian 4.6.4-1kali1 (2016-07-21) x86_64

  CWD                

  PID (PPID)         6908 (6889)

 

Reading resource file"/root/Firewall/TOOLS/NOPEN/../etc/norc.linux".../root/Firewall/TOOLS/NOPEN/../etc/norc.linux: No such file or directory

History loaded from"/root/Firewall/TOOLS/NOPEN/../down/history/kali.127.0.0.1"... ok

Creating command output file"/root/Firewall/TOOLS/NOPEN/../down/cmdout/kali.127.0.0.1-2016-08-31-18:07:05"...ok

Lonely?  Bored?  Need advice? Maybe "-help" will show you the way.

We are starting up our virtual autoport

我們可以通過“-help”命令來獲取幫助信息:

We are bound and ready to go on port 1025

NO! kali:>-help

[08-31-16 18:07:17 GMT][localhost:41847 ->kali.127.0.0.1:32754]

[-help]

 

Remote General Commands:

Usage: -elevate 

Usage: -getenv 

Usage: -gs category|filename [options-if-any]

Usage: -setenv VAR=[val]

Usage: -shell 

Usage: -status 

Usage: -time 

 

Remote Server Commands:

Usage: -burn 

Usage: -call ip port

Usage: -listen port

Usage: -pid 

 

Remote Network Commands:

Usage: -icmptime target_ip [source_ip] 

Usage: -ifconfig 

Usage: -nslookup name1 ...

Usage: -ping -r remote_target_ip [-l local_source_ip][-i|-u|-t] [-p dest_port] [-s src_port]

       -ping host

       -ping[-u|-t|-i] host

Usage: -trace -r remote_target_ip [-l local_source_ip][-i|-u|-t] [-p dest_port] [-s src_port]

       -trace host

       -trace[-u|-t|-i] host

 

Remote Redirection Commands:

Usage: -fixudp port

Usage: -irtun target_ip call_back_port [call_back_ip] [ourtnarguements]

Usage: -jackpop target_ip target_port source_ip source_port

Usage: -nrtun port [toip [toport]]

Usage: -nstun toip [toport [localport [srcport [command]]]]

       -nstuntoip:port

Usage: -rawsend tcp_port

Usage: -rtun port [toip [toport]]

Usage: -scan 

Usage: -sentry target_address source_address (tcp|udp)dest_port src_port interface

Usage: -stun toip toport [localport [srcport]]

Usage: -sutun [-t ttl] toip toport [localport [srcport]]

Usage: -tunnel [command_listen_port [udp]]

Usage: -vscan  (shouldadd help)

 

Remote File Commands:

Usage: -cat remfile

Usage: -chili [-l] [-s lines] [-m max] MM-DD-YYYY remdirremfile [remfile ...]

Usage: -cksum remfile ...

Usage: -fget [MM-DD-YYYY] loclist

Usage: -get [-l] [-q] [-s minimumsize] [-m MM-DD-YYYY]remfile ...

Usage: -grep [-d] [-v] [-n] [-i] [-h] [-Cnumber_of_context_lines] pattern file1 [file2 ...] 

Usage: -oget [-a] [-q] [-s begoff] [-b begoff] [-e endoff]remfile

Usage: -put locfile remfile [mode]

Usage: -strings remfile

Usage: -tail [+/-n] remfile, + to skip n lines of remfilebeginning

Usage: -touch [-t mtime:atime | refremfile] remfile

Usage: -rm remfile|remdir ...

Usage: -upload file port

Usage: -mailgrep [-l] [-m maxbytes] [-r "regexp"[-v]] [-f regexpfilename [-v]] [-a "regexp for attachments toeliminate"] [-b MM-DD-YYYY] [-e MM-DD-YYYY] [-d remotedumpfile] remotedirfile1 [file2 ...]

 ex: -mailgrep -a".doc" -r "^Fred" -b 2-28-2002 /var/spool/mail G*

 

Remote Directory Commands:

Usage: -find [-M | -m -mkfindsargs] [-x[m|a|c] MM-DD-YYYY]remdir [remdir...]

Usage: -ls [-1ihuRt] [-x[m|a|c] MM-DD-YYYY] [remfile|remdir...]

Usage: -cd [remdir]

Usage: -cdp 

 

Local Client Commands:

Usage: -autopilot port [xml]

Usage: -cmdout [locfilename]

Usage: -exit 

Usage: -help 

Usage: -hist 

Usage: -readrc [locfile]

Usage: -remark [comment]

Usage: -rem [comment]

Usage: # [comment]

Usage: -reset 

 

Local Environment Commands:

Usage: -lcd locdir

Usage: -lgetenv 

Usage: -lpwd 

Usage: -lsetenv VAR=[val]

Usage: -lsh [[-q] command]

 

Aliases:

NOPEN支持的體系架構

反匯編之后,我們就可以看到NOPEN所支持的架構了。NOPEN是Unix系統上的一款通用遠程管理工具(RAT),我們在泄漏文件中獲取到的是其Linuxi386版本。但是我在對其客戶端和服務器端進行了反匯編之后,結果顯示該版本的NOPEN所支持的架構遠不止i386一個。

.rodata:0807B04D aI586           db 'i586',0             ; DATA XREF: _serverCpuInfo+1Do

.rodata:0807B04D                                         ;_serverCpuInfo+4Co

.rodata:0807B052 ; char aI686[]

.rodata:0807B052 aI686           db 'i686',0             ; DATA XREF: _serverCpuInfo+73o

.rodata:0807B057 ; char aI486[]

.rodata:0807B057 aI486           db 'i486',0             ; DATA XREF: _serverCpuInfo+8Do

.rodata:0807B05C ; char aI386[]

.rodata:0807B05C aI386           db 'i386',0             ; DATA XREF: _serverCpuInfo+A7o

.rodata:0807B061 ; char aSparc[]

.rodata:0807B061 aSparc          db 'sparc',0            ; DATA XREF: _serverCpuInfo+E0o

.rodata:0807B067 ; char aI86pc[]

.rodata:0807B067 aI86pc          db 'i86pc',0            ; DATA XREF: _serverCpuInfo+FBo

.rodata:0807B06D ; char aI_86[]

.rodata:0807B06D aI?86           db 'i?86',0             ; DATA XREF: _serverCpuInfo+119o

.rodata:0807B072 ; char aAlpha[]

.rodata:0807B072 aAlpha          db 'alpha',0            ; DATA XREF: _serverCpuInfo+137o

.rodata:0807B078 ; char aX86_64[]

.rodata:0807B078 aX86_64         db 'x86_64',0           ; DATA XREF: _serverCpuInfo+155o

.rodata:0807B07F ; char aAmd64[]

.rodata:0807B07F aAmd64          db 'amd64',0            ; DATA XREF: _serverCpuInfo+173o

NOPEN所支持的操作系統

反編譯之后,我們了解到了NOPEN所支持的操作系統類型。

FreeBSD

Linux

SunOS

HP-UX

Solaris

很多被隱藏的命令

我們發現,命令行的“-help”命令并不能夠將NOPEN所有可用的指令全部顯示出來。

.data:0808220C commandHelp     dd 0                    ; DATA XREF:sub_8059570+746r

"-head"; "[-n] remfile"

"-sget"; "hostname port file [file ...]"

"-srecv"; "port"

"-h"

"-burnBURN"

"-stat"

"-sq"; "remfile"

"-w"

"-lambda"

"-hammy"; "localport toip srcport[toport]"

"-at"; "[-B] time[m] command"

"-listen"; "port"

"-trigger"; "localport toip srcport[toport]"

"-triggerold"; "localport toip srcport[toport]"

"-sniff"; "localfile iface [exclusion filtersport"...

"-suc"; "[get|<filename>] | [-s]<pid> [<pid>..]"...

"-jscan"; "[-t timeout] scanType target[dstPort] "...

"-hstun"; "toip [toport [localport [srcport[comma"...

"-hrtun"; "port [toip [toport]]"

"-hutun"; "toip toport [localport[srcport]]"

"-lpid"

"-sha1sum"; "remfile ..."

UberControl子菜單

這部分功能似乎與rootkit有關,負責完成隱藏文件、任務處理、socket通信、以及持久化等操作。

Tunnel子菜單

具體命令如下所示:

[t]imeout time

  [r]emote listenport[target [port]]

  [l]ocal  listenport target [port [source_port]]

  [L]ocal  listenport target [port [source_port]]; withone byte extra for socket state

  [u]dp    listenport target [port [source_port]]

  [U]dp    listenport [target [port]]

  [c]lose channel

  [s]tatus  - prints status messages for channels

 

  [q]uit - leaves thetunnel, please do not hit Cntl-C, it makes the tunnel unhappy

NOPEN的檢測

正如我們之前所提到的那樣,第一眼看過去,NOPEN絕對是一款非常復雜的惡意軟件。但是如果我們一步一步地進行深入分析,我就發現其實這款RAT并沒有我們想象中的那么復雜,因為此前我們還遇到過更加復雜的RAT。像PoisonIvy、blackshade、helium、以及其他的RAT,它們遠比NOPEN要麻煩得多,但是這些RAT的功能和運行機制其實都是大同小異的。實際上,就我們目前的經驗來看,大多數的RAT工具都擁有相似的行為模式。所以從這一點來看,NOPEN其實也沒有多少新穎之處。

沒錯,該工具背后的黑客組織是方程式組織,他們的確更加復雜,但是這類攻擊的本質其實是一樣的。我們其實并不需要完全弄清楚任何一款RAT工具的行為模式,我們可以利用“機器學習”來構建出新型的安全防御體系。通過機器學習來識別惡意工具的行為模式其檢測效率和準確率都是非常高的。不僅如此,這樣可以迫使攻擊者不斷改變他們的攻擊方法,并且增加攻擊者繞過下一代安全產品的難度。

* 參考來源:Vectranetworks,FB小編Alpha_h4ck編譯,轉載請注明來自FreeBuf.COM

 

 

如果您喜歡本博客,歡迎點擊圖片定訂閱到郵箱填寫您的郵件地址,訂閱我們的精彩內容:

正文部分到此結束

文章標簽: 方程式組織 NOPEN

版權聲明:若無特殊注明,本文皆為( mOon )原創,轉載請保留文章出處。

也許喜歡: «Metasploit 反序列化漏洞,可遠程非授權執行代碼(含exp,9/21 06點更新) | SQLiScanner:又一款基于SQLMAP和Charles的被動SQL 注入漏洞掃描工具»

你腫么看?

你還可以輸入 250/250 個字

? 微笑 大笑 拽 大哭 親親 流汗 噴血 奸笑 囧 不爽 暈 示愛 害羞 吃驚 驚嘆 愛你 嚇死了 呵呵

評論信息框

這篇文章還沒有收到評論,趕緊來搶沙發吧~

?
?
河北11选5开奖