一次挖矿入侵处理记录(2021.01.27)
https://github.com/bg6cq/ITTS/blob/master/security/mine/README.md
转自上面链接,也是我的亲身经历,供大家学习。网络安全大家引以为戒。爱闹的小兄弟们,别闹了啊,让张老师花了好几天的心思在你们弄得事情上。
[原创]一次挖矿入侵处理记录(2021.01.27)
本文原创:中国科学技术大学 张焕杰
修改时间:2021.01.27
一、突发的大量SSH扫描
2021.01.25 22:40,接到用户报告发现有来自校内7个IP的大量SSH扫描。同时,部署的蜜罐也发现有校内IP在进行扫描。
这些IP只有一个有校外访问权限对外发起了扫描,其他IP都是校内通信。第一时间禁止了这些IP通信。
由于校内服务器管理员和用户安全意识不强,大量使用弱密码,因此类似扫描是经常发生的,一般是服务器被入侵引起的。
2021.01.26 发现有一个IP在对外扫描,碰巧管理员是熟悉的老师,就提醒管理员关注。
2021.01.27 管理员提供了密码,登录后发现有若干台虚拟机均为简单密码,其中一台有连接校园网的网卡,黑客从这个网卡 入侵后,又入侵了其他虚拟机。
二、被入侵机器的查处情况
登录被入侵的虚拟机,执行w、top、netstat
等命令有很大延迟,top看到CPU利用率较高,但显示的进程CPU利用率并不高。
执行rpm -Va
没有看到明显被修改的系统关键文件,netstat
等程序也未发现明显异常。
执行ldd ldd /usr/bin/ls; ldd /usr/sbin/ss
发现多了/lib/libcurl.so.2.17.0 (0x00007f3718028000) 动态库
, find / -name libcurl.so.2.17.0
找不到这个文件
执行strace /bin/ls 2>t
在t中可以看到
access("/etc/ld.so.preload", R_OK) = 0
open("/etc/ld.so.preload", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=22, ...}) = 0
mmap(NULL, 22, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x7f4f9c05c000
close(3) = 0
open("/lib/libcurl.so.2.17.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\34\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=27112, ...}) = 0
说明文件是存在的,但是ls /lib
看不到,怀疑黑客使用/etc/ld.so.preload 加载了动态连接库后门来隐藏信息 (参考https://www.freebuf.com/column/162604.html ,警惕利用Linux预加载型恶意动态链接库的后门)
strace配合tcpdump可以发现每次执行命令时,会访问www.fullskystar.top,由于机器无法访问外网,所以命令执行的很慢。
允许IP可以访问外网,看到与www.fullskystar.top 443端口有如下典型的挖矿通信流量:
发送:{"id":1,"jsonrpc":"2.0","method":"login","params":{"login":"CPU: 4C/4T Memory: 3GB XMRig: 6.6.0 Since:2021/1/25 18:42:4","pass":"x","agent":"XMRig/6.6.0 (Linux x86_64) libuv/1.40.0 gcc/9.3.1","algo":["cn/1","cn/2","cn/r","cn/fast","cn/half","cn/xao","cn/rto","cn/rwz","cn/zls","cn/double","cn/ccx","rx/0","rx/wow","rx/arq","rx/sfx","rx/keva","argon2/chukwa","argon2/chukwav2","argon2/wrkz"]}}接收:{"jsonrpc":"2.0","id":1,"error":null,"result":{"id":"ac694f3d69b506b8","job":{"blob":"0e0eb6a3c580067396fd31ac9a0b378b84a253e104e5404dae018f2290647ea0f784eabc4de88a00000081db68a2d810b369ca7cbb49f052530888278262d2b52db767c8cb1acc494775235b","job_id":"KcXF8WaZx0","target":"ffff0000","algo":"rx/0","height":2283630,"seed_hash":"f1a94ed2953f45f464eb3948e105899933ea0780d3c70918ee78359f2f571985"},"extensions":["algo","nicehash","connect","tls","keepalive"],"status":"OK"}}
下载静态编译的busybox,继续处理
wget https://busybox.net/downloads/binaries/1.28.1-defconfig-multiarch/busybox-x86_64
mv busybox-x86_64 busybox
chmod +x busybox[root@localhost ~]# ./busybox ls -al /etc/ld.so.preload
-rw-r--r-- 1 root root 22 Jan 25 17:38 /etc/ld.so.preload
[root@localhost ~]# ./busybox cat /etc/ld.so.preload
/lib/libcurl.so.2.17.0[root@localhost ~]# ./busybox ls -al /lib/libcurl.so.2.17.0
-rwxr-xr-x 1 root root 27112 Jan 25 17:38 /lib/libcurl.so.2.17.0
由此可以判定黑客通过 /etc/ld.so.preload 加载 libcurl.so.2.17.0 动态链接库,拦截对系统的访问,从而隐藏了有关信息, 导致top、netstat、ls等均无法看到黑客增加的文件和运行的程序。
三、被入侵机器的处理过程
- 修改密码
使用 passwd
修改密码
- 删除preload的动态库
执行以下命令,执行后ld.so.preload还在,但是libcurl.so.2.17.0被改了名字后不起作用
[root@localhost ~]# ./busybox sh
~ # ./busybox chattr -i /lib/libcurl.so.2.17.0; ./busybox mv /lib/libcurl.so.2.17.0 /lib/libcurl.so.2.17.0.old
~ # exit# 执行以上命令后,退出重新登录,否则之前的bash是注入过libcurl.so的
# 下面的命令要等所有注入过libcurl.so.2.17.0的进程都退出后才有用,否则还会被改
# grep libcurl.so.2.17. /proc/*/maps 可以查看哪些进程被注入了
[root@localhost ~]# chattr -i /etc/ld.so.preload
echo -n > /etc/ld.so.preload
- 清理恶意程序
执行以上命令后,top可以看到/usr/bin/bioset占了大量CPU,这是挖矿程序
ls -al /usr/bin/bioset
时间与被入侵的时间一致,同时修改的还有程序/usr/bin/kthreadd
Kill -9 这两个进程,系统正常。
同时发现 /root/.ssh/authorized_keys 中添加有黑客的公钥。
chattr -i /usr/bin/kthreadd /usr/bin/bioset /root/.ssh/authorized_keys
后
以上4个文件备份后交给安全同行继续深入分析处理。
删除这4个文件,特别是authorized_keys,不然黑客还可以进来。
黑客还修改了/etc/resolv.conf,前面加了nameserver 223.6.6.6,但估计程序有bug,在resolv.conf后面填充了0,凑够了256字节,将这个文件也恢复。
至此处理完毕。
欢迎 加入我们整理资料
一次挖矿入侵处理记录(2021.01.27)相关推荐
- 468、Java框架122 -【Spring + SpringMVC + MyBatis - JSON】 2021.01.27
目录 0.本知识点效果 1.jquery.min.js 2.json中文问题 3.CategoryController 4.submit.html 5.getOne.html 6.getMany.ht ...
- Leetcode刷题 2021.01.22
Leetcode刷题 2021.01.22 Leetcode1042 不邻接植花 Leetcode1010 总持续时间可被 60 整除的歌曲 Leetcode1091 二进制矩阵中的最短路径 Leet ...
- 2021.01.14【NOIP提高B组】模拟 总结
2021.01.14[NOIP提高B组]模拟 总结 第一题 Candy 奇奇怪怪的题目. 一开始没有理解题目,其实就是同时变换. 打了一个暴力. 本人随机生成50000组数据,都过了,时间没超.希望出 ...
- 2021.01.29小型计算器
2021.01.29小型计算器 题目描述 模拟程序型计算器,依次输入指令,可能包含的指令有: 数字:'NUM X',X为一个只包含大写字母和数字的字符串,表示一个当前进制的数 运算指令:'ADD',' ...
- DALSA相机开发记录(01)
DALSA相机开发记录(01) 打开相机时,出现"Server index out of range"错误,原因是Sapera CamExpert生成的相机配置文件(.CCF)中& ...
- PowerBI视觉对象共计271组,2021.01.20日更新
PowerBI视觉对象共计271组,2021.01.20日更新 内容包含导入文件和图标.预览图.文件名一致,在预览图内找到合适的可以直接在视觉对象文件夹搜索 下载地址:点击下载 超便宜 或者复制链接打 ...
- 嬴群的Python程序设计基础学期总结 2021.01.04
Python程序设计基础学期总结 ## 时光像水中的倒影,一晃大一上学期就过去了.昨日那埋怨时间太慢的情愫似乎还游离在脑际,而今大一下学期生活正向我们走来,蓦然回首,感慨颇多.刚迈入大学的时候对一切似 ...
- 计算机毕业设计Java大学生二手物品交易网站演示记录2021(源码+系统+mysql数据库+lw文档)
计算机毕业设计Java大学生二手物品交易网站演示记录2021(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java大学生二手物品交易网站演示记录2021(源码+系统+mysql数据库+lw ...
- 基于JAVA大学生二手物品交易网站演示记录2021计算机毕业设计源码+系统+lw文档+部署
基于JAVA大学生二手物品交易网站演示记录2021计算机毕业设计源码+系统+lw文档+部署 基于JAVA大学生二手物品交易网站演示记录2021计算机毕业设计源码+系统+lw文档+部署 本源码技术栈: ...
最新文章
- 本地navicat连接阿里云数据库
- swoole单台并发php,php swoole 并发多少?
- 电脑桌面图标异常 计算机只显示C盘,Windows7系统桌面图标异常如何解决?
- 测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机
- 多线程锁,线程池,消费者生产者模型
- go中select用法详解
- 微软员工揭秘 Windows 的 Linux 子系统研发全过程
- 数据结构与算法分析题库
- 手机日历怎么备注农历生日提醒
- Linux命令暂停进程,shell脚本不暂停进程,暂停几秒执行下一条shell命令
- Linux(程序设计):29---Zlib库(数据压缩与解压)
- Maven依赖冲突问题解决方案
- html大段文本如何分页,打印大型HTML表时如何处理分页符
- 命令行设置RTC alarm
- 远程连接服务器工具,好用的远程登录服务器工具
- 轻松在Google Chrome浏览器中管理您的电子邮件
- 200张表,单表记录过亿,10多年核心老系统的重构之旅
- 计算机将症状与疾病联系起来的能力有多强?
- Eclipse Git配置
- 33_ue4进阶末日生存游戏开发[拾取面板UI]
热门文章
- 迷宫问题算法设计与实现
- 阿里汪学长教导我们说。。。
- 关于UCP和TCP的形象理解
- ST-P3:首篇基于环视相机的端到端自动驾驶框架!(ECCV2022)
- 多图片查看神器MulimgViewer
- 北漂离开北京后是一种什么样的体验
- 【b站 机器学习基础】四、自动调整学习率
- StreamingFileSink fails due to truncating HDFS file failure
- 欧拉函数的Möbius反演公式证明中换序求和一些想法
- [国产][喜剧][周星驰系列电影(40部)][DVD-RMVB/15.8G][中文字幕]