入侵者如何让脚本定时执行,有以下三种方法:
1、计划任务: crontab 和系统级别的计划任务
2 、开机启动rc.local和开机启动脚本
3、系统命令被人替换,定一个触发事件
排查木马方法总结:
方法1:通过生成md5值数据库,查询文件系统的完整性
方法2: 利用find命令查找下最近被修改过的文件:一般情况下命令文件都很久之前被修改的。
方法3: 被入侵后,检测检测所有rpm -Va 生成的文件是否被改动过
一、 生成木马程序病原体
[root@localhost ~]# vim /usr/bin/fregonnzkq
#!/bin/bash
touch /tmp/aaa.txt
while true
do
echo `date` >> /tmp/date.txt
#通过动态查看/tmp/date.txt中显示的时间,可以知道木马在实时运行
sleep 1
done
[root@localhost ~]# chmod +x /usr/bin/fregonnzkq
测试:
[root@localhost ~]# fregonnzkq & #可以执行;& 符号表示在后台执行。
[root@localhost ~]# ps -axu | grep freg
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
root 4900 0.1 0.1 106152 1252 pts/1 S 16:29 0:00 /bin/bash /usr/bin/fregonnzkq
[root@localhost ~]# kill -9 4900
使用计划任务crontab让木马自动运行
[root@localhost ~]# crontab -e #写入以下内容。
1 2 * * * /usr/bin/fregonnzkq &
注:分 时 天 月 周 ,表示每天2点1分,执行命令/usr/bin/fregonnzkq &。* 表每X, 比如: 每天,每月,每周
排查方法:
[root@localhost ~]# crontab -l #查看root用户的计划任务
1 2 * * * /usr/bin/fregonnzkq &
1、例:黑客以非root用户添加计划任务。 最好使用已经存在系统用户添加。这里使用bin用户来添加
[root@localhost ~]#crontab -u bin -e #写入以下内容
1 * * * * echo "aaaaaaa" >> /tmp/bin.txt
排查:如何所有用户的计划任务? 做黑客要有一个很扎实的基础,还要有一个很好的思维。我们不用遍历/etc/passwd中所有的文件,这太复杂了。因为每个用户的计划任务都有独立的文件。
[root@localhost ~]# ll /var/spool/cron/ **#这个目录下存放着所有用户级别的计划任务**
total 8
-rw------- 1 root root 42 Nov 12 10:11 bin
-rw------- 1 root root 19 Nov 12 10:06 root
注:所有用户的计划任务,都会在/var/spool/cron/下产生对应的文件。只要看一下这个目录下的文件,就知道哪些用户生成了计划任务。
二、
1、查看系统级别的计划任务相关文件
[root@localhost bin]# ls /etc/cron #按两下tab键
cron.d/ cron.deny cron.monthly/ cron.weekly/
cron.daily/ cron.hourly/ crontab
注:
crontab #写具体时间的统级别的定时任务
cron.d/ #系统级别的定时任务
cron.daily/ #系统每天要执行计划任务
cron.hourly/ #系统每小时要执行计划任务
cron.monthly/ #系统每月要执行计划任务
cron.weekly/ #系统每周要执行计划任务
[root@localhost ~]# find /etc/cron* #查看可以添加系统级别的计划任务
例1:系统级别的计划任务
[root@localhost ~]# vim /etc/crontab #在最后追加
01 3 * * * root /bin/workstat &
例2:添加系统级别的木马程序。 可以追加到系统自带的脚本中,也可以自己新创建一个脚本,放到对应的目录下
[root@localhost ~]# vim /etc/cron.daily/logrotate #在最后添加/usr/bin/fregonnzkq &
如下图
测试执行:
[root@localhost ~]# /etc/cron.daily/logrotate #可以执行,这样木马就可以随着tmpwatch执行了
六、排查:利用md5sum ,来检验文件的完整性
语法:md5sum 文件
[root@localhost ~]# md5sum /etc/cron.daily/logrotate #生成文件的MD5值
17856453d7325d7750309910aa64e5ca /etc/cron.daily/logrotate
[root@localhost ~]#vim /etc/cron.daily/logrotate #在最后,添加一些内容
[root@localhost ~]# md5sum /etc/cron.daily/logrotate #再次查看md5值,发现不一样
6152bd26fc26d623eaf9dd551b9faed8 /etc/cron.daily/logrotate
注:所以通过对比MD5值,可以发现文件内容发生了变化。另外,系统级别的计划任务,从安装好系统后,就固定下来,一般情况不会发生改变。
七、如何排查/etc/cron*下所有文件有没有被黑客修改或追加?
思路:对所有文件都生成一个md5值库,后期进行对比,可以快速找出被修改的文件。
例2: 对/etc/cron*下所有文件都生成md5值,并存一个md5值
[root@localhost ~]# find /etc/cron* -type f -exec md5sum {} \; > /usr/share/file_md5.v1
[root@localhost ~]# vim /etc/cron.daily/logrotate #模拟黑客在文件的最后添加以下选中的内容后,保存退出。
在此配置最后追加三行
echo aaa
echo bbb
echo ccc
八、做对比MD5值库
当发现服务器异常时,生成一个新的MD5值库
[root@zmedu63 ~]# find /etc/cron* -type f -exec md5sum {} \; >/usr/share/file_md5.v2
[root@zmedu63 ~]# diff /tmp/file_md5.v1 /tmp/file_md5.v2 #对比两个版本库
< 6152bd26fc26d623eaf9dd551b9faed8 /etc/cron.daily/tmpwatch
---
> a34bbcd2c63889ad2a1ab48d751dc974 /etc/cron.daily/logrotate
注:发现黑客修改了/etc/cron.daily/logrotate文件
扩展:对于windows下杀毒软件的“快速查杀”功能,也可以对操作系统中的关键文件,生成MD5值库,下次查杀时,直接对比MD5值库就可以了。 对于不一样的文件,再进行杀毒。这样效率高。这个思路要有。
注:如果忘提前生成/usr/share/file_md5.v1怎么办?
找一台正常和你服务器系统版本号一样的虚拟机,在虚拟机中生成md5值数据库文件。复制到咱们服务器上,再对比。
总结:过通过计划任务运行木马程序
1、普通计划任务: crontab
2、高级crontab ,篡改一个系统级别的计划任务