胡开银 發表於 2025-4-6 16:00:00

Linux服务器挖矿病毒清除全攻略

<h3 id="linux服务器挖矿病毒处理">Linux服务器挖矿病毒处理</h3>
<p>情况说明:挖矿进程被隐藏(CPU占用50%,<code>htop/top</code>却看不到异常进程),结束挖矿进程后马上又会运行起来(<code>crontab -l</code>查看发现没有定时任务)。</p>
<h3 id="1中毒表现">1、中毒表现</h3>
<p>服务器是24核的,前12核的CPU占用一直处于100%,即使重启服务器,马上就会占用12核的CPU,并且系统内存占用也很大。中毒表现有如下几点:</p>
<ul>
<li>• 在没有使用软件的情况下,CPU使用率很高(使用top或者htop查看系统内存占用情况)。</li>
<li>• 通过<code>netstat -natp</code>发现有异常IP地址。</li>
<li>• 发热极其严重,风扇狂转。</li>
<li>• 服务器莫名其妙突然卡顿。</li>
</ul>
<h3 id="2解决办法">2、解决办法</h3>
<h4 id="21-断网并修改root密码">2.1 断网并修改root密码</h4>
<p>在发现中了挖矿病毒后,一定要首先断网并修改root密码!!!</p>
<h4 id="22-找出隐藏的挖矿进程">2.2 找出隐藏的挖矿进程</h4>
<p>这里利用两个工具【sysdig】和【unhide】来搜寻被隐藏的进程。</p>
<pre><code># 安装 sysdig
sudo apt install sysdig

# 安装 unhide
sudo apt install unhide

# 输出cpu占用的排行,可以显示出隐藏的进程
sudo sysdig -c topprocs_cpu

# 搜索隐藏进程,proc目录下保存的是所有正在运行程序的进程ID,即PID
sudo unhide proc
</code></pre>
<p>这时就找到了挖矿病毒的PID,但是直接<code>kill -9 PID</code>杀死进程后就会发现不到1分钟的时间,就会有一个新的挖矿进程出现,因此这个挖矿进程肯定是被什么服务所启动的,接下来我们便需要找到这个服务并将其关闭。</p>
<h4 id="23-关闭病毒启动服务">2.3 关闭病毒启动服务</h4>
<p>通过上面<code>unhide proc</code>发现的隐藏进程,利用<code>systemctl status PID</code>来检查 systemd 管理的服务或者进程状态,来看一下该病毒到底是如何被启动的。</p>
<pre><code>`systemctl status 3084`# 3084为病毒的PID
</code></pre>
<p>查看输出的CGroup段信息,可以看到一个后缀为<code>.service</code>的服务,该服务就是病毒的启动服务。</p>
<pre><code># 终止病毒启动服务
systemctl stop xxxxX.service
# 终止挖矿服务的开机自启
systemctl disable xxxxX.service
</code></pre>
<h4 id="24-杀掉挖矿进程">2.4 杀掉挖矿进程</h4>
<p>在关闭了挖矿病毒的启动服务之后,现在就可以将挖矿进程kill了。kill之后,CPU恢复正常,并且也没有了隐藏进程。</p>
<pre><code>`kill -9 PID`
</code></pre>
<h3 id="3防止黑客再次入侵">3、防止黑客再次入侵</h3>
<h4 id="31-查找异常ip">3.1 查找异常IP</h4>
<pre><code># 通过 netstat -natp 显示网络相关信息,查看是否存在异常IP
netstat -natp
</code></pre>
<p>将查到的异常IP直接在百度中输入就可以看到该IP的一些信息。</p>
<h4 id="32-封禁异常ip">3.2 封禁异常IP</h4>
<p>利用防火墙 iptables 对异常IP进行封禁。</p>
<pre><code># 对异常IP封禁
sudo iptables -I INPUT -s IP -j DROP
# 检查是否已经成功添加
iptables -L INPUT -v -n
</code></pre>
<p>默认情况下,通过 <code>iptables</code> 添加的规则在系统重启后会丢失。如果希望规则在重启后依然有效,需要将规则保存到配置文件中。可以使用 <code>iptables-persistent</code> 工具来实现。</p>
<pre><code>
# 安装iptables-persistent
sudo apt-get install iptables-persistent
# 将规则保存到配置文件
sudo netfilter-persistent save
# 设置为开机自启
systemctl enable iptables
# 打开服务
systemctl start iptables
</code></pre>
<h4 id="33-查看是否有陌生公钥">3.3 查看是否有陌生公钥</h4>
<pre><code>`cat ~/.ssh/authorized_keys`
</code></pre>
<p>如果有陌生公钥立即删掉。</p>
<h3 id="4安装安全狗进行防护">4、安装安全狗进行防护</h3>
<blockquote>
<p>安装说明请查看官网地址:https://www.safedog.cn/install_desc_server.html</p>
<p>操作手册:https://www.safedog.cn/download/software/safedogfwq_linux_Help.pdf</p>
</blockquote>
<h3 id="5linux病毒扫描工具clamav">5、Linux病毒扫描工具ClamAV</h3>
<blockquote>
<p>https://www.moewah.com/archives/5296.html</p>
</blockquote>
<p>Cla­mAV 是一款开源的防病毒引擎,用于检测各类恶意软件。其特色是提供命令行扫描,定制病毒数据库更新,以及对新病毒的快速反应。适用于各种系统,包括Win­dows、Mac 以及 Linux 等。本教程将指导你如何安装、配置和使用 Cla­mAV 的主要功能。</p>
<h4 id="51-安装">5.1 <strong>安装</strong></h4>
<p>对于 De­bian/Ubuntu 系统,使用以下命令安装:</p>
<pre><code>sudo apt-get update
sudo apt-get install clamav clamav-daemon
</code></pre>
<p>对于 Cen­tOS/RHEL 系统,使用以下命令安装:</p>
<pre><code>sudo yum install epel-release
sudo yum install clamav clamav-update
</code></pre>
<h4 id="52-配置">5.2 配置</h4>
<p>完成安装后,必须更新 Cla­mAV 的病毒数据库。这将帮助 Cla­mAV 识别并抵御最新的威胁。可以使用以下命令进行更新:</p>
<pre><code>`sudo freshclam`
</code></pre>
<h4 id="53-使用">5.3 使用</h4>
<p>以下是 Cla­mAV 关于 <code>clamscan</code> 命令常见使用示例,更多用法请运行 <code>clamscan -help</code> 查看帮助文件:</p>
<pre><code># 扫描单个文件
clamscan /path/to/your/file

