blubiu

My Love

上网不网恋,简直浪费电.


(二)Linux安全应急--定位和排除


前言

当出现问题时,如何快速去定位。


文章简介:

本文将在 CentOS 6 下 假设挖矿应急进行演示


目录:


定位问题

首先使用top命令查看可疑进程,

PS:挖矿病毒一般占CPU比较大

假设查到名字是 sshd 的可疑进程,

images


这些先记下他的进程名字为 sshdPID号4366

假设只知道 PID,或者只知道进程名字 想要找其他信息的话,

下面的方法或许能帮助到你。


1. 根据进程查询PID号

上面我们知道了进程名字为 sshd,然后我们去查下他的PID号

命令:

ps -ef | grep sshd  # 进程名字

images


2. 根据PID号查询进程

知道 PID号4366 ,然后可以去找下进程,

命令:

netstat -antup | grep 4366  # PID号

参数 antup 分别表示的意思是:

  1. -a (all)显示所有选项,默认不显示LISTEN相关
  2. -t (tcp)仅显示tcp相关选项
  3. -u (udp)仅显示udp相关选项
  4. -n 拒绝显示别名,能显示数字的全部转化成数字。
  5. -p 显示建立相关链接的程序名

然后就找到了这个进程,并且发现了外连(PS:挖矿一般都是要连接远程服务器)

第一个IP表示本机服务器,第二个IP表示远程服务器地址,

远程地址一般为攻击者,

到这来我们又得到了几个信息,

攻击者IP地址:192.168.31.197 , 端口:60065
本地IP地址:192.168.31.11 , 端口:22

images


3. 根据端口号查询PID号和进程

命令:

netstat -antup | grep 22  # 端口号

images


4. 根据IP查询进程

命令:

netstat -antup | grep 192.168.31.197  # 端口号

images


5. 根据PID号查询进程路径

到这里,基本可以判断 挖矿程序了,

接下来就是要找到他的在哪里

命令:

lsof -p 4366  # PID号

images


或者使用

命令:

ll /proc/4366  # PID号

说明:Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,

在该文件夹下会有我们的进程的信息,

其中包括一个名为exe的文件即记录了绝对路径,通过llls –l命令即可查看。

ll 命令相关参数:

  1. cwd符号链接的是进程运行目录

  2. exe符号连接就是执行程序的绝对路径

  3. cmdline就是程序运行时输入的命令行命令

  4. environ记录了进程运行时的环境变量

  5. fd目录下是进程打开或使用的文件的符号连接


images


6. 根据名字查询路径

命令:

find / -name "sshd"  # 进程名

对于find命令大家应该都比较熟悉,就不多说了,

images


排除问题

经过定位问题后,我们知道 sshd可疑程序是从 /usr/sbin/ 目录下运行的,

接下来就是进到这个目录,然后删除全部关于 sshd 可疑的东西,

还没完,这种东西一般都是有守护进程和计划任务的,

不清除这些东西,挖矿进程就会源源不断的出现


1. 查看计划任务

为了保证挖矿能够一直运行,一般都会设定计划任务

命令:

crontab -l

或者

cat /var/spool/cron/root

各个参数说明:

  1. -e 执行文字编辑器来设定时程表,内定的文字编辑器是 vi
  2. -r 删除目前的时程表
  3. -l 列出目前的时程表
  4. -v 列出用户cron作业的状态

当然也可以直接进计划任务目录去查看

默认路径: /etc/crontab

我这里因为是演示的环境,所以就没有了

images


除了 /etc/crontab 这个路径外,

还应当特别留意下面这两个路径 ,

创建计划任务时,都会生成相应的文件,如果可疑,那么也应该清除,

/var/spool/cron/
/var/spool/cron/crontabs/

root用户执行的就会在 /var/spool/cron/ 下面创建root文件


2. 查看守护进程

守护进程顾名思义就是保护这个程序的运行,

如果 kill 不掉这个进程,那么就是守护进程,

使用命令进行查看

命令:

ps -aux | grep sshd  # 进程名

或者

ls /etc/crontab

找到这些进程,然后进去对应的目录下清除掉,然后再 kill掉进程

images


