服务器被挖矿了怎么办?别急看这里@~…~@

:服务器被挖矿攻击通常是由于系统或应用程序的漏洞被黑客利用,导致恶意软件在服务器上运行,消耗大量资源进行加密货币挖矿。

列举:

 从图中可以看到,系统检测到了一次“挖矿”行为,并标记为高危威胁。攻击者的IP是 36.248.**,并且目标是 223.113.**。根据描述,攻击类型是通过客户端登录矿池进行的,矿池登录是挖矿行为的一种典型表现。

目录

一、隔离服务器

二、 检查并停止可疑进程

三、检查定时任务(crontab) 

四、删除恶意文件

五、检查系统的网络连接

六、检查用户和权限

 七、更新系统和应用程序

八、检查和删除后门

九、加强服务器安全

一、隔离服务器

  • 断开网络连接:首先将服务器从网络中隔离,防止进一步的恶意攻击或数据泄露。
  • 切换只读模式:如果有必要,可以将文件系统挂载为只读,避免更多数据损坏或篡改。

二、 检查并停止可疑进程

  • 使用 tophtop 查看系统中占用大量 CPU 或内存的可疑进程。
  • 使用 ps aux 来查找所有正在运行的进程,特别是带有 coin, mine, xmr, xmrig, minerd 等关键词的进程。
  • 使用 killkill -9 [PID] 停止这些恶意进程。

三、检查定时任务(crontab) 

  • 黑客常常会通过修改 crontab 添加计划任务来重新启动挖矿程序。
  • 使用以下命令检查定时任务:
    crontab -l
    sudo crontab -l
    

    如果发现可疑的任务,立即将其删除:

    crontab -e
    

四、删除恶意文件

  • 使用 find 命令查找可疑文件,尤其是那些最近创建或修改的文件:
    find / -type f -mtime -1
  • 检查 /tmp, /var/tmp, /dev/shm 这些临时目录是否有可疑文件,并删除它们。

五、检查系统的网络连接

 使用 netstatss 查看网络连接情况,找出与外部矿池连接的 IP 地址:

netstat -ntlp
ss -tuln

六、检查用户和权限

  • 检查是否有新的用户被创建:
    cat /etc/passwd
  • 检查 sudoers 文件,看是否有不明用户被赋予了 sudo 权限:
    sudo cat /etc/sudoers
  • 删除可疑的用户或禁止他们的访问。

 七、更新系统和应用程序

确保操作系统和所有运行的应用程序、服务、库都已更新到最新版本,修复可能被利用的漏洞:

sudo apt update && sudo apt upgrade # 对于 Ubuntu/Debian 
sudo yum update # 对于 CentOS/RHEL

八、检查和删除后门

  • 查找是否存在 .ssh 文件中被黑客植入的公钥:
    cat ~/.ssh/authorized_keys
  • 删除可疑的公钥和配置文件。
  • 检查 rc.local 或其他启动脚本中是否有恶意代码

九、加强服务器安全

  • 更改所有密码,包括 SSH 密码和数据库密码。
  • 使用 公钥认证 来替代密码登录,并禁止 SSH 的密码认证。
  • 启用防火墙,只允许必要的端口开放,禁止所有其他未授权的流量。
sudo ufw enable      # 对于 Ubuntu/Debian
sudo firewall-cmd --add-port=22/tcp --permanent   # 对于 CentOS/RHEL
sudo firewall-cmd --reload

 看到这里基本不需要再往下看了,下面是记录本人服务器被告警后的排查过程。当然也可供大家参考:

步骤1:

top
top - 15:53:27 up 259 days,  6:12,  1 user,  load average: 0.13, 0.42, 0.44
Tasks: 1178 total,   1 running, 1177 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1.1 us,  1.1 sy,  0.0 ni, 97.6 id,  0.0 wa,  0.0 hi,  0.1 si,  0.1 st
KiB Mem : 16256840 total,   320400 free, 11537616 used,  4398824 buff/cache
KiB Swap:  4194300 total,  3272380 free,   921920 used.  4122620 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
34316 root      20   0 5611452   1.3g   9368 S   4.3  8.6   1315:07 java
32119 root      20   0 5634380   1.4g  11872 S   2.6  9.1 611:49.20 java
41614 3000      20   0 6495032   1.2g   4916 S   1.7  7.6   1365:46 java
60364 root      20   0  756088  86756   3136 S   1.7  0.5 497:02.98 MediaServer
19591 root      20   0  163208   3464   1592 R   1.0  0.0   0:00.27 top
26850 root      20   0 4815448 614144   8100 S   1.0  3.8 699:54.25 java
 9152 root      20   0 4930188 465372   7848 S   0.3  2.9  28:25.92 java
