今天一起看看一些简单的入侵溯源是怎么做的,帮助大家进一步了解这方面的内容,建立兴趣。
一般来说,对于普通用户,溯源的目的更多的是清理已经植入服务器的各种病毒,找到入侵源头,也就是黑客是通过什么漏洞入侵服务器,而这次要讲的溯源经历就是一起服务器被入侵挖矿溯源的经历,正好贴合这次分享的内容。
故事的开始是这样的...
在某一个天和日丽的晚上,抱歉,晚上没有太阳。在某个夜黑风高的晚上,我准备把最近写的用来爬取美丽小姐姐照片的爬虫部署到服务器上,结果登录到服务器上的时候,发现操作有点卡,很明显的感觉到服务器的异常,而昨天还没有这样的情况,好在安全技能没白学,第一时间意识到服务器被入侵了,先看看服务器的进程情况,输入Top命令,再按大写的P,根据CPU利用率来看看进程:
可以看到一个很明显的CPU利用率接近100%的进程,而看进程名也不是我们自己启动的进程,基本是一个可疑进程。
进一步查看端口连接信息
可以看到1758,也是对应的刚才看到的那个pscf的异常进程连接了一个158.69.133.20:3333。
这个IP明显不是咱们自己的IP,到https://www.ipip.net/ip.html
查询下地理位置:
这是一个国外IP,一般来说我们自己是熟悉自己服务器情况,我自己服务器上没有连接国外IP的情况,基本确定这个进程是有问题的,进一步到威胁情报平台查询下这个IP的威胁情报信息
https://x.threatbook.cn/ip/158.69.133.20:
是一个矿池地址,加上CPU利用率接近100%的情况,咱们可以确定服务器被入侵并被植入了挖矿程序。那么刚才那个异常进程,其实就是一个挖矿进程。
现在要做的是找到入侵漏洞和清理病毒,首先要找到文件位置,kill进程。
根据进程pid 1758直接ls -lh /proc/1758查看该进程的具体信息:
可以看到进程的exe指向的文件在/var/tmp目录下,然后我们先kill -9 1758杀死进程,避免进程占用CPU资源导致我们相关操作有点慢。
进入/var/tmp目录可以看到相关的文件,Linux 系统可以直接 md5sum 文件 来提取文件的MD5值,然后到到https://www.virustotal.com/ 进行查询,可以看到相关结果,根据结果显示毋庸置疑的可以确定是挖矿程序:
包含我们直接查看w.conf文件,也能看出这是一个挖矿配置文件。
根据经验,这种挖矿程序一般都是通过一个bash脚本进行执行然后下载进行启动,可以通过查找日志和history看看是否有wget、curl等下载行为:
或者查找系统syslog
既然找到了脚本就方便多了,我们全局find了下这个脚本,没有找到,不过好在脚本还没失效,直接下载脚本分析行为,发现:
1、除了/var/tmp目录下的文件,其他文件已自删除
2、脚本中还修改了crontab任务
所以对应的清理方式我们就直接删除/var/tmp目录下的恶意文件即可,同时根据脚本的分析和刚才syslog中可以看到,脚本的下载执行是通过crontab任务的,root账户,我们直接查看/var/spool/cron/crontabs/root文件:
所以这里也要清理,把相关任务删除即可。
同时根据cronab任务文件内容,我们看到redis字样,所以可以怀疑是由于Redis服务入侵,经过排查,Redis确实存在未授权访问问题。
对应的修复Redis的配置问题,关闭外网访问,增加密码验证,就可以修复问题,最终就完成了这样一次溯源的过程。
这样一个溯源过程是比较顺利,因为我们基本是可以通过前一个步骤、或者历史痕迹查猜测到黑客的相关操作,甚至可以获得他的执行脚本进行行为分析,就能进行对应的清理工作,所以整体过程是很顺利;但在实际的一些溯源过程中,黑客会删除日志,清理相关痕迹,相关的链接会失效,所以需要更多的手段去分析、获取更多信息,猜测黑客的入侵原因。
本次的溯源过程其实是一个比较简单的溯源经历,这次分享主要目的就是让大家大概的了解一个溯源的大概简单过程是怎么样的,溯源中又是如果通过进程、端口等信息排查异常文件,再通过进程找到对应文件,通过日志找到痕迹,一层层的剥丝抽茧来找到入侵问题,最终清理掉相关的恶意文件,修复漏洞。
主要能够让大家先建立一个概念和认知,更加具体和详实的应急响应和溯源,请关注后续的不定期更新~
原文链接:https://bbs.pediy.com/thread-248993.htm