记一次Linux木马清除过程

2019 年 8 月 26 日 黑客技术与网络安全

来自:FreeBuf.COM,作者:xyl870612

链接:https://www.freebuf.com/articles/system/208804.html

前段时间公司发生了一起服务器入侵事件,在此分享给大家也顺便理顺下linux入侵应急响应思路。

一、事件描述

某天监控同事反馈有台机器cpu飙高到2000%,可能机器已经被黑。于是登录上去查看,果然有个进程名为"HT8sUy71"的进程在作祟,这一看名字就不大可能是正常进程。


二、处理过程

2.1 查杀病毒进程


cpu占用率如此之高,基本可判断为挖矿程序无疑了,使用在线威胁情报系统对进程进行检测,不出所料,得出的标签是coinminer。这种挖矿进程一般都有自动重启机制,可能是某个进程的子进程,也可能在cron定时任务里出现。


首先,检查cron定时任务,发现/var/spool/cron/crontabs/root和/etc/cron.d/tomcat文件修改时间有变化,但是内容却无改动。


然后,使用ps -ef进行查找主进程,并无收获。同时发现此挖矿进程正在和“172.105.114.84”这个ip的8443端口进行通信,可能是黑客的一台远控服务器。



之后,lsof查看此进程在操作哪些文件,也无实际收获。



推测一定是有某个主进程在工作,so,继续通过ps和netstat查找监听所监听端口的异常。果不其然,看到异常进程,正在批量爆破,看来是被当做肉鸡了。同时使用lsof查看此进程文件,发现在调用/root/.ddg/4003.db文件,貌似是个加密的社工库。



判断是此程序即是主程序,kill掉挖矿进程后,使用strace -T -tt -e strace=full进行跟踪,发现主进程先对挖矿进程增加可执行权限,之后拉起进程。


 

那么现在kill掉主进程吧,发生个小插曲,发现主进程pid一直在变化,好吧,直接killall osryfa3。



至此,算是暂时消停一下,简单总结一下此病毒特征,其一方面释放挖矿病毒进行挖矿,同时又对公网ssh服务进行爆破以扩大感染面。在这里同时给了我一个提醒,或许这台服务器就是通过ssh爆破被入侵的。


2.2 查找入侵痕迹


 一般情况下,入侵可能有以下几种方式: 

a.各种弱口令爆破

b.系统漏洞的利用

c.应用漏洞的利用

上面说了,可能是通过ssh爆破被入侵的,我们先来验证一下。


查看登录日志,发现异常(下图是已经过滤掉正常登录的日志),基本可断定是通过ssh爆破入侵了,也可以断定ssh的访问控制已经失效。 


cat /var/log/secure* | grep Accepted



结合以上ip查看爆破日志,确认以上ip的用户不是同一个人,是刚好有这么多ip同时爆破了root账户,而且最短的爆破时间只花了1分钟。想来这个root账户必然是个弱密码了。继续查找Failed日志的最早时间如下:


 cat /var/log/secure* | grep Failed 



基本可断定在这之前有人动过访问控制策略了,询问运维人员无果。


stats查看iptables、/etc/hosts.allow和/etc/hosts.deny文件状态,结合.bash_history命令,一切真相大白,一言难尽,你们自己体会。



2.3 病毒文件的清理


首先,使用stat查看上面两个进程的修改时间,大约在7月8号早上6点多,而ssh系统最早爆破时间是7月6号16:41。



然后,结合这两个时间来查找敏感目录中被修改过的系统文件,进行检查修复和清除。


find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ /var/spool/cron/ -type f -mtime -3 | xargs ls -l  



最后 ,使用chkrootkit、clamav、rkhunter一通查杀,当然,还是重装系统最保险。

三、总结

首先啰嗦一下,关于linux主机,高危端口真得万万不能全网开放。看了日志后,发现黑客真是时时刻刻在爆破啊。


关于linux入侵的排查思路,总结如下:


1、查看异常进程活动-查找是否有异常进程和端口占用


1.1查找占用cpu最多的进程,相关命令:运行top命令后,键入大写字母P按cpu排序;


1.2查找占用内存最多的进程,相关命令:运行top命令后,键入大写字母M


ps aux | sort -k4nr 


1.3查找进程文件:


ls -la /proc/$pid/exe


1.4跟踪异常进程运行情况:


strace -tt  -T -e  trace=all  -p $pid


1.5查看进程打开的文件


lsof -p $pid


1.6 查看进程端口情况         

 

netstat -anltp | grep $pid


2、查看账号安全


2.1查看是否有存在新增异常账号:


a.查找特权用户


awk -F ":" '$3==0{print $1}' /etc/passwd


b.查找可以远程登录的账号信息           

 

awk '/\$1|\$6/{print $1}' /etc/shadow


c.查找sudo权限账户


cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"


2.2 查看是否有账号异常登录情况:


a.查看当前登录用户和其行为


w


b.查看所有用户最后一次登录的时间


lastlog


c.查看所有用户的登录注销信息及系统的启动、重启及关机事件   


last


d.查看登录成功的日期、用户名及ip


grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'


e.查看试图爆破主机的ip


grep refused /var/log/secure* | awk {'print $9'} | sort | uniq -c |sort -nr | more

grep "Failed password" /var/log/secure* | grep -E -o "(([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3}))" | uniq -c 


f.查看有哪些ip在爆破主机的root账号    

 

grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort


g.查看爆破用户名字典      

 

grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr


3、查找异常文件   

         

3.1 查找cron文件中是否存在恶意脚本       

 

/var/spool/cron/*
/etc/crontab 
/etc/cron.d/
/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.monthly/
/etc/cron.weekly/ 
/etc/anacrontab     
/var/spool/anacron/*


3.2 查看最近一段时间内被修改的系统文件       

 

find /etc/ /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/  -type f -mtime -T | xargs ls -la


3.3 按时间排序,确认最近是否有命令被替换,可以结合rpm -Va命令


ls -alt /usr/bin /usr/sbin /bin /usr/local/bin

rpm -Va>rpm.log


3.4 确认是否有异常开机启动项       

 

cat /etc/rc.local
chkconfig --list


4.借助工具查杀病毒和rootkit

   

4.1 查杀rootkit

    

chkrootkit (下载地址-http://www.chkrootkit.org)
rkhunter (下载地址-http://rkhunter.sourceforge.net)


4.2 查杀病毒 

    

clamav(下载地址-http://www.clamav.net/download.html)  


4.3 查杀webshell


cloudwalker(下载地址-http://github.com/chaitin/cloudwalker)


工具用法不再赘述,大家自行查阅。



●编号933,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓

Linux学习

更多推荐25个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

登录查看更多
0

相关内容

Secure Shell(SSH)为创建在应用层和传输层基础上的安全协议。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
116+阅读 · 2020年5月10日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
76+阅读 · 2020年4月24日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
Mesh R-CNN
Arxiv
4+阅读 · 2019年6月6日
Bidirectional Attention for SQL Generation
Arxiv
4+阅读 · 2018年6月21日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
56+阅读 · 2020年6月26日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
116+阅读 · 2020年5月10日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
76+阅读 · 2020年4月24日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
相关资讯
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
Linux挖矿病毒的清除与分析
FreeBuf
14+阅读 · 2019年4月15日
百度开源项目OpenRASP快速上手指南
黑客技术与网络安全
5+阅读 · 2019年2月12日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
Top
微信扫码咨询专知VIP会员