3. 查看任务操作日志

一般操作任务都会记录一个日志,

这个日志的默认路径是:/var/log/

日志名格式:cron-年月日 ,例如:cron-20190407

我们可以先进到目录下去查看挖矿病毒发现的日期,然后再去查看日志

命令:

cat /var/log/cron-20190407

或者

more /var/log/cron-20190407

使用 more 命令是 为了防止数据量过大,导致无法全部显示

more 命令 一次显示一屏文本

空格键(space)就往下一页显示,按 b 键就会往上(back)一页显示

如果日志太多的话,可以在后面加上 | grep -v {要排除的关键字} 来排除无用信息。

images


4. kill掉进程

到这里基本结束了,

清除完恶意文件后,就可以kill掉挖矿进程了

命令:

kill -9 4366  # PID号

-9 是强制结束的意思

如果出现 rm: cannot remove 'sshd ': Operation not permitted

应该是病毒使用了 chattr +i的命令

这时我们只要先执行 chattr -i sshd,然后就可以正常删除了。

关于 chattr 命令的一点补充:

chattr命令用于改变文件属性,

通过chattr命令修改属性能够提高系统的安全性,

但是它并不适合所有的目录,chattr命令不能保护//dev/tmp/var目录。

常用参数:

  1.  + :在原有参数设定基础上,追加参数。
  2.  - :在原有参数设定基础上,移除参数。
  3.  i :设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。

还有一个 lsattr 命令

改命令是显示chattr命令设置的文件属性。

使用方法:

lsattr /usr/sbin/sshd  # 路径

5. 清除SSH后门

为了保证一直拥有这台服务器的控制权限,攻击者一般会留SSH后门,

SSH 后门路径: /root/.ssh/

攻击者一般会在这个路径下创建自己的SSH公钥

检查的时候也应该特别留意,防止病毒再次爆发。


附1:如果ps、netstat命令被替换了怎么办??

这也是一个很严肃的问题,

应急中我是没遇到过,不知道各位表哥有没有遇到这种情况,

如果命令被替换了,那么执行这些命令就想到于帮攻击者执行程序。

首先还是要使用其他命令找到这些被替换的命令,

被替换的命令也是病毒程序,查看进程还是可以看到的,

找到目录进去清除程序,然后重新安装干净的命令程序,

这些命令一般存放在 /usr/bin 目录下

参考:

https://blog.csdn.net/feloxx/article/details/49273997

附2:常见日志路径及配置文件路径

Linux日志文件通常保存在 /var/log

下面是几个重要的日志文件:

整体系统信息日志: /var/log/messages

系统启动期间的日志: /var/log/syslog (它只记录警告信息,常常是系统出问题的信息)

用户信息的日志: /var/log/user.log

系统授权信息: /var/log/auth.log (包括用户登录和使用的权限机制等)

守护进程日志: /var/log/cron

FTP会话日志: /var/log/xferlog (显示出用户向FTP服务器或从服务器拷贝了什么文件)

SSH登录日志: cd /var/log/ 然后执行 less secure

Apache配置文件默认路径: /etc/httpd/conf/httpd.conf
或者在 /usr/local/apache2/conf/httpd.conf
打开找到 CustomLog 后面指定的路径就是你的日志路径

Nginx日志:/var/log/nginx/ ,日志名一般是 error.log ,配置文件: /etc/nginx/nginx.conf


总结

上面步骤没有绝对性,

那个顺手就用那个,

另外,能排查出问题,其他步骤可以省略,

当然前提条件是彻底排除。


后话

当清除完全部恶意进程后,

可以尝试扫描一下 rootkit,

但是呢,别人服务器一般不会给安装其他东西,

扫描的时候说不定也存在一定的风险,

这种情况就好好询问一下客户,或者问下公司同事一般怎么操作。

当然了,除了排除问题,一般客户也会要求找出攻击路径,

说白了就说找漏洞,你可以问问有是不是设了弱口令啊啥的,

然后问他日志情况怎么样,完不完整等等。


参考文献

https://www.freebuf.com/vuls/200289.html

https://www.sohu.com/a/219821377_653604

https://zhuanlan.zhihu.com/p/28352723