Linux服务器病毒入侵问题排查指南
一、排查思路
本排查遵循“先定位异常、再深挖根源、最后验证闭环”的核心思路,优先排查高影响度风险点(如挖矿病毒、勒索病毒),再逐步核查进程、文件、网络、账户等基础维度,确保排查无遗漏、可复现。排查过程中需留存关键日志(如进程快照、网络连接记录),为后续溯源提供依据。
二、系统资源占用检查
2.1 检查前提
需提前明确服务器基础规格(CPU核数、内存容量、带宽上限)及业务基线(正常运行时CPU占用率、内存使用率、网络进出流量范围),避免误判正常业务资源消耗。
2.2 借助大模型分析
在 Linux 病毒入侵排查过程中,涉及一些操作系统命令的使用,有一定的技术门槛,新手难以快速解读命令的输出结果、日志文件中的异常字段。可以借助文心一言等大模型,高效完成专业内容解读、异常点定位及问题答疑。
使用时,只需清晰描述排查场景 + 粘贴完整的命令执行结果 / 截图 / 日志内容 + 明确分析需求(如 “帮我分析下 chmod +x /bin/chattr 执行报错的可能原因是什么?”),即可获取针对性建议。
需注意:切勿粘贴含服务器密码、内网 IP 等敏感信息的内容,且大模型给出的高危操作(如 rm -rf)需确认后操作风险后谨慎执行。
2.3 具体排查操作
-
CPU与内存占用排查:
a. 执行top命令,查看整体资源占用:Plain Text1i. 默认按CPU使用率排序,关注%CPU、%MEM列,若存在单个进程CPU占用率持续超过80%、内存占用率超过50%且非核心业务进程,判定为可疑。 2ii. 重点关注顶部Load average(系统负载平均值),其对应3个数值(分别代表1分钟、5分钟、15分钟内的负载),正常情况下负载值应不超过服务器CPU核数(如4核CPU负载值持续低于4为合理)。 若负载值远超CPU核数,且%CPU占用率无明显高占用进程,需警惕动态链接库劫持、隐藏恶意进程(如内核级木马)或磁盘I/O异常,需结合后续动态链接库排查、iostat命令(`iostat -x 1 5`)进一步定位。b. 执行
ps -aux --sort=-%cpu按CPU占用降序排列进程,ps -aux --sort=-%mem按内存占用降序排列进程,精准定位高资源消耗进程。c. 执行
free -h查看内存使用详情,重点关注buff/cache异常占用(如远超物理内存50%)及Swap分区频繁使用(swapused持续高于10%),可能是恶意进程内存泄露或资源滥用导致。 -
网络带宽占用排查:
a. 执行iftop -i eth0(eth0为默认网卡,可替换为实际网卡名),实时查看网络进出流量,关注异常大流量连接(如单IP持续占用带宽超过10Mbps且非业务关联IP)。b. 执行
nload eth0查看整体带宽使用趋势,对比业务基线,判断是否存在带宽被打满的情况。
注:操作系统默认没有预装
iftop,nload命令,安装方法可参考: “ 附:三方排查工具安装与使用指导 ”
2.4 挖矿病毒专项检查
挖矿病毒核心特征为占用大量CPU/GPU资源,通常伴随异常网络连接(连接矿池地址),排查操作如下:
- 通过
top定位高CPU占用进程,查看进程名是否存在伪装(如“systemd-update”“mysql-serv”等仿系统进程名,注意字母混淆如“mysq1”“1s”)。 - 执行
ps -ef | grep -Ev 'grep|\[' | grep -E 'mine|miner|btc|xmr|kthreadl|kswapd0'(关键词可补充矿池相关特征),排查是否存在挖矿进程。 - 查看挖矿病毒常见藏匿目录:
ls -la /tmp/ /var/tmp/ /root/ /home/,关注以随机字符串命名的可执行文件(如“a1b2c3”“tmp_xxx”)。 - 执行
netstat -antp | grep -E ':3333|4444|5555|6666|7777'(常见矿池端口),排查是否存在连接矿池的异常端口。 -
系统日志排查:挖矿病毒运行、自启动或连接矿池时,可能在系统日志中留下记录,需结合系统版本查询对应日志文件:
CentOS系统:
执行
grep -E 'mine|miner|eth|bioset|btc|xmr|kthreadl|kswapd0' /var/log/messages,同时可排查日志轮转文件(如/var/log/messages-xxx),命令为zcat /var/log/messages-*.gz | grep -E 'mine|miner'。Ubuntu系统:
执行
grep -E 'mine|miner|eth|bioset|btc|xmr|kthread|kswapd0' /var/log/syslog,日志轮转文件查询命令为zcat /var/log/syslog-*.gz | grep -E 'mine|miner'。异常判定:
若日志中出现上述关键词,且关联进程路径为/tmp/、/var/tmp/等临时目录,或涉及陌生矿池IP、端口,可确认存在挖矿相关活动。
三、恶意进程&文件检查
3.1 异常端口与进程关联排查
-
执行
netstat -antp(需安装net-tools,若未安装可执行ss -antp替代),查看所有监听端口及对应进程:
a. 重点关注未授权监听端口(如非业务所需的10000以上随机端口、常见恶意端口3333、4444等)。b. 对可疑端口对应的PID,执行
ls -l /proc/<PID>/exe(替换为实际进程ID),查看进程可执行文件路径,若路径为/tmp/、/var/tmp/等临时目录,直接判定为可疑进程。 c. 执行
file /proc/<PID>/exe查看文件类型,若显示“ELF 64-bit LSB executable”但进程名异常,需进一步核查文件MD5值。
3.2 可疑文件排查
-
隐藏文件与伪装目录排查:
a. 执行ls -la /tmp/ $(HOME) /boot/ /var/tmp/ /etc/init.d/,查看是否存在隐藏文件(以“.”开头)、命名不规则文件(如随机字母数字组合)或伪装文件(如“ls”“ps”等系统命令的复制文件,名称可能为“1s”“pS”)。b. 重点核查/tmp目录,挖矿病毒、木马常在此目录生成临时文件并执行,若发现/tmp下存在可执行文件且无合理业务用途,立即记录路径并隔离。
-
系统命令完整性检查:
a. 执行file /bin/ls /bin/ps /bin/netstat /bin/top,正常系统命令应显示“ELF 64-bit LSB executable”(二进制文件),若显示“text file”或其他类型,说明命令被篡改。b. 执行
md5sum /bin/ls /bin/ps,将计算的MD5值与同版本纯净系统的对应命令MD5值对比(可从官方镜像或正常服务器获取),若不一致则判定为命令被篡改,可能植入恶意代码。也可以将md5值在微步云沙箱(https://s.threatbook.com/)进行分析。
c. 若发现命令被篡改,避免直接执行该命令,可通过原始系统镜像挂载获取纯净命令,或使用
busybox工具替代排查。
四、动态链接库劫持排查
4.1 动态链接库劫持定义
动态链接库(.so文件)劫持是指恶意程序通过修改进程的动态链接库加载路径,使进程优先加载恶意链接库,从而实现进程注入、资源窃取或权限维持等目的。此类攻击隐蔽性强,常规资源排查可能无法发现异常(如top显示资源占用正常,但系统负载load average持续偏高)。
4.2 具体排查操作
-
查看进程加载的动态链接库(规避命令污染风险):
a. 优先通过busybox ps -aux(替代被污染的ps命令)定位可疑进程,获取对应PID(避免原生ps命令返回虚假结果)。b. 执行
ldd /proc/<PID>/exe(替换为可疑进程ID),查看加载的.so文件路径;若ldd命令异常,可使用 busybox ldd /proc/<PID>/exe替代。c. 异常判定:若加载的.so文件存在非系统默认路径(如/tmp/、/var/tmp/、/root/下的陌生.so文件),或文件名以随机字符串命名,判定为可疑恶意链接库。
-
检查动态链接库加载路径配置:
a. 执行echo $LD_LIBRARY_PATH,查看环境变量中的链接库加载路径,若存在异常路径(如临时目录、陌生自定义路径),可能被劫持;若echo命令异常,使用busybox echo $LD_LIBRARY_PATH。b. 检查配置文件:
Plain Text1i. 通过 `busybox ls /etc/ld.so.preload`,查看是否存在该文件,此文件动态链接库劫持常用的介质文件,且操作系统初始并无此文件,如果发现此文件,则重点标注动态链接库劫持。 2ii. 通过`busybox cat /etc/ld.so.conf`及`busybox ls -la /etc/ld.so.conf.d/`,查看是否添加了非授权路径,正常配置应仅包含/usr/lib、/lib、/usr/lib64等系统路径;对目录内文件,用`busybox cat /etc/ld.so.conf.d/<文件名>`逐一核查内容。 -
排查异常动态链接库(全量扫描+命令校验):
执行
busybox find / -name "*.so" -type f -mtime -7(替代被污染的find命令,查找7天内新增的.so文件),重点排查/tmp/、/var/tmp/、/root/、/usr/local/lib/等非标准路径。校验文件合法性:对可疑.so文件,执行
busybox file <SO文件路径>查看文件类型,正常系统链接库应显示“ELF 64-bit LSB shared object”;同时计算MD5值(busybox md5sum <SO文件路径>),在Virustotal、微步云沙箱病毒库等平台查询,确认是否为恶意文件。 -
借助unhide工具排查隐藏进程(针对链接库劫持隐藏目的):
核心排查命令:
unhide proc:通过对比/proc目录与ps命令结果,检测被隐藏的进程。unhide sys:从系统调用层面排查,适用于深度隐藏的进程(如通过链接库劫持篡改进程表的情况)。unhide brute:暴力扫描所有可能的PID,找出未被ps显示的隐藏进程。结果判定:若unhide输出“Found hidden process”及对应PID、进程名,结合前文动态链接库排查结果,可确认存在“链接库劫持+进程隐藏”的组合攻击,需优先针对该PID核查对应进程及加载的链接库。
-
补充验证:命令污染后的交叉确认:
若怀疑ls、ps、find等核心命令被污染,先通过
busybox file /bin/ls /bin/ps校验文件类型,若显示非“ELF executable”,则确认命令被篡改,后续所有排查操作均优先使用busybox工具集替代,并结合unhide工具交叉验证进程真实性。可通过
busybox ps -ef | grep -v busybox过滤自身进程,对比原生ps命令结果(若能执行),同时结合unhide检测结果,若三者输出存在差异,进一步佐证存在动态链接库劫持或进程隐藏。
五、网络带宽&流量深度检查
-
实时流量监控:执行
iftop -P(显示端口号),查看各IP、端口的流量占用情况,重点关注:
a. 非业务端口的大流量进出(如22端口外的SSH连接、非授权的远程连接端口)。b. 陌生IP地址的持续连接(可通过
whois <IP>查询IP归属地,若为境外未知区域且非业务关联,判定为可疑)。 -
流量历史记录核查:
a. 若安装了nload、iftop等工具,可查看历史监控数据(需提前配置日志留存)。b. 执行
cat /var/log/syslog | grep -E 'network|traffic',排查系统日志中是否有异常流量记录。 -
异常流量进程定位:
对iftop中发现的高流量进程,通过
netstat -antp | grep <端口号>关联PID,再通过ps -ef | grep <PID>查看进程详情,确认是否为正常业务进程。
六、定时任务异常配置检查
恶意程序常通过定时任务实现自启动和持续运行,排查操作如下:
-
执行
crontab -l查看当前用户的定时任务,执行cat /etc/crontab查看系统级定时任务,重点关注:
a. 无合理说明的定时任务(如每分钟执行一次/tmp下的可执行文件)。b. 定时任务中包含陌生脚本路径、矿池连接命令或文件下载命令(如wget、curl下载未知文件)。
- 检查定时任务配置目录:
ls -la /etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/,查看是否存在非系统默认的脚本文件,若有则打开脚本查看内容,判断是否为恶意脚本。 - 执行
grep -r "cron" /var/log/查看定时任务执行日志,确认异常定时任务的执行记录。
七、隐藏账户与弱密码检查
7.1 隐藏账户排查
-
执行
cat /etc/passwd查看所有系统账户,重点关注:
a. UID为0的账户(除root外,其他UID为0的账户为特权账户,可能是入侵者添加)。b. 用户名异常的账户(如随机字符串、伪装成系统账户的名称,如“roo1”“admin123”)。
c. 账户shell为/bin/bash但无合理业务用途的账户,执行
cat /etc/shadow查看账户密码加密记录,若存在空密码或简单加密串,判定为可疑。 - 执行
awk -F: '$3==0 {print $1}' /etc/passwd快速筛选UID为0的账户,执行cat /etc/group查看用户组,排查是否存在异常用户组及成员。
7.2 弱密码与未授权访问排查
- 检查系统账户密码强度:执行
cat /etc/shadow | grep -v "!" | grep -v "*"查看已设置密码的账户,结合密码复杂度规则(如长度≥8位、包含大小写字母+数字+特殊符号),判断是否存在弱密码。 -
检查三方应用密码:
a. MySQL:执行mysql -u root -p尝试弱密码登录(如root/root、root/123456),查看用户权限配置select user,host from mysql.user;,若存在允许远程登录的空密码用户,判定为高危。b. Redis:执行
redis-cli -h <服务器IP> ping,若无需密码即可连接,或弱密码可登录,且配置了requirepass但密码简单,判定为高危。
7.3 可疑登录记录排查
-
执行
less /var/log/secure | grep 'Accepted'(CentOS系统)或less /var/log/auth.log | grep 'Accepted'(Ubuntu系统),查看成功登录记录:
a. 关注非业务常用IP的登录记录(如境外IP、陌生内网IP)。b. 关注异常登录时间(如凌晨、非工作时间)及多次登录失败后成功的记录(可能是暴力破解成功)。
- 执行
last命令查看近期登录用户、登录IP及登录时长,执行lastlog查看所有用户的最后登录时间,排查长期未使用但近期有登录记录的账户。
7.4 SSH密钥植入排查
- 执行
cat ~/.ssh/authorized_keys查看SSH授权密钥,若存在陌生公钥(非运维人员添加),说明可能被植入SSH密钥,入侵者可免密码登录。 - 检查/root/.ssh/、其他用户家目录下的.ssh目录,查看authorized_keys、id_rsa、id_rsa.pub等文件是否有异常修改(通过
ls -l查看文件修改时间)。
八、安全组配置检查
-
高危端口开放核查:
登录云服务器控制台,查看安全组入方向规则,重点检查以下端口是否对0.0.0.0/0(全网开放):
a. 远程登录端口:22(SSH)、3389(Windows,Linux服务器若开放需立即关闭)。
b. 数据库端口:3306(MySQL)、5432(PostgreSQL)、1521(Oracle)。
c. 缓存/中间件端口:6379(Redis)、27017(MongoDB)、5672(RabbitMQ)。
d. 其他高危端口:8080(未授权访问风险)、443(若未部署HTTPS需限制访问)、10000-65535(随机端口开放需核查用途)。
-
安全组规则合理性判定:
除80(HTTP)、443(HTTPS)等对外提供服务的端口外,其他端口应限制为指定IP段访问(如运维办公IP、VPC内网IP、业务关联服务器IP),禁止全网开放。
九、网站木马植入检查
适用于部署了Web服务(如Nginx、Apache、Tomcat)的服务器,排查操作如下:
-
Web根目录文件排查:
a. 执行find /var/www/ /usr/local/tomcat/webapps/ -name "*.php" "*.jsp" "*.asp" -mtime -7(根据Web服务实际路径调整,查找7天内新增/修改的脚本文件)。b. 查看脚本文件内容,若存在eval、assert、base64_decode等可疑函数(常见木马加密手段),或包含陌生代码块(如连接外部IP的代码),判定为可疑木马文件。
c. 检查是否存在伪装成正常文件的木马(如“index.php.bak”“image.jpg.php”,利用文件解析漏洞执行)。
-
Web服务日志核查:
a. Nginx日志:cat /var/log/nginx/access.log | grep -E 'phpinfo|eval|base64',排查是否存在恶意请求。b. Apache日志:
cat /var/log/apache2/access.log | grep -E 'shell|木马|cmd',排查可疑访问记录。 -
Web后门工具排查:
执行
find / -name "webshell" "shell.php" "backdoor.jsp" -type f,排查是否存在常见Web后门文件。
十、勒索病毒检查
勒索病毒核心特征为加密文件并留下勒索提示,排查操作如下:
-
文件加密特征排查:
查看业务目录、用户家目录下的文件,若发现文件后缀被修改(如.txt变为.txt.xxx、.docx变为.docx.lock),且无法正常打开,判定为可能感染勒索病毒。
-
勒索提示文件排查:
执行
find / -name "*.txt" "*.html" -exec grep -l "勒索" "解密" "bitcoin" {} \;,查找包含勒索信息的提示文件(通常为中英文勒索说明,要求支付比特币解密)。 -
进程与网络排查:
通过top排查是否存在持续占用磁盘I/O的进程(加密文件需大量磁盘操作),通过netstat排查是否存在连接勒索服务器的异常网络连接。
十一、解决方案与安全加固
11.1 紧急处置方案
-
隔离感染服务器:
立即在云控制台关闭安全组中所有对外开放的端口,断开服务器与公网的连接(保留内网管理通道),防止病毒扩散至其他服务器。
-
终止恶意进程:
执行
kill -9 <PID>终止可疑进程(需先通过ls /proc//exe记录进程路径),删除恶意文件(如/tmp下的可疑可执行文件、动态链接库、木马文件)。 -
清理异常配置:
a. 删除异常定时任务:crontab -r <用户名>(删除指定用户的定时任务),或直接编辑/etc/crontab及相关目录删除异常脚本。b. 删除隐藏账户:
userdel -r <用户名>(彻底删除账户及家目录),删除/etc/passwd、/etc/shadow中对应的账户记录。c. 清理SSH恶意密钥:编辑~/.ssh/authorized_keys,删除陌生公钥,重置SSH配置(
service sshd restart)。 -
修复被篡改文件:
对被篡改的系统命令(如ls、ps),从同版本纯净系统复制对应命令覆盖,或通过yum(CentOS)、apt(Ubuntu)重新安装对应软件包(如
yum reinstall coreutils)。
11.2 重装系统(高危入侵场景)
当服务器存在以下情况时,建议直接重装系统,确保彻底清除病毒:
- 感染勒索病毒,文件已被加密且无备份。
- 动态链接库被大面积劫持,系统稳定性受损,无法彻底清理恶意链接库。
- 发现隐藏内核级木马,常规排查手段无法定位根源。
- 服务器权限被完全控制,存在大量未知恶意文件和进程,清理后仍反复出现异常。
重装注意事项:重装前备份重要业务数据,重装后优先配置安全组和账户权限,再部署业务环境,避免未加固即暴露在公网。
11.3 安全加固措施
11.3.1 账户与权限加固
-
禁用root账户远程登录:
编辑/etc/ssh/sshd_config,设置
PermitRootLogin no,创建普通运维账户,通过sudo授权管理权限。 -
强制密码复杂度:
系统及应用账户加强密码复杂度,如强制要求长度8位以上且必须包含字符,数字和大小写字母,避免多个账户使用相同密码,密码要定期修改等安全措施落实到位。
-
删除无用账户:
清理/etc/passwd中无业务用途的账户,禁用空密码账户(编辑/etc/shadow,将空密码字段改为“*”)。
Linux操作系统安全加固可参考:Linux操作系统安全加固
11.3.2 网络与端口加固
-
收紧安全组规则:
仅开放业务必需端口,限制端口访问IP段(如22端口仅允许办公IP访问,6379仅开放内网访问),关闭所有不必要的出站端口。
-
修改默认端口:
将SSH默认端口22修改为10000以上的随机端口(编辑/etc/ssh/sshd_config,修改Port 端口值),重启sshd服务(
service sshd restart)。 -
开启防火墙:
CentOS启用firewalld(
systemctl start firewalld && systemctl enable firewalld),Ubuntu启用ufw(ufw enable),配置防火墙规则仅允许必要端口通行。
11.3.3 系统与应用加固
-
定期更新系统补丁:
执行
yum update -y(CentOS)或apt update && apt upgrade -y(Ubuntu),修复系统漏洞。 -
禁用不必要的服务:
执行
systemctl list-unit-files --type=service查看运行的服务,禁用无用服务(如systemctl stop postfix && systemctl disable postfix)。 -
加固三方应用:
a. MySQL/Redis:修改默认端口和密码,限制远程访问IP,禁用空密码用户,关闭不必要的权限(如Redis禁用config命令)。b. Web服务:隐藏版本信息(Nginx编辑nginx.conf,添加
server_tokens off;),禁用危险HTTP方法(如PUT、DELETE),定期更新Web程序补丁。 -
开启日志审计:
配置系统日志(/var/log/secure、/var/log/auth.log)、应用日志的留存策略(至少留存30天),开启日志审计功能,实时监控异常登录和操作。
11.3.4 其他加固措施
-
安装安全防护工具:
部署Linux防火墙(如firewalld、ufw)、接入云安全中心(如漏洞扫描,病毒查杀,防勒索等),定期扫描恶意文件。
-
定期备份数据:
采用“本地+云端”双重备份策略,云端定期快照备份,备份频率至少为每日一次,定期验证备份文件的可用性。
-
规范运维操作:
避免使用弱密码,禁止在公共网络下远程登录服务器,运维操作后及时退出账户,定期更换账户密码和SSH密钥。
十二、排查总结与溯源
排查完成后,需整理排查记录(包括异常进程、文件、登录记录、网络连接等),分析入侵根源(如弱密码暴力破解、漏洞利用、配置不当等),形成排查报告。针对入侵根源优化安全加固措施,定期开展安全排查(建议每周一次),防范同类入侵事件再次发生。若入侵造成严重损失,可留存相关日志和证据,联系百度智能云售后或公安机关协助溯源。
附:三方排查工具安装与使用指导
本章节针对排查过程中常用的iftop、busybox、net-tools等三方工具,提供适配CentOS、Ubuntu系统的安装步骤及基础使用方法,确保排查工作顺利开展。
一、iftop(网络流量监控工具)
用途:实时监控服务器网络带宽占用、IP连接情况,精准定位异常流量来源,是网络排查核心工具。
1.1 安装步骤
CentOS系统(yum包管理器):
先安装依赖包:yum install -y epel-release(iftop位于EPEL扩展源)。
安装iftop:yum install -y iftop。
Ubuntu系统(apt包管理器):
更新软件源:apt update -y。
安装iftop:apt install -y iftop。
1.2 基础使用方法
启动iftop:iftop -i eth0(eth0替换为实际网卡名,如ens33、bond0),默认显示实时进出流量。
常用参数:-P:显示对应端口号,便于关联进程(如iftop -P -i eth0)。
-n:不解析主机名,仅显示IP地址,提升监控速度。
-B:以字节为单位显示流量(默认以比特为单位)。
交互操作(启动后按对应按键): 按s:切换显示发送流量。
按r:切换显示接收流量。
按q:退出iftop。
二、busybox(多功能命令工具集)
用途:集成ls、ps、netstat等常用系统命令,当原生系统命令被篡改(如变为text文件)时,可替代使用,保障排查正常进行。
2.1 安装步骤
CentOS系统:
yum install -y busybox。
Ubuntu系统:
apt install -y busybox。
手动安装(当上述两种方案安装失败时):
从官网下载busybox二进制包:wget https://busybox.net/downloads/binaries/1.35.0-x86_64-linux-musl/busybox。
添加执行权限:chmod +x busybox。
移动至系统路径:mv busybox /usr/local/bin/,即可全局调用。
2.2 基础使用方法
替代系统命令,在原生命令被篡改时,前缀加“busybox ”即可执行,如:
替代ls:busybox ls -la /tmp/。
替代ps:busybox ps -aux。
替代netstat:busybox netstat -antp。
查看支持的命令:busybox --list,可查看其集成的所有命令列表。
三、net-tools(网络命令工具集)
用途:包含netstat、ifconfig等经典网络命令,部分Linux系统默认不预装,需手动安装以支持端口、网络连接排查。
3.1 安装步骤
CentOS系统:
yum install -y net-tools。
Ubuntu系统:
apt install -y net-tools。
3.2 核心命令用法
netstat -antp:查看所有TCP端口连接及对应进程PID,是排查异常端口的核心命令。
ifconfig:查看网卡信息、IP地址,辅助确认iftop监控的网卡名称。
四、nload(简易网络流量监控工具)
用途:轻量型实时流量监控工具,直观展示网卡进出流量趋势及带宽占用情况,适合快速判断带宽是否被异常占用,补充iftop的基础流量监控场景。
4.1 安装步骤
CentOS系统(yum包管理器):
安装依赖扩展源(部分系统默认无nload包):yum install -y epel-release。
安装nload:yum install -y nload。
Ubuntu系统(apt包管理器):
更新软件源:apt update -y。
安装nload:apt install -y nload。
4.2 基础使用方法
启动nload:
默认监控第一个网卡,执行 nload 即可;指定网卡监控:nload eth0(eth0替换为实际网卡名)。
界面说明:
Incoming:网卡接收流量(下行流量),显示当前速率、平均速率、最大速率。
Outgoing:网卡发送流量(上行流量),指标含义同接收流量。
交互操作:
按左右方向键:切换监控不同网卡。
按q:退出nload工具。
五、unhide(隐藏进程检测工具)
用途:针对动态链接库劫持、进程篡改等攻击场景,通过对比进程表、系统调用、PID扫描等机制,找出被原生ps、top命令隐藏的恶意进程,是深度入侵排查的核心工具。
5.1 安装步骤
在线安装:
CentOS系统:执行 yum install -y unhide(需确保EPEL源已安装,未安装可先执行yum install -y epel-release)。
Ubuntu系统:执行 apt update -y && apt install -y unhide,直接通过官方源安装。
离线编译安装(适用于无法联网场景):
下载源码包:从官网获取最新版本源码,命令为 wget https://github.com/YJesus/Unhide/archive/refs/tags/v20210124.tar.gz(可提前下载后上传至服务器)。
解压源码包:tar -zxvf v20210124.tar.gz,进入解压目录 cd Unhide-20210124/。
编译安装:执行 make && make install,安装完成后可直接在全局调用unhide命令。
5.2 基础使用方法
核心排查命令(按检测深度递增):
unhide proc:基础检测,对比/proc目录与ps命令输出结果,快速找出被隐藏的进程,适合常规排查。
unhide sys:深度检测,通过系统调用接口核查进程真实性,可发现通过链接库劫持、进程表篡改隐藏的恶意进程。
unhide brute:暴力扫描,遍历所有可能的PID(0-65535),排查未被ps显示但实际运行的进程,适合高危入侵场景。
unhide all:执行所有检测模式,一次性完成全面排查,推荐优先使用。
结果解读:
若输出“Found hidden process: [PID] [进程名]”,说明检测到隐藏进程,需记录PID,结合ls -l /proc/<PID>/exe(或busybox替代命令)核查进程路径。
无输出则表示未检测到明显隐藏进程,可结合动态链接库排查结果交叉验证。
注意事项:
检测时需避免中断进程,若服务器负载较高,建议先通过top、nload监控资源占用,再执行unhide命令。
五、工具安装注意事项
- 安装工具前,优先确认服务器网络连通性。
- 若系统命令被篡改导致yum、apt无法正常使用,先通过busybox替代命令(如
busybox yum install ...)修复基础环境,再安装其他工具。
