记一次阿里云被挖矿处理记录

这篇具有很好参考价值的文章主要介绍了记一次阿里云被挖矿处理记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要
莫名其妙的服务器就被攻击了,又被薅了羊毛,当做免费的挖矿劳动力了。

一、起因

上班(摸鱼)好好的,突然收到一条阿里云的推送短信,不看不知道,两台服务器被拉去作为苦力,挖矿去了。这不是耽误我摸鱼吗,再说你挖到的矿币又不带我分,岂能忍。本着对公司负责任的态度(实在没办法),这不收拾一下过分的挖矿脚本,对不起这么多年积攒的专业知识。

登录服务器,top 一下,ps 一下,crontab -l 一下,好家伙,只看到 CPU 异常占用了,却没发现到底是哪个玩意贪了我这么多资源。与以往的不太一样啊(你特么在逗我?)。

按照以往的经验,ps -aux --sort=-pcpu|head -10 一下,贪渎者肯定原形毕露。难不成穿了个马甲。仔细分析,可能不仅仅是马甲这么简单,更有可能是隐身衣。使出万能的百度大法,果然有几篇秘籍指出问题,一一对照下,只能发现大概,定位不到最终的“宝藏”地点。看来百度不行,得 google 一下了。这次秘籍多了起来,给出了一项专门破解隐藏进程的功法。

二、寻“宝”

BusyBox 是一个集成了 300 多个最常用 Linux 命令和工具的软件。甚至还集成了一个 http 服务器和 telnet 服务器,集成的包大小只有 1M 左右。有人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单点说 BusyBox 就是一个集成了许多 Linux 工具和命令的大的工具箱。在嵌入式软件中,BusyBox 有着广泛的运用。

所以,下载 BusyBox,安装:

$ wget https://busybox.net/downloads/binaries/1.30.0-i686/busybox
$ mv busybox /usr/bin/busybox
$ chmod +x /usr/bin/busybox

查看 BusyBox 基本功能

$ busybox --help

使用瑞士军刀查看一下进程信息

$ busybox top

作祟者原型毕露,有个 /bin/daemon 进程,占用过高的 CPU 使用

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全

同时使用 netstat 查看一下程序端口占用

$ netstat -anp | grep ESTAB

结果如下:

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全

可以看到有一个程序占用端口 14444,连接的ip为 217.182.169.148,却并没有打印出程序的进程号,在shadan搜索一下,ip 为法国的,基本确定入侵使用的端口为 14444,先把端口禁用掉。

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全

三、“六娃”的能力

既然确定是 /bin/daemon,那就需要找出这个玩意是怎么具有“六娃”的能力,又是如何进行挖矿的。

首先可以确定的是 /bin/daemon 是一个二进制执行程序,那就可以看看它的动态库依赖关系

$ ldd /bin/daemon

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全

此时还未发现有任何异常的结果(请原谅眼神不好使,四个眼睛都没发现问题)

既然 ldd 无法找出异常,祭出大招,看看 /bin/daemon 所执行的系统调用

$ strace /bin/deamon

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全
好家伙,不看不知道,居然有一个 ld.so.preload,来了个预加载。

一般来说,预加载 so 有两种方式:

  1. 修改/etc/ld.so.preload配置文件,这种方法对配置修改后运行的进程有效,而无法影响已经在运行的进程
  2. 启动进程前设置LD_PRELOAD环境变量,此方法只对当前进程生效

LD_PRELOAD 可以影响程序的运行时链接,它允许定义在程序运行前优先加载的动态链接库,通过这个环境变量,可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数。

进程在启动后,会按照一定的顺序加载动态库:

  • 加载环境变量 LD_PRELOAD 指定的动态库
  • 加载文件 /etc/ld.so.preload 指定的动态库
  • 搜索环境变量 LD_LIBRARY_PATH 指定的动态库搜索路径
  • 搜索路径 /lib64 下的动态库文件

从上面的结果来看,加载了一个 /usr/local/lib/libprocesshider.so 动态库,从上面的 ldd 返回结果也看到了这个动态库,再仔细一看,这名字,不就是 process+hider
libprocesshider.so,Hide a process under Linux using the ld preloader. 官方的解释,本来可能只是作者觉得一个好玩的玩意,却被别有用心的人拿来做坏事。

找到这家伙,那好办了,先把它直接干掉。

$ rm -rf /usr/local/lib/libprocesshider.so

啥?万能的 rm -rf 大法居然失效了,这家伙身上居然给自己加了个盾,大招居然没有收到人头。

冷静一下,仔细分析。既然不能删除,那就是有着隐藏属性,等待技能冷却,我还有招。

$ lsattr /usr/local/lib/libprocesshider.so

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全

果然,文件被追加了隐藏属性。可以看到有 ia 属性。

文件隐藏属性解释:

