1. 发现问题:

  • 服务器今天发现遭受木马攻击,疑似挖矿程序植入,cpu一路飙升至99%,导致其他程序异常卡顿。
  • 机智的我上来一个top命令让程序现出原形,结果发现一个dvjj的进程耗尽了资源。

2. 解决问题

  • 接着,查看这个命令是从哪里的启动的,发现没有什么有用的信息。
  • 那我换个方式,根据PID查看此进程的详细信息:ll /proc/19718
  • Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过ll或ls –l命令即可查看。
  • 好家伙,看看这个dvjj到底写了些啥:cat /etc/dvjj,一堆火星文字刷屏,吓得我连按几个ctrl+c才退出。
  • 既然看不懂,我就不看嘛,删掉你:rm –rf /etc/dvjj,同时提示我有一封邮件,You have new mail in /var/spool/mail/root,于是查看邮件:cat /var/spool/mail/root,疯狂输出日志,好像是一直在下载什么东西
  • 不管了,先干掉再说吧:kill -9 19718,再次查看资源:top。怎么又起来了,中度郁闷中,杀不死的小强
  • 由于此程序会自动运行,立马想到定时任务,因此查看所有定时任务(系统级别和用户级别)系统级别的任务如下:

  • 查看用户级别的定时任务:cd /var/spool/cron/ ,只有一个用户和组都是root 的root文件
  • 查看定时任务内容:crontab –l,似乎是和redis相关的一堆自动下载任务,每隔几分钟就会执行一次
  • 既然如此,就删除当前用户的所有定时任务:crontab -r,提示我无法执行,我可是草鸡用户啊,怎么能这样对我。。。。。
  • 并且crontab –e 编辑命令均没有作用。最后,我决定采用rm –rf root 删除
  • 怎么这个文件既不能编辑也不能删除,太奇怪了!!这时,有两个命令可以派上用场:
chattr:可以修改文件系统属性,防止root用户误操作lsattr: 查看文件系统属性man chattr 可以查看命令使用详情

a 表示只能追加e 表示文件使用区段映射磁盘上的块
  • 去除文件属性:chattr –ae root,但是依然不能删除,那就采用编辑此文件,成功删除里面的内容,心头一喜。
  • 查看root文件:cat root,无任何内容。另外,需要对这些定时任务文件修改属性:chattr +i files,防止篡改
  • 修改执行文件/etc/dvjj的权限,由于此文件一直在增加内容,所以先删除后再新建一个空内容的文件,并且防止其修改:chattr +i /etc/dvjj
  • 查看进程树pstree,可以看到dvjj还有5个后台进程,因此是杀不死的
  • 查看此进程下的所有任务:ll /proc/11080/task,共六个程序
  • 查看进程所打开的端口和文件,lsof -p PID
  • 查看其中一个文件:cat /usr/lib64/ld-2.17.so,发现同样乱码,经过查询可以用strings命令进行转化,比如:
strings /usr/lib64/ld-2.17.so > virvus.txt
  • 然后再进行查看,前后折腾一番,但是我没有找到有用的信息。
  • 既然如此我就修改其木马文件权限:chmod 600 /usr/lib64/ld-2.17.so,让其无法执行,并且锁定文件:chattr +i /usr/lib64/ld-2.17.so
  • 上图中可以看到此连接的ip和端口:47.102.39.92:13531,封掉此ip和端口。
echo sshd:47.102.39.92 >> /etc/hosts.denyiptables -I INPUT -s 47.102.39.92 -ptcp --dport 13531 -j DROPiptables -I OUTPUT -s 47.102.39.92 -ptcp --dport 13531 -j DROP
  • 接下来,再次杀死dvjj进程,反复查看进程,终于搞定这个杀不死的进程了。你以为这样就完了,并没有。。。。。输入:netstat -apntl,服务器还在尝试与对方握手,因为禁了ip所以连接不上!!!!!!

3. 最后,检查启动项的文件

  • 检查最基本的开机启动项配置文件,尝试在开机启动文件中看看有没有可疑程序,如有有记得删除
ls /etc/rc*/init.d
ls /etc/rc*/

  • 检查chkconfig方法配置的自启动的服务:chkconfig --list
  • 关机重启,搞定

4. 总结:

1. 找出定时任务程序(/etc/cron*,/var/spool/cron/),清空并锁定chattr +i files2. lsof -p PID找出程序使用的文件和IP及端口(netstat -anptl命令也可以找到ip和端口) ,将文件内容清空并锁定,将IP和端口封掉3. 杀死程序,查看开机启动程序4. 重启查看有无异常
  • 第一次遇到这种情况,前后忙活了很久,也查了很多资料,也算是学到了很多东西,所以服务器的安全性真的很重要,可以从以下方面进行防护:
1. 把所有软件升级到新版本2. 修改所有软件默认端口号3. 打开ssh/authorized_keys, 删除不认识的密钥4. 删除用户列表中陌生的帐号5. 封了他的ip6. SSH使用密钥登录并禁止口令登录(这个一般是加运维一个人的秘钥)7. 下载杀毒软件 clamav
  • 这里,贴上类似问题的解决过程,希望对大家有所帮助:
    https://www.cnblogs.com/tssc/p/9265528.html
    https://mp.weixin.qq.com/s/tk1yL6LPnbgjONUVaqPjzw

