问题描述
突然有一天服务器访问很卡顿,在阿里云后台查看CPU,内存,系统平均负载等参数发现没问题
但是登陆服务器后,发现大量nmap服务占用大量CPU,但是这台管理员并没有主动安装过nmap
原因及对应预防方案
暴力破解 SSH 密码:通过爆破弱密码或没有加固的 SSH 配置。
- 解决方案:
- 使用强密码和密钥认证
- 修改默认端口号
- 启用防暴力破解工具
fail2ban
或类似工具 - 通过防火墙(如
iptables
或ufw
)限制 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
并非管理员或开发人员主动安装,可能说明服务器受到了攻击。以下是恶意用途的可能性:
- 黑客扫描网络目标:
- 攻击者可能在入侵后使用
nmap
进一步扫描目标网络中的其他设备和端口。 - 典型命令:
- 攻击者可能在入侵后使用
nmap -A -p 1-65535 <target_ip> # 扫描所有端口和服务信息
- 寻找系统漏洞:
- 攻击者可能在你的网络中扫描开放的服务和端口,寻找可利用的漏洞(如未更新的服务或弱口令)。
- 利用被入侵服务器作为跳板:
- 攻击者可能利用你的服务器扫描外部网络(如攻击其他目标),以掩盖自己的真实 IP 地址。
- 恶意软件伪装 :
- 有些恶意程序可能伪装成
nmap
,使用系统资源进行恶意活动,比如加密货币挖矿或分布式攻击。
- 有些恶意程序可能伪装成
解决方案
查找并终止所有 nmap
进程
方法 1: 使用 pkill
直接终止
pkill -9 nmap
方法 2: 使用 ps
+ kill
- 查找所有运行的
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
- 获取
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 使用情况,例如
htop
、zabbix
。
- 配置监控工具,实时查看异常 CPU 使用情况,例如
- 定期审计
- 检查用户和权限。
- 检查是否存在可疑文件、脚本。