属性选项 功能
i 如果对文件设置 i 属性,不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置 i 属性,只能修改目录下文件中的数据,但不允许建立和删除文件
a 如果对文件设置 a 属性,只能在文件中增加数据,不能删除和修改数据;如果对目录设置 a 属性,只允许在目录中建立和修改文件,不允许删除文件
u 设置此属性的文件或目录,在删除时,其内容会被保存,以保证后期能够恢复,常用来防止意外删除文件或目录
s 和 u 相反,删除文件或目录时,会被彻底删除(直接从硬盘上删除,然后用 0 填充所占用的区域),不可恢复

既然加了盾,那把盾给破了就是:

$ chattr -ia /usr/local/lib/libprocesshider.so

什么,chattr 没权限,这是反弹伤害吗?这,玩不下去了啊。

试试分身术吧。

$ cp /usr/bin/chattr /usr/bin/chattr2
$ chattr2 -ia /usr/bin/chattr

没报错,嗯,再试试

$ chattr -ia /usr/local/lib/libprocesshider.so

咋,还提示没权限。

再看一下 chattr

$ file /usr/bin/chattr

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全

这这这,跟我这虚晃一枪呢。你把我原来的文件删了,给我放个空文件,你是想骗谁呢。

看来要重装 chattr 了,但是机器上跑了不少服务,担心有影响。集中精力,冥想三分钟,条条大路通罗马,此路不通,换路走。谁让咱兄弟姐妹多呢。

服务器都是选择的一样的镜像,版本一致,从其它未被攻击的系统中拷贝一份 chattr,(划重点)拷贝到服务器上时,请换一个文件名称,通过新的文件修改原来的文件。如 chattr2

$ chattr2 -ia /usr/bin/chattr
$ rm -rf /usr/bin/chattr
$ mv /usr/bin/chattr2 /usr/bin/chattr

正主归位,一切妖魔邪道即将化为无形。

$ chattr -ia /usr/local/lib/libprocesshider.so
$ chattr -ia /etc/ld.so.preload
$ rm -rf /usr/local/lib/libprocesshider.so
$ rm -rf /etc/ld.so.preload

此时,通过 top 即可看到 /bin/daemon 进程。没有了隐身衣,无所遁形了吧。

那么,接下来,就应该干掉“罪魁祸首”了。大蛇精和蝎子精已死,救爷爷终于有希望了。

/bin/daemon 是通过软链指向 /usr/bin/daemon,不墨迹,直接干掉本尊。

$ chattr -ia /usr/bin/daemon
$ rm -rf /usr/bin/daemon

当然,记得杀掉运行中的 /bin/daemon 进程

$ kill -9 2415

四、守护者

一般的挖矿脚本程序肯定都有一个守护进程,保证挖矿的进程被杀之后,可以重新启动,绝大多数是用的定时任务的方式。既然通过 crontab -l 没看到定时任务,那就看看 /etc/cron.d 目录下有没有:

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全
果然,在 /etc/cron.d 目录下,存在着定时任务脚本,查看脚本内容:

$ cat /etc/cron.d/systemd

果然运行了一条定时任务,查看指向的脚本内容:

$ cat /lib/systemd/systemd-login

记一次阿里云被挖矿处理记录,服务器,运维,安全,服务器,运维,安全

脚本文件没有内容,file /lib/systemd/systemd-login

very short file(no magic)

什么👻 ,先不管了,干掉再说。

$ rm -rf /lib/systemd/systemd-login
$ rm -rf /etc/cron.d/systemd
$ rm -rf /etc/cron.d/systemd~
$ rm -rf /etc/cron.d/systemz~

打完野怪打小龙,打完小龙打大龙,等一段时间看看,还好,己方水晶没爆。

运行一段时间,一切稳定,算是暂告一段落。

五、总结