19281 root      20   0  116100   5564   4248 S   0.3  0.0   0:00.07 sshd
39128 root      20   0 1236448   8676   4076 S   0.3  0.1   7:19.32 containerd-shim
39189 root      20   0 1236704   8292   3964 S   0.3  0.1   6:30.65 containerd-shim
39835 root      20   0 7790008 223744   4568 S   0.3  1.4 141:00.97 java
    1 root      20   0   51916   3684   2116 S   0.0  0.0 114:38.10 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:03.66 kthreadd
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H
    6 root      20   0       0      0      0 S   0.0  0.0  17:55.37 ksoftirqd/0
    7 root      rt   0       0      0      0 S   0.0  0.0   0:53.57 migration/0
    8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
    9 root      20   0       0      0      0 S   0.0  0.0 150:56.86 rcu_sched
   10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-drain
   11 root      rt   0       0      0      0 S   0.0  0.0   1:03.12 watchdog/0
   12 root      rt   0       0      0      0 S   0.0  0.0   0:50.13 watchdog/1
   13 root      rt   0       0      0      0 S   0.0  0.0   0:55.87 migration/1
   14 root      20   0       0      0      0 S   0.0  0.0   2:12.06 ksoftirqd/1
   16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H
   17 root      rt   0       0      0      0 S   0.0  0.0   0:46.90 watchdog/2
   18 root      rt   0       0      0      0 S   0.0  0.0   0:53.69 migration/2
   19 root      20   0       0      0      0 S   0.0  0.0   1:41.88 ksoftirqd/2
   21 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/2:0H
   22 root      rt   0       0      0      0 S   0.0  0.0   0:46.73 watchdog/3
   23 root      rt   0       0      0      0 S   0.0  0.0   0:52.96 migration/3
   24 root      20   0       0      0      0 S   0.0  0.0   1:31.12 ksoftirqd/3
   26 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/3:0H
   28 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kdevtmpfs
   29 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 netns
   30 root      20   0       0      0      0 S   0.0  0.0   2:48.21 khungtaskd
   31 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 writeback
   32 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kintegrityd
   33 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset
   34 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset
   35 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 bioset
   36 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kblockd
   37 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 md
   38 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 edac-poller
   39 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 watchdogd
   45 root      20   0       0      0      0 S   0.0  0.0   8:56.99 kswapd0
   46 root      25   5       0      0      0 S   0.0

top 命令的输出来看,目前服务器的负载并不高,load average 大约在 0.13 到 0.44 之间,CPU 的使用率也比较低,主要处于空闲状态 (97.6% 空闲)。内存方面,服务器已经使用了大约 11.5GB,剩余大约 320MB,不过还有大约 4.3GB 的缓存可用。需要注意的点:

  1. Java进程占用较多资源
    • 有多个Java进程在运行,其中有的进程消耗了较多的CPU时间(例如 34316 进程使用了 1315:07 的CPU时间,占用了 1.3GB 内存),可能是你运行的主要应用服务。
  2. MediaServer 进程
    • 进程 MediaServer (60364) 运行时间较长,并且也占用了较多的CPU时间和内存。

目前没有明显显示出挖矿进程(例如 xmrigminerd 等典型挖矿工具),但是可以进一步检查这些Java进程是否有异常网络行为,特别是与外部挖矿池的通信。

步骤2:

ps aux | grep -E 'miner|xmrig|minerd|cpuminer|crypto'
root        48  0.0  0.0      0     0 ?        S<   Jan23   0:00 [crypto]
root     25011  0.0  0.0 112820  1000 pts/1    S+   16:02   0:00 grep --color=auto -E miner|xmrig|minerd|cpuminer|crypto

从结果来看,有一个进程 [crypto] 正在运行。尽管它的 CPU 使用率为 0 且几乎没有占用内存,但这个进程名带有 "crypto",需要进一步确认它的作用。

[crypto] 进程通常是系统内核线程的一部分,负责处理与加密相关的内核任务(比如硬件加密、SSL/TLS等)。因此,看到它并不一定意味着系统受到挖矿攻击。

