阿里云服务器突然有大量nmap服务占用大量CPU排查及解决方案

问题描述

突然有一天服务器访问很卡顿,在阿里云后台查看CPU,内存,系统平均负载等参数发现没问题

但是登陆服务器后,发现大量nmap服务占用大量CPU,但是这台管理员并没有主动安装过nmap

原因及对应预防方案

暴力破解 SSH 密码:通过爆破弱密码或没有加固的 SSH 配置。

  • 解决方案:
    • 使用强密码和密钥认证
    • 修改默认端口号
    • 启用防暴力破解工具 fail2ban 或类似工具
    • 通过防火墙(如 iptablesufw)限制 SSH 的访问范围
    • 配置Ip白名单

利用服务漏洞:利用未打补丁的服务漏洞(如 Log4j 漏洞、Apache Struts 漏洞)远程植入恶意脚本。

  • 及时更新服务组件
sudo apt update && sudo apt upgrade

  • 关闭不必要的服务
sudo systemctl list-units --type=service
sudo systemctl stop <service-name>
sudo systemctl disable <service-name>

SQL 注入攻击:通过未验证的 SQL 输入获取服务器控制权。

  • 使用参数化查询
    • 确保代码使用参数化查询(PreparedStatement)或 ORM 工具
  • 输入验证和过滤
    • 验证和过滤所有用户输入,避免恶意字符注入。
  • 最小化数据库权限
    • 使用只读数据库用户运行查询,限制对敏感表的权限。

文件上传漏洞:上传恶意脚本或工具,通过这些脚本执行 nmap

  • 严格限制上传的文件类型
    • 使用白名单验证文件扩展名
$allowed_extensions = ['jpg', 'png', 'pdf'];
$file_extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);
if (!in_array($file_extension, $allowed_extensions)) {
    
    
    die('Invalid file type.');
}

  • 存储文件到非 Web 可访问目录
    • 将上传文件存储到独立目录,并通过权限设置禁用直接访问:
sudo chmod 700 /var/uploads
  • 禁用文件执行权限
    • 对上传目录禁用执行权限:
sudo chmod -R -x /var/uploads

危害

个人推测是一下原因的第三(**用被入侵服务器作为跳板)**或者第四点(恶意软件伪装)

如果 nmap 并非管理员或开发人员主动安装,可能说明服务器受到了攻击。以下是恶意用途的可能性:

  1. 黑客扫描网络目标:
    • 攻击者可能在入侵后使用 nmap 进一步扫描目标网络中的其他设备和端口。
    • 典型命令:
nmap -A -p 1-65535 <target_ip>  # 扫描所有端口和服务信息
  1. 寻找系统漏洞:
    • 攻击者可能在你的网络中扫描开放的服务和端口,寻找可利用的漏洞(如未更新的服务或弱口令)。
  2. 利用被入侵服务器作为跳板:
    • 攻击者可能利用你的服务器扫描外部网络(如攻击其他目标),以掩盖自己的真实 IP 地址。
  3. 恶意软件伪装 :
    • 有些恶意程序可能伪装成 nmap,使用系统资源进行恶意活动,比如加密货币挖矿或分布式攻击。

解决方案

查找并终止所有 nmap 进程

方法 1: 使用 pkill 直接终止
pkill -9 nmap
方法 2: 使用 ps + kill
  1. 查找所有运行的 nmap 进程:
ps aux | grep nmap

示例输出:

root     12345  2.3  0.1  50000  1000 ?        S    14:00   0:02 nmap -sT 192.168.0.0/24
root     12346  0.0  0.0  112812   976 pts/0   S+   14:37   0:00 grep --color=auto nmap
  1. 获取 nmap 相关进程的 PID,并逐一终止:
kill -9 12345
方法 3: 查找精确路径的进程并终止

有时可能存在多个 nmap 的安装路径,可以通过以下命令查找:

pgrep -f nmap

然后使用:

pgrep -f nmap | xargs -r kill -9

防止 nmap 再次运行 ( 卸载 nmap 工具 )

yum remove nmap -y   # 如果是基于 yum 的系统
apt remove nmap -y   # 如果是基于 apt 的系统

预防

  • 更改服务器密码,并检查开放端口。
  • 加强服务器安全性
    • 修改默认端口,关闭未使用的端口。
    • 配置防火墙
    • 设置服务器ip白名单
    • 限制 SSH 登录:
      • 使用非默认端口。
      • 禁用密码登录,改用密钥认证。
  • 监控服务器资源
    • 配置监控工具,实时查看异常 CPU 使用情况,例如 htopzabbix
  • 定期审计
    • 检查用户和权限。
    • 检查是否存在可疑文件、脚本。