本篇文章还有很多的不足之处,并没有找到病毒攻击的入口,又是如何入侵到系统的,挖矿的脚本究竟运行在哪?按照正常的被攻击排错方式,一开始并不顺利。总结一下系统被入侵的排查思路,只是给后来者提供一下解决思路(希望大家的系统都很健壮,不被攻击)。

  • 查看系统的 CPU内存占用
  • 查询占用系统资源过高的进程
  • 排查定时任务,crontab -l 或者 /etc/cron.d 目录
  • 检查异常端口,如发现,禁用端口,堵漏
  • 使用 last 命令查看系统异常登录情况(一般攻击者会抹去入侵记录)
  • 使用 history 命令查看系统历史执行命令(一般攻击者会抹去历史命令)
  • 查看开机启动脚本 /etc/rc.local ,是否插入了开机启动进程
  • 通过 find /etc/cron.daily/* -mtime -1 查找前一天到现在被修改的文件
  • 找一台正常的机器,比较一下被修改文件的 md5

后续救援不如从源头堵住疏漏,平时使用系统时,可以从以下方面尽量保证系统安全:

  • 检查弱口令,使用强口令,能用证书的,尽量不使用密码
  • 不需要在外网访问的端口,尽量不开启,只开放在内网
  • 尽量使用普通用户启动服务,不要使用 root 用户启动服务
  • 系统被入侵,一般都是通过部署的服务暴露出来的漏洞,及时更新软件版本,加固系统
  • 修改常用软件服务的端口,尽量不要使用原有端口
  • 定时备份重要的文件数据,以防止服务器被入侵时,丢失重要数据

未完待续…文章来源地址https://www.toymoban.com/news/detail-536551.html

到了这里,关于记一次阿里云被挖矿处理记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务器被挖矿了怎么办,实战清退

        当我们发现服务器资源大量被占用的时候,疑似中招了怎么办  第一时间重启服务是不行的,这些挖矿木马一定是会伴随着你的重启而自动重启,一定时间内重新霸占你的服务器资源   第一步检查高占用进程       要注意这里%CPU,如果出现100.0之类或者异常高占用的进

    2024年04月08日
    浏览(53)
  • 记一次挖矿病毒的溯源

    ps:因为项目保密的原因部分的截图是自己在本地的环境复现。 1. 起因 客户打电话过来说,公司web服务异常卡顿。起初以为是web服务缓存过多导致,重启几次无果后觉得可能是受到了攻击。起初以为是ddos攻击,然后去查看web服务器管理面板时发现网络链接很少,但是cpu占用

    2024年02月04日
    浏览(47)
  • 记一次挖矿木马样本分析

    有一台vps被弱口令上马了 翻来翻去 找到个二进制文件如下 搜main函数可以判断是用shc加密shell脚本生成的二进制文件 在0000000000400F7E位置函数,找到了加载shell命令的位置 shc部分源码 尝试生成一个echo “helloworld”,看看shc生成的文件是什么构造 安装shc 加密后会得到一

    2024年01月25日
    浏览(40)
  • 记一次“XMR门罗币挖矿木马病毒”处置

    故事的起因于26号下午做渗透测试时,登录跳板机发现CPU进程拉满到200%,qiao哥看了一眼直接说是XMR挖矿,这句话勾引起我的兴趣,由于应急是我的薄弱项也没有时间深入学习,所以有本篇应急分析文章。 市面上存在很多关于XMR门罗币挖矿的教程,这些教程可能会被攻击者恶

    2024年04月22日
    浏览(47)
  • 记一次MySQL从节点服务器宕机重启后,从节点出现主键冲突异常的处理

    MySQL 5.7 非GTID模式多线程复制。 某MySQL数据库从节点因故障宕机(因故障直接宕机,非正常关闭),重启之后发现复制状态异常,show slave的结果中Slave_SQL_Running为No,错误代码为1062 error code,从系统表performance_schema.replication_applier_status_by_worker以及error log中显示某条数据因为已

    2024年02月19日
    浏览(43)
  • 菜鸟的linux云服务器第一次木马入侵处理记录(名为xmrigMiner的木马)

    2023.13.39分收到腾讯发来的提醒 查了一下后台,是这个样子 显示的是cpu与内存占用极高,不停有写入操作 大写的懵逼,第一反应是先关机 但是没屁用,cpu与内存占用居高不下 我处理的主要过程如下 kill进程没用,还会重新启动。查了半天资料,说是让我看看 启用命令 卧槽,

    2024年02月13日
    浏览(54)
  • 记一次wvp+zlm踩坑记录

     wvp修改以下配置:  docker 部署zlmediakit docker pull zlmediakit/zlmediakit  运行zlm容器 docker run -id -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp -p 30000-30500:30000-30500/tcp -p 30000-30500:30000-30500/udp  zlmediakit/zlmediakit:master 内外网开启端口时要注意红

    2024年02月14日
    浏览(32)
  • 优化记录 -- 记一次搜索引擎(SOLR)优化

    某服务根据用户相关信息,使用搜索引擎进行数据检索 solr 1台:32c 64g 数据10gb左右,版本 7.5.5 应用服务器1台:16c 64g 应用程序 3节点 1、因业务系统因处理能不足,对业务系统硬件平台进行升级,升级变更为 16c64g — 32c64g 增加 16c 2、业务系统升级,处理能力增加,对原搜索引

    2024年02月05日
    浏览(61)
  • 记一次MOXA串口服务器使用

    AIS船台——天线——AIS基站——网线——交换机——服务器 AIS船台——天线——AIS基站——串口线——串口服务器——网线——交换机——服务器 串口线分为RS-485、RS-422、RS-232,此处以RS-232为例 串口线:一端为RS232连接头,用于连接串口服务器 一端为裸露的电线纤芯头,用

    2024年02月03日
    浏览(81)
  • 记一次heapdump泄漏获取服务器权限

    一、漏洞原因 扫描目录发现某个spring框架存在大量泄露信息的路径,访问ip/heapdump可直接下载内存文件; 通过分析heapdump获取redis数据库权限 利用定时任务,进行反弹shell获取服务器权限 二、漏洞利用 1、通过目录扫描发现heapdump文件

    2024年02月02日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包