判断服务器是否被黑,不能仅凭单一现象,而需要建立一套多维度的排查体系,核心上文归纳在于:服务器被入侵通常会在系统资源、文件完整性、网络连接以及系统日志四个层面留下痕迹,管理员应通过“资源监控-文件审计-网络分析-日志溯源”的漏斗式排查逻辑,精准定位异常行为。 以下是基于实战经验归纳的专业排查方案。

系统资源与进程异常排查
攻击者在控制服务器后,最直接的目的往往是利用系统资源进行挖矿、DDoS攻击或作为跳板,资源异常是最早暴露的线索。
使用 top 或 htop 命令查看CPU和内存占用情况,如果发现业务低峰期CPU使用率长期接近100%,或者内存占用异常飙升,且无法通过常规业务进程解释,极大概率存在恶意进程,重点关注名为 kdevtmpfsi、kinsing 等常见挖矿病毒进程名,以及伪装成系统服务(如 systemd-network)但路径异常的进程。
利用 ps -ef 或 pstree 命令全盘扫描进程树。重点检查进程的启动路径,正常的系统服务通常位于 /usr/sbin 或 /bin 下,如果发现位于 /tmp、/var/tmp 或 /dev/shm 等可写目录下的可执行文件,这几乎就是确凿的入侵证据,检查是否有父进程ID(PPID)异常的孤儿进程,这往往是攻击者断开连接后留下的后门程序。
文件系统完整性检查
Webshell(网页后门)和系统级后门是黑客维持权限的核心手段,文件层面的排查需重点关注Web目录和系统关键配置文件。
对于Web服务器,应检查网站根目录下是否存在异常的图片文件(如伪装成 .jpg 的脚本文件)或包含乱码、加密代码的 .php、.jsp、.asp 文件,使用命令 *find ./ -name “.php” -mtime -7** 查找最近7天被修改的PHP文件,结合人工审计代码,搜索 eval、base64_decode、assert、shell_exec 等危险函数,黑客常利用文件包含漏洞上传小马,再通过小马上传大马,需留意文件体积异常小的脚本。
对于系统层面,检查 /etc/passwd、/etc/shadow、/etc/sudoers 等关键文件,如果发现UID为0的非系统用户,或者sudoers文件中未被授权的用户被赋予了root权限,说明系统权限已被完全接管,利用 lsattr 检查关键文件是否被加上了 chattr +i 锁定属性,防止管理员删除,这也是勒索病毒或Rootkit的常见特征。
网络连接与端口监控
入侵者为了远程控制,必然会建立网络连接,通过 netstat -antlp 或 ss -antlp 查看当前网络连接状态。

重点关注非业务端口和外发连接,如果服务器连接了未知的境外IP地址,且状态为 ESTABLISHED,极有可能正在与黑客的C2(命令与控制)服务器通信,检查监听(LISTEN)状态下的端口,除了SSH、Web服务(80/443)、数据库端口外,其他随机高位端口的监听都值得高度怀疑,这可能是反向Shell的监听端口。
使用 iptables -L -n 查看防火墙规则,攻击者往往会添加规则来开放特定端口或屏蔽安全防护软件的更新地址,如果发现防火墙规则被清空或添加了奇怪的NAT转发规则,必须立即警觉。
系统与Web日志深度审计
日志是还原攻击路径的“黑匣子”,是E-E-A-T原则中“可信度”的重要支撑。
系统日志方面,重点分析 /var/log/secure(Linux)或安全日志,搜索关键词 “Failed password” 统计暴力破解次数,如果发现大量来自同一IP段的失败登录记录,随后尝试成功的记录,说明攻击者通过暴力破解攻破了SSH密码,留意 “useradd”、“sudo” 等用户提权相关的日志记录。
Web日志方面(如Nginx的access.log),这是排查Web入侵的关键,使用grep命令筛选HTTP状态码为 200 的POST请求,特别是针对上传接口的访问,重点查找包含 “union select”、“eval(“、“base64” 等SQL注入或Webshell特征字符串的访问记录,通过分析异常请求的 User-Agent,如果发现扫描器特征(如 sqlmap、scanner),则能确定攻击者的工具和意图。
专业安全工具辅助验证
为了确保排查的彻底性,必须引入专业的安全检测工具,弥补人工排查的盲区。
建议安装 Rootkit Hunter (rkhunter) 或 Chkrootkit,这些工具能检测系统是否被植入了Rootkit(一种内核级的隐藏工具),Rootkit能隐藏进程、文件和网络连接,只有通过专用工具的比对校验才能发现。

使用 ClamAV 或 AVG Linux 等杀毒软件对全盘进行扫描,虽然Linux病毒相对较少,但针对Web目录的查杀能有效发现各类Webshell和挖矿脚本,对于被篡改的文件,如果有部署 Tripwire 等文件完整性监控系统(FIM),直接比对基线库即可在几秒钟内定位所有被修改的文件。
应急响应与修复建议
一旦确认服务器被黑,切忌直接重启,因为部分内存驻留的病毒会在重启后通过启动项重新加载,正确的处理流程是:立即断网隔离,保留现场供取证分析,然后通过备份恢复业务(恢复前必须清洗备份数据),最后修补漏洞并更新所有补丁,修改所有系统密码、数据库密码以及API密钥,清除攻击者的所有后门和定时任务(Crontab)。
相关问答
Q1:服务器CPU使用率100%一定是被黑了吗?
A: 不一定,CPU 100%首先应排查业务代码死循环、数据库慢查询或正常的流量高峰,但如果在业务低峰期出现高负载,且使用 top 命令发现进程名为随机字符串或位于 /tmp 目录下,则极大概率是被植入挖矿病毒,此时应查看该进程的PID,并直接去 /proc/PID/exe 查看实际执行文件的路径进行确认。
Q2:如何防止服务器再次被黑客通过SSH暴力破解入侵?
A: 最有效的措施是修改SSH默认端口(22号端口),并禁止root用户直接远程登录,必须配置密钥登录并关闭密码认证,或者安装 Fail2Ban、DenyHosts 等工具,自动封禁连续多次登录失败的IP地址,开启防火墙,仅允许受信任的IP地址访问SSH端口,能从根本上阻断绝大多数暴力破解攻击。


















