阿里云 ECS 遭挖矿程序攻击解决方法

摘要: “人在江湖飘,哪能不挨刀。” 这不,我那可怜的小服务器被挖矿程序盯上了,记录一下解决方法,以备不时之需。


一、攻击截图

  1. 攻击报警
    攻击报警
  2. ECS 破解成功
    ECS 破解成功
  3. 访问恶意 ip
    访问恶意 ip
  4. 挖矿程序
    挖矿程序

二、攻击原因:

  1. git 用户密码设置过于简单;
  2. 未禁用 git 用户的 shell 登录。

三、解决流程:

  1. 杀死挖矿程序进程

    1
    2
    3
    4
    5
    6
    7
    # 查看进程占用情况,占用资源最高的基本上就是挖矿程序
    top
    top -u git # git 用户的进程占用

    # 停止挖矿程序 pkill 或者 kill -9(我这里主要是两个进程)
    pkill Macron # 挖矿程序进程,占用资源奇高
    pkill kshnpk # 挖矿程序自启动进程,只是杀上一个进程,则 Macron 会一直自启
  2. 删除挖矿程序

    1
    2
    3
    4
    5
    6
    7
    8
    # 查找程序源文件()
    find / -name Macron
    find / -name kshnpk

    # 删除程序文件
    rm -rf /tmp/Macron

    # PS:这一步可以依靠阿里云的报警提示查找并删除对应的文件或目录,在这里吹一波儿阿里云的智能监控
  3. 安全增强

    • 修改 git 用户密码:
      执行 passwd git,设置复杂一点儿的密码
    • 禁用 git 用户的 shell 登录:
      编辑 /etc/passwd 文件,将 git:x:1000:1000::/home/git:/bin/bash 行修改为 git:x:1000:1000::/home/git:/bin/git-shell

四、附加解决方式

注意: 以下几条解决方式是在上一步的基础上执行的。

  1. 清除挖矿程序定时任务

    1
    2
    3
    4
    5
    6
    7
    # 查看定时任务
    # 这里可能需要查看不同用户的定时任务,不过我的本次操作没发现有定时任务,挖矿程序一直都是依赖 kshnpk 进程在自启动,查了很久才查出来
    crontab -l
    crontab -u git

    # 删除定时任务
    crontab -r
  2. 检查用户列表,.ssh 文件,开机启动
    cat /etc/passwd 检查是否有未知用户
    cat ~/.ssh/authrized_keys 检查是否对未知用户授权
    cat known_hosts 检查是否有未知的用host
    /etc/rc.local /etc/rc.sysinit /etc/inittab /etc/profile 这些开机启动的系统配置目录下面可能有挖矿程序的脚本,检查一下

  3. 去阿里云控制台设置安全组关闭不安全端口

友情提示:
道路千万条,安全第一条;密码太简单,猿媛两行泪!