在Ubuntu系统中,恶意进程通常通过高资源占用、伪装路径/名称、异常网络行为等方式隐藏,需通过系统命令、日志分析、工具扫描多维度识别。以下是具体步骤:
① 使用top/htop查看资源占用
运行top命令(按P按CPU排序、M按内存排序),或安装htop(sudo apt install htop)查看实时进程状态。重点关注:
unknown、miner的进程);nobody、自定义用户)运行关键服务(如/usr/sbin/apache2被nobody用户运行);xyz123)、伪装成系统进程(如sysupdate、servicemanager)或安全程序(如watchbog、secagent)。② 使用ps命令筛选异常进程
运行以下命令查看所有进程的详细信息,重点关注路径、参数、状态:
ps aux --sort=-%cpu | more # 按CPU占用降序排序
ps aux --sort=-%mem | more # 按内存占用降序排序
ps -ef | grep -E "/tmp|/var/tmp|/dev/shm" # 筛选可疑路径(如/tmp、/dev/shm)
若进程的COMMAND列包含可疑路径(如/tmp/.exploit、/var/tmp/malware.sh)或参数带URL(如http://malicious-site.com/script.sh),需进一步核查。
① 使用lsof查看进程关联文件与网络
通过进程PID(从top/ps获取),运行以下命令查看其打开的文件和网络连接:
ls -l /proc/$PID/exe # 查看进程对应的可执行文件路径(若路径为/tmp或隐藏目录需警惕)
lsof -p $PID # 查看进程打开的所有文件(重点关注/tmp、/dev/shm等目录)
lsof -i -P -n | grep $PID # 查看进程的网络连接(如监听端口、外连IP)
若进程打开了异常文件路径(如/dev/shm/.xmr、/tmp/minerd)或连接到高危端口(如12345、3333),可能为恶意进程。
② 使用netstat/ss查看网络连接
运行以下命令查看系统的网络连接状态,重点关注监听端口和外连IP:
sudo netstat -antp | more # 查看所有TCP连接(-a:所有,-n:数字地址,-p:显示进程)
sudo ss -antp | more # 更高效的替代命令(推荐)
若发现未授权的监听端口(如12345)或外连到陌生IP(可通过whois或VirusTotal查询IP归属),需排查对应进程。
① 查看认证日志(SSH登录)
运行以下命令查看最近的SSH登录记录,检查是否有异常IP登录或失败尝试:
sudo tail -n 50 /var/log/auth.log # Ubuntu/Debian
sudo grep "Failed password" /var/log/auth* | uniq -c # 统计失败次数
sudo grep "Accepted " /var/log/auth* | awk '{print $1,$2,$3,$9,$11}' # 查看成功登录的IP和用户
若存在多次失败登录或陌生IP成功登录,可能是攻击者植入恶意进程的入口。
② 查看Cron任务日志
恶意进程常通过Cron定时任务实现持久化,运行以下命令查看Cron日志:
sudo tail -n 50 /var/log/cron # Ubuntu/Debian的Cron日志路径
若日志中出现未知脚本(如/tmp/malware.sh)或高频执行的任务(如每分钟执行一次),需检查对应任务的内容。
① 安装chkrootkit检测Rootkit
Rootkit是恶意进程隐藏自身的常用工具,运行以下命令安装并扫描:
sudo apt install chkrootkit # Ubuntu/Debian
sudo chkrootkit # 扫描系统(重点关注“INFECTED”提示)
若扫描结果显示Rootkit感染,需立即隔离系统并重装系统。
② 安装rkhunter扫描隐藏恶意程序
rkhunter可检查系统文件的完整性、隐藏进程、端口监听等,运行以下命令:
sudo apt install rkhunter # Ubuntu/Debian
sudo rkhunter --check # 执行全面扫描
扫描结果中的**“Warning”或“Found”**项需重点核查(如异常的隐藏文件、修改过的系统二进制文件)。
kill -9 $PID或pkill -9 进程名终止恶意进程;/proc/$PID/exe或lsof找到的路径,删除恶意可执行文件;crontab -l)、启动项(systemctl list-unit-files)中的可疑条目;通过以上步骤,可有效识别Ubuntu系统中的恶意进程,并采取针对性措施清除威胁。需定期执行这些操作,确保系统安全。