# 扫描整个目录
clamscan -r /path/to/directory

# 自动删除检测到的病毒
clamscan --remove -r /path/to/directory

# 为扫描结果生成报告
clamscan -r /path/to/directory &gt; scanreport.txt

# 在扫描时显示病毒被发现的信息
clamscan -r --bell -i /path/to/directory
</code></pre>
<p><code>clamdscan</code> 是 Cla­mAV 防病毒服务器 <code>clamd</code> 的客户端,用于与后台持续运行并加载病毒数据库的 <code>clamd</code> 进行交互以执行病毒扫描,使得频繁或大规模的扫描任务更加高效。</p>
<p>如果要使用 Cla­mAV 守护进程 <code>clamdscan</code> 命令进行扫描,首先确保守护进程已启动:</p>
<pre><code>`sudo systemctl start clamav-daemon`
</code></pre>
<p>接下来,使用 <code>clamdscan</code> 命令执行扫描,例如:</p>
<pre><code>`clamdscan /path/to/your/file`
</code></pre>
<p>或</p>
<pre><code>`clamdscan -r /path/to/your/directory`
</code></pre>
<p>多线程递归扫描目录文件,同时会传递文件描述符:</p>
<pre><code>`clamdscan --multiscan --fdpass /path/to/scan`
</code></pre>
<h3 id="6安全狗安装缺少命令组件解决方案">6、安全狗安装缺少命令组件解决方案</h3>
<p>Need system command 'locate' to install safedog for linux.Installation aborted!</p>
<p>是缺少搜索命令组件,用下面命令进行安装</p>
<pre><code>`yum -y install mlocate`
</code></pre>
<p>Need system command 'lspci' to install safedog for linux.Installation aborted!</p>
<p>用下面命令进行安装</p>
<pre><code>`yum -y install pciutils`
</code></pre>
<p>Need system command 'lsof' to install safedog for linux.Installation aborted!</p>
<p>用下面命令进行安装</p>
<pre><code>`yum install lsof`
</code></pre>
<p>Need system command 'netstat' to install safedog for linux.Installation aborted!</p>
<p>用下面命令进行安装</p>
<pre><code>`yum install net-tools`
</code></pre>
<p>Need system command 'killall' to install safedog for linux.Installation aborted!</p>
<p>用下面命令进行安装</p>
<pre><code>`yum install psmisc`
</code></pre>
<h3 id="7linux没有可用软件包">7、Linux——“没有可用软件包”</h3>
<p>在CentOS 7上,当使用yum命令安装软件包时,如果出现“没有可用的软件包”提示,这通常意味着yum源中已经没有对应的安装包了。</p>
<p>解决方法——&gt;安装epel-release软件包</p>
<pre><code>`yum install -y epel-release`
</code></pre>
<h3 id="8linux系统上安装sysdig">8、linux系统上安装sysdig</h3>
<p>sysdig是一个超级系统工具,比 strace、tcpdump、lsof 加起来还强大。可用来捕获系统状态信息,保存数据并进行过滤和分析。</p>
<p>在linux系统上安装sysdig可以一键式安装:</p>
<pre><code>`curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig| sudo bash`
</code></pre>
<p>这是一个在线的自动安装工具,是一个 shell 脚本,会识别常用的 linux 发行版本,并根据对应的版本配置源,最后是安装 Sysdig 包。</p>
<p>测试是否安装成功:</p>
<pre><code>`sysdig -pc -c topconns`
</code></pre>
<p>出现以下信息,说明安装正确:</p>
<p><img alt="图片" loading="lazy"></p><br><br>
来源:https://www.cnblogs.com/hahaha111122222/p/18811220
頁: [1]
查看完整版本: Linux服务器挖矿病毒清除全攻略