最近又学习到一招:

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

此命令能够统计出登录服务器失败的ip地址次数,由大到小排序,这样就可以把那些失败次数过多的ip封掉

或者更进一步:

tail -n 1000 /var/log/secure |grep "Failed password" | egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" |sort|uniq -c|sort -nr |awk '$1>7 {print $2}'

找出失败ip登录次数大于7的地址

本文转载自:https://my.oschina.net/woniuyi/blog/3075405

一次杀不死的进程记录相关推荐

  1. linux中杀不死的进程

    杀一个进程的时候,刚杀死,又会换一个进程id继续运行,尝试诸多方法后才知道,该进程有父进程,想结束它,必须先结束它的父进程,总结一下 进程的查看 命令 功能 ps 查看进程 ps a 显示现行终端机下 ...

  2. kill -9 pid杀不死的进程

    发现170994和174008这两个进程使用kill -9 pid杀不死 可能的原因是其父进程没有杀死 那么如何查找父进程 使用如下命令 ps -ef |grep pid 第三列为其父进程的pid号 ...

  3. app之 杀不死的进程

    有些需求要求app进程杀不死 我觉的扯再多都是没用的  不如 给你们看看~~~人家是如何实现的 demo是可以用的 我已经测试成功了 感觉很厉害哦~~好佩服的哦~~~哦哦哦~~~    常驻进程 An ...

  4. Android_常驻进程(杀不死的进程)

    Android常驻进程,就是要让进程在内存中永远存在,让进程保活,不被杀死.可能这时都会喷,这不是流氓软件吗?刚接触android的时候,我也是认为这是很流氓的做法,可是慢慢发现很多场景(应用),要为 ...

  5. mysql 进程一直杀不死_进程一直杀不死

    就是一个简单的杀死进程,名字也是对的,不知道为何用下面方法一直杀不死 private void KillProcess(string processName) { //获得进程对象,以用来操作 Sys ...

  6. C\C++杀不死的进程

    http://blog.csdn.net/lynch0571/article/details/32965169 通常情况下编写一个程序,可以点击关闭按钮正常结束程序,也可以使用任务管理器结束任务,还可 ...

  7. 关于杀不死的进程QQ/微信?

    想想就可以了,它的进程杀不死是因为,有些厂商如小米.华为等公司为了更好的用户体验,将其设置为了白名单,所以才杀不死的,如果不相信,可以将包名改成跟QQ一样试下.

  8. Linux下使用kill杀不死Mysql进程一直杀不死的问题解决方案

    完美解决用kill -9 pid mysql进程的方法 使用以下几个命令可以进行查看 lsof -i pid 查看指定进程id的状态 ps -ef | grep mysql 查看mysql的端口号状况 ...

  9. 无敌命令 就没有杀不死的进程!

    提问: 怎么才能关掉一个用任务管理器关不了的进程?我前段时间发现我的机子里多了一个进程,只要开机就在,我用任务管理器却怎么关也关不了  方法一: 杀进程很容易,随便找个工具都行.比如IceSword. ...

最新文章

  1. 解决关闭hdfs yarn spark hbase时no namenode to stop异常 no master to stop
  2. Spring IOC学习心得之源码级分析ContextLoaderListener的作用(IOC容器初始化入口)
  3. ASP.NET中IsPostBack属性研究
  4. XML案例——Jsoup网页爬虫 XML配置参数
  5. Python训练文本情感分析模型
  6. 轻量级日志系统 PLG(**Promtail + Loki + Grafana**)架构技术调研
  7. 计算机excel还原,3种方法找回电脑上已删除的Excel文档
  8. matlab绘制共用x轴图像 subplot子图不显示问题
  9. Linux 系统中的vi和vim指令
  10. 关于新冠肺炎(COVID-19)论文解读集合
  11. LeetCode刷题 | 唯一摩尔斯密码词
  12. python破解qq密码_央·python编程之QQ数据清洗
  13. 智慧网点解决方案 | 助推银行“营销-销售-服务”一体化建设
  14. python round函数用法
  15. 北大青鸟深圳嘉华分享Hibernate基础入门内容
  16. Unicode 字符集七个字符属性
  17. spring cloud nacos 配置多环境打包
  18. 实战:JS批量打包下载图片--(zip压缩)
  19. CEO、COO、CFO、CTO、CXO
  20. 较好游戏型计算机配置单,游戏多开型装机 5500元i7-7700配GTX1060游戏电脑配置推荐...

热门文章

  1. XSS--编码绕过,qcms,鲶鱼cms
  2. 电脑城要倒闭?“泰酷辣”
  3. TechED 展台视频巡礼之Nvidia篇
  4. 获取某一年的母亲节或父亲节日期
  5. java黑电脑_个人电脑防黑设置
  6. 2021年安装包制作工具有哪些?好用的安装包制作软件推荐
  7. vue3 的组件通信以及ref的使用v-model
  8. net start mysql服务名无效
  9. OPERATING SYSTEM_Processes1
  10. 关于开展青浦区2023年度第一批上海市服务业发展引导资金项目申报工作的通知