*本文中涉及到的相关漏洞已报送厂商并得到修复,本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担。
我是Li,本科,电子信息工程专业,有javascript、php、python 语言基础,目前学习Web 安全中。
在互联网海洋中遨游的时候,我们往往会 “一不小心” 就点击进入一些不可告人的网站,留下一些邀请黑客进入的漏洞。本文将介绍一种常规的入侵溯源,帮助大家安全上网。
溯源的目的更多的是 清理已经植入服务器的各种病毒,然后找到入侵的源头,也就是黑客是通过什么漏洞入侵服务器的。
事情的开始是这样的,在某一个晚上,一个夜黑风高的晚上,我准备把最近写的用来爬取美丽小姐姐照片的爬虫部署到服务器上,结果登录到服务器上的时候,发现操作有点卡,很明显感觉到服务器的异常,而昨天还没有这样的情况。
好在安全技能没白学,第一时间意识到服务器被入侵了。
先看看服务器的进程情况,输入Top命令,再按大写的P,根据CPU利用率来看看进程:看到有一个进程的 CPU 占用率到达 99.7%。
再查看端口连接信息,终端输入 netstat -anpt,看到有一个IP 为 158.69.133.20:3333 ,明显不是我自己的异常 IP。
都能找到 ip 地址了,离成功还能有多远?
我顺手把 IP地址复制粘贴,利用 http://www.ipip.net/ip.html ,找到IP所在的地理位置,可以看到这是一个来自加拿大魁北克的 IP。
我再到威胁情报平台查询 IP 信息 (http://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/ 进行查询,可以看到这里有60款软件,有20款都对它报毒,确定这是一个挖矿程序。如下图所示:
从经验来看,这种挖矿程序,一般都是通过bash脚本进行执行,然后下载进行启动,可以通过查找日志和 history 看看是否有 wget、curl等下载行为。
上图可以很明显看到有 wget 行为。
由于下载地址还没有失效,可以直接下载脚本分析行为:
• 除了 /var/tmp 目录下的文件,其他文件已自删除
• 脚本中还修改了 crontab任务
清理方式:直接删除 /var/tmp 目录下的恶意文件。同时,根据脚本分析和 syslog ,我们可以看到脚本是通过 crontab 任务中 root 账户下载执行的,那么我们直接查看 /var/spool/crontabs/root 文件。
从上图可以看到,系统的 crontabs 任务已被修改,并加入一些未知任务,我们把这些任务清理掉就可以了,可以看到任务的内容有 REDIS0006字样,我们可以排查到,这是Redis存在未授权访问的问题。修复方法:对应修复 Redis 的配置问题关闭外网访问,增加密码验证。妈妈再也不用担心我被黑了。
总结:这是一次比较顺利的溯源过程。通过前一个步骤、或者历史痕迹查到或猜测到黑客的相关操作,甚至可以获得脚本进行行为分析,但是在实际的溯源过程中,黑客会删除日志、清理相关痕迹、相关链接会失效,不过,解决这些又是一个新的话题了。
WEB安全学习其实没想象的那么难,以上分享就是我从破壳学院的课程中学到的,大佬和菜鸡只有一念之隔,懒惰永远不是你无法进步的借口!
2019年4月24日,在线课程《WEB安全入门急速训练营》进驻FREEBUF平台正式第五期招生,课程共计7章57节751分钟教学,将在60天内系统化的让你入门WEB安全,找到学习的组织,还有师傅带队挖漏洞,我们对未来即将诞生的大佬们充满了期待,已经迫不及待的等待各位大佬们的加入,一起切磋技术,一起组队挑战各大赛事...
课程报名:《WEB安全入门急速训练营》