# 查看所有进程
top
# 查看内存占用进程
top -o %MEM
# cpu占用最高的进程
top -c
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | more
# 异常网络连接
netstat -antp
# 查看执行命令
history | grep sh
# 进程若隐藏可尝试【记得备份】
echo “”>/etc/ld.so.preload
# 在使用,查看进程
top -o %MEM
# 查看隐藏进程方式2【需要安装,大家自行百度哈】
unhide proc
# 查看进程启动文件
ls -l /proc/进程ID/exe
# 常用挖矿程序 查找
find . -name xmrig
# 找到启动程序后,记得根据程序启动时间排查执行命令,执行命令角色等等
# 不过还是建议大家重装吧
#!/bin/bash
# 设置 CPU 和内存占用的阈值(百分比)
cpu_threshold=60
memory_threshold=80
# 使用 ps 命令查找所有进程,并按 CPU 或内存占用排序
processes=$(ps -eo pid,%cpu,%mem,comm --sort=-%cpu | awk 'NR>1 { print $1, $2, $3, $4; }')
# 遍历所有进程
while read -r pid cpu_usage memory_usage process_name; do
if (( $(bc <<< "$cpu_usage > $cpu_threshold") )); then
# CPU 占用超过阈值,终止进程
kill "$pid"
echo "进程 $process_name (PID: $pid) 的 CPU 占用超过 $cpu_threshold%,已终止."
elif (( $(bc <<< "$memory_usage > $memory_threshold") )); then
# 内存占用超过阈值,终止进程
kill "$pid"
echo "进程 $process_name (PID: $pid) 的内存占用超过 $memory_threshold%,已终止."
fi
done <<< "$processes"
#!/bin/bash
# 请替换为你要删除的进程名称
process_name="your_process_name"
# 设置 CPU 占用阈值(百分比)
cpu_threshold=60
# 使用 pgrep 查找进程 ID
process_id=$(pgrep "$process_name")
if [ -z "$process_id" ]; then
echo "进程 $process_name 未找到."
else
# 使用 top 命令获取进程的 CPU 占用百分比
cpu_usage=$(top -b -n 1 -p "$process_id" | awk 'NR>7 { sum += $9; } END { print sum; }')
if [ "$cpu_usage" -gt "$cpu_threshold" ]; then
# CPU 占用超过阈值,终止进程
kill "$process_id"
echo "进程 $process_name (PID: $process_id) 的 CPU 占用超过 $cpu_threshold%,已终止."
else
echo "进程 $process_name (PID: $process_id) 的 CPU 占用为 $cpu_usage%,未超过 $cpu_threshold%."
fi
fi
CentOS
和Ubuntu
个有不同
这里是CentOS
# 网络连接查看
netstat -anp
# 禁止某个IP
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<要禁止的IP地址>" drop'
# 重启保存
sudo firewall-cmd --reload
### 历史执行命令
history
### 日志查找
### **Linux 系统日志文件**
cat /var/log/syslog
cat /var/log/messages
### **防火墙和安全相关的日志文件**
cat /var/log/iptables.log
cat /var/log/ufw.log
cat /var/log/firewalld
### **SSH 日志**
# 一般会被删掉。。。
cat /var/log/auth.log
cat /var/log/secure
### **Web 服务器日志(例如 Apache 或 Nginx)**
cat /etc/passwd
# 或者
cut -d: -f1 /etc/passwd
# 或者
vi /etc/passwd
# 改为 nologin
/usr/sbin/nologin
# 通过日志查看近期是否有创建账号行为
cat /var/log/audit/audit.log | grep useradd
# 或者
cat /var/log/secure | grep 'new user'
# 通过账户的home目录查看可疑账户的创建或最近活跃时间,需特别关注近期创建的home目录
stat /home/guest/
# 查看计划任务
crontab -l
# 查看具体任务
crontab -u username -l
# 主机所有计划任务文件
/etc/crontab
/var/spool/cron/
/etc/anacrontab
/etc/cron.d/
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
/etc/cron.monthly/
# 查询所有自启动服务
systemctl list-unit-files | grep enabled
# 可疑文件查找
ls -al /etc/systemd/system/*.service
ls -al /usr/lib/systemd/system/*.service
# 查看服务详细信息(服务启动的进程文件)
cat /etc/systemd/system/<service_unit_name>.service
# 禁用服务器 删除启动文件
systemctl disable <service name>
rm /etc/systemd/system/<service_unit_name>.service
rm /usr/lib/systemd/system/<service_unit_name>.service
# 排查以下文件 建议.ssh下文件整体备份后删除
~/.ssh/authorized_keys
~/.ssh/authorized_keys
# 排查预加载的.so文件
cat /etc/ld.so.preload
# 删除预加载劫持
echo > /etc/ld.so.preload
chattr -i /etc/passwd
chattr -i /etc/crontab