要进一步确认是否存在挖矿行为,可以执行以下操作:

检查 [crypto] 进程来源: 使用以下命令查看该进程的详细信息:

ps -ef | grep [crypto]

检查进程的文件位置: 使用 lsofls 命令查看该进程使用的文件,以确认它是合法的系统内核线程: 

lsof -p <PID>  # 替换 <PID> 为该进程的实际 PID

检查可疑的网络连接 检查网络连接,特别是是否有可疑的外部连接:

netstat -tulnp

监控网络流量: 使用 iftopnload 等工具监控系统的实时网络流量,检查是否有异常的大量流量出现在不常见的端口。

步骤3:

find / -name 'crypto'
/proc/sys/crypto
/proc/crypto
find: ‘/proc/26689’: No such file or directory
/root/openssl-1.1.1v/crypto
/root/openssl-1.1.1v/include/crypto
/usr/lib/modules/3.10.0-1160.el7.x86_64/kernel/arch/x86/crypto
/usr/lib/modules/3.10.0-1160.el7.x86_64/kernel/crypto
/usr/lib/modules/3.10.0-1160.el7.x86_64/kernel/drivers/crypto
/usr/lib/modules/3.10.0-1160.81.1.el7.x86_64/kernel/arch/x86/crypto
/usr/lib/modules/3.10.0-1160.81.1.el7.x86_64/kernel/crypto
/usr/lib/modules/3.10.0-1160.81.1.el7.x86_64/kernel/drivers/crypto
/usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/kernel/arch/x86/crypto
/usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/kernel/crypto
/usr/lib/modules/3.10.0-1160.119.1.el7.x86_64/kernel/drivers/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/arch/arm/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/arch/powerpc/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/arch/s390/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/arch/sparc/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/arch/x86/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/arch/x86/include/asm/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/drivers/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/drivers/s390/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/include/config/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/include/config/rtllib/crypto
/usr/src/kernels/3.10.0-1160.119.1.el7.x86_64.debug/include/crypto

find / -name 'crypto' 的输出结果来看,所有出现的路径都与系统内核模块、加密库(如 OpenSSL)、或者相关的内核功能有关。暂时没有发现与挖矿程序有关的可疑文件。分析:

  1. /proc/sys/crypto/proc/crypto 是 Linux 系统中与加密相关的内核接口,用于管理和查看加密相关的信息。
  2. /root/openssl-1.1.1v/crypto/root/openssl-1.1.1v/include/crypto 是 OpenSSL 加密库的路径,OpenSSL 是一个用于加密和SSL/TLS的开源项目。
  3. /usr/lib/modules/.../crypto/usr/src/kernels/.../crypto 是内核模块目录,包含了与加密相关的驱动程序和模块。

这些目录和文件都属于系统中合法的加密相关模块,目前没有明显的恶意挖矿程序的迹象。

如果你怀疑有挖矿程序隐藏在系统中,可以结合这些步骤进一步排查。

对于你提到的Windows挖矿程序下载问题,我必须强调这是一种非法行为,违反了计算机使用规定和法律法规。我不能提供任何关于下载或使用恶意软件的指导或支持。 如果你怀疑自己的计算机受到了挖矿程序的感染,我建议你立即采取以下措施来保护自己的计算机和个人信息安全: 1. 更新和运行杀毒软件:确保你的杀毒软件是最新版本,并进行全面的系统扫描,以查找和清除任何潜在的恶意软件。 2. 定期更新操作系统和应用程序:及时安装操作系统和应用程序的安全更新,以修复已知的漏洞和弱点。 3. 谨慎点击链接和下载附件:避免点击来自不信任或可疑来源的链接,不要下载未经验证的附件。 4. 使用强密码和多因素身份验证:确保你的账户使用强密码,并启用多因素身份验证,以增加账户的安全性。 5. 定期备份数据:定期备份你的重要数据,以防止数据丢失或被勒索软件加密。 如果你怀疑自己的计算机已经感染了挖矿程序,但不确定如何处理,我建议你寻求专业的技术支持,例如联系计算机安全专家或咨询相关的技术论坛。他们可以提供更具体和个性化的建议来解决你的问题。 #### 引用[.reference_title] - *1* [服务器是如何被植入挖矿程序的](https://blog.youkuaiyun.com/u014294325/article/details/106340131)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

童龙辉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值