Linux下手动查杀木马过程

入侵者如何让脚本定时执行,有以下三种方法:
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 &
注:分  时  天   月  周  ,表示每天21分,执行命令/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 ,篡改一个系统级别的计划任务
发布了20 篇原创文章 · 获赞 6 · 访问量 1035

猜你喜欢

转载自blog.csdn.net/SKTONE_SHUAI/article/details/104284304