周末生产事故!一次心惊肉跳的服务器入侵排查....

2024-03-19 22:30

本文主要是介绍周末生产事故!一次心惊肉跳的服务器入侵排查....,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方民工哥技术之路选择“置顶或星标”

每天10点为你分享不一样的干货

640?wx_fmt=jpeg

作者:安全浅谈

链接:https://www.cnblogs.com/canyezhizi/p/11194177.html

近日接到客户求助,他们收到托管电信机房的信息,通知检测到他们的一台服务器有对外发送攻击流量的行为。希望我们能协助排查问题。


 640?wx_fmt=png

一、确认安全事件

情况紧急,首先要确认安全事件的真实性。经过和服务器运维人员沟通,了解到业务只在内网应用,但服务器竟然放开到公网了,能在公网直接ping通,且开放了22远程端口。从这点基本可以确认服务器已经被入侵了。


 640?wx_fmt=png

二、日志分析

猜想黑客可能是通过SSH暴破登录服务器。查看/var/log下的日志,发现大部分日志信息已经被清除,但secure日志没有被破坏,可以看到大量SSH登录失败日志,并存在root用户多次登录失败后成功登录的记录,符合暴力破解特征


 640?wx_fmt=png


通过查看威胁情报,发现暴力破解的多个IP皆有恶意扫描行为

 640?wx_fmt=png

三、系统分析

对系统关键配置、账号、历史记录等进行排查,确认对系统的影响情况


发现/root/.bash_history内历史记录已经被清除,其他无异常。

四、进程分析

对当前活动进程、网络连接、启动项、计划任务等进行排查


发现以下问题:


1) 异常网络连接


通过查看系统网络连接情况,发现存在木马后门程序te18网络外联。


 640?wx_fmt=png


在线查杀该文件为Linux后门程序。


 640?wx_fmt=png


2) 异常定时任务


通过查看crontab 定时任务,发现存在异常定时任务。


 640?wx_fmt=png


分析该定时任务运行文件及启动参数

 640?wx_fmt=png


在线查杀相关文件为挖矿程序

 640?wx_fmt=png


查看矿池配置文件

 640?wx_fmt=png

五、文件分析

在/root目录发现黑客植入的恶意代码和相关操作文件。

 640?wx_fmt=png


黑客创建隐藏文件夹/root/.s/,用于存放挖矿相关程序。

 640?wx_fmt=png

六、后门排查

最后使用RKHunter扫描系统后门 

640?wx_fmt=png

七、总结

通过以上的分析,可以判断出黑客通过SSH爆破的方式,爆破出root用户密码,并登陆系统进行挖矿程序和木马后门的植入。


加固建议


1) 删除crontab 定时任务(删除文件/var/spool/cron/root内容),删除服务器上黑客植入的恶意文件。

2) 修改所有系统用户密码,并满足密码复杂度要求:8位以上,包含大小写字母+数字+特殊符号组合;

3) 如非必要禁止SSH端口对外网开放,或者修改SSH默认端口并限制允许访问IP;


留言分享你遇到服务器被攻击或被肉鸡时,你是怎么应对与处理的?精选留言最走心的一位读者送出技术书《Linux系统安全:纵深防御、安全扫描与入侵检测》一本(截止时间8.14 22:00)。

640?wx_fmt=png

关注民工哥技术之路微信公众号,在后台回复关键字:1024 可以获取一份最新整理的技术干货。

-近期干货分享 -

中国互联网史就是一部流氓史!

要不是这些沙雕插件,我早就被公司开除了。

跳来跳去,到底去大公司还是小公司?

SQL常犯的这8 大错误,打死都不要犯!

不小心执行了 rm -f,先别急着跑路 (送书)!

linux平台下Tomcat的安装与优化

长按二维码关注民工哥技术之路

640?

公众号后台回复「目录」可以查看公众号文章目录大全,回复加群可以加入读者技术交流群,与大家一起交流。

点击【阅读原文】和民工哥一起学技术、搞事情~~

不管怎样 点“在看”一定不能放弃啊

这篇关于周末生产事故!一次心惊肉跳的服务器入侵排查....的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/827424

相关文章

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

【服务器运维】CentOS6 minimal 离线安装MySQL5.7

1.准备安装包(版本因人而异,所以下面的命令中版本省略,实际操作中用Tab自动补全就好了) cloog-ppl-0.15.7-1.2.el6.x86_64.rpmcpp-4.4.7-23.el6.x86_64.rpmgcc-4.4.7-23.el6.x86_64.rpmgcc-c++-4.4.7-23.el6.x86_64.rpmglibc-2.12-1.212.el6.x86_64.r

【服务器运维】CentOS7 minimal 离线安装 gcc perl vmware-tools

0. 本机在有网的情况下,下载CentOS镜像 https://www.centos.org/download/ 1. 取出rpm 有的情况可能不需要net-tools,但是如果出现跟ifconfig相关的错误,就把它安装上。另外如果不想升级内核版本的话,就找对应内核版本的rpm版本安装 perl-Time-Local-1.2300-2.el7.noarch.rpmperl-Tim

SQL Server中,always on服务器的相关操作

在SQL Server中,建立了always on服务,可用于数据库的同步备份,当数据库出现问题后,always on服务会自动切换主从服务器。 例如192.168.1.10为主服务器,12为从服务器,当主服务器出现问题后,always on自动将主服务器切换为12,保证数据库正常访问。 对于always on服务器有如下操作: 1、切换主从服务器:假如需要手动切换主从服务器时(如果两个服务

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

在服务器上浏览图片

@StarSky 2018-10-26 15:09 字数 15971 阅读 28 https://www.zybuluo.com/StarSky/note/1294871 来源 2018-09-27 线上服务器安装 imgcat Tool   2018-09-27 线上服务器安装 imgcat 0. 准备文件:iterm2_shell_integration.bash1. 在有权限

yolov3 上生产

1、在生产环境上编译darknet,执行make命令就好哦。  通过以后,拿到libdarknet.so 2、改一改../python/darknet.py文件 3、把darknet里的四个模型文件地址改一改就可以了     后面我会写一篇详细的,今天我要回家了

剑指offer(C++)--数组中只出现一次的数字

题目 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 class Solution {public:void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {int len = data.size();if(len<2)return;int one = 